diff --git a/.cursor/mcp.json b/.cursor/mcp.json
index c2492b65b..12994e4fa 100644
--- a/.cursor/mcp.json
+++ b/.cursor/mcp.json
@@ -16,6 +16,9 @@
"ark-ui": {
"command": "npx",
"args": ["-y", "@ark-ui/mcp"]
+ },
+ "sentry": {
+ "url": "https://mcp.sentry.dev/mcp"
}
}
}
diff --git a/.cursor/rules/durable-objects.mdc b/.cursor/rules/durable-objects.mdc
index 83b8543c1..bb2c35268 100644
--- a/.cursor/rules/durable-objects.mdc
+++ b/.cursor/rules/durable-objects.mdc
@@ -16,7 +16,6 @@ Durable Objects provide stateful, single-instance objects for each project. They
- **ProjectDoc**: Manages project Y.Doc and WebSocket connections
- **UserSession**: Manages user session state
-- **EmailQueue**: Manages email sending queue
## ProjectDoc Pattern
@@ -211,4 +210,3 @@ this.doc.on('update', async (update) => {
- `packages/workers/src/durable-objects/ProjectDoc.js` - Main ProjectDoc implementation
- `packages/workers/src/durable-objects/UserSession.js` - User session management
-- `packages/workers/src/durable-objects/EmailQueue.js` - Email queue management
diff --git a/.mcp.json b/.mcp.json
index ece3a3398..447aa463c 100644
--- a/.mcp.json
+++ b/.mcp.json
@@ -12,11 +12,6 @@
"env": {
"MCP_MEMORY_REPO_ROOT": "."
}
- },
- "ark-ui": {
- "type": "stdio",
- "command": "npx",
- "args": ["-y", "@ark-ui/mcp"]
}
}
}
diff --git a/.mcp.md b/.mcp.md
new file mode 100644
index 000000000..10922f2d5
--- /dev/null
+++ b/.mcp.md
@@ -0,0 +1,26 @@
+
diff --git a/.mcp/memory.db b/.mcp/memory.db
index ad492c7e2..3e232c104 100644
Binary files a/.mcp/memory.db and b/.mcp/memory.db differ
diff --git a/.mcp/memory.db-wal b/.mcp/memory.db-wal
index e69de29bb..c94b0be32 100644
Binary files a/.mcp/memory.db-wal and b/.mcp/memory.db-wal differ
diff --git a/.vscode/mcp.json b/.vscode/mcp.json
index 3156312e7..1ee1de07d 100644
--- a/.vscode/mcp.json
+++ b/.vscode/mcp.json
@@ -16,10 +16,10 @@
"ark-ui": {
"command": "npx",
"args": ["-y", "@ark-ui/mcp"]
+ },
+ "sentry": {
+ "type": "http",
+ "url": "https://mcp.sentry.dev/mcp"
}
- // "stripe": {
- // "type": "http",
- // "url": "https://mcp.stripe.com"
- // }
}
}
diff --git a/eslint.config.js b/eslint.config.js
index e0248ed31..df4158c8e 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -328,6 +328,8 @@ export default [
globals: {
// Cloudflare Workers globals
MessageEvent: 'readonly',
+ Message: 'readonly',
+ MessageBatch: 'readonly',
Cloudflare: 'readonly',
D1Database: 'readonly',
DurableObject: 'readonly',
diff --git a/package.json b/package.json
index eb20a70cc..fe4eb80a5 100644
--- a/package.json
+++ b/package.json
@@ -45,20 +45,20 @@
"docs:preview": "pnpm --filter @corates/docs preview"
},
"devDependencies": {
- "@eslint/js": "^9.39.3",
+ "@eslint/js": "^9.39.4",
"@typescript-eslint/parser": "^8.56.1",
"agent-browser": "^0.4.4",
"concurrently": "^9.2.1",
"dotenv": "^17.3.1",
- "eslint": "^9.39.3",
+ "eslint": "^9.39.4",
"eslint-plugin-drizzle": "^0.2.3",
"eslint-plugin-solid": "^0.14.5",
"eslint-plugin-sonarjs": "^3.0.7",
"eslint-plugin-unicorn": "^62.0.0",
"prettier": "^3.8.1",
"prettier-plugin-tailwindcss": "^0.7.2",
- "turbo": "^2.8.10",
- "wrangler": "^4.67.1"
+ "turbo": "^2.8.14",
+ "wrangler": "^4.71.0"
},
"engines": {
"node": ">=24.0.0",
diff --git a/packages/docs/STATUS.md b/packages/docs/STATUS.md
index b6ea7fc9f..555c04ad1 100644
--- a/packages/docs/STATUS.md
+++ b/packages/docs/STATUS.md
@@ -59,11 +59,11 @@ This document tracks the current implementation status of CoRATES features and s
| PDF Routes | Complete | R2 storage, Google Drive proxy |
| Billing Routes | Complete | Stripe subscriptions, webhooks, portal |
| Admin Routes | Complete | User/org management, impersonation |
-| Contact Routes | Complete | Rate-limited contact form with Postmark |
+| Contact Routes | Complete | Rate-limited contact form |
| Account Merge Routes | Complete | OAuth account linking |
| ProjectDoc DO | Complete | Yjs sync with WebSocket connections |
| UserSession DO | Complete | Session management |
-| EmailQueue DO | Complete | Email delivery queue |
+| Email Queue | Complete | Cloudflare Queue with Postmark delivery |
### Database Schema
@@ -97,14 +97,14 @@ This document tracks the current implementation status of CoRATES features and s
## Infrastructure
-| System | Status | Notes |
-| ------------------ | -------- | ----------------------------------- |
-| Cloudflare Workers | Complete | Hono with OpenAPI support |
-| Cloudflare D1 | Complete | SQLite database with Drizzle ORM |
-| Cloudflare R2 | Complete | PDF storage |
-| Durable Objects | Complete | ProjectDoc, UserSession, EmailQueue |
-| Email (Postmark) | Complete | Transactional emails |
-| GitHub Actions | Partial | Prettier check only |
+| System | Status | Notes |
+| ------------------ | -------- | -------------------------------- |
+| Cloudflare Workers | Complete | Hono with OpenAPI support |
+| Cloudflare D1 | Complete | SQLite database with Drizzle ORM |
+| Cloudflare R2 | Complete | PDF storage |
+| Durable Objects | Complete | ProjectDoc, UserSession |
+| Email Queue | Complete | Cloudflare Queue + Postmark |
+| GitHub Actions | Partial | Prettier check only |
---
diff --git a/packages/docs/architecture/diagrams/02-system-architecture.md b/packages/docs/architecture/diagrams/02-system-architecture.md
index b0c06aa4b..819284b09 100644
--- a/packages/docs/architecture/diagrams/02-system-architecture.md
+++ b/packages/docs/architecture/diagrams/02-system-architecture.md
@@ -17,9 +17,9 @@ flowchart TB
subgraph DurableObjects["Durable Objects"]
ProjectDoc[ProjectDoc
One per project
Yjs sync & content]
- EmailQueue[EmailQueue]
UserSession[UserSession
One per user
Notifications]
end
+ EmailQueue[Cloudflare Queue
Email delivery]
end
subgraph Storage["Cloudflare Storage"]
@@ -56,7 +56,7 @@ flowchart TB
- **Durable Objects**:
- **ProjectDoc**: One per project, holds Yjs document for real-time collaboration and content storage
- **UserSession**: One per user, manages WebSocket connections for real-time notifications (e.g., project invites)
- - **EmailQueue**: Background email processing
+- **Cloudflare Queue**: Async email delivery with retries and dead letter queue, consumed by Postmark
### Storage
diff --git a/packages/docs/audits/durable-objects-migration-review-2026-02.md b/packages/docs/audits/durable-objects-migration-review-2026-02.md
deleted file mode 100644
index db05a497a..000000000
--- a/packages/docs/audits/durable-objects-migration-review-2026-02.md
+++ /dev/null
@@ -1,256 +0,0 @@
-# Durable Objects Migration Review - February 2026
-
-## Context
-
-All three Durable Objects (EmailQueue, UserSession, ProjectDoc) were migrated from `implements DurableObject` with fetch-based routing to `extends DurableObject` with:
-- Typed RPC methods (replacing `stub.fetch(new Request(...))`)
-- Hibernatable WebSocket API (ProjectDoc, UserSession)
-- Debounced Y.Doc persistence (ProjectDoc)
-
-This document records the findings from a 3-reviewer quality audit after implementation. Each issue was independently verified against the source code.
-
-## Verification Status
-
-- Tests: 450/450 pass (8 pre-existing failures in stop-impersonation.test.js unrelated to migration)
-- Typecheck: Only pre-existing Stripe API version errors
-- Lint: Only pre-existing issues in other files
-
----
-
-## Critical Issues
-
-### C1. ProjectDoc: `schedulePersistenceIfNoConnections` is fire-and-forget
-
-**File**: `packages/workers/src/durable-objects/ProjectDoc.ts`, lines 214, 259, 300, 415, 433, 446, 483
-**Confidence**: 90%
-**Found by**: Reviewer 2
-
-**Problem**: The `schedulePersistenceIfNoConnections()` method is `void` and calls `this.flushPersistence()` (which is `async` and does `await this.ctx.storage.put(...)`) without awaiting it. When RPC methods like `syncProject`, `syncMember`, `syncPdf`, and several dev methods call this, the RPC returns to the caller before the storage write completes. If the DO is evicted before the unawaited `flushPersistence` finishes, the Y.Doc mutation is lost permanently.
-
-**Code**:
-```typescript
-// Returns void, does not await the async flushPersistence
-private schedulePersistenceIfNoConnections(): void {
- if (this.ctx.getWebSockets().length === 0) {
- this.flushPersistence(); // fire-and-forget
- }
-}
-```
-
-**Fix**: Make the method `async`, return `Promise`, and `await` the flush. All callers must also `await` it.
-
-**Regression test**: Call `syncMember('add', ...)` via RPC with no active WebSocket connections, then verify the Y.Doc state was persisted to storage.
-
----
-
-### C2. ProjectDoc: `webSocketError` missing `initializeDoc()` call
-
-**File**: `packages/workers/src/durable-objects/ProjectDoc.ts`, lines 757-772
-**Confidence**: 87%
-**Found by**: Reviewer 2
-
-**Problem**: After hibernation wake, `this.doc` and `this.awareness` are `null`. The `webSocketClose` handler correctly calls `await this.initializeDoc()` at line 738, but `webSocketError` at line 757 does not. When the DO wakes from hibernation due to a WebSocket error event, the `this.awareness` null-check silently skips awareness cleanup, leaving stale presence cursors visible to other clients.
-
-**Code**:
-```typescript
-// webSocketClose (correct):
-async webSocketClose(ws, _code, _reason, _wasClean) {
- await this.initializeDoc(); // re-initializes after hibernation wake
- // ... awareness cleanup works
-}
-
-// webSocketError (missing):
-async webSocketError(ws, error) {
- console.error('WebSocket error in ProjectDoc:', error);
- // NO initializeDoc() call -- this.awareness is null after hibernation
- const attachment = ws.deserializeAttachment();
- if (attachment && attachment.awarenessClientId != null && this.awareness) {
- // this.awareness is null, so this block is silently skipped
- awarenessProtocol.removeAwarenessStates(...);
- }
-}
-```
-
-**Fix**: Add `await this.initializeDoc()` at the top of `webSocketError`, matching `webSocketClose`.
-
-**Regression test**: Not practically testable -- vitest pool DOs don't truly hibernate. Fix is a one-line addition with clear correctness from code inspection.
-
----
-
-### C3. EmailQueue: Dead-letter write pattern is fragile
-
-**File**: `packages/workers/src/durable-objects/EmailQueue.ts`, lines 85-89
-**Confidence**: 92%
-**Found by**: All 3 reviewers
-
-**Problem**: The unawaited `storage.put` followed by awaited `storage.delete` was designed for write coalescing (both operations in the same batch). While Cloudflare DO storage *should* coalesce these (the `put` is queued, then the `await delete` flushes the batch), the unawaited `put` means any rejection is silently swallowed as an unhandled promise. This is fragile and the misleading "atomically" comment suggests the intent was clearer guarantees.
-
-**Code**:
-```typescript
-// Move to dead letter queue atomically -- both writes coalesce
-this.ctx.storage.put(`dead-letter:${emailRecord.id}`, emailRecord); // unawaited
-await this.ctx.storage.delete(`email:${emailRecord.id}`); // awaited
-```
-
-**Fix**: Await both writes explicitly. The atomic coalescing comment should be removed since sequential awaits are separate transactions (but both succeeding is the correct behavior -- we want the dead-letter record to exist before deleting the original).
-
-**Regression test**: After triggering max retries, verify the dead-letter record exists in storage AND the email record is deleted.
-
----
-
-## Important Issues
-
-### I1. ProjectDoc: `syncProject` member replacement not in `doc.transact()`, iteration-during-mutation unsafe
-
-**File**: `packages/workers/src/durable-objects/ProjectDoc.ts`, lines 196-211
-**Confidence**: 85%
-**Found by**: Reviewers 1, 2
-
-**Problem**: Two issues in the member replacement loop:
-
-1. **Mutation during iteration**: Deleting from a Y.Map while iterating its entries may skip entries depending on Y.js internals.
-2. **No transaction**: Each `delete` and `set` fires the `doc.on('update')` listener individually, broadcasting partial state to connected WebSocket clients. Between the delete loop and add loop, all clients briefly see an empty members map.
-
-**Code**:
-```typescript
-const membersMap = this.doc!.getMap('members');
-for (const [userId] of membersMap.entries()) {
- membersMap.delete(userId); // mutating while iterating
-}
-for (const member of data.members) {
- membersMap.set(member.userId, memberYMap); // broadcasts individually
-}
-```
-
-**Fix**: Collect keys first, then wrap both loops in `this.doc!.transact(() => { ... })`.
-
-**Regression test**: Call `syncProject` with a different member list, verify old members are fully removed and new members are present.
-
----
-
-### I2. Y.Map member construction duplicated 4 times
-
-**File**: `packages/workers/src/durable-objects/ProjectDoc.ts` (3 sites) + `dev-handlers.ts` (1 site)
-**Confidence**: 95%
-**Found by**: Reviewer 1
-
-**Problem**: The same 7-field `memberYMap.set(...)` pattern appears at:
-- `syncProject` (line 202-210)
-- `syncMember` add branch (line 226-234)
-- WebSocket connect handler (line 635-643)
-- `dev-handlers.ts` handleDevImport (line 327-335)
-
-Any schema change (e.g., adding `username` field) requires finding and updating all 4 sites. One copy already diverges slightly (line 637 casts `(user.name as string)`).
-
-**Fix**: Extract a `buildMemberYMap(member)` function in `ProjectDoc.ts` and export it for `dev-handlers.ts` to use.
-
-**Regression test**: Not directly testable (code quality). The `syncProject` test from I1 indirectly validates the builder works.
-
----
-
-### I3. Dev RPC methods duplicate the same `ctx` object 6 times
-
-**File**: `packages/workers/src/durable-objects/ProjectDoc.ts`, lines 394-397, 406-409, 422-425, 440-443, 453-456, 471-474
-**Confidence**: 88%
-**Found by**: Reviewer 1
-
-**Problem**: Six dev methods each construct the same `{ doc, stateId, yMapToPlain }` object before delegating to `dev-handlers.ts`.
-
-**Fix**: Extract a private getter:
-```typescript
-private get devCtx() {
- return {
- doc: this.doc!,
- stateId: this.ctx.id.toString(),
- yMapToPlain: this.yMapToPlain.bind(this),
- };
-}
-```
-
-**Regression test**: Not directly testable (code quality).
-
----
-
-### I4. Test mock in `helpers.ts` missing RPC methods
-
-**File**: `packages/workers/src/__tests__/helpers.ts`, lines 364-375
-**Confidence**: 85%
-**Found by**: Reviewer 3
-
-**Problem**: The `mockDO` object used by `createTestEnv` is missing:
-- `getDeadLetterQueue` (EmailQueue)
-- All 7 dev RPC methods: `devExport`, `devImport`, `devPatch`, `devReset`, `devRaw`, `devTemplates`, `devApplyTemplate` (ProjectDoc)
-
-Any future test using `createTestEnv` that hits these paths will get `TypeError: stub.method is not a function`.
-
-**Fix**: Add all missing methods to the mock.
-
-**Regression test**: Not applicable -- this IS test infrastructure.
-
----
-
-### I5. `dev-routes.ts`: `template!` non-null assertion without guard
-
-**File**: `packages/workers/src/routes/orgs/dev-routes.ts`, line 299
-**Confidence**: 83%
-**Found by**: Reviewer 3
-
-**Problem**: The `template` query param is `z.string().optional()`, so it can be `undefined`. The `!` suppresses the TypeScript error but at runtime `undefined` gets interpolated into a URL as the literal string `"undefined"`, silently applying the wrong template.
-
-**Code**:
-```typescript
-const template = query.template; // string | undefined
-const data = await projectDoc.devApplyTemplate(template!, mode); // passes undefined
-```
-
-**Fix**: Add a 400 guard before the call:
-```typescript
-if (!template) {
- return c.json({ error: 'template query parameter is required' }, 400);
-}
-```
-
-**Regression test**: Call apply-template route without template param, expect 400.
-
----
-
-## Issues NOT fixed (minor)
-
-| ID | Issue | Reason deferred |
-|----|-------|-----------------|
-| M1 | EmailQueue `queueEmail` uses raw `Error` instead of `createDomainError` | Convention-only, runtime behavior correct |
-| M2 | `helpers.ts` duplicates `getProjectDocName` instead of importing | Low risk, test-only code |
-| M3 | `project-sync.ts` thin wrappers used inconsistently | Refactoring scope beyond migration |
-
----
-
-## Files Modified by Migration
-
-### Phase 1 (EmailQueue)
-1. `packages/workers/src/durable-objects/EmailQueue.ts`
-2. `packages/workers/src/routes/email.ts`
-3. `packages/workers/src/routes/billing/handlers/dunning.ts`
-4. `packages/workers/src/routes/orgs/invitations.ts`
-5. `packages/workers/src/routes/orgs/members.ts`
-6. `packages/workers/src/routes/members.ts`
-7. `packages/workers/src/durable-objects/__tests__/EmailQueue.test.js`
-8. `packages/workers/src/routes/__tests__/email.test.js`
-9. `packages/workers/src/routes/__tests__/project-invitations.test.js`
-
-### Phase 2 (UserSession)
-10. `packages/workers/src/durable-objects/UserSession.ts`
-11. `packages/workers/src/lib/notify.ts`
-12. `packages/workers/src/commands/lib/notifications.ts`
-13. `packages/workers/src/routes/invitations.ts`
-14. `packages/workers/src/durable-objects/__tests__/UserSession.test.js`
-
-### Phase 3 (ProjectDoc)
-15. `packages/workers/src/durable-objects/ProjectDoc.ts`
-16. `packages/workers/src/lib/project-sync.ts`
-17. `packages/workers/src/lib/project-doc-id.ts`
-18. `packages/workers/src/commands/lib/doSync.ts`
-19. `packages/workers/src/routes/users.ts`
-20. `packages/workers/src/routes/avatars.ts`
-21. `packages/workers/src/routes/orgs/dev-routes.ts`
-22. `packages/workers/src/durable-objects/__tests__/ProjectDoc.ws-auth.test.js`
-23. `packages/workers/src/__tests__/helpers.ts`
diff --git a/packages/docs/audits/prod-audit-2026-01-19-full.md b/packages/docs/audits/prod-audit-2026-01-19-full.md
index 70732a021..30bc64e01 100644
--- a/packages/docs/audits/prod-audit-2026-01-19-full.md
+++ b/packages/docs/audits/prod-audit-2026-01-19-full.md
@@ -89,11 +89,12 @@ packages/
### Persistence Layer
-| Store | Type | Purpose |
-| --------------- | ---------------- | ---------------------------------------------------------- |
-| D1 (SQLite) | Primary database | Users, sessions, orgs, projects, subscriptions |
-| R2 | Object storage | PDF files, avatars |
-| Durable Objects | Stateful workers | ProjectDoc (Y.js), UserSession (notifications), EmailQueue |
+| Store | Type | Purpose |
+| ---------------- | ---------------- | ---------------------------------------------- |
+| D1 (SQLite) | Primary database | Users, sessions, orgs, projects, subscriptions |
+| R2 | Object storage | PDF files, avatars |
+| Durable Objects | Stateful workers | ProjectDoc (Y.js), UserSession (notifications) |
+| Cloudflare Queue | Email delivery | Async email processing with retries and DLQ |
### External Services
diff --git a/packages/landing/package.json b/packages/landing/package.json
index b12e7f6f2..38af4c187 100644
--- a/packages/landing/package.json
+++ b/packages/landing/package.json
@@ -17,8 +17,8 @@
"@corates/shared": "workspace:*",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.15.4",
- "@solidjs/start": "^1.3.0",
- "countup.js": "^2.9.0",
+ "@solidjs/start": "^1.3.2",
+ "countup.js": "^2.10.0",
"solid-icons": "^1.2.0",
"solid-js": "^1.9.11",
"vinxi": "^0.5.11"
diff --git a/packages/mcp-memory/package.json b/packages/mcp-memory/package.json
index 7c435ea8c..73bca980b 100644
--- a/packages/mcp-memory/package.json
+++ b/packages/mcp-memory/package.json
@@ -19,14 +19,14 @@
"test:watch": "vitest"
},
"dependencies": {
- "@modelcontextprotocol/sdk": "^1.26.0",
+ "@modelcontextprotocol/sdk": "^1.27.1",
"@xenova/transformers": "^2.17.2",
"better-sqlite3": "^11.10.0",
"zod": "^4.3.6"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.13",
- "@types/node": "^25.3.0",
+ "@types/node": "^25.3.5",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vitest": "^4.0.18"
diff --git a/packages/mcp/package.json b/packages/mcp/package.json
index def40a3bc..23b227863 100644
--- a/packages/mcp/package.json
+++ b/packages/mcp/package.json
@@ -20,11 +20,11 @@
"test:watch": "vitest"
},
"dependencies": {
- "@modelcontextprotocol/sdk": "^1.26.0",
+ "@modelcontextprotocol/sdk": "^1.27.1",
"zod": "^4.3.6"
},
"devDependencies": {
- "@types/node": "^25.3.0",
+ "@types/node": "^25.3.5",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vitest": "^4.0.18"
diff --git a/packages/web/package.json b/packages/web/package.json
index db357945f..c8648cbe2 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -17,46 +17,46 @@
"analyze": "vite build --mode analyze && source-map-explorer dist/assets/index-*.js --no-border-checks"
},
"dependencies": {
- "@ark-ui/solid": "^5.32.0",
+ "@ark-ui/solid": "^5.34.1",
"@corates/shared": "workspace:*",
- "@embedpdf/core": "^2.6.2",
- "@embedpdf/engines": "^2.6.2",
- "@embedpdf/models": "^2.6.2",
- "@embedpdf/pdfium": "^2.6.2",
- "@embedpdf/plugin-annotation": "^2.6.2",
- "@embedpdf/plugin-capture": "^2.6.2",
- "@embedpdf/plugin-commands": "^2.6.2",
- "@embedpdf/plugin-document-manager": "^2.6.2",
- "@embedpdf/plugin-export": "^2.6.2",
- "@embedpdf/plugin-fullscreen": "^2.6.2",
- "@embedpdf/plugin-history": "^2.6.2",
- "@embedpdf/plugin-i18n": "^2.6.2",
- "@embedpdf/plugin-interaction-manager": "^2.6.2",
- "@embedpdf/plugin-pan": "^2.6.2",
- "@embedpdf/plugin-print": "^2.6.2",
- "@embedpdf/plugin-redaction": "^2.6.2",
- "@embedpdf/plugin-render": "^2.6.2",
- "@embedpdf/plugin-rotate": "^2.6.2",
- "@embedpdf/plugin-scroll": "^2.6.2",
- "@embedpdf/plugin-search": "^2.6.2",
- "@embedpdf/plugin-selection": "^2.6.2",
- "@embedpdf/plugin-spread": "^2.6.2",
- "@embedpdf/plugin-thumbnail": "^2.6.2",
- "@embedpdf/plugin-tiling": "^2.6.2",
- "@embedpdf/plugin-ui": "^2.6.2",
- "@embedpdf/plugin-view-manager": "^2.6.2",
- "@embedpdf/plugin-viewport": "^2.6.2",
- "@embedpdf/plugin-zoom": "^2.6.2",
- "@sentry/solid": "^10.39.0",
+ "@embedpdf/core": "^2.8.0",
+ "@embedpdf/engines": "^2.8.0",
+ "@embedpdf/models": "^2.8.0",
+ "@embedpdf/pdfium": "^2.8.0",
+ "@embedpdf/plugin-annotation": "^2.8.0",
+ "@embedpdf/plugin-capture": "^2.8.0",
+ "@embedpdf/plugin-commands": "^2.8.0",
+ "@embedpdf/plugin-document-manager": "^2.8.0",
+ "@embedpdf/plugin-export": "^2.8.0",
+ "@embedpdf/plugin-fullscreen": "^2.8.0",
+ "@embedpdf/plugin-history": "^2.8.0",
+ "@embedpdf/plugin-i18n": "^2.8.0",
+ "@embedpdf/plugin-interaction-manager": "^2.8.0",
+ "@embedpdf/plugin-pan": "^2.8.0",
+ "@embedpdf/plugin-print": "^2.8.0",
+ "@embedpdf/plugin-redaction": "^2.8.0",
+ "@embedpdf/plugin-render": "^2.8.0",
+ "@embedpdf/plugin-rotate": "^2.8.0",
+ "@embedpdf/plugin-scroll": "^2.8.0",
+ "@embedpdf/plugin-search": "^2.8.0",
+ "@embedpdf/plugin-selection": "^2.8.0",
+ "@embedpdf/plugin-spread": "^2.8.0",
+ "@embedpdf/plugin-thumbnail": "^2.8.0",
+ "@embedpdf/plugin-tiling": "^2.8.0",
+ "@embedpdf/plugin-ui": "^2.8.0",
+ "@embedpdf/plugin-view-manager": "^2.8.0",
+ "@embedpdf/plugin-viewport": "^2.8.0",
+ "@embedpdf/plugin-zoom": "^2.8.0",
+ "@sentry/solid": "^10.42.0",
"@solid-primitives/scheduled": "^1.5.3",
"@solidjs/router": "^0.15.4",
"@tanstack/solid-query": "^5.90.23",
"@tanstack/solid-table": "^8.21.3",
- "better-auth": "^1.4.19",
+ "better-auth": "^1.5.4",
"chart.js": "^4.5.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "countup.js": "^2.9.0",
+ "countup.js": "^2.10.0",
"d3": "^7.9.0",
"dexie": "^4.3.0",
"preact": "^10.28.4",
@@ -78,8 +78,8 @@
"fake-indexeddb": "^6.2.5",
"jsdom": "^27.4.0",
"prettier": "^3.8.1",
- "puppeteer": "^24.37.5",
- "rollup-plugin-visualizer": "^6.0.5",
+ "puppeteer": "^24.38.0",
+ "rollup-plugin-visualizer": "^6.0.11",
"source-map-explorer": "^2.5.3",
"tailwindcss": "^4.2.1",
"terser": "^5.46.0",
diff --git a/packages/web/src/components/project/overview-tab/OverviewTab.jsx b/packages/web/src/components/project/overview-tab/OverviewTab.jsx
index 3006fd0bb..bae11d3a1 100644
--- a/packages/web/src/components/project/overview-tab/OverviewTab.jsx
+++ b/packages/web/src/components/project/overview-tab/OverviewTab.jsx
@@ -76,8 +76,7 @@ export default function OverviewTab() {
const currentUserId = () => user()?.id;
// Count non-owner org members (matches backend checkCollaboratorQuota)
- const nonOwnerOrgMemberCount = () =>
- orgMembers().filter(m => m.role !== 'owner').length;
+ const nonOwnerOrgMemberCount = () => orgMembers().filter(m => m.role !== 'owner').length;
// Check if can add more collaborators (quota check)
const collaboratorQuotaInfo = createMemo(() => {
@@ -301,15 +300,17 @@ export default function OverviewTab() {
when={canAddMember()}
fallback={
- (
-
-
- Invite
-
- )} />
+ (
+
+
+ Invite
+
+ )}
+ />
Collaborator limit reached. Upgrade your plan to add more team members.
diff --git a/packages/web/src/components/project/reconcile-tab/rob2-reconcile/pages/PreliminaryPage.jsx b/packages/web/src/components/project/reconcile-tab/rob2-reconcile/pages/PreliminaryPage.jsx
index f2d7fd108..909dc8200 100644
--- a/packages/web/src/components/project/reconcile-tab/rob2-reconcile/pages/PreliminaryPage.jsx
+++ b/packages/web/src/components/project/reconcile-tab/rob2-reconcile/pages/PreliminaryPage.jsx
@@ -241,15 +241,24 @@ export default function PreliminaryPage(props) {
const isTextField = () => PRELIMINARY_TEXT_FIELDS.includes(props.fieldKey);
- // Sync Y.Text changes back to finalAnswers so hasNavItemAnswer detects the field as answered
+ // Sync Y.Text changes back to finalAnswers so hasNavItemAnswer detects the field as answered.
+ // Uses a re-entrancy guard to prevent a cycle: observe -> onFinalChange ->
+ // updateChecklistAnswer -> setYTextField modifies same Y.Text -> observe fires again.
+ let isSyncingText = false;
createEffect(() => {
if (!isTextField() || !props.getRob2Text) return;
const yText = props.getRob2Text('preliminary', props.fieldKey);
if (!yText) return;
const observer = () => {
- const text = yText.toString();
- props.onFinalChange?.(text);
+ if (isSyncingText) return;
+ isSyncingText = true;
+ try {
+ const text = yText.toString();
+ props.onFinalChange?.(text);
+ } finally {
+ isSyncingText = false;
+ }
};
yText.observe(observer);
@@ -302,7 +311,11 @@ export default function PreliminaryPage(props) {
switch (type) {
case 'select':
return (
-
+
);
case 'aim':
return ;
diff --git a/packages/web/src/primitives/useProject/connection.js b/packages/web/src/primitives/useProject/connection.js
index 5ef6efb0b..db29328a9 100644
--- a/packages/web/src/primitives/useProject/connection.js
+++ b/packages/web/src/primitives/useProject/connection.js
@@ -83,6 +83,28 @@ export function createConnectionManager(projectId, ydoc, options) {
// WebsocketProvider handles reconnection automatically with exponential backoff
});
+ // Wrap the awareness message handler with error protection.
+ // Awareness data is ephemeral (cursor positions, presence) so a dropped
+ // update is invisible to users and corrected by the next update.
+ const AWARENESS_MSG_TYPE = 1;
+ const originalAwarenessHandler = provider.messageHandlers[AWARENESS_MSG_TYPE];
+ if (originalAwarenessHandler) {
+ provider.messageHandlers = [...provider.messageHandlers];
+ provider.messageHandlers[AWARENESS_MSG_TYPE] = (
+ encoder,
+ decoder,
+ prov,
+ emitSynced,
+ msgType,
+ ) => {
+ try {
+ return originalAwarenessHandler(encoder, decoder, prov, emitSynced, msgType);
+ } catch (err) {
+ console.warn('Awareness update skipped:', err.message);
+ }
+ };
+ }
+
provider.on('status', ({ status }) => {
projectStore.setConnectionState(projectId, {
connected: status === 'connected',
diff --git a/packages/web/src/primitives/useProject/index.js b/packages/web/src/primitives/useProject/index.js
index 7652cdd70..bf0f63b42 100644
--- a/packages/web/src/primitives/useProject/index.js
+++ b/packages/web/src/primitives/useProject/index.js
@@ -237,10 +237,15 @@ export function useProject(projectId) {
isOutcomeInUse: connectionEntry.outcomeOps.isOutcomeInUse,
});
- // Listen for Y.Doc changes BEFORE setting up providers
- // This ensures we catch all updates including initial sync
+ // Listen for Y.Doc changes to sync to the store.
+ // Suppressed during Dexie state load to prevent the sync handler from
+ // firing while the Y.Doc's internal struct store is being populated,
+ // which can cause corruption and GC errors.
+ let isLoadingPersistedState = false;
ydoc.on('update', () => {
- connectionEntry.syncManager?.syncFromYDoc();
+ if (!isLoadingPersistedState) {
+ connectionEntry.syncManager?.syncFromYDoc();
+ }
});
// Set up Dexie persistence for offline support using y-dexie
@@ -258,9 +263,18 @@ export function useProject(projectId) {
connectionEntry.dexieProvider = DexieYProvider.load(project.ydoc);
connectionEntry.dexieProvider.whenLoaded.then(() => {
- // Apply persisted state from Dexie Y.Doc to our Y.Doc
- const persistedState = Y.encodeStateAsUpdate(project.ydoc);
- Y.applyUpdate(ydoc, persistedState);
+ // Suppress the sync handler while applying persisted state to avoid
+ // racing with the Dexie persistence handler below
+ isLoadingPersistedState = true;
+ try {
+ const persistedState = Y.encodeStateAsUpdate(project.ydoc);
+ Y.applyUpdate(ydoc, persistedState);
+ } catch (err) {
+ console.error('Corrupted persisted state, clearing local data:', err);
+ deleteProjectData(projectId).catch(() => {});
+ } finally {
+ isLoadingPersistedState = false;
+ }
// Subscribe to our ydoc updates to persist them to Dexie
const updateHandler = (update, origin) => {
diff --git a/packages/workers/package.json b/packages/workers/package.json
index d69215af8..8fb3019f0 100644
--- a/packages/workers/package.json
+++ b/packages/workers/package.json
@@ -30,17 +30,17 @@
"localflare": "localflare"
},
"dependencies": {
- "@better-auth/stripe": "^1.4.19",
- "@cloudflare/workers-types": "^4.20260302.0",
+ "@better-auth/stripe": "^1.5.4",
+ "@cloudflare/workers-types": "^4.20260307.1",
"@corates/shared": "workspace:*",
"@hono/zod-openapi": "^1.2.2",
- "@sentry/cloudflare": "^10.39.0",
- "better-auth": "^1.4.19",
+ "@sentry/cloudflare": "^10.42.0",
+ "better-auth": "^1.5.4",
"drizzle-orm": "^0.45.1",
- "hono": "^4.12.2",
+ "hono": "^4.12.5",
"lib0": "^0.2.117",
"postmark": "^4.0.7",
- "stripe": "^20.3.1",
+ "stripe": "^20.4.1",
"y-protocols": "^1.0.7",
"yjs": "^13.6.29",
"zod": "^4.3.6"
@@ -53,6 +53,6 @@
"localflare": "^0.3.1",
"typescript": "^5.9.3",
"vitest": "3.2.0",
- "wrangler": "^4.67.1"
+ "wrangler": "^4.71.0"
}
}
diff --git a/packages/workers/scripts/setup-stripe-test.mjs b/packages/workers/scripts/setup-stripe-test.mjs
index 0b6f35394..93b6d7ae7 100644
--- a/packages/workers/scripts/setup-stripe-test.mjs
+++ b/packages/workers/scripts/setup-stripe-test.mjs
@@ -438,7 +438,8 @@ async function main() {
console.log('⚠️ DRY RUN MODE: Using placeholder key for preview');
}
- const stripe = stripeKey ? new Stripe(stripeKey, { apiVersion: '2025-12-15.clover' }) : null;
+ // Keep in sync with STRIPE_API_VERSION in src/lib/stripe.ts
+ const stripe = stripeKey ? new Stripe(stripeKey, { apiVersion: '2026-02-25.clover' }) : null;
console.log('🚀 Setting up Stripe test products and prices...\n');
diff --git a/packages/workers/src/__tests__/health.test.js b/packages/workers/src/__tests__/health.test.js
index 68abcf0dc..4d3834d3b 100644
--- a/packages/workers/src/__tests__/health.test.js
+++ b/packages/workers/src/__tests__/health.test.js
@@ -77,7 +77,6 @@ describe('Health Check Endpoints', () => {
expect(body.services.durableObjects.bindings).toBeDefined();
expect(body.services.durableObjects.bindings.USER_SESSION).toBe(true);
expect(body.services.durableObjects.bindings.PROJECT_DOC).toBe(true);
- expect(body.services.durableObjects.bindings.EMAIL_QUEUE).toBe(true);
});
it('GET /health returns degraded status when database fails', async () => {
diff --git a/packages/workers/src/__tests__/helpers.ts b/packages/workers/src/__tests__/helpers.ts
index f4d0b8a5e..0963ac058 100644
--- a/packages/workers/src/__tests__/helpers.ts
+++ b/packages/workers/src/__tests__/helpers.ts
@@ -365,8 +365,6 @@ export function createTestEnv(overrides: Record = {}): Record ({ toString: () => `do-${name}` }),
get: (_id: unknown) => ({
fetch: async () => new Response(JSON.stringify({ ok: true }), { status: 200 }),
- queueEmail: async () => {},
- getDeadLetterQueue: async () => [],
notify: async () => {},
syncProject: async () => {},
syncMember: async () => {},
@@ -383,12 +381,17 @@ export function createTestEnv(overrides: Record = {}): Record {},
+ sendBatch: async () => {},
+ };
+
return {
DB: env.DB,
PDF_BUCKET: mockR2,
PROJECT_DOC: mockDO,
USER_SESSION: mockDO,
- EMAIL_QUEUE: mockDO,
+ EMAIL_QUEUE: mockQueue,
RATE_LIMIT_KV: {
get: async () => null,
put: async () => {},
diff --git a/packages/workers/src/auth/config.ts b/packages/workers/src/auth/config.ts
index 90a8fa7f8..d73ca2720 100644
--- a/packages/workers/src/auth/config.ts
+++ b/packages/workers/src/auth/config.ts
@@ -5,13 +5,22 @@ import { genericOAuth, magicLink, twoFactor, admin, organization } from 'better-
import { oAuthRelay } from './oauth-relay';
import { stripe } from '@better-auth/stripe';
import Stripe from 'stripe';
+import { STRIPE_API_VERSION } from '@/lib/stripe.js';
import { drizzle } from 'drizzle-orm/d1';
import { eq, and } from 'drizzle-orm';
import * as schema from '../db/schema';
-import { createEmailService } from './email';
import { getAllowedOrigins } from '../config/origins';
import { isAdminUser } from './admin';
-import { MAGIC_LINK_EXPIRY_MINUTES } from './emailTemplates';
+import {
+ MAGIC_LINK_EXPIRY_MINUTES,
+ getVerificationEmailHtml,
+ getVerificationEmailText,
+ getPasswordResetEmailHtml,
+ getPasswordResetEmailText,
+ getMagicLinkEmailHtml,
+ getMagicLinkEmailText,
+} from './emailTemplates';
+import { queueEmail } from '../lib/email-queue';
import { notifyOrgMembers, EventTypes } from '../lib/notify';
import { copyAvatarToR2, isExternalAvatarUrl, isInternalAvatarUrl } from '../lib/avatar-copy';
import { createDomainError, SYSTEM_ERRORS } from '@corates/shared';
@@ -72,9 +81,6 @@ export function createAuth(env: Env, ctx?: ExecutionContext) {
// Initialize Drizzle with D1
const db = drizzle(env.DB, { schema });
- // Create email service
- const emailService = createEmailService(env);
-
// Build social providers config if credentials are present
const socialProviders: Record = {};
@@ -168,18 +174,11 @@ export function createAuth(env: Env, ctx?: ExecutionContext) {
plugins.push(
magicLink({
sendMagicLink: async ({ email, url }: { email: string; url: string }) => {
- console.log('[Auth] Queuing magic link email to:', email, 'URL:', url);
- if (ctx && ctx.waitUntil) {
- ctx.waitUntil(
- (async () => {
- try {
- await emailService.sendMagicLink(email, url);
- } catch (err) {
- console.error('[Auth:waitUntil] Magic link email error:', err);
- }
- })(),
- );
- }
+ const subject = 'Sign in to CoRATES';
+ const html = getMagicLinkEmailHtml({ subject, magicLinkUrl: url });
+ const text = getMagicLinkEmailText({ magicLinkUrl: url });
+
+ await queueEmail(env, { to: email, subject, html, text });
},
expiresIn: 60 * MAGIC_LINK_EXPIRY_MINUTES,
}),
@@ -224,7 +223,7 @@ export function createAuth(env: Env, ctx?: ExecutionContext) {
// - unlimited_team: $59/month, $590/year
if (env.STRIPE_SECRET_KEY && env.STRIPE_WEBHOOK_SECRET_AUTH) {
const stripeClient = new Stripe(env.STRIPE_SECRET_KEY, {
- apiVersion: '2025-12-15.clover',
+ apiVersion: STRIPE_API_VERSION,
});
plugins.push(
@@ -441,22 +440,12 @@ export function createAuth(env: Env, ctx?: ExecutionContext) {
minPasswordLength: 8,
// Password reset - sendResetPassword is required for requestPasswordReset to work
sendResetPassword: async ({ user, url }: { user: BetterAuthUser; url: string }) => {
- console.log('[Auth] Queuing reset email to:', user.email, 'URL:', url);
- if (ctx && ctx.waitUntil) {
- ctx.waitUntil(
- (async () => {
- try {
- await emailService.sendPasswordReset(
- user.email,
- url,
- user.givenName || user.name || user.username,
- );
- } catch (err) {
- console.error('Background email error:', err);
- }
- })(),
- );
- }
+ const name = user.givenName || user.name || user.username || 'there';
+ const subject = 'Reset Your Password - CoRATES';
+ const html = getPasswordResetEmailHtml({ name, subject, resetUrl: url });
+ const text = getPasswordResetEmailText({ name, resetUrl: url });
+
+ await queueEmail(env, { to: user.email, subject, html, text });
},
},
@@ -471,27 +460,13 @@ export function createAuth(env: Env, ctx?: ExecutionContext) {
sendOnSignUp: true,
sendOnSignIn: true,
autoSignInAfterVerification: true,
- // CRITICAL: Wrap the email sending in a function passed to waitUntil
- // This ensures NO email work happens during the request - it all runs after response
sendVerificationEmail: async ({ user, url }: { user: BetterAuthUser; url: string }) => {
- console.log('[Auth] Queuing verification email to:', user.email, 'URL:', url);
- if (ctx && ctx.waitUntil) {
- ctx.waitUntil(
- (async () => {
- try {
- await emailService.sendEmailVerification(
- user.email,
- url,
- user.givenName || user.name || user.username,
- );
- } catch (err) {
- console.error('[Auth:waitUntil] Background email error:', err);
- }
- })(),
- );
- } else {
- console.log('[Auth] No ctx.waitUntil available, email will not be sent');
- }
+ const name = user.givenName || user.name || user.username || 'there';
+ const subject = 'Verify Your Email Address - CoRATES';
+ const html = getVerificationEmailHtml({ name, subject, verificationUrl: url });
+ const text = getVerificationEmailText({ name, verificationUrl: url });
+
+ await queueEmail(env, { to: user.email, subject, html, text });
},
},
diff --git a/packages/workers/src/auth/email.ts b/packages/workers/src/auth/email.ts
index 825b7283a..0f268e291 100644
--- a/packages/workers/src/auth/email.ts
+++ b/packages/workers/src/auth/email.ts
@@ -11,8 +11,6 @@ import {
getPasswordResetEmailText,
getMagicLinkEmailHtml,
getMagicLinkEmailText,
- getProjectInvitationEmailHtml,
- getProjectInvitationEmailText,
} from './emailTemplates';
import type { Env } from '../types';
@@ -21,6 +19,7 @@ interface SendEmailParams {
subject: string;
html: string;
text: string;
+ replyTo?: string;
}
interface EmailResult {
@@ -42,13 +41,6 @@ export interface EmailService {
_userDisplayName?: string,
) => Promise;
sendMagicLink: (_to: string, _magicLinkUrl: string) => Promise;
- sendProjectInvitation: (
- _to: string,
- _projectName: string,
- _inviterName: string,
- _invitationUrl: string,
- _role: string,
- ) => Promise;
isProduction: boolean;
}
@@ -64,7 +56,13 @@ export function createEmailService(env: Env): EmailService {
/**
* Send email using Postmark
*/
- async function sendEmail({ to, subject, html, text }: SendEmailParams): Promise {
+ async function sendEmail({
+ to,
+ subject,
+ html,
+ text,
+ replyTo,
+ }: SendEmailParams): Promise {
if (env.SEND_EMAILS_IN_DEV !== 'true' && !isProduction) {
console.log('[Email] Development environment - email sending is DISABLED');
return { success: true, id: 'dev-id' };
@@ -82,6 +80,7 @@ export function createEmailService(env: Env): EmailService {
Subject: subject,
HtmlBody: html,
TextBody: text,
+ ...(replyTo ? { ReplyTo: replyTo } : {}),
MessageStream: 'outbound',
});
@@ -147,36 +146,11 @@ export function createEmailService(env: Env): EmailService {
return sendEmail({ to, subject, html, text });
}
- /**
- * Send project invitation email
- */
- async function sendProjectInvitation(
- to: string,
- projectName: string,
- inviterName: string,
- invitationUrl: string,
- role: string,
- ): Promise {
- if (env.SEND_EMAILS_IN_DEV !== 'true' && !isProduction) {
- console.log('[Email] Development environment - email sending is DISABLED');
- console.log('[Email] Project invitation URL:', invitationUrl);
- return { success: true, id: 'dev-id' };
- }
- // Sanitize project name for email subject (strip control chars, collapse whitespace, truncate)
- const { sanitizeEmailSubject } = await import('../lib/escapeHtml');
- const safeProjectName = sanitizeEmailSubject(projectName, 50);
- const subject = `You're Invited to "${safeProjectName}" - CoRATES`;
- const html = getProjectInvitationEmailHtml({ projectName, inviterName, invitationUrl, role });
- const text = getProjectInvitationEmailText({ projectName, inviterName, invitationUrl, role });
- return sendEmail({ to, subject, html, text });
- }
-
return {
sendEmail,
sendEmailVerification,
sendPasswordReset,
sendMagicLink,
- sendProjectInvitation,
isProduction,
};
}
diff --git a/packages/workers/src/config/constants.ts b/packages/workers/src/config/constants.ts
index b119d0d12..c45b07a91 100644
--- a/packages/workers/src/config/constants.ts
+++ b/packages/workers/src/config/constants.ts
@@ -59,13 +59,6 @@ export const SESSION_CONFIG = {
ALARM_INTERVAL_MS: 60 * 60 * 1000,
} as const;
-export const EMAIL_RETRY_CONFIG = {
- MAX_RETRIES: 3,
- BASE_DELAY_MS: 1000,
- MAX_DELAY_MS: 30000,
- BACKOFF_MULTIPLIER: 2,
-} as const;
-
export const TIME_DURATIONS = {
INVITATION_EXPIRY_MS: 7 * 24 * 60 * 60 * 1000,
INVITATION_EXPIRY_SEC: 7 * 24 * 60 * 60,
diff --git a/packages/workers/src/durable-objects/EmailQueue.ts b/packages/workers/src/durable-objects/EmailQueue.ts
deleted file mode 100644
index 077ca5fcb..000000000
--- a/packages/workers/src/durable-objects/EmailQueue.ts
+++ /dev/null
@@ -1,159 +0,0 @@
-import { DurableObject } from 'cloudflare:workers';
-import { EMAIL_RETRY_CONFIG } from '../config/constants';
-import { createDomainError, SYSTEM_ERRORS } from '@corates/shared';
-import type { Env } from '../types';
-
-export interface EmailPayload {
- to: string;
- subject: string;
- html?: string;
- text?: string;
-}
-
-interface EmailRecord {
- id: string;
- payload: EmailPayload;
- attempts: number;
- nextRetryAt: number;
- createdAt: number;
- status: 'pending' | 'sent' | 'retry-pending' | 'failed';
- lastAttemptAt?: number;
- sentAt?: number;
- error?: string;
-}
-
-export class EmailQueue extends DurableObject {
- /**
- * Queue an email for sending with retry support (RPC method)
- */
- async queueEmail(payload: EmailPayload): Promise {
- if (!payload?.to || !payload?.subject || (!payload?.html && !payload?.text)) {
- throw new Error('Invalid email payload: to, subject, and html or text are required');
- }
-
- const emailId = crypto.randomUUID();
- const emailRecord: EmailRecord = {
- id: emailId,
- payload,
- attempts: 0,
- nextRetryAt: Date.now(),
- createdAt: Date.now(),
- status: 'pending',
- };
-
- await this.ctx.storage.put(`email:${emailId}`, emailRecord);
- await this.attemptSend(emailRecord);
- }
-
- /**
- * Attempt to send an email with exponential backoff
- */
- async attemptSend(emailRecord: EmailRecord): Promise {
- const { createEmailService } = await import('../auth/email');
- const emailService = createEmailService(this.env);
-
- emailRecord.attempts++;
- emailRecord.lastAttemptAt = Date.now();
-
- try {
- const result = await emailService.sendEmail(
- emailRecord.payload as Parameters[0],
- );
-
- if (result.success) {
- console.log(
- `EmailQueue: email sent to ${emailRecord.payload.to} (attempt ${emailRecord.attempts})`,
- );
- // Delete immediately after successful send instead of using setTimeout
- await this.ctx.storage.delete(`email:${emailRecord.id}`);
- return true;
- } else {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { service: 'email' },
- result.error || 'Unknown email error',
- );
- }
- } catch (err) {
- const error = err as Error;
- console.error(
- `EmailQueue: send failed for ${emailRecord.payload.to} (attempt ${emailRecord.attempts}):`,
- error.message,
- );
-
- if (emailRecord.attempts >= EMAIL_RETRY_CONFIG.MAX_RETRIES) {
- emailRecord.status = 'failed';
- emailRecord.error = error.message;
- await this.ctx.storage.put(`dead-letter:${emailRecord.id}`, emailRecord);
- await this.ctx.storage.delete(`email:${emailRecord.id}`);
- console.error(`EmailQueue: moved to dead letter queue: ${emailRecord.payload.to}`);
- return false;
- }
-
- // Calculate next retry time with exponential backoff
- const delay = Math.min(
- EMAIL_RETRY_CONFIG.BASE_DELAY_MS *
- Math.pow(EMAIL_RETRY_CONFIG.BACKOFF_MULTIPLIER, emailRecord.attempts - 1),
- EMAIL_RETRY_CONFIG.MAX_DELAY_MS,
- );
- emailRecord.nextRetryAt = Date.now() + delay;
- emailRecord.status = 'retry-pending';
-
- await this.ctx.storage.put(`email:${emailRecord.id}`, emailRecord);
-
- await this.scheduleRetryAlarm();
-
- console.log(`EmailQueue: scheduled retry for ${emailRecord.payload.to} in ${delay}ms`);
- return false;
- }
- }
-
- /**
- * Schedule an alarm to process retry queue
- */
- async scheduleRetryAlarm(): Promise {
- const currentAlarm = await this.ctx.storage.getAlarm();
- if (!currentAlarm) {
- await this.ctx.storage.setAlarm(Date.now() + 1000);
- }
- }
-
- /**
- * Process retry queue (called by alarm)
- */
- async processRetryQueue(): Promise {
- const now = Date.now();
- const emails = await this.ctx.storage.list({ prefix: 'email:' });
-
- let nextRetryTime: number | null = null;
-
- for (const [_key, emailRecord] of emails) {
- if (emailRecord.status === 'retry-pending' && emailRecord.nextRetryAt <= now) {
- await this.attemptSend(emailRecord);
- } else if (emailRecord.status === 'retry-pending' && emailRecord.nextRetryAt > now) {
- if (!nextRetryTime || emailRecord.nextRetryAt < nextRetryTime) {
- nextRetryTime = emailRecord.nextRetryAt;
- }
- }
- }
-
- if (nextRetryTime) {
- await this.ctx.storage.setAlarm(nextRetryTime);
- }
- }
-
- /**
- * Alarm handler for processing retries
- */
- async alarm(): Promise {
- await this.processRetryQueue();
- }
-
- /**
- * Get dead letter queue for debugging/monitoring (RPC method)
- */
- async getDeadLetterQueue(): Promise {
- const deadLetters = await this.ctx.storage.list({ prefix: 'dead-letter:' });
- return Array.from(deadLetters.values());
- }
-}
diff --git a/packages/workers/src/durable-objects/ProjectDoc.ts b/packages/workers/src/durable-objects/ProjectDoc.ts
index c16abe289..941f4e441 100644
--- a/packages/workers/src/durable-objects/ProjectDoc.ts
+++ b/packages/workers/src/durable-objects/ProjectDoc.ts
@@ -694,18 +694,28 @@ export class ProjectDoc extends DurableObject {
}
case messageAwareness: {
const awarenessUpdate = decoding.readVarUint8Array(decoder);
+
+ // Capture clientId from the awareness update event instead of
+ // manually re-decoding the binary message format
+ const attachment = ws.deserializeAttachment() as WebSocketAttachment;
+ const needsClientId = attachment && attachment.awarenessClientId === null;
+
+ let capturedClientId: number | null = null;
+ const onUpdate =
+ needsClientId ?
+ ({ added, updated }: { added: number[]; updated: number[]; removed: number[] }) => {
+ const ids = [...added, ...updated];
+ if (ids.length > 0) capturedClientId = ids[0];
+ }
+ : null;
+
+ if (onUpdate) this.awareness!.on('update', onUpdate);
awarenessProtocol.applyAwarenessUpdate(this.awareness!, awarenessUpdate, ws);
+ if (onUpdate) this.awareness!.off('update', onUpdate);
- // Store the client's awareness ID in the attachment
- const awarenessDecoder = decoding.createDecoder(awarenessUpdate);
- const len = decoding.readVarUint(awarenessDecoder);
- if (len > 0) {
- const clientId = decoding.readVarUint(awarenessDecoder);
- const attachment = ws.deserializeAttachment() as WebSocketAttachment;
- if (attachment && attachment.awarenessClientId === null) {
- attachment.awarenessClientId = clientId;
- ws.serializeAttachment(attachment);
- }
+ if (capturedClientId !== null && needsClientId) {
+ attachment.awarenessClientId = capturedClientId;
+ ws.serializeAttachment(attachment);
}
break;
}
@@ -730,11 +740,7 @@ export class ProjectDoc extends DurableObject {
await this.initializeDoc();
const attachment = ws.deserializeAttachment() as WebSocketAttachment | null;
if (attachment && attachment.awarenessClientId != null && this.awareness) {
- awarenessProtocol.removeAwarenessStates(
- this.awareness,
- [attachment.awarenessClientId],
- ws,
- );
+ awarenessProtocol.removeAwarenessStates(this.awareness, [attachment.awarenessClientId], ws);
}
// Flush persistence if this was the last connection
@@ -751,11 +757,7 @@ export class ProjectDoc extends DurableObject {
await this.initializeDoc();
const attachment = ws.deserializeAttachment() as WebSocketAttachment | null;
if (attachment && attachment.awarenessClientId != null && this.awareness) {
- awarenessProtocol.removeAwarenessStates(
- this.awareness,
- [attachment.awarenessClientId],
- ws,
- );
+ awarenessProtocol.removeAwarenessStates(this.awareness, [attachment.awarenessClientId], ws);
}
try {
ws.close(1011, 'Internal error');
@@ -793,11 +795,7 @@ export class ProjectDoc extends DurableObject {
for (const ws of userSockets) {
const attachment = ws.deserializeAttachment() as WebSocketAttachment | null;
if (attachment && attachment.awarenessClientId != null && this.awareness) {
- awarenessProtocol.removeAwarenessStates(
- this.awareness,
- [attachment.awarenessClientId],
- ws,
- );
+ awarenessProtocol.removeAwarenessStates(this.awareness, [attachment.awarenessClientId], ws);
}
if (ws.readyState === WebSocket.OPEN) {
ws.close(closeCode, reason);
diff --git a/packages/workers/src/durable-objects/UserSession.ts b/packages/workers/src/durable-objects/UserSession.ts
index 946d767cd..d3f65a6c6 100644
--- a/packages/workers/src/durable-objects/UserSession.ts
+++ b/packages/workers/src/durable-objects/UserSession.ts
@@ -100,8 +100,7 @@ export class UserSession extends DurableObject {
}
if (!delivered) {
- const pending =
- (await this.ctx.storage.get('pendingNotifications')) || [];
+ const pending = (await this.ctx.storage.get('pendingNotifications')) || [];
pending.push(notification);
if (pending.length > 50) {
pending.shift();
diff --git a/packages/workers/src/durable-objects/__tests__/EmailQueue.test.js b/packages/workers/src/durable-objects/__tests__/EmailQueue.test.js
deleted file mode 100644
index 30d52d26f..000000000
--- a/packages/workers/src/durable-objects/__tests__/EmailQueue.test.js
+++ /dev/null
@@ -1,421 +0,0 @@
-/**
- * Tests for EmailQueue Durable Object
- * Tests email queueing, retry logic, batching, and Postmark integration
- */
-
-import { describe, it, expect, beforeEach, vi } from 'vitest';
-import { env, runInDurableObject, runDurableObjectAlarm } from 'cloudflare:test';
-
-// Mock Postmark
-vi.mock('postmark', () => {
- return {
- Client: class {
- constructor() {}
- sendEmail() {
- return Promise.resolve({ ErrorCode: 0, MessageID: 'test-message-id' });
- }
- },
- };
-});
-
-// Mock email service
-const mockSendEmail = vi.fn(async () => ({
- success: true,
- id: 'test-message-id',
-}));
-
-vi.mock('@/auth/email.js', () => {
- return {
- createEmailService: _env => ({
- sendEmail: mockSendEmail,
- }),
- };
-});
-
-describe('EmailQueue Durable Object', () => {
- // Helper to retry DO operations on invalidation errors
- async function runInDurableObjectWithRetry(stub, fn, maxRetries = 5) {
- for (let attempt = 0; attempt < maxRetries; attempt++) {
- try {
- return await runInDurableObject(stub, fn);
- } catch (error) {
- const errorMessage = error?.message || String(error) || '';
- const isInvalidationError =
- errorMessage.includes('invalidating this Durable Object') ||
- errorMessage.includes('inputGateBroken') ||
- errorMessage.includes('invalidating') ||
- error?.remote === true ||
- error?.durableObjectReset === true;
- if (isInvalidationError && attempt < maxRetries - 1) {
- // Wait longer before retrying (exponential backoff with longer base delay)
- const delay = 100 * Math.pow(2, attempt);
- await new Promise(resolve => setTimeout(resolve, delay));
- continue;
- }
- throw error;
- }
- }
- }
-
- beforeEach(async () => {
- vi.clearAllMocks();
- // Reset mock implementation (clearAllMocks doesn't clear implementations
- // set by mockRejectedValue, so previous tests' permanent mocks leak through)
- mockSendEmail.mockResolvedValue({ success: true, id: 'test-message-id' });
- // Clear storage between tests
- // Use try-catch to handle DO invalidation gracefully
- try {
- const stub = await getEmailQueueStub();
- await runInDurableObject(stub, async (instance, state) => {
- const emails = await state.storage.list({ prefix: 'email:' });
- for (const [key] of emails) {
- await state.storage.delete(key);
- }
- const deadLetters = await state.storage.list({ prefix: 'dead-letter:' });
- for (const [key] of deadLetters) {
- await state.storage.delete(key);
- }
- await state.storage.deleteAlarm();
- });
- } catch (error) {
- // Ignore DO invalidation errors in cleanup - test will create fresh DO
- const isInvalidationError =
- error?.message?.includes('invalidating this Durable Object') ||
- error?.message?.includes('inputGateBroken') ||
- error?.remote === true ||
- error?.durableObjectReset === true;
- if (!isInvalidationError) {
- throw error;
- }
- }
- });
-
- async function getEmailQueueStub() {
- const id = env.EMAIL_QUEUE.idFromName('default');
- return env.EMAIL_QUEUE.get(id);
- }
-
- async function queueEmail(payload) {
- const stub = await getEmailQueueStub();
- await stub.queueEmail(payload);
- }
-
- describe('Email Queueing', () => {
- it('should queue and send email successfully', async () => {
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- text: 'Test',
- };
-
- await queueEmail(payload);
-
- // Verify email was sent
- expect(mockSendEmail).toHaveBeenCalledTimes(1);
- expect(mockSendEmail).toHaveBeenCalledWith(payload);
- });
-
- it('should reject invalid payload - missing to', async () => {
- const payload = {
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await expect(queueEmail(payload)).rejects.toThrow(/Invalid email payload/);
- expect(mockSendEmail).not.toHaveBeenCalled();
- });
-
- it('should reject invalid payload - missing subject', async () => {
- const payload = {
- to: 'test@example.com',
- html: 'Test
',
- };
-
- await expect(queueEmail(payload)).rejects.toThrow(/Invalid email payload/);
- });
-
- it('should reject invalid payload - missing html and text', async () => {
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- };
-
- await expect(queueEmail(payload)).rejects.toThrow(/Invalid email payload/);
- });
-
- it('should accept email with only html', async () => {
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- expect(mockSendEmail).toHaveBeenCalledTimes(1);
- });
-
- it('should accept email with only text', async () => {
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- text: 'Test',
- };
-
- await queueEmail(payload);
-
- expect(mockSendEmail).toHaveBeenCalledTimes(1);
- });
- });
-
- describe('Retry Logic', () => {
- it('should retry failed emails with exponential backoff', async () => {
- // First attempt fails
- mockSendEmail.mockRejectedValueOnce(new Error('Postmark error'));
-
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- // Verify email was stored for retry
- const stub = await getEmailQueueStub();
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const emails = await state.storage.list({ prefix: 'email:' });
- expect(emails.size).toBeGreaterThan(0);
-
- // Check retry status
- const emailEntries = Array.from(emails.entries());
- const emailRecord = emailEntries[0][1];
- expect(emailRecord.status).toBe('retry-pending');
- expect(emailRecord.attempts).toBeGreaterThanOrEqual(1);
- expect(emailRecord.nextRetryAt).toBeGreaterThan(Date.now());
- });
- });
-
- it('should move to dead letter queue after max retries', async () => {
- // Fail all attempts
- mockSendEmail.mockRejectedValue(new Error('Persistent error'));
-
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- const stub = await getEmailQueueStub();
-
- // Simulate max retries
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const emails = await state.storage.list({ prefix: 'email:' });
- if (emails.size > 0) {
- const emailEntries = Array.from(emails.entries());
- let emailRecord = emailEntries[0][1];
-
- // Manually set attempts to max
- emailRecord.attempts = 3; // MAX_RETRIES
- await state.storage.put(`email:${emailRecord.id}`, emailRecord);
-
- // Attempt send (should fail and move to dead letter)
- await instance.attemptSend(emailRecord);
-
- // Check dead letter queue
- const deadLetters = await state.storage.list({ prefix: 'dead-letter:' });
- expect(deadLetters.size).toBeGreaterThan(0);
-
- const deadLetterEntries = Array.from(deadLetters.entries());
- const deadLetter = deadLetterEntries[0][1];
- expect(deadLetter.status).toBe('failed');
- expect(deadLetter.attempts).toBe(4); // Original + 3 retries
- }
- });
- });
-
- it('should process retry queue when alarm triggers', async () => {
- // Queue an email that will fail
- mockSendEmail.mockRejectedValueOnce(new Error('Temporary error'));
- mockSendEmail.mockResolvedValueOnce({ success: true, id: 'retry-success' });
-
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- const stub = await getEmailQueueStub();
-
- // Set up retry-pending email
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const emails = await state.storage.list({ prefix: 'email:' });
- if (emails.size > 0) {
- const emailEntries = Array.from(emails.entries());
- let emailRecord = emailEntries[0][1];
- emailRecord.status = 'retry-pending';
- emailRecord.nextRetryAt = Date.now() - 1000; // Past due
- await state.storage.put(`email:${emailRecord.id}`, emailRecord);
- }
- });
-
- // Trigger alarm
- await runDurableObjectAlarm(stub);
-
- // Verify retry was processed
- expect(mockSendEmail).toHaveBeenCalledTimes(2); // Initial + retry
- });
- });
-
- describe('Email Storage', () => {
- it('should clean up sent emails immediately', async () => {
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- // After successful send, email record should be deleted immediately
- const stub = await getEmailQueueStub();
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const emails = await state.storage.list({ prefix: 'email:' });
- expect(emails.size).toBe(0);
- });
- });
- });
-
- describe('Dead Letter Queue', () => {
- it('should store failed emails in dead letter queue', async () => {
- mockSendEmail.mockRejectedValue(new Error('Persistent failure'));
-
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- const stub = await getEmailQueueStub();
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- // Manually trigger max retries scenario
- const emails = await state.storage.list({ prefix: 'email:' });
- if (emails.size > 0) {
- const emailEntries = Array.from(emails.entries());
- let emailRecord = emailEntries[0][1];
- emailRecord.attempts = 3; // MAX_RETRIES
- await state.storage.put(`email:${emailRecord.id}`, emailRecord);
-
- await instance.attemptSend(emailRecord);
-
- // Check dead letter queue
- const deadLetters = await instance.getDeadLetterQueue();
- expect(deadLetters.length).toBeGreaterThan(0);
- expect(deadLetters[0].status).toBe('failed');
- expect(deadLetters[0].error).toBeDefined();
- }
- });
- });
- });
-
- describe('C3: Dead-letter write atomicity', () => {
- it('should have dead-letter record AND no email record after max retries', async () => {
- mockSendEmail.mockRejectedValue(new Error('Permanent failure'));
-
- const payload = {
- to: 'deadletter@example.com',
- subject: 'Atomicity Test',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- const stub = await getEmailQueueStub();
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const emails = await state.storage.list({ prefix: 'email:' });
- if (emails.size === 0) return; // Already moved on first attempt at max retries
-
- const emailEntries = Array.from(emails.entries());
- const emailRecord = emailEntries[0][1];
- const emailId = emailRecord.id;
-
- // Set to max retries so next attempt triggers dead-letter
- emailRecord.attempts = 3;
- await state.storage.put(`email:${emailId}`, emailRecord);
-
- await instance.attemptSend(emailRecord);
-
- // Both conditions must hold simultaneously
- const deadLetters = await state.storage.list({ prefix: 'dead-letter:' });
- const remainingEmails = await state.storage.list({ prefix: 'email:' });
-
- expect(deadLetters.size).toBe(1);
- expect(remainingEmails.size).toBe(0);
-
- const deadLetter = Array.from(deadLetters.values())[0];
- expect(deadLetter.id).toBe(emailId);
- expect(deadLetter.status).toBe('failed');
- expect(deadLetter.error).toBe('Permanent failure');
- });
- });
- });
-
- describe('Alarm Scheduling', () => {
- it('should schedule alarm for retry processing', async () => {
- mockSendEmail.mockRejectedValueOnce(new Error('Temporary error'));
-
- const payload = {
- to: 'test@example.com',
- subject: 'Test Email',
- html: 'Test
',
- };
-
- await queueEmail(payload);
-
- const stub = await getEmailQueueStub();
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const alarm = await state.storage.getAlarm();
- expect(alarm).toBeGreaterThan(Date.now());
- });
- });
-
- it('should not schedule duplicate alarms', async () => {
- mockSendEmail.mockRejectedValue(new Error('Error'));
-
- const payload1 = {
- to: 'test1@example.com',
- subject: 'Test 1',
- html: 'Test 1
',
- };
-
- const payload2 = {
- to: 'test2@example.com',
- subject: 'Test 2',
- html: 'Test 2
',
- };
-
- await queueEmail(payload1);
- const stub = await getEmailQueueStub();
-
- let firstAlarm;
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- firstAlarm = await state.storage.getAlarm();
- });
-
- await queueEmail(payload2);
-
- await runInDurableObjectWithRetry(stub, async (instance, state) => {
- const secondAlarm = await state.storage.getAlarm();
- // Should be the same alarm (not duplicated)
- expect(secondAlarm).toBe(firstAlarm);
- });
- });
- });
-});
diff --git a/packages/workers/src/index.ts b/packages/workers/src/index.ts
index d36cf43da..16062c245 100644
--- a/packages/workers/src/index.ts
+++ b/packages/workers/src/index.ts
@@ -10,13 +10,14 @@ import type { ContentfulStatusCode } from 'hono/utils/http-status';
import * as Sentry from '@sentry/cloudflare';
import { UserSession } from './durable-objects/UserSession';
import { ProjectDoc } from './durable-objects/ProjectDoc';
-import { EmailQueue } from './durable-objects/EmailQueue';
import { createCorsMiddleware } from './middleware/cors';
import { securityHeaders } from './middleware/securityHeaders';
import { requireAuth } from './middleware/auth';
import { requireTrustedOrigin } from './middleware/csrf';
import { errorHandler } from './middleware/errorHandler';
import { createDomainError, SYSTEM_ERRORS } from '@corates/shared';
+import { createEmailService } from './auth/email';
+import type { EmailPayload } from './lib/email-queue';
import type { Env } from './types';
// Route imports
@@ -25,7 +26,6 @@ import { healthRoutes } from './routes/health';
import { orgRoutes } from './routes/orgs/index';
import { userRoutes } from './routes/users';
import { dbRoutes } from './routes/database';
-import { emailRoutes } from './routes/email';
import { billingRoutes } from './routes/billing/index';
import { googleDriveRoutes } from './routes/google-drive';
import { avatarRoutes } from './routes/avatars';
@@ -35,7 +35,7 @@ import { contactRoutes } from './routes/contact';
import { invitationRoutes } from './routes/invitations';
// Export Durable Objects
-export { UserSession, ProjectDoc, EmailQueue };
+export { UserSession, ProjectDoc };
// Create main Hono app with OpenAPI support
const app = new OpenAPIHono<{ Bindings: Env }>();
@@ -133,9 +133,6 @@ app.post('/api/admin/stop-impersonation', async c => {
// Mount admin routes
app.route('/api/admin', adminRoutes);
-// Mount email routes
-app.route('/api/email', emailRoutes);
-
// Mount contact form route (public)
app.route('/api/contact', contactRoutes);
@@ -368,18 +365,53 @@ app.notFound(c => {
// Global error handler - catches all uncaught errors in routes
app.onError(errorHandler);
-// Wrap with Sentry for error monitoring (only if DSN is configured)
-export default Sentry.withSentry(
- (env: Env) => ({
- dsn: env.SENTRY_DSN || '',
- release: env.CF_VERSION_METADATA?.id,
- environment: env.ENVIRONMENT,
- // Only enable if DSN is set
- enabled: !!env.SENTRY_DSN,
- // Capture 100% of errors
- tracesSampleRate: env.ENVIRONMENT === 'production' ? 0.1 : 1.0,
- // Add request data to error reports
- sendDefaultPii: true,
- }),
- app,
+const workerHandler = {
+ fetch: app.fetch,
+
+ async queue(batch: MessageBatch, env: Env): Promise {
+ const emailService = createEmailService(env);
+ const messages = batch.messages as Message[];
+
+ for (const msg of messages) {
+ try {
+ const result = await emailService.sendEmail(
+ msg.body as Parameters[0],
+ );
+
+ if (result.success) {
+ msg.ack();
+ } else {
+ const masked = msg.body.to?.replace(/^(..).*@/, '$1***@');
+ console.error(`[EmailQueue] Send returned error for ${masked}:`, result.error);
+ const delay = Math.min(30 * 2 ** msg.attempts, 1800);
+ msg.retry({ delaySeconds: delay });
+ }
+ } catch (error) {
+ const masked = msg.body.to?.replace(/^(..).*@/, '$1***@');
+ console.error(`[EmailQueue] Exception sending to ${masked}:`, error);
+ const delay = Math.min(30 * 2 ** msg.attempts, 1800);
+ msg.retry({ delaySeconds: delay });
+ }
+ }
+ },
+};
+
+// Wrap with Sentry for error monitoring in non-test environments.
+// Sentry.withSentry proxies the fetch handler and its transport uses ctx.waitUntil,
+// which is unavailable in the vitest-pool-workers test runtime.
+// @ts-expect-error import.meta.env is set by vitest but not typed in workers
+const isTest = typeof import.meta !== 'undefined' && import.meta.env?.MODE === 'test';
+
+export default isTest ? workerHandler : (
+ Sentry.withSentry(
+ (env: Env) => ({
+ dsn: env.SENTRY_DSN || '',
+ release: env.CF_VERSION_METADATA?.id,
+ environment: env.ENVIRONMENT,
+ enabled: !!env.SENTRY_DSN,
+ tracesSampleRate: env.ENVIRONMENT === 'production' ? 0.1 : 1.0,
+ sendDefaultPii: true,
+ }),
+ workerHandler,
+ )
);
diff --git a/packages/workers/src/lib/email-queue.ts b/packages/workers/src/lib/email-queue.ts
new file mode 100644
index 000000000..8fbe0fe59
--- /dev/null
+++ b/packages/workers/src/lib/email-queue.ts
@@ -0,0 +1,27 @@
+/**
+ * Email queue producer utility
+ *
+ * Sends email payloads to the Cloudflare Queue for async delivery.
+ * The queue consumer (in index.ts) processes messages via Postmark.
+ */
+import { createDomainError, VALIDATION_ERRORS } from '@corates/shared';
+import type { Env } from '../types';
+
+export interface EmailPayload {
+ to: string;
+ subject: string;
+ html?: string;
+ text?: string;
+ replyTo?: string;
+}
+
+export async function queueEmail(env: Env, payload: EmailPayload): Promise {
+ if (!payload?.to || !payload?.subject || (!payload?.html && !payload?.text)) {
+ throw createDomainError(
+ VALIDATION_ERRORS.INVALID_INPUT,
+ { fields: ['to', 'subject', 'html', 'text'] },
+ 'Email payload requires to, subject, and html or text',
+ );
+ }
+ await env.EMAIL_QUEUE.send(payload);
+}
diff --git a/packages/workers/src/lib/send-invitation-email.ts b/packages/workers/src/lib/send-invitation-email.ts
new file mode 100644
index 000000000..87f2717b0
--- /dev/null
+++ b/packages/workers/src/lib/send-invitation-email.ts
@@ -0,0 +1,142 @@
+/**
+ * Shared helper for sending project invitation emails with magic links.
+ *
+ * Extracts the duplicated ~80-line magic-link generation + email queueing
+ * pattern that was repeated across members.ts, orgs/invitations.ts,
+ * and orgs/members.ts.
+ */
+
+import { createDomainError, SYSTEM_ERRORS } from '@corates/shared';
+import type { Env } from '../types';
+import { queueEmail } from './email-queue';
+
+interface SendInvitationEmailParams {
+ env: Env;
+ email: string;
+ token: string;
+ projectName: string;
+ inviterName: string;
+ role: string;
+}
+
+interface SendInvitationEmailResult {
+ emailQueued: boolean;
+}
+
+/**
+ * Generates a magic link and queues an invitation email.
+ *
+ * Throws on critical errors (missing AUTH_SECRET, failed magic link generation).
+ * Returns { emailQueued: false } if only the queue send fails, since the
+ * invitation record already exists in the database and can be resent.
+ */
+export async function sendInvitationEmail(
+ params: SendInvitationEmailParams,
+): Promise {
+ const { env, email, token, projectName, inviterName, role } = params;
+
+ const appUrl = env.APP_URL || 'https://corates.org';
+ const envRecord = env as unknown as Record;
+ const basepath = envRecord.BASEPATH || '';
+ const basepathNormalized = basepath ? basepath.replace(/\/$/, '') : '';
+
+ const callbackPath = `${basepathNormalized}/complete-profile?invitation=${token}`;
+ const callbackURL = `${appUrl}${callbackPath}`;
+
+ const authBaseUrl = env.AUTH_BASE_URL || env.APP_URL || 'https://corates.org';
+ let capturedMagicLinkUrl: string | null = null;
+
+ const { betterAuth } = await import('better-auth');
+ const { magicLink } = await import('better-auth/plugins');
+ const { drizzleAdapter } = await import('better-auth/adapters/drizzle');
+ const { drizzle } = await import('drizzle-orm/d1');
+ const schema = await import('@/db/schema.js');
+ const { MAGIC_LINK_EXPIRY_MINUTES } = await import('@/auth/emailTemplates.js');
+
+ const authSecret = env.AUTH_SECRET || (envRecord.SECRET as string | undefined);
+ if (!authSecret) {
+ throw createDomainError(
+ SYSTEM_ERRORS.INTERNAL_ERROR,
+ { key: 'AUTH_SECRET' },
+ 'AUTH_SECRET must be configured',
+ );
+ }
+
+ const tempDb = drizzle(env.DB, { schema });
+ const tempAuth = betterAuth({
+ database: drizzleAdapter(tempDb, {
+ provider: 'sqlite',
+ schema: {
+ user: schema.user,
+ session: schema.session,
+ account: schema.account,
+ verification: schema.verification,
+ twoFactor: schema.twoFactor,
+ },
+ }),
+ baseURL: authBaseUrl,
+ secret: authSecret,
+ plugins: [
+ magicLink({
+ sendMagicLink: async ({ url }: { url: string }) => {
+ capturedMagicLinkUrl = url;
+ },
+ expiresIn: 60 * MAGIC_LINK_EXPIRY_MINUTES,
+ }),
+ ],
+ });
+
+ await tempAuth.api.signInMagicLink({
+ body: {
+ email: email.toLowerCase(),
+ callbackURL: callbackURL,
+ newUserCallbackURL: callbackURL,
+ },
+ headers: new Headers(),
+ });
+
+ if (!capturedMagicLinkUrl) {
+ throw createDomainError(
+ SYSTEM_ERRORS.INTERNAL_ERROR,
+ { service: 'magic-link' },
+ 'Failed to generate magic link URL',
+ );
+ }
+
+ if (env.ENVIRONMENT !== 'production') {
+ const redacted = capturedMagicLinkUrl.replace(/token=[^&]+/, 'token=REDACTED');
+ console.log('[Email] Project invitation magic link URL:', redacted);
+ }
+
+ const { getProjectInvitationEmailHtml, getProjectInvitationEmailText } =
+ await import('@/auth/emailTemplates.js');
+ const { sanitizeEmailSubject } = await import('@/lib/escapeHtml.js');
+
+ const emailHtml = getProjectInvitationEmailHtml({
+ projectName,
+ inviterName,
+ invitationUrl: capturedMagicLinkUrl,
+ role,
+ });
+ const emailText = getProjectInvitationEmailText({
+ projectName,
+ inviterName,
+ invitationUrl: capturedMagicLinkUrl,
+ role,
+ });
+
+ const safeProjectName = sanitizeEmailSubject(projectName);
+
+ try {
+ await queueEmail(env, {
+ to: email,
+ subject: `You're Invited to "${safeProjectName}" - CoRATES`,
+ html: emailHtml,
+ text: emailText,
+ });
+ return { emailQueued: true };
+ } catch (err) {
+ console.error('[Invitation] Failed to queue invitation email:', err);
+ return { emailQueued: false };
+ }
+}
diff --git a/packages/workers/src/lib/stripe.ts b/packages/workers/src/lib/stripe.ts
index a284e613c..75d5974dc 100644
--- a/packages/workers/src/lib/stripe.ts
+++ b/packages/workers/src/lib/stripe.ts
@@ -12,7 +12,7 @@ import type { Env } from '@/types';
* Stripe API version used across the application
* Update this single constant when upgrading Stripe API version
*/
-export const STRIPE_API_VERSION = '2025-12-15.clover' as const;
+export const STRIPE_API_VERSION = '2026-02-25.clover' as const;
/**
* Create a configured Stripe client instance
diff --git a/packages/workers/src/routes/__tests__/contact.test.js b/packages/workers/src/routes/__tests__/contact.test.js
index 7c8f84af9..ddfddc396 100644
--- a/packages/workers/src/routes/__tests__/contact.test.js
+++ b/packages/workers/src/routes/__tests__/contact.test.js
@@ -7,23 +7,20 @@ import { Hono } from 'hono';
import { env, createExecutionContext, waitOnExecutionContext } from 'cloudflare:test';
import { json } from '@/__tests__/helpers.js';
-// Mock Postmark
-const mockSendEmail = vi.fn(async () => ({
- ErrorCode: 0,
- MessageID: 'test-message-id',
-}));
-
+// Mock Postmark (still needed since email-queue module may import it transitively)
vi.mock('postmark', () => {
return {
Client: class {
- constructor() {
- this.sendEmail = mockSendEmail;
+ constructor() {}
+ sendEmail() {
+ return Promise.resolve({ ErrorCode: 0, MessageID: 'test-message-id' });
}
},
};
});
let app;
+const mockQueueSend = vi.fn(async () => {});
beforeAll(async () => {
const { contactRoutes } = await import('../contact.js');
@@ -33,19 +30,21 @@ beforeAll(async () => {
beforeEach(() => {
vi.clearAllMocks();
- // Reset rate limiter by using unique IPs for each test
- // This prevents rate limiting from interfering with other tests
});
let testCounter = 0;
-async function fetchContact(path = '', init = {}) {
+async function fetchContact(path = '', init = {}, envOverrides = {}) {
testCounter++;
const testEnv = {
...env,
- POSTMARK_SERVER_TOKEN: 'test-token',
+ EMAIL_QUEUE: {
+ send: mockQueueSend,
+ sendBatch: vi.fn(async () => {}),
+ },
CONTACT_EMAIL: 'contact@example.com',
EMAIL_FROM: 'noreply@example.com',
+ ...envOverrides,
};
// Use unique IP for each test to avoid rate limiting interference
@@ -80,8 +79,14 @@ describe('Contact Routes - POST /api/contact', () => {
expect(res.status).toBe(200);
const body = await json(res);
expect(body.success).toBe(true);
- expect(body.messageId).toBe('test-message-id');
- expect(mockSendEmail).toHaveBeenCalledTimes(1);
+ expect(body.messageId).toBeDefined();
+ expect(mockQueueSend).toHaveBeenCalledTimes(1);
+
+ const payload = mockQueueSend.mock.calls[0][0];
+ expect(payload.to).toBe('contact@example.com');
+ expect(payload.subject).toBe('[Contact Form] Test Subject');
+ expect(payload.text).toContain('John Doe');
+ expect(payload.html).toContain('John Doe');
});
it('should accept submission without subject', async () => {
@@ -98,6 +103,9 @@ describe('Contact Routes - POST /api/contact', () => {
expect(res.status).toBe(200);
const body = await json(res);
expect(body.success).toBe(true);
+
+ const payload = mockQueueSend.mock.calls[0][0];
+ expect(payload.subject).toBe('[Contact Form] New Inquiry');
});
it('should reject missing name', async () => {
@@ -205,11 +213,8 @@ describe('Contact Routes - POST /api/contact', () => {
expect(body.message || body.error).toMatch(/message/i);
});
- it('should handle Postmark API errors', async () => {
- mockSendEmail.mockResolvedValueOnce({
- ErrorCode: 406,
- Message: 'Invalid email',
- });
+ it('should handle queue send errors', async () => {
+ mockQueueSend.mockRejectedValueOnce(new Error('Queue unavailable'));
const res = await fetchContact('', {
method: 'POST',
@@ -225,33 +230,6 @@ describe('Contact Routes - POST /api/contact', () => {
const body = await json(res);
expect(body.code).toBeDefined();
expect(body.code).toMatch(/SYSTEM_EMAIL_SEND_FAILED/);
- expect(body.message || body.error).toBeDefined();
- });
-
- it('should return error when POSTMARK_SERVER_TOKEN not configured', async () => {
- const testEnv = {
- ...env,
- POSTMARK_SERVER_TOKEN: null,
- };
-
- const ctx = createExecutionContext();
- const req = new Request('http://localhost/api/contact', {
- method: 'POST',
- headers: { 'content-type': 'application/json' },
- body: JSON.stringify({
- name: 'John Doe',
- email: 'john@example.com',
- message: 'Test message',
- }),
- });
- const res = await app.fetch(req, testEnv, ctx);
- await waitOnExecutionContext(ctx);
-
- expect(res.status).toBe(503);
- const body = await json(res);
- expect(body.code).toBeDefined();
- expect(body.code).toMatch(/SYSTEM_SERVICE_UNAVAILABLE/);
- expect(body.message || body.error).toMatch(/service|unavailable/i);
});
it('should trim whitespace from fields', async () => {
@@ -266,9 +244,9 @@ describe('Contact Routes - POST /api/contact', () => {
});
expect(res.status).toBe(200);
- expect(mockSendEmail).toHaveBeenCalled();
- const callArgs = mockSendEmail.mock.calls[0][0];
- expect(callArgs.TextBody).toContain('John Doe');
- expect(callArgs.TextBody).not.toContain(' ');
+ expect(mockQueueSend).toHaveBeenCalled();
+ const payload = mockQueueSend.mock.calls[0][0];
+ expect(payload.text).toContain('John Doe');
+ expect(payload.text).not.toMatch(/^ {2}John/);
});
});
diff --git a/packages/workers/src/routes/__tests__/email.test.js b/packages/workers/src/routes/__tests__/email.test.js
deleted file mode 100644
index f0bb99095..000000000
--- a/packages/workers/src/routes/__tests__/email.test.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * Tests for email routes
- */
-
-import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
-import { Hono } from 'hono';
-import { env, createExecutionContext, waitOnExecutionContext } from 'cloudflare:test';
-import { json } from '@/__tests__/helpers.js';
-
-// Mock postmark
-vi.mock('postmark', () => {
- return {
- Client: class {
- constructor() {}
- sendEmail() {
- return Promise.resolve({ Message: 'mock' });
- }
- },
- };
-});
-
-let app;
-
-beforeAll(async () => {
- const { emailRoutes } = await import('../email.js');
- app = new Hono();
- app.route('/api/email', emailRoutes);
-});
-
-beforeEach(() => {
- vi.clearAllMocks();
-});
-
-async function fetchEmail(path, init = {}) {
- const mockFetch = vi.fn(async request => {
- // Handle the full URL request from email route
- const url = typeof request === 'string' ? new URL(request) : new URL(request.url);
- if (url.pathname === '/enqueue' || url.pathname.includes('enqueue')) {
- return new Response(JSON.stringify({ success: true }), {
- status: 202,
- headers: { 'Content-Type': 'application/json' },
- });
- }
- return new Response(JSON.stringify({ success: true }), {
- status: 200,
- headers: { 'Content-Type': 'application/json' },
- });
- });
-
- const testEnv = {
- ...env,
- ENVIRONMENT: 'production',
- EMAIL_QUEUE: {
- idFromName: vi.fn(() => ({ toString: () => 'do-id' })),
- get: vi.fn(() => ({
- fetch: mockFetch,
- queueEmail: vi.fn(async () => {}),
- })),
- },
- };
-
- const ctx = createExecutionContext();
- const req = new Request(`http://localhost${path}`, init);
- const res = await app.fetch(req, testEnv, ctx);
- await waitOnExecutionContext(ctx);
- return res;
-}
-
-describe('Email Routes - POST /api/email/queue', () => {
- it('should queue email with valid payload', async () => {
- const res = await fetchEmail('/api/email/queue', {
- method: 'POST',
- headers: { 'content-type': 'application/json' },
- body: JSON.stringify({
- to: 'user@example.com',
- subject: 'Test Email',
- html: 'Test
',
- }),
- });
-
- expect(res.status).toBe(200);
- const body = await json(res);
- expect(body.success).toBe(true);
- // EmailQueue returns 202, but route wraps it
- expect(body.queued).toBeDefined();
- });
-
- it('should reject request without to field', async () => {
- const res = await fetchEmail('/api/email/queue', {
- method: 'POST',
- headers: { 'content-type': 'application/json' },
- body: JSON.stringify({
- subject: 'Test Email',
- html: 'Test
',
- }),
- });
-
- expect(res.status).toBe(400);
- const body = await json(res);
- expect(body.code).toBeDefined();
- expect(body.code).toMatch(/VALIDATION_FIELD_REQUIRED/);
- expect(body.message || body.error).toMatch(/to|required/i);
- });
-
- it('should accept email with text content', async () => {
- const res = await fetchEmail('/api/email/queue', {
- method: 'POST',
- headers: { 'content-type': 'application/json' },
- body: JSON.stringify({
- to: 'user@example.com',
- subject: 'Test Email',
- text: 'Plain text content',
- }),
- });
-
- expect(res.status).toBe(200);
- const body = await json(res);
- expect(body.success).toBe(true);
- });
-
- it('should handle DO fetch errors gracefully', async () => {
- const testEnv = {
- ...env,
- EMAIL_QUEUE: {
- idFromName: vi.fn(() => ({ toString: () => 'do-id' })),
- get: vi.fn(() => ({
- fetch: vi.fn(async _request => {
- throw new Error('DO fetch failed');
- }),
- queueEmail: vi.fn(async () => {
- throw new Error('DO fetch failed');
- }),
- })),
- },
- };
-
- const ctx = createExecutionContext();
- const req = new Request('http://localhost/api/email/queue', {
- method: 'POST',
- headers: { 'content-type': 'application/json' },
- body: JSON.stringify({
- to: 'user@example.com',
- subject: 'Test',
- html: 'Test
',
- }),
- });
- const res = await app.fetch(req, testEnv, ctx);
- await waitOnExecutionContext(ctx);
-
- expect(res.status).toBe(500);
- const body = await json(res);
- expect(body.code).toBeDefined();
- expect(body.code).toMatch(/SYSTEM_EMAIL_SEND_FAILED/);
- expect(body.message || body.error).toBeDefined();
- });
-});
diff --git a/packages/workers/src/routes/__tests__/project-invitations.test.js b/packages/workers/src/routes/__tests__/project-invitations.test.js
index 1d472386c..0d2e3c5f9 100644
--- a/packages/workers/src/routes/__tests__/project-invitations.test.js
+++ b/packages/workers/src/routes/__tests__/project-invitations.test.js
@@ -75,7 +75,6 @@ vi.mock('@/lib/project-sync.js', () => {
// For now, we'll let it fail silently (it's in a try-catch)
let app;
-let mockEmailQueueFetch;
let mockUserSessionFetch;
let mockSyncMemberToDO;
@@ -111,9 +110,6 @@ beforeEach(async () => {
});
// Setup default DO mocks
- mockEmailQueueFetch = vi.fn(
- async () => new Response(JSON.stringify({ ok: true }), { status: 200 }),
- );
mockUserSessionFetch = vi.fn(
async () => new Response(JSON.stringify({ ok: true }), { status: 200 }),
);
@@ -129,11 +125,8 @@ async function fetchInvitations(orgId, projectId, path = '', init = {}) {
AUTH_SECRET: 'test-secret',
SECRET: 'test-secret',
EMAIL_QUEUE: {
- idFromName: () => ({ toString: () => 'default-queue' }),
- get: () => ({
- fetch: mockEmailQueueFetch,
- queueEmail: vi.fn(async () => {}),
- }),
+ send: vi.fn(async () => {}),
+ sendBatch: vi.fn(async () => {}),
},
USER_SESSION: {
idFromName: userId => ({ toString: () => `user-session-${userId}` }),
diff --git a/packages/workers/src/routes/account-merge.ts b/packages/workers/src/routes/account-merge.ts
index 23e7bd4b8..ac0ba9272 100644
--- a/packages/workers/src/routes/account-merge.ts
+++ b/packages/workers/src/routes/account-merge.ts
@@ -20,8 +20,8 @@ import { user, account, projects, projectMembers, mediaFiles, verification } fro
import { eq, sql, like, and } from 'drizzle-orm';
import { requireAuth, getAuth } from '@/middleware/auth.js';
import { rateLimit } from '@/middleware/rateLimit.js';
-import { createEmailService } from '@/auth/email.js';
import { getAccountMergeEmailHtml, getAccountMergeEmailText } from '@/auth/emailTemplates.js';
+import { queueEmail } from '@/lib/email-queue.js';
import {
createDomainError,
createValidationError,
@@ -461,16 +461,15 @@ accountMergeRoutes.openapi(initiateRoute, async c => {
updatedAt: new Date(),
});
- const emailService = createEmailService(c.env);
- const emailResult = await emailService.sendEmail({
- to: targetUser.email,
- subject: 'CoRATES Account Merge Verification Code',
- html: getAccountMergeEmailHtml({ code: verificationCode }),
- text: getAccountMergeEmailText({ code: verificationCode }),
- });
-
- if (!emailResult.success) {
- console.error('[AccountMerge] Failed to send verification email:', emailResult.error);
+ try {
+ await queueEmail(c.env, {
+ to: targetUser.email,
+ subject: 'CoRATES Account Merge Verification Code',
+ html: getAccountMergeEmailHtml({ code: verificationCode }),
+ text: getAccountMergeEmailText({ code: verificationCode }),
+ });
+ } catch (err) {
+ console.error('[AccountMerge] Failed to queue verification email:', err);
await db
.delete(verification)
@@ -478,7 +477,7 @@ accountMergeRoutes.openapi(initiateRoute, async c => {
const error = createDomainError(SYSTEM_ERRORS.EMAIL_SEND_FAILED, {
operation: 'send_merge_verification',
- originalError: String(emailResult.error ?? 'Unknown email error'),
+ originalError: String(err instanceof Error ? err.message : 'Unknown email error'),
});
return c.json(error, error.statusCode as ContentfulStatusCode);
}
diff --git a/packages/workers/src/routes/admin/stripe-tools.ts b/packages/workers/src/routes/admin/stripe-tools.ts
index d59b8c3c1..36f9b0009 100644
--- a/packages/workers/src/routes/admin/stripe-tools.ts
+++ b/packages/workers/src/routes/admin/stripe-tools.ts
@@ -18,12 +18,6 @@ const stripeToolsRoutes = new OpenAPIHono<{ Bindings: Env }>({
defaultHook: validationHook,
});
-// Extended types for Stripe API version properties
-interface SubscriptionWithPeriods extends Stripe.Subscription {
- current_period_start?: number;
- current_period_end?: number;
-}
-
interface InvoiceWithSubscription extends Stripe.Invoice {
subscription?: string | Stripe.Subscription | null;
}
@@ -153,6 +147,8 @@ const SubscriptionItemSchema = z
unitAmount: z.number().nullable(),
interval: z.string().nullable(),
quantity: z.number().nullable(),
+ currentPeriodStart: z.number(),
+ currentPeriodEnd: z.number(),
})
.openapi('SubscriptionItem');
@@ -161,8 +157,6 @@ const StripeSubscriptionSchema = z
id: z.string(),
status: z.string(),
currency: z.string(),
- currentPeriodStart: z.number(),
- currentPeriodEnd: z.number(),
cancelAtPeriodEnd: z.boolean(),
cancelAt: z.number().nullable(),
canceledAt: z.number().nullable(),
@@ -747,13 +741,10 @@ stripeToolsRoutes.openapi(subscriptionsRoute, async c => {
return c.json({
customerId,
subscriptions: subscriptions.data.map(sub => {
- const subWithPeriods = sub as SubscriptionWithPeriods;
return {
id: sub.id,
status: sub.status,
currency: sub.currency,
- currentPeriodStart: subWithPeriods.current_period_start ?? 0,
- currentPeriodEnd: subWithPeriods.current_period_end ?? 0,
cancelAtPeriodEnd: sub.cancel_at_period_end,
cancelAt: sub.cancel_at,
canceledAt: sub.canceled_at,
@@ -767,6 +758,8 @@ stripeToolsRoutes.openapi(subscriptionsRoute, async c => {
productId: item.price.product,
unitAmount: item.price.unit_amount,
interval: item.price.recurring?.interval ?? null,
+ currentPeriodStart: item.current_period_start,
+ currentPeriodEnd: item.current_period_end,
quantity: item.quantity,
})),
defaultPaymentMethod:
diff --git a/packages/workers/src/routes/billing/__tests__/invoiceHandlers.test.ts b/packages/workers/src/routes/billing/__tests__/invoiceHandlers.test.ts
index 4272fb87b..74de8cf64 100644
--- a/packages/workers/src/routes/billing/__tests__/invoiceHandlers.test.ts
+++ b/packages/workers/src/routes/billing/__tests__/invoiceHandlers.test.ts
@@ -230,9 +230,7 @@ describe('Invoice Handlers', () => {
});
const mockEmailQueue = {
- get: vi.fn().mockReturnValue({
- queueEmail: vi.fn().mockResolvedValue({ success: true }),
- }),
+ send: vi.fn().mockResolvedValue(undefined),
};
const invoice = {
@@ -250,6 +248,7 @@ describe('Invoice Handlers', () => {
expect(result.handled).toBe(true);
expect(result.result).toBe('payment_failed_processed');
+ expect(mockEmailQueue.send).toHaveBeenCalledTimes(1);
});
it('logs when dunning email skipped due to no user', async () => {
@@ -266,9 +265,7 @@ describe('Invoice Handlers', () => {
});
const mockEmailQueue = {
- get: vi.fn().mockReturnValue({
- queueEmail: vi.fn(),
- }),
+ send: vi.fn().mockResolvedValue(undefined),
};
const invoice = {
@@ -284,6 +281,7 @@ describe('Invoice Handlers', () => {
const result = await handleInvoicePaymentFailed(invoice, ctx);
expect(result.handled).toBe(true);
+ expect(mockEmailQueue.send).not.toHaveBeenCalled();
expect(ctx.logger.stripe).toHaveBeenCalledWith('dunning_email_skipped_no_user', {
subscriptionId: 'sub-local-1',
stripeCustomerId: 'cus_orphan',
diff --git a/packages/workers/src/routes/billing/__tests__/subscriptionHandlers.test.ts b/packages/workers/src/routes/billing/__tests__/subscriptionHandlers.test.ts
index 949a3b9eb..343d62be9 100644
--- a/packages/workers/src/routes/billing/__tests__/subscriptionHandlers.test.ts
+++ b/packages/workers/src/routes/billing/__tests__/subscriptionHandlers.test.ts
@@ -78,9 +78,15 @@ describe('Subscription Handlers', () => {
status: 'active',
customer: 'cus_123',
metadata: { orgId: 'org-1' },
- items: { data: [{ price: { lookup_key: 'team' } }] },
- current_period_start: Math.floor(Date.now() / 1000),
- current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ items: {
+ data: [
+ {
+ price: { lookup_key: 'team' },
+ current_period_start: Math.floor(Date.now() / 1000),
+ current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ },
+ ],
+ },
} as unknown as Stripe.Subscription;
const ctx = createTestContext(db);
@@ -125,9 +131,15 @@ describe('Subscription Handlers', () => {
status: 'trialing',
customer: 'cus_456',
metadata: { orgId: 'org-new' },
- items: { data: [{ price: { lookup_key: 'enterprise' } }] },
- current_period_start: Math.floor(Date.now() / 1000),
- current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ items: {
+ data: [
+ {
+ price: { lookup_key: 'enterprise' },
+ current_period_start: Math.floor(Date.now() / 1000),
+ current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ },
+ ],
+ },
cancel_at_period_end: false,
trial_start: Math.floor(Date.now() / 1000),
trial_end: Math.floor(Date.now() / 1000) + 86400 * 14,
@@ -188,9 +200,15 @@ describe('Subscription Handlers', () => {
id: 'sub_123',
status: 'past_due',
customer: 'cus_123',
- items: { data: [{ price: { lookup_key: 'team' } }] },
- current_period_start: Math.floor(Date.now() / 1000),
- current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ items: {
+ data: [
+ {
+ price: { lookup_key: 'team' },
+ current_period_start: Math.floor(Date.now() / 1000),
+ current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ },
+ ],
+ },
cancel_at_period_end: false,
} as unknown as Stripe.Subscription;
@@ -220,9 +238,15 @@ describe('Subscription Handlers', () => {
id: 'sub_123',
status: 'active',
customer: 'cus_123',
- items: { data: [{ price: { lookup_key: 'team' } }] },
- current_period_start: Math.floor(Date.now() / 1000),
- current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ items: {
+ data: [
+ {
+ price: { lookup_key: 'team' },
+ current_period_start: Math.floor(Date.now() / 1000),
+ current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ },
+ ],
+ },
cancel_at_period_end: true,
} as unknown as Stripe.Subscription;
@@ -338,8 +362,14 @@ describe('Subscription Handlers', () => {
const stripeSub = {
id: 'sub_123',
status: 'active',
- current_period_start: Math.floor(Date.now() / 1000),
- current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ items: {
+ data: [
+ {
+ current_period_start: Math.floor(Date.now() / 1000),
+ current_period_end: Math.floor(Date.now() / 1000) + 86400 * 30,
+ },
+ ],
+ },
} as unknown as Stripe.Subscription;
const ctx = createTestContext(db);
diff --git a/packages/workers/src/routes/billing/handlers/dunning.ts b/packages/workers/src/routes/billing/handlers/dunning.ts
index 4affd3434..7f6ff7930 100644
--- a/packages/workers/src/routes/billing/handlers/dunning.ts
+++ b/packages/workers/src/routes/billing/handlers/dunning.ts
@@ -1,7 +1,7 @@
/**
* Dunning email handlers
*
- * Sends payment failure notifications to users via the EmailQueue DO.
+ * Sends payment failure notifications to users via the email queue.
* Uses escalating urgency based on payment attempt count.
*/
import type { WebhookContext } from './types.js';
@@ -24,7 +24,7 @@ interface EmailTemplate {
}
/**
- * Queue dunning email using existing EmailQueue DO
+ * Queue dunning email for delivery
*/
export async function queueDunningEmail(
params: DunningParams,
@@ -96,11 +96,8 @@ export async function queueDunningEmail(
};
try {
- // Queue via EmailQueue DO
- const queueId = env.EMAIL_QUEUE.idFromName('default');
- const queue = env.EMAIL_QUEUE.get(queueId);
-
- await queue.queueEmail(emailPayload);
+ const { queueEmail } = await import('../../../lib/email-queue');
+ await queueEmail(env, emailPayload);
logger.stripe('dunning_email_queued', {
subscriptionId,
diff --git a/packages/workers/src/routes/billing/handlers/invoiceHandlers.ts b/packages/workers/src/routes/billing/handlers/invoiceHandlers.ts
index 94b7b608e..de45a3680 100644
--- a/packages/workers/src/routes/billing/handlers/invoiceHandlers.ts
+++ b/packages/workers/src/routes/billing/handlers/invoiceHandlers.ts
@@ -16,8 +16,8 @@ function getDb(ctx: WebhookContext) {
return ctx.db as ReturnType;
}
-// The Stripe API version used (2025-12-15.clover) has (invoice as InvoiceWithSubscription).subscription
-// that might not be in the standard types
+// The subscription field moved to invoice.parent.subscription_details.subscription in newer
+// API versions, but webhook payloads may still include it at the top level
interface InvoiceWithSubscription extends Stripe.Invoice {
subscription?: string | Stripe.Subscription | null;
}
@@ -199,7 +199,7 @@ export async function handleInvoicePaymentFailed(
.get();
if (billingUser?.email) {
- // Queue dunning email via EmailQueue DO
+ // Queue dunning email
await queueDunningEmail(
{
subscriptionId: existing.id,
diff --git a/packages/workers/src/routes/billing/handlers/subscriptionHandlers.ts b/packages/workers/src/routes/billing/handlers/subscriptionHandlers.ts
index 9e560e0f8..6b37cacbc 100644
--- a/packages/workers/src/routes/billing/handlers/subscriptionHandlers.ts
+++ b/packages/workers/src/routes/billing/handlers/subscriptionHandlers.ts
@@ -14,13 +14,6 @@ function getDb(ctx: WebhookContext) {
return ctx.db as ReturnType;
}
-// The Stripe API version used (2025-12-15.clover) uses different field names
-// These interfaces extend the Stripe types with the fields we need
-interface SubscriptionWithPeriods extends Stripe.Subscription {
- current_period_start?: number;
- current_period_end?: number;
-}
-
/**
* Handle customer.subscription.created
* Note: Better Auth Stripe plugin typically handles initial creation
@@ -71,21 +64,17 @@ export async function handleSubscriptionCreated(
// Create subscription record
// Note: This is a fallback - Better Auth should handle most creations
const subscriptionId = crypto.randomUUID();
+ const firstItem = sub.items.data[0];
await db.insert(subscription).values({
id: subscriptionId,
- plan: sub.items.data[0]?.price?.lookup_key || 'unknown',
+ plan: firstItem?.price?.lookup_key || 'unknown',
referenceId: orgId,
stripeCustomerId: typeof sub.customer === 'string' ? sub.customer : sub.customer?.id,
stripeSubscriptionId: sub.id,
status: sub.status,
periodStart:
- (sub as SubscriptionWithPeriods).current_period_start ?
- new Date((sub as SubscriptionWithPeriods).current_period_start! * 1000)
- : null,
- periodEnd:
- (sub as SubscriptionWithPeriods).current_period_end ?
- new Date((sub as SubscriptionWithPeriods).current_period_end! * 1000)
- : null,
+ firstItem?.current_period_start ? new Date(firstItem.current_period_start * 1000) : null,
+ periodEnd: firstItem?.current_period_end ? new Date(firstItem.current_period_end * 1000) : null,
cancelAtPeriodEnd: sub.cancel_at_period_end,
cancelAt: sub.cancel_at ? new Date(sub.cancel_at * 1000) : null,
trialStart: sub.trial_start ? new Date(sub.trial_start * 1000) : null,
@@ -152,18 +141,15 @@ export async function handleSubscriptionUpdated(
}
// Update subscription state
+ const firstItem = sub.items.data[0];
await db
.update(subscription)
.set({
status: sub.status,
periodStart:
- (sub as SubscriptionWithPeriods).current_period_start ?
- new Date((sub as SubscriptionWithPeriods).current_period_start! * 1000)
- : null,
+ firstItem?.current_period_start ? new Date(firstItem.current_period_start * 1000) : null,
periodEnd:
- (sub as SubscriptionWithPeriods).current_period_end ?
- new Date((sub as SubscriptionWithPeriods).current_period_end! * 1000)
- : null,
+ firstItem?.current_period_end ? new Date(firstItem.current_period_end * 1000) : null,
cancelAtPeriodEnd: sub.cancel_at_period_end,
cancelAt: sub.cancel_at ? new Date(sub.cancel_at * 1000) : null,
canceledAt: sub.canceled_at ? new Date(sub.canceled_at * 1000) : null,
@@ -323,18 +309,15 @@ export async function handleSubscriptionResumed(
};
}
+ const firstItem = sub.items.data[0];
await db
.update(subscription)
.set({
status: sub.status || 'active',
periodStart:
- (sub as SubscriptionWithPeriods).current_period_start ?
- new Date((sub as SubscriptionWithPeriods).current_period_start! * 1000)
- : null,
+ firstItem?.current_period_start ? new Date(firstItem.current_period_start * 1000) : null,
periodEnd:
- (sub as SubscriptionWithPeriods).current_period_end ?
- new Date((sub as SubscriptionWithPeriods).current_period_end! * 1000)
- : null,
+ firstItem?.current_period_end ? new Date(firstItem.current_period_end * 1000) : null,
updatedAt: new Date(),
})
.where(eq(subscription.id, existing.id));
diff --git a/packages/workers/src/routes/contact.ts b/packages/workers/src/routes/contact.ts
index 13419dde2..d8bf60586 100644
--- a/packages/workers/src/routes/contact.ts
+++ b/packages/workers/src/routes/contact.ts
@@ -5,7 +5,6 @@
import { OpenAPIHono, createRoute, z } from '@hono/zod-openapi';
import type { ContentfulStatusCode } from 'hono/utils/http-status';
-import { Client as PostmarkClient } from 'postmark';
import { contactRateLimit } from '@/middleware/rateLimit';
import {
createDomainError,
@@ -15,6 +14,7 @@ import {
} from '@corates/shared';
import type { ValidationErrorCode } from '@corates/shared';
import { escapeHtml } from '@/lib/escapeHtml';
+import { queueEmail } from '@/lib/email-queue';
import type { Env } from '../types';
const contact = new OpenAPIHono<{ Bindings: Env }>({
@@ -172,27 +172,16 @@ contact.openapi(submitContactRoute, async c => {
const env = c.env;
const { name, email, subject, message } = c.req.valid('json');
- // Check for Postmark token
- if (!env.POSTMARK_SERVER_TOKEN) {
- console.error('[Contact] No POSTMARK_SERVER_TOKEN configured');
- const error = createDomainError(SYSTEM_ERRORS.SERVICE_UNAVAILABLE, {
- service: 'email',
- });
- return c.json(error, error.statusCode as ContentfulStatusCode);
- }
-
- const postmark = new PostmarkClient(env.POSTMARK_SERVER_TOKEN);
const contactEmail =
(env as unknown as Record).CONTACT_EMAIL ?? 'contact@corates.org';
try {
- const response = await postmark.sendEmail({
- From: `CoRATES Contact Form <${env.EMAIL_FROM || 'contact@corates.org'}>`,
- To: contactEmail,
- ReplyTo: email,
- Subject: `[Contact Form] ${subject || 'New Inquiry'}`,
- TextBody: `New contact form submission:\n\nName: ${name}\nEmail: ${email}\nSubject: ${subject || 'Not specified'}\n\nMessage:\n${message}`,
- HtmlBody: `
+ await queueEmail(env, {
+ to: contactEmail,
+ subject: `[Contact Form] ${subject || 'New Inquiry'}`,
+ replyTo: email,
+ text: `New contact form submission:\n\nName: ${name}\nEmail: ${email}\nSubject: ${subject || 'Not specified'}\n\nMessage:\n${message}`,
+ html: `
New Contact Form Submission
@@ -216,24 +205,14 @@ contact.openapi(submitContactRoute, async c => {
`,
- MessageStream: 'outbound',
});
- if (response.ErrorCode !== 0) {
- console.error('[Contact] Postmark API error:', JSON.stringify(response));
- const error = createDomainError(SYSTEM_ERRORS.EMAIL_SEND_FAILED, {
- service: 'postmark',
- errorCode: response.ErrorCode,
- });
- return c.json(error, error.statusCode as ContentfulStatusCode);
- }
-
- return c.json({ success: true as const, messageId: response.MessageID });
+ return c.json({ success: true as const, messageId: crypto.randomUUID() });
} catch (err) {
const error = err as Error;
- console.error('[Contact] Exception during send:', error.message, error.stack);
+ console.error('[Contact] Failed to queue email:', error.message);
const domainError = createDomainError(SYSTEM_ERRORS.EMAIL_SEND_FAILED, {
- service: 'postmark',
+ service: 'email',
originalError: error.message,
});
return c.json(domainError, domainError.statusCode as ContentfulStatusCode);
diff --git a/packages/workers/src/routes/email.ts b/packages/workers/src/routes/email.ts
deleted file mode 100644
index 1bd03ee57..000000000
--- a/packages/workers/src/routes/email.ts
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * Email queue routes for Hono
- * Handles email queueing via Durable Object
- */
-
-import { OpenAPIHono, createRoute, z } from '@hono/zod-openapi';
-import type { ContentfulStatusCode } from 'hono/utils/http-status';
-import { emailRateLimit } from '@/middleware/rateLimit';
-import {
- createDomainError,
- createValidationError,
- VALIDATION_ERRORS,
- SYSTEM_ERRORS,
-} from '@corates/shared';
-import type { ValidationErrorCode } from '@corates/shared';
-import type { Env } from '../types';
-
-const emailRoutes = new OpenAPIHono<{ Bindings: Env }>({
- defaultHook: (result, c) => {
- if (!result.success) {
- const firstIssue = result.error.issues[0];
- const field = firstIssue?.path?.[0] || 'input';
- const fieldName = String(field).charAt(0).toUpperCase() + String(field).slice(1);
-
- let errorCode: ValidationErrorCode = VALIDATION_ERRORS.INVALID_INPUT.code;
- let message = firstIssue?.message || 'Validation failed';
-
- const isMissing =
- firstIssue?.code === 'invalid_type' ||
- message.includes('received undefined') ||
- message.includes('Required');
-
- if (isMissing) {
- errorCode = VALIDATION_ERRORS.FIELD_REQUIRED.code;
- message = `${fieldName} is required`;
- } else if (firstIssue?.code === 'too_big') {
- errorCode = VALIDATION_ERRORS.FIELD_TOO_LONG.code;
- } else if (firstIssue?.code === 'too_small') {
- errorCode = VALIDATION_ERRORS.FIELD_TOO_SHORT.code;
- } else if (firstIssue?.code === 'invalid_format') {
- errorCode = VALIDATION_ERRORS.FIELD_INVALID_FORMAT.code;
- }
-
- const error = createValidationError(String(field), errorCode, null);
- error.message = message;
- return c.json(error, 400);
- }
- },
-});
-
-// Apply rate limiting to email endpoints
-emailRoutes.use('*', emailRateLimit);
-
-// Request schema
-const EmailQueueRequestSchema = z
- .object({
- to: z.string().email().openapi({ example: 'user@example.com' }),
- subject: z.string().optional().openapi({ example: 'Welcome to CoRATES' }),
- body: z.string().optional().openapi({ example: 'Email body content' }),
- template: z.string().optional().openapi({ example: 'welcome' }),
- data: z.record(z.string(), z.unknown()).optional(),
- })
- .openapi('EmailQueueRequest');
-
-// Response schemas
-const EmailQueueSuccessSchema = z
- .object({
- success: z.literal(true),
- queued: z.boolean(),
- })
- .openapi('EmailQueueSuccess');
-
-const ErrorSchema = z
- .object({
- code: z.string(),
- message: z.string(),
- statusCode: z.number(),
- field: z.string().optional(),
- details: z.record(z.string(), z.unknown()).optional(),
- })
- .openapi('EmailError');
-
-// Queue email route
-const queueEmailRoute = createRoute({
- method: 'post',
- path: '/queue',
- tags: ['Email'],
- summary: 'Queue email',
- description: 'Enqueue an email to be sent via the email queue Durable Object',
- request: {
- body: {
- content: {
- 'application/json': {
- schema: EmailQueueRequestSchema,
- },
- },
- required: true,
- },
- },
- responses: {
- 200: {
- content: {
- 'application/json': {
- schema: EmailQueueSuccessSchema,
- },
- },
- description: 'Email queued successfully',
- },
- 400: {
- content: { 'application/json': { schema: ErrorSchema } },
- description: 'Validation error',
- },
- 429: {
- content: { 'application/json': { schema: ErrorSchema } },
- description: 'Rate limit exceeded',
- },
- 500: {
- content: { 'application/json': { schema: ErrorSchema } },
- description: 'Email queue error',
- },
- },
-});
-
-// @ts-expect-error OpenAPIHono strict return types don't account for error responses
-emailRoutes.openapi(queueEmailRoute, async c => {
- try {
- const payload = c.req.valid('json');
-
- const id = c.env.EMAIL_QUEUE.idFromName('default');
- const queue = c.env.EMAIL_QUEUE.get(id);
-
- await queue.queueEmail(payload as import('../durable-objects/EmailQueue').EmailPayload);
-
- return c.json({ success: true as const, queued: true });
- } catch (err) {
- const error = err as Error;
- console.error('Email queue handler error:', error);
- const domainError = createDomainError(SYSTEM_ERRORS.EMAIL_SEND_FAILED, {
- operation: 'queue_email',
- originalError: error.message,
- });
- return c.json(domainError, domainError.statusCode as ContentfulStatusCode);
- }
-});
-
-export { emailRoutes };
diff --git a/packages/workers/src/routes/health.ts b/packages/workers/src/routes/health.ts
index 9261f5996..a5e123e3e 100644
--- a/packages/workers/src/routes/health.ts
+++ b/packages/workers/src/routes/health.ts
@@ -18,7 +18,6 @@ const ServiceStatusSchema = z
.object({
USER_SESSION: z.boolean().optional(),
PROJECT_DOC: z.boolean().optional(),
- EMAIL_QUEUE: z.boolean().optional(),
})
.optional(),
})
@@ -121,13 +120,11 @@ health.openapi(healthRoute, async c => {
// Check Durable Objects are available
try {
checks.services.durableObjects = {
- status:
- c.env.USER_SESSION && c.env.PROJECT_DOC && c.env.EMAIL_QUEUE ? 'healthy' : 'unhealthy',
+ status: c.env.USER_SESSION && c.env.PROJECT_DOC ? 'healthy' : 'unhealthy',
type: 'Durable Objects',
bindings: {
USER_SESSION: !!c.env.USER_SESSION,
PROJECT_DOC: !!c.env.PROJECT_DOC,
- EMAIL_QUEUE: !!c.env.EMAIL_QUEUE,
},
};
} catch (error) {
diff --git a/packages/workers/src/routes/members.ts b/packages/workers/src/routes/members.ts
index b4dffdee7..0bcf3e6e3 100644
--- a/packages/workers/src/routes/members.ts
+++ b/packages/workers/src/routes/members.ts
@@ -477,119 +477,33 @@ memberRoutes.openapi(addMemberRoute, async c => {
.where(eq(user.id, authUser.id))
.get();
- try {
- const appUrl = c.env.APP_URL || 'https://corates.org';
- const basepath = (c.env as unknown as Record).BASEPATH ?? '';
- const basepathNormalized = basepath ? basepath.replace(/\/$/, '') : '';
-
- const callbackPath = `${basepathNormalized}/complete-profile?invitation=${token}`;
- const callbackURL = `${appUrl}${callbackPath}`;
-
- const authBaseUrl = c.env.AUTH_BASE_URL || c.env.APP_URL || 'https://corates.org';
- let capturedMagicLinkUrl: string | null = null;
-
- const { betterAuth } = await import('better-auth');
- const { magicLink } = await import('better-auth/plugins');
- const { drizzleAdapter } = await import('better-auth/adapters/drizzle');
- const { drizzle } = await import('drizzle-orm/d1');
- const schema = await import('../db/schema');
- const { MAGIC_LINK_EXPIRY_MINUTES } = await import('../auth/emailTemplates');
-
- const authSecret = c.env.AUTH_SECRET;
- if (!authSecret) {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { key: 'AUTH_SECRET' },
- 'AUTH_SECRET must be configured',
- );
- }
-
- const tempDb = drizzle(c.env.DB, { schema });
- const tempAuth = betterAuth({
- database: drizzleAdapter(tempDb, {
- provider: 'sqlite',
- schema: {
- user: schema.user,
- session: schema.session,
- account: schema.account,
- verification: schema.verification,
- twoFactor: schema.twoFactor,
- },
- }),
- baseURL: authBaseUrl,
- secret: authSecret,
- plugins: [
- magicLink({
- sendMagicLink: async ({ url }: { url: string }) => {
- capturedMagicLinkUrl = url;
- },
- expiresIn: 60 * MAGIC_LINK_EXPIRY_MINUTES,
- }),
- ],
- });
-
- await tempAuth.api.signInMagicLink({
- body: {
- email: email.toLowerCase(),
- callbackURL: callbackURL,
- newUserCallbackURL: callbackURL,
- },
- headers: new Headers(),
- });
-
- if (!capturedMagicLinkUrl) {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { service: 'magic-link' },
- 'Failed to generate magic link URL',
- );
- }
-
- const magicLinkUrl = capturedMagicLinkUrl;
-
- if (c.env.ENVIRONMENT !== 'production') {
- console.log('[Email] Project invitation magic link URL:', magicLinkUrl);
- }
-
- const { getProjectInvitationEmailHtml, getProjectInvitationEmailText } =
- await import('../auth/emailTemplates');
- const { escapeHtml } = await import('../lib/escapeHtml');
+ const projectName = project?.name || 'Unknown Project';
+ const inviterName = inviter?.givenName || inviter?.name || inviter?.email || 'Someone';
- const projectName = project?.name || 'Unknown Project';
- const inviterName = inviter?.givenName || inviter?.name || inviter?.email || 'Someone';
-
- const emailHtml = getProjectInvitationEmailHtml({
- projectName,
- inviterName,
- invitationUrl: magicLinkUrl,
- role,
- });
- const emailText = getProjectInvitationEmailText({
+ let emailQueued = false;
+ try {
+ const { sendInvitationEmail } = await import('../lib/send-invitation-email');
+ const result = await sendInvitationEmail({
+ env: c.env,
+ email,
+ token,
projectName,
inviterName,
- invitationUrl: magicLinkUrl,
role,
});
-
- const safeProjectName = escapeHtml(projectName);
-
- const queueId = c.env.EMAIL_QUEUE.idFromName('default');
- const queue = c.env.EMAIL_QUEUE.get(queueId);
- await queue.queueEmail({
- to: email,
- subject: `You're Invited to "${safeProjectName}" - CoRATES`,
- html: emailHtml,
- text: emailText,
- });
+ emailQueued = result.emailQueued;
} catch (err) {
- console.error('Failed to queue invitation email:', err);
+ console.error('[Invitation] Magic link generation failed:', err);
}
return c.json(
{
success: true as const,
invitation: true as const,
- message: 'Invitation sent successfully',
+ message:
+ emailQueued ?
+ 'Invitation sent successfully'
+ : 'Invitation created but email delivery may be delayed',
email,
},
201,
diff --git a/packages/workers/src/routes/orgs/invitations.ts b/packages/workers/src/routes/orgs/invitations.ts
index 881cfd847..685b528fc 100644
--- a/packages/workers/src/routes/orgs/invitations.ts
+++ b/packages/workers/src/routes/orgs/invitations.ts
@@ -545,117 +545,33 @@ orgInvitationRoutes.openapi(createInvitationRoute, async c => {
.get();
// Send invitation email
- try {
- const envRecord = c.env as unknown as Record;
- const appUrl = (c.env.APP_URL || 'https://corates.org') as string;
- const basepath = (envRecord.BASEPATH as string | undefined) || '';
- const basepathNormalized = basepath ? basepath.replace(/\/$/, '') : '';
- const callbackPath = `${basepathNormalized}/complete-profile?invitation=${token}`;
- const callbackURL = `${appUrl}${callbackPath}`;
-
- const authBaseUrl = (c.env.AUTH_BASE_URL || c.env.APP_URL || 'https://corates.org') as string;
- let capturedMagicLinkUrl: string | null = null;
-
- const { betterAuth } = await import('better-auth');
- const { magicLink } = await import('better-auth/plugins');
- const { drizzleAdapter } = await import('better-auth/adapters/drizzle');
- const { drizzle } = await import('drizzle-orm/d1');
- const schema = await import('@/db/schema.js');
- const { MAGIC_LINK_EXPIRY_MINUTES } = await import('@/auth/emailTemplates.js');
-
- const authSecret = c.env.AUTH_SECRET || (envRecord.SECRET as string | undefined);
- if (!authSecret) {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { key: 'AUTH_SECRET' },
- 'AUTH_SECRET must be configured',
- );
- }
-
- const tempDb = drizzle(c.env.DB, { schema });
- const tempAuth = betterAuth({
- database: drizzleAdapter(tempDb, {
- provider: 'sqlite',
- schema: {
- user: schema.user,
- session: schema.session,
- account: schema.account,
- verification: schema.verification,
- twoFactor: schema.twoFactor,
- },
- }),
- baseURL: authBaseUrl,
- secret: authSecret,
- plugins: [
- magicLink({
- sendMagicLink: async ({ url }) => {
- capturedMagicLinkUrl = url;
- },
- expiresIn: 60 * MAGIC_LINK_EXPIRY_MINUTES,
- }),
- ],
- });
-
- await tempAuth.api.signInMagicLink({
- body: {
- email: email.toLowerCase(),
- callbackURL: callbackURL,
- newUserCallbackURL: callbackURL,
- },
- headers: new Headers(),
- });
-
- if (!capturedMagicLinkUrl) {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { service: 'magic-link' },
- 'Failed to generate magic link URL',
- );
- }
-
- if (c.env.ENVIRONMENT !== 'production') {
- console.log('[Email] Project invitation magic link URL:', capturedMagicLinkUrl);
- }
-
- const { getProjectInvitationEmailHtml, getProjectInvitationEmailText } =
- await import('@/auth/emailTemplates.js');
- const { escapeHtml } = await import('@/lib/escapeHtml.js');
+ const projectName = project?.name || 'Unknown Project';
+ const inviterName = inviter?.givenName || inviter?.name || inviter?.email || 'Someone';
- const projectName = project?.name || 'Unknown Project';
- const inviterName = inviter?.givenName || inviter?.name || inviter?.email || 'Someone';
-
- const emailHtml = getProjectInvitationEmailHtml({
- projectName,
- inviterName,
- invitationUrl: capturedMagicLinkUrl,
- role,
- });
- const emailText = getProjectInvitationEmailText({
+ let emailQueued = false;
+ try {
+ const { sendInvitationEmail } = await import('@/lib/send-invitation-email.js');
+ const result = await sendInvitationEmail({
+ env: c.env,
+ email,
+ token,
projectName,
inviterName,
- invitationUrl: capturedMagicLinkUrl,
role,
});
-
- const safeProjectName = escapeHtml(projectName);
-
- const queueId = c.env.EMAIL_QUEUE.idFromName('default');
- const queue = c.env.EMAIL_QUEUE.get(queueId);
- await queue.queueEmail({
- to: email,
- subject: `You're Invited to "${safeProjectName}" - CoRATES`,
- html: emailHtml,
- text: emailText,
- });
+ emailQueued = result.emailQueued;
} catch (err) {
- console.error('Failed to queue invitation email:', err);
+ console.error('[Invitation] Magic link generation failed:', err);
}
return c.json(
{
success: true,
invitationId,
- message: 'Invitation sent successfully',
+ message:
+ emailQueued ?
+ 'Invitation sent successfully'
+ : 'Invitation created but email delivery may be delayed',
email,
},
201,
diff --git a/packages/workers/src/routes/orgs/members.ts b/packages/workers/src/routes/orgs/members.ts
index beaf385bd..26083bf80 100644
--- a/packages/workers/src/routes/orgs/members.ts
+++ b/packages/workers/src/routes/orgs/members.ts
@@ -767,117 +767,33 @@ async function handleInvitation(
.get();
// Send invitation email
- try {
- const appUrl = c.env.APP_URL || 'http://localhost:8787';
- const envRecord = c.env as unknown as Record;
- const basepath = envRecord.BASEPATH as string | undefined;
- const basepathNormalized = basepath ? basepath.replace(/\/$/, '') : '';
- const callbackPath = `${basepathNormalized}/complete-profile?invitation=${token}`;
- const callbackURL = `${appUrl}${callbackPath}`;
-
- const authBaseUrl = c.env.AUTH_BASE_URL || appUrl;
- let capturedMagicLinkUrl: string | null = null;
-
- const { betterAuth } = await import('better-auth');
- const { magicLink } = await import('better-auth/plugins');
- const { drizzleAdapter } = await import('better-auth/adapters/drizzle');
- const { drizzle } = await import('drizzle-orm/d1');
- const schema = await import('@/db/schema.js');
- const { MAGIC_LINK_EXPIRY_MINUTES } = await import('@/auth/emailTemplates.js');
-
- const authSecret = c.env.AUTH_SECRET || (envRecord.SECRET as string | undefined);
- if (!authSecret) {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { key: 'AUTH_SECRET' },
- 'AUTH_SECRET must be configured',
- );
- }
-
- const tempDb = drizzle(c.env.DB, { schema });
- const tempAuth = betterAuth({
- database: drizzleAdapter(tempDb, {
- provider: 'sqlite',
- schema: {
- user: schema.user,
- session: schema.session,
- account: schema.account,
- verification: schema.verification,
- twoFactor: schema.twoFactor,
- },
- }),
- baseURL: authBaseUrl,
- secret: authSecret,
- plugins: [
- magicLink({
- sendMagicLink: async ({ url }) => {
- capturedMagicLinkUrl = url;
- },
- expiresIn: 60 * MAGIC_LINK_EXPIRY_MINUTES,
- }),
- ],
- });
-
- await tempAuth.api.signInMagicLink({
- body: {
- email: email.toLowerCase(),
- callbackURL: callbackURL,
- newUserCallbackURL: callbackURL,
- },
- headers: new Headers(),
- });
-
- if (!capturedMagicLinkUrl) {
- throw createDomainError(
- SYSTEM_ERRORS.INTERNAL_ERROR,
- { service: 'magic-link' },
- 'Failed to generate magic link URL',
- );
- }
-
- if (c.env.ENVIRONMENT !== 'production') {
- console.log('[Email] Project invitation magic link URL:', capturedMagicLinkUrl);
- }
+ const projectName = project?.name || 'Unknown Project';
+ const inviterName = inviter?.givenName || inviter?.name || inviter?.email || 'Someone';
- const { getProjectInvitationEmailHtml, getProjectInvitationEmailText } =
- await import('@/auth/emailTemplates.js');
- const { escapeHtml } = await import('@/lib/escapeHtml.js');
-
- const projectName = project?.name || 'Unknown Project';
- const inviterName = inviter?.givenName || inviter?.name || inviter?.email || 'Someone';
-
- const emailHtml = getProjectInvitationEmailHtml({
- projectName,
- inviterName,
- invitationUrl: capturedMagicLinkUrl,
- role,
- });
- const emailText = getProjectInvitationEmailText({
+ let emailQueued = false;
+ try {
+ const { sendInvitationEmail } = await import('@/lib/send-invitation-email.js');
+ const result = await sendInvitationEmail({
+ env: c.env,
+ email,
+ token,
projectName,
inviterName,
- invitationUrl: capturedMagicLinkUrl,
role,
});
-
- const safeProjectName = escapeHtml(projectName);
-
- const queueId = c.env.EMAIL_QUEUE.idFromName('default');
- const queue = c.env.EMAIL_QUEUE.get(queueId);
- await queue.queueEmail({
- to: email,
- subject: `You're Invited to "${safeProjectName}" - CoRATES`,
- html: emailHtml,
- text: emailText,
- });
+ emailQueued = result.emailQueued;
} catch (err) {
- console.error('Failed to queue invitation email:', err);
+ console.error('[Invitation] Magic link generation failed:', err);
}
return c.json(
{
success: true,
invitation: true,
- message: 'Invitation sent successfully',
+ message:
+ emailQueued ?
+ 'Invitation sent successfully'
+ : 'Invitation created but email delivery may be delayed',
email,
},
201,
diff --git a/packages/workers/wrangler.jsonc b/packages/workers/wrangler.jsonc
index e6793fa5c..40cd17422 100644
--- a/packages/workers/wrangler.jsonc
+++ b/packages/workers/wrangler.jsonc
@@ -18,10 +18,13 @@
{
"tag": "v2",
"new_sqlite_classes": ["EmailQueue"]
+ },
+ {
+ "tag": "v3",
+ "deleted_classes": ["EmailQueue"]
}
],
- // Durable Objects
"durable_objects": {
"bindings": [
{
@@ -31,10 +34,24 @@
{
"name": "PROJECT_DOC",
"class_name": "ProjectDoc"
- },
+ }
+ ]
+ },
+
+ // Cloudflare Queues for email delivery
+ "queues": {
+ "producers": [
{
- "name": "EMAIL_QUEUE",
- "class_name": "EmailQueue"
+ "queue": "corates-emails",
+ "binding": "EMAIL_QUEUE"
+ }
+ ],
+ "consumers": [
+ {
+ "queue": "corates-emails",
+ "max_batch_size": 10,
+ "max_retries": 3,
+ "dead_letter_queue": "corates-emails-dlq"
}
]
},
@@ -158,10 +175,6 @@
{
"name": "PROJECT_DOC",
"class_name": "ProjectDoc"
- },
- {
- "name": "EMAIL_QUEUE",
- "class_name": "EmailQueue"
}
]
},
@@ -173,8 +186,29 @@
{
"tag": "v2",
"new_sqlite_classes": ["EmailQueue"]
+ },
+ {
+ "tag": "v3",
+ "deleted_classes": ["EmailQueue"]
}
- ]
+ ],
+ // Production email queue
+ "queues": {
+ "producers": [
+ {
+ "queue": "corates-emails-prod",
+ "binding": "EMAIL_QUEUE"
+ }
+ ],
+ "consumers": [
+ {
+ "queue": "corates-emails-prod",
+ "max_batch_size": 10,
+ "max_retries": 3,
+ "dead_letter_queue": "corates-emails-prod-dlq"
+ }
+ ]
+ }
}
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e67f49b40..d70829757 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,11 +9,11 @@ importers:
.:
devDependencies:
'@eslint/js':
- specifier: ^9.39.3
- version: 9.39.3
+ specifier: ^9.39.4
+ version: 9.39.4
'@typescript-eslint/parser':
specifier: ^8.56.1
- version: 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
+ version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
agent-browser:
specifier: ^0.4.4
version: 0.4.4
@@ -24,20 +24,20 @@ importers:
specifier: ^17.3.1
version: 17.3.1
eslint:
- specifier: ^9.39.3
- version: 9.39.3(jiti@2.6.1)
+ specifier: ^9.39.4
+ version: 9.39.4(jiti@2.6.1)
eslint-plugin-drizzle:
specifier: ^0.2.3
- version: 0.2.3(eslint@9.39.3(jiti@2.6.1))
+ version: 0.2.3(eslint@9.39.4(jiti@2.6.1))
eslint-plugin-solid:
specifier: ^0.14.5
- version: 0.14.5(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
+ version: 0.14.5(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
eslint-plugin-sonarjs:
specifier: ^3.0.7
- version: 3.0.7(eslint@9.39.3(jiti@2.6.1))
+ version: 3.0.7(eslint@9.39.4(jiti@2.6.1))
eslint-plugin-unicorn:
specifier: ^62.0.0
- version: 62.0.0(eslint@9.39.3(jiti@2.6.1))
+ version: 62.0.0(eslint@9.39.4(jiti@2.6.1))
prettier:
specifier: ^3.8.1
version: 3.8.1
@@ -45,11 +45,11 @@ importers:
specifier: ^0.7.2
version: 0.7.2(prettier@3.8.1)
turbo:
- specifier: ^2.8.10
- version: 2.8.10
+ specifier: ^2.8.14
+ version: 2.8.14
wrangler:
- specifier: ^4.67.1
- version: 4.67.1(@cloudflare/workers-types@4.20260302.0)
+ specifier: ^4.71.0
+ version: 4.71.0(@cloudflare/workers-types@4.20260307.1)
packages/docs:
devDependencies:
@@ -58,10 +58,10 @@ importers:
version: 11.12.3
vitepress:
specifier: ^1.6.4
- version: 1.6.4(@algolia/client-search@5.49.0)(@types/node@25.3.0)(axios@1.13.5)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3)
+ version: 1.6.4(@algolia/client-search@5.49.1)(@types/node@25.3.5)(axios@1.13.6)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3)
vitepress-plugin-mermaid:
specifier: ^2.0.17
- version: 2.0.17(mermaid@11.12.3)(vitepress@1.6.4(@algolia/client-search@5.49.0)(@types/node@25.3.0)(axios@1.13.5)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3))
+ version: 2.0.17(mermaid@11.12.3)(vitepress@1.6.4(@algolia/client-search@5.49.1)(@types/node@25.3.5)(axios@1.13.6)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3))
packages/landing:
dependencies:
@@ -75,11 +75,11 @@ importers:
specifier: ^0.15.4
version: 0.15.4(solid-js@1.9.11)
'@solidjs/start':
- specifier: ^1.3.0
- version: 1.3.0(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ specifier: ^1.3.2
+ version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
countup.js:
- specifier: ^2.9.0
- version: 2.9.0
+ specifier: ^2.10.0
+ version: 2.10.0
solid-icons:
specifier: ^1.2.0
version: 1.2.0(solid-js@1.9.11)
@@ -88,11 +88,11 @@ importers:
version: 1.9.11
vinxi:
specifier: ^0.5.11
- version: 0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 0.5.11(8957e57c08f05dd579cfce7ceebb1280)
devDependencies:
'@tailwindcss/vite':
specifier: ^4.2.1
- version: 4.2.1(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.2.1(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
tailwindcss:
specifier: ^4.2.1
version: 4.2.1
@@ -100,15 +100,15 @@ importers:
packages/mcp:
dependencies:
'@modelcontextprotocol/sdk':
- specifier: ^1.26.0
- version: 1.26.0(zod@4.3.6)
+ specifier: ^1.27.1
+ version: 1.27.1(zod@4.3.6)
zod:
specifier: ^4.3.6
version: 4.3.6
devDependencies:
'@types/node':
- specifier: ^25.3.0
- version: 25.3.0
+ specifier: ^25.3.5
+ version: 25.3.5
tsx:
specifier: ^4.21.0
version: 4.21.0
@@ -117,13 +117,13 @@ importers:
version: 5.9.3
vitest:
specifier: ^4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
packages/mcp-memory:
dependencies:
'@modelcontextprotocol/sdk':
- specifier: ^1.26.0
- version: 1.26.0(zod@4.3.6)
+ specifier: ^1.27.1
+ version: 1.27.1(zod@4.3.6)
'@xenova/transformers':
specifier: ^2.17.2
version: 2.17.2
@@ -138,8 +138,8 @@ importers:
specifier: ^7.6.13
version: 7.6.13
'@types/node':
- specifier: ^25.3.0
- version: 25.3.0
+ specifier: ^25.3.5
+ version: 25.3.5
tsx:
specifier: ^4.21.0
version: 4.21.0
@@ -148,7 +148,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
packages/shared:
devDependencies:
@@ -157,7 +157,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
packages/stripe-dev:
devDependencies:
@@ -168,98 +168,98 @@ importers:
packages/web:
dependencies:
'@ark-ui/solid':
- specifier: ^5.32.0
- version: 5.32.0(solid-js@1.9.11)
+ specifier: ^5.34.1
+ version: 5.34.1(solid-js@1.9.11)
'@corates/shared':
specifier: workspace:*
version: link:../shared
'@embedpdf/core':
- specifier: ^2.6.2
- version: 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/engines':
- specifier: ^2.6.2
- version: 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/models':
- specifier: ^2.6.2
- version: 2.6.2
+ specifier: ^2.8.0
+ version: 2.8.0
'@embedpdf/pdfium':
- specifier: ^2.6.2
- version: 2.6.2
+ specifier: ^2.8.0
+ version: 2.8.0
'@embedpdf/plugin-annotation':
- specifier: ^2.6.2
- version: 2.6.2(ad1f116069e2875cbd7302042aaf58d3)
+ specifier: ^2.8.0
+ version: 2.8.0(a402eff97e44b8a035d7f545c7158135)
'@embedpdf/plugin-capture':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-render@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-render@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-commands':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-document-manager':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-export':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-fullscreen':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-history':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-i18n':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-interaction-manager':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-pan':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-print':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-redaction':
- specifier: ^2.6.2
- version: 2.6.2(d911e0a70829346636f03fe48bccf2b8)
+ specifier: ^2.8.0
+ version: 2.8.0(4de63f8d21781097e5d675cdbaf73f71)
'@embedpdf/plugin-render':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-rotate':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-scroll':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-search':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-selection':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-spread':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-thumbnail':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-render@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-render@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-tiling':
- specifier: ^2.6.2
- version: 2.6.2(60e3722d1129fa8e515c6cab2323c1cf)
+ specifier: ^2.8.0
+ version: 2.8.0(a2178b18b2fd24a91650f4cf7697ee26)
'@embedpdf/plugin-ui':
- specifier: ^2.6.2
- version: 2.6.2(60e3722d1129fa8e515c6cab2323c1cf)
+ specifier: ^2.8.0
+ version: 2.8.0(a2178b18b2fd24a91650f4cf7697ee26)
'@embedpdf/plugin-view-manager':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-viewport':
- specifier: ^2.6.2
- version: 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^2.8.0
+ version: 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
'@embedpdf/plugin-zoom':
- specifier: ^2.6.2
- version: 2.6.2(b3109c7b9dc2ece1b638dcaeb87738a9)
+ specifier: ^2.8.0
+ version: 2.8.0(8fba2ba33b2b9290d7f6d6cffabe8012)
'@sentry/solid':
- specifier: ^10.39.0
- version: 10.39.0(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11)
+ specifier: ^10.42.0
+ version: 10.42.0(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11)
'@solid-primitives/scheduled':
specifier: ^1.5.3
version: 1.5.3(solid-js@1.9.11)
@@ -273,8 +273,8 @@ importers:
specifier: ^8.21.3
version: 8.21.3(solid-js@1.9.11)
better-auth:
- specifier: ^1.4.19
- version: 1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@4.0.18)(vue@3.5.28(typescript@5.9.3))
+ specifier: ^1.5.4
+ version: 1.5.4(df0661f5bde84186cc7a939741e06321)
chart.js:
specifier: ^4.5.1
version: 4.5.1
@@ -285,8 +285,8 @@ importers:
specifier: ^2.1.1
version: 2.1.1
countup.js:
- specifier: ^2.9.0
- version: 2.9.0
+ specifier: ^2.10.0
+ version: 2.10.0
d3:
specifier: ^7.9.0
version: 7.9.0
@@ -320,13 +320,13 @@ importers:
devDependencies:
'@preact/preset-vite':
specifier: ^2.10.3
- version: 2.10.3(@babel/core@7.29.0)(preact@10.28.4)(rollup@4.59.0)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ version: 2.10.3(@babel/core@7.29.0)(preact@10.28.4)(rollup@4.59.0)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
'@solidjs/testing-library':
specifier: ^0.8.10
version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11)
'@tailwindcss/vite':
specifier: ^4.2.1
- version: 4.2.1(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.2.1(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
'@tanstack/solid-query-devtools':
specifier: ^5.91.3
version: 5.91.3(@tanstack/solid-query@5.90.23(solid-js@1.9.11))(solid-js@1.9.11)
@@ -346,11 +346,11 @@ importers:
specifier: ^3.8.1
version: 3.8.1
puppeteer:
- specifier: ^24.37.5
- version: 24.37.5(typescript@5.9.3)
+ specifier: ^24.38.0
+ version: 24.38.0(typescript@5.9.3)
rollup-plugin-visualizer:
- specifier: ^6.0.5
- version: 6.0.5(rolldown@1.0.0-beta.51)(rollup@4.59.0)
+ specifier: ^6.0.11
+ version: 6.0.11(rolldown@1.0.0-beta.51)(rollup@4.59.0)
source-map-explorer:
specifier: ^2.5.3
version: 2.5.3
@@ -365,40 +365,40 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
vite-plugin-solid:
specifier: ^2.11.10
- version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
vitest:
specifier: ^4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
packages/workers:
dependencies:
'@better-auth/stripe':
- specifier: ^1.4.19
- version: 1.4.19(@better-auth/core@1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))(better-auth@1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3)))(better-call@1.1.8(zod@4.3.6))(stripe@20.3.1(@types/node@25.3.0))
+ specifier: ^1.5.4
+ version: 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(better-auth@1.5.4(61d6557326f155d0f9393fbb3d05c0cd))(better-call@1.3.2(zod@4.3.6))(stripe@20.4.1(@types/node@25.3.5))
'@cloudflare/workers-types':
- specifier: ^4.20260302.0
- version: 4.20260302.0
+ specifier: ^4.20260307.1
+ version: 4.20260307.1
'@corates/shared':
specifier: workspace:*
version: link:../shared
'@hono/zod-openapi':
specifier: ^1.2.2
- version: 1.2.2(hono@4.12.2)(zod@4.3.6)
+ version: 1.2.2(hono@4.12.5)(zod@4.3.6)
'@sentry/cloudflare':
- specifier: ^10.39.0
- version: 10.39.0(@cloudflare/workers-types@4.20260302.0)
+ specifier: ^10.42.0
+ version: 10.42.0(@cloudflare/workers-types@4.20260307.1)
better-auth:
- specifier: ^1.4.19
- version: 1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3))
+ specifier: ^1.5.4
+ version: 1.5.4(61d6557326f155d0f9393fbb3d05c0cd)
drizzle-orm:
specifier: ^0.45.1
- version: 0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)
+ version: 0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
hono:
- specifier: ^4.12.2
- version: 4.12.2
+ specifier: ^4.12.5
+ version: 4.12.5
lib0:
specifier: ^0.2.117
version: 0.2.117
@@ -406,8 +406,8 @@ importers:
specifier: ^4.0.7
version: 4.0.7
stripe:
- specifier: ^20.3.1
- version: 20.3.1(@types/node@25.3.0)
+ specifier: ^20.4.1
+ version: 20.4.1(@types/node@25.3.5)
y-protocols:
specifier: ^1.0.7
version: 1.0.7(yjs@13.6.29)
@@ -420,7 +420,7 @@ importers:
devDependencies:
'@cloudflare/vitest-pool-workers':
specifier: ^0.11.1
- version: 0.11.1(@cloudflare/workers-types@4.20260302.0)(@vitest/runner@4.0.18)(@vitest/snapshot@4.0.18)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ version: 0.11.1(@cloudflare/workers-types@4.20260307.1)(@vitest/runner@4.0.18)(@vitest/snapshot@4.0.18)(vitest@3.2.0(@types/node@25.3.5)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
better-sqlite3:
specifier: ^12.6.2
version: 12.6.2
@@ -432,16 +432,16 @@ importers:
version: 0.31.9
localflare:
specifier: ^0.3.1
- version: 0.3.1
+ version: 0.3.1(@types/react@19.2.14)
typescript:
specifier: ^5.9.3
version: 5.9.3
vitest:
specifier: 3.2.0
- version: 3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.0(@types/node@25.3.5)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
wrangler:
- specifier: ^4.67.1
- version: 4.67.1(@cloudflare/workers-types@4.20260302.0)
+ specifier: ^4.71.0
+ version: 4.71.0(@cloudflare/workers-types@4.20260307.1)
packages:
@@ -455,8 +455,8 @@ packages:
resolution: {integrity: sha512-3NX/MpTdroi0aKz134A6RC2Gb2iXVECN4QaAXnvCIxxIm3C3AVB1mkUe8NaaiyvOpDfsrqWhYtj+Q6a62RrTsw==}
engines: {node: '>=18'}
- '@algolia/abtesting@1.15.0':
- resolution: {integrity: sha512-D1QZ8dQx5zC9yrxNao9ER9bojmmzUdL1i2P9waIRiwnZ5fI26YswcCd6VHR/Q4W3PASfVf2My4YQ2FhGGDewTQ==}
+ '@algolia/abtesting@1.15.1':
+ resolution: {integrity: sha512-2yuIC48rUuHGhU1U5qJ9kJHaxYpJ0jpDHJVI5ekOxSMYXlH4+HP+pA31G820lsAznfmu2nzDV7n5RO44zIY1zw==}
engines: {node: '>= 14.0.0'}
'@algolia/autocomplete-core@1.17.7':
@@ -479,63 +479,63 @@ packages:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
- '@algolia/client-abtesting@5.49.0':
- resolution: {integrity: sha512-Q1MSRhh4Du9WeLIl1S9O+BDUMaL01uuQtmzCyEzOBtu1xBDr3wvqrTJtfEceEkA5/Nw1BdGSHa6sDT3xTAF90A==}
+ '@algolia/client-abtesting@5.49.1':
+ resolution: {integrity: sha512-h6M7HzPin+45/l09q0r2dYmocSSt2MMGOOk5c4O5K/bBBlEwf1BKfN6z+iX4b8WXcQQhf7rgQwC52kBZJt/ZZw==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-analytics@5.49.0':
- resolution: {integrity: sha512-v50elhC80oyQw+8o8BwM+VvPuOo36+3W8VCfR4hsHoafQtGbMtP63U5eNcUydbVsM0py3JLoBaL1yKBK4L01sg==}
+ '@algolia/client-analytics@5.49.1':
+ resolution: {integrity: sha512-048T9/Z8OeLmTk8h76QUqaNFp7Rq2VgS2Zm6Y2tNMYGQ1uNuzePY/udB5l5krlXll7ZGflyCjFvRiOtlPZpE9g==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-common@5.49.0':
- resolution: {integrity: sha512-BDmVDtpDvymfLE5YQ2cPnfWJUVTDJqwpJa03Fsb7yJFJmbeKsUOGsnRkYsTbdzf0FfcvyvBB5zdcbrAIL249bg==}
+ '@algolia/client-common@5.49.1':
+ resolution: {integrity: sha512-vp5/a9ikqvf3mn9QvHN8PRekn8hW34aV9eX+O0J5mKPZXeA6Pd5OQEh2ZWf7gJY6yyfTlLp5LMFzQUAU+Fpqpg==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-insights@5.49.0':
- resolution: {integrity: sha512-lDCXsnZDx7zQ5GzSi1EL3l07EbksjrdpMgixFRCdi2QqeBe42HIQJfPPqdWtwrAXjORRopsPx2z+gGYJP/79Uw==}
+ '@algolia/client-insights@5.49.1':
+ resolution: {integrity: sha512-B6N7PgkvYrul3bntTz/l6uXnhQ2bvP+M7NqTcayh681tSqPaA5cJCUBp/vrP7vpPRpej4Eeyx2qz5p0tE/2N2g==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-personalization@5.49.0':
- resolution: {integrity: sha512-5k/KB+DsnesNKvMUEwTKSzExOf5zYbiPg7DVO7g1Y/+bhMb3wmxp9RFwfqwPfmoRTjptqvwhR6a0593tWVkmAw==}
+ '@algolia/client-personalization@5.49.1':
+ resolution: {integrity: sha512-v+4DN+lkYfBd01Hbnb9ZrCHe7l+mvihyx218INRX/kaCXROIWUDIT1cs3urQxfE7kXBFnLsqYeOflQALv/gA5w==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-query-suggestions@5.49.0':
- resolution: {integrity: sha512-pjHNcrdjn7p3RQ5Ql1Baiwfdn9bkS+z4gqONJJP8kuZFqYP8Olthy4G7fl5bCB29UjdUj5EWlaElQKCtPluCtQ==}
+ '@algolia/client-query-suggestions@5.49.1':
+ resolution: {integrity: sha512-Un11cab6ZCv0W+Jiak8UktGIqoa4+gSNgEZNfG8m8eTsXGqwIEr370H3Rqwj87zeNSlFpH2BslMXJ/cLNS1qtg==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-search@5.49.0':
- resolution: {integrity: sha512-uGv2P3lcviuaZy8ZOAyN60cZdhOVyjXwaDC27a1qdp3Pb5Azn+lLSJwkHU4TNRpphHmIei9HZuUxwQroujdPjw==}
+ '@algolia/client-search@5.49.1':
+ resolution: {integrity: sha512-Nt9hri7nbOo0RipAsGjIssHkpLMHHN/P7QqENywAq5TLsoYDzUyJGny8FEiD/9KJUxtGH8blGpMedilI6kK3rA==}
engines: {node: '>= 14.0.0'}
- '@algolia/ingestion@1.49.0':
- resolution: {integrity: sha512-sH10mftYlmvfGbvAgTtHYbCIstmNUdiAkX//0NAyBcJRB6NnZmNsdLxdFGbE8ZqlGXzoe0zcUIau+DxKpXtqCw==}
+ '@algolia/ingestion@1.49.1':
+ resolution: {integrity: sha512-b5hUXwDqje0Y4CpU6VL481DXgPgxpTD5sYMnfQTHKgUispGnaCLCm2/T9WbJo1YNUbX3iHtYDArp804eD6CmRQ==}
engines: {node: '>= 14.0.0'}
- '@algolia/monitoring@1.49.0':
- resolution: {integrity: sha512-RqhGcVVxLpK+lA0GZKywlQIXsI704flc12nv/hOdrwiuk/Uyhxs46KLM4ngip7wutU+7t0PYZWiVayrqBPN/ZQ==}
+ '@algolia/monitoring@1.49.1':
+ resolution: {integrity: sha512-bvrXwZ0WsL3rN6Q4m4QqxsXFCo6WAew7sAdrpMQMK4Efn4/W920r9ptOuckejOSSvyLr9pAWgC5rsHhR2FYuYw==}
engines: {node: '>= 14.0.0'}
- '@algolia/recommend@5.49.0':
- resolution: {integrity: sha512-kg8omGRvmIPhhqtUqSIpS3regFKWuoWh3WqyUhGk27N4T7q8I++8TsDYsV8vK7oBEzw706m2vUBtN5fw2fDjmw==}
+ '@algolia/recommend@5.49.1':
+ resolution: {integrity: sha512-h2yz3AGeGkQwNgbLmoe3bxYs8fac4An1CprKTypYyTU/k3Q+9FbIvJ8aS1DoBKaTjSRZVoyQS7SZQio6GaHbZw==}
engines: {node: '>= 14.0.0'}
- '@algolia/requester-browser-xhr@5.49.0':
- resolution: {integrity: sha512-BaZ6NTI9VdSbDcsMucdKhTuFFxv6B+3dAZZBozX12fKopYsELh7dBLfZwm8evDCIicmNjIjobi4VNnNshrCSuw==}
+ '@algolia/requester-browser-xhr@5.49.1':
+ resolution: {integrity: sha512-2UPyRuUR/qpqSqH8mxFV5uBZWEpxhGPHLlx9Xf6OVxr79XO2ctzZQAhsmTZ6X22x+N8MBWpB9UEky7YU2HGFgA==}
engines: {node: '>= 14.0.0'}
- '@algolia/requester-fetch@5.49.0':
- resolution: {integrity: sha512-2nxISxS5xO5DLAj6QzMImgJv6CqpZhJVkhcTFULESR/k4IpbkJTEHmViVTxw9MlrU8B5GfwHevFd7vKL3a7MXQ==}
+ '@algolia/requester-fetch@5.49.1':
+ resolution: {integrity: sha512-N+xlE4lN+wpuT+4vhNEwPVlrfN+DWAZmSX9SYhbz986Oq8AMsqdntOqUyiOXVxYsQtfLwmiej24vbvJGYv1Qtw==}
engines: {node: '>= 14.0.0'}
- '@algolia/requester-node-http@5.49.0':
- resolution: {integrity: sha512-S/B94C6piEUXGpN3y5ysmNKMEqdfNVAXYY+FxivEAV5IGJjbEuLZfT8zPPZUWGw9vh6lgP80Hye2G5aVBNIa8Q==}
+ '@algolia/requester-node-http@5.49.1':
+ resolution: {integrity: sha512-zA5bkUOB5PPtTr182DJmajCiizHp0rCJQ0Chf96zNFvkdESKYlDeYA3tQ7r2oyHbu/8DiohAQ5PZ85edctzbXA==}
engines: {node: '>= 14.0.0'}
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
- '@ark-ui/solid@5.32.0':
- resolution: {integrity: sha512-QZ1CnswqYuOuVZ1nqwS54NFETe/tMYLEhXUOf91tX60x7xoj0ruNxdH227UWqPtj79xFc2YD84U/blTpHCQPeQ==}
+ '@ark-ui/solid@5.34.1':
+ resolution: {integrity: sha512-DMTAVtmibwcKC9B3iMhQfXfTvCsQYs43qTX2VZPArVsjQGNZlDXK3+oPmaw1FPoVBD5csi1bjGNkwruhbh1gAA==}
peerDependencies:
solid-js: '>=1.6.0'
@@ -548,8 +548,8 @@ packages:
'@asamuzakjp/nwsapi@2.3.9':
resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
- '@asteasolutions/zod-to-openapi@8.4.1':
- resolution: {integrity: sha512-WmJUsFINbnWxGvHSd16aOjgKf+5GsfdxruO2YDLcgplsidakCauik1lhlk83YDH06265Yd1XtUyF24o09uygpw==}
+ '@asteasolutions/zod-to-openapi@8.4.3':
+ resolution: {integrity: sha512-lwfMTN7kDbFDwMniYZUebiGGHxVGBw9ZSI4IBYjm6Ey22Kd5z/fsQb2k+Okr8WMbCCC553vi/ZM9utl5/XcvuQ==}
peerDependencies:
zod: ^4.0.0
@@ -664,31 +664,70 @@ packages:
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
engines: {node: '>=6.9.0'}
- '@better-auth/core@1.4.19':
- resolution: {integrity: sha512-uADLHG1jc5BnEJi7f6ijUN5DmPPRSj++7m/G19z3UqA3MVCo4Y4t1MMa4IIxLCqGDFv22drdfxescgW+HnIowA==}
+ '@better-auth/core@1.5.4':
+ resolution: {integrity: sha512-k5AdwPRQETZn0vdB60EB9CDxxfllpJXKqVxTjyXIUSRz7delNGlU0cR/iRP3VfVJwvYR1NbekphBDNo+KGoEzQ==}
peerDependencies:
- '@better-auth/utils': 0.3.0
+ '@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
- better-call: 1.1.8
+ '@cloudflare/workers-types': '>=4'
+ better-call: 1.3.2
jose: ^6.1.0
kysely: ^0.28.5
nanostores: ^1.0.1
+ peerDependenciesMeta:
+ '@cloudflare/workers-types':
+ optional: true
+
+ '@better-auth/drizzle-adapter@1.5.4':
+ resolution: {integrity: sha512-4M4nMAWrDd3TmpV6dONkJjybBVKRZghe5Oj0NNyDEoXubxastQdO7Sb5B54I1rTx5yoMgsqaB+kbJnu/9UgjQg==}
+ peerDependencies:
+ '@better-auth/core': 1.5.4
+ '@better-auth/utils': ^0.3.0
+ drizzle-orm: '>=0.41.0'
+
+ '@better-auth/kysely-adapter@1.5.4':
+ resolution: {integrity: sha512-DPww7rIfz6Ed7dZlJSW9xMQ42VKaJLB5Cs+pPqd+UHKRyighKjf3VgvMIcAdFPc4olQ0qRHo3+ZJhFlBCxRhxA==}
+ peerDependencies:
+ '@better-auth/core': 1.5.4
+ '@better-auth/utils': ^0.3.0
+ kysely: ^0.27.0 || ^0.28.0
+
+ '@better-auth/memory-adapter@1.5.4':
+ resolution: {integrity: sha512-iiWYut9rbQqiAsgRBtj6+nxanwjapxRgpIJbiS2o81h7b9iclE0AiDA0Foes590gdFQvskNauZcCpuF8ytxthg==}
+ peerDependencies:
+ '@better-auth/core': 1.5.4
+ '@better-auth/utils': ^0.3.0
- '@better-auth/stripe@1.4.19':
- resolution: {integrity: sha512-LkU5s6st3jj61Pyl2bGhkNSkJZZAtxD+RuzXep9dGwlgDTxs36nZ/LMWgjVpZvsI2iSZmsPolRaHaLe0Yk2Ayw==}
+ '@better-auth/mongo-adapter@1.5.4':
+ resolution: {integrity: sha512-ArzJN5Obk6i6+vLK1HpPzLIcsjxZYXPPUvxVU8eyU5HyoUT2MlswWfPQ8UJAKPn0iq/T4PVp/wZcQMhWk1tuNA==}
peerDependencies:
- '@better-auth/core': 1.4.19
- better-auth: 1.4.19
- better-call: 1.1.8
+ '@better-auth/core': 1.5.4
+ '@better-auth/utils': ^0.3.0
+ mongodb: ^6.0.0 || ^7.0.0
+
+ '@better-auth/prisma-adapter@1.5.4':
+ resolution: {integrity: sha512-ZQTbcBopw/ezjjbNFsfR3CRp0QciC4tJCarAnB5G9fZtUYbDjfY0vZOxIRmU4kI3x755CXQpGqTrkwmXaMRa3w==}
+ peerDependencies:
+ '@better-auth/core': 1.5.4
+ '@better-auth/utils': ^0.3.0
+ '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0
+ prisma: ^5.0.0 || ^6.0.0 || ^7.0.0
+
+ '@better-auth/stripe@1.5.4':
+ resolution: {integrity: sha512-CCCY81eBwf7IRw7gbMe5H0JfSVwRTujeBvRcXTaOPIFXAHogU/Z4Z/jOhUXuYkl7tbLoYBpTQQ1Qqw00a3ZUZA==}
+ peerDependencies:
+ '@better-auth/core': 1.5.4
+ better-auth: 1.5.4
+ better-call: 1.3.2
stripe: ^18 || ^19 || ^20
- '@better-auth/telemetry@1.4.19':
- resolution: {integrity: sha512-ApGNS7olCTtDpKF8Ow3Z+jvFAirOj7c4RyFUpu8axklh3mH57ndpfUAUjhgA8UVoaaH/mnm/Tl884BlqiewLyw==}
+ '@better-auth/telemetry@1.5.4':
+ resolution: {integrity: sha512-mGXTY7Ecxo7uvlMr6TFCBUvlH0NUMOeE9LKgPhG4HyhBN6VfCEg/DD9PG0Z2IatmMWQbckkt7ox5A0eBpG9m5w==}
peerDependencies:
- '@better-auth/core': 1.4.19
+ '@better-auth/core': 1.5.4
- '@better-auth/utils@0.3.0':
- resolution: {integrity: sha512-W+Adw6ZA6mgvnSnhOki270rwJ42t4XzSK6YWGF//BbVXL6SwCLWfyzBc1lN2m/4RM28KubdBKQ4X5VMoLRNPQw==}
+ '@better-auth/utils@0.3.1':
+ resolution: {integrity: sha512-+CGp4UmZSUrHHnpHhLPYu6cV+wSUSvVbZbNykxhUDocpVNTo9uFFxw/NqJlh1iC4wQ9HKKWGCKuZ5wUgS0v6Kg==}
'@better-fetch/fetch@1.1.21':
resolution: {integrity: sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A==}
@@ -699,20 +738,32 @@ packages:
'@braintree/sanitize-url@7.1.2':
resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==}
- '@chevrotain/cst-dts-gen@11.1.1':
- resolution: {integrity: sha512-fRHyv6/f542qQqiRGalrfJl/evD39mAvbJLCekPazhiextEatq1Jx1K/i9gSd5NNO0ds03ek0Cbo/4uVKmOBcw==}
+ '@chevrotain/cst-dts-gen@10.5.0':
+ resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==}
+
+ '@chevrotain/cst-dts-gen@11.1.2':
+ resolution: {integrity: sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q==}
+
+ '@chevrotain/gast@10.5.0':
+ resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==}
+
+ '@chevrotain/gast@11.1.2':
+ resolution: {integrity: sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g==}
- '@chevrotain/gast@11.1.1':
- resolution: {integrity: sha512-Ko/5vPEYy1vn5CbCjjvnSO4U7GgxyGm+dfUZZJIWTlQFkXkyym0jFYrWEU10hyCjrA7rQtiHtBr0EaZqvHFZvg==}
+ '@chevrotain/regexp-to-ast@11.1.2':
+ resolution: {integrity: sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw==}
- '@chevrotain/regexp-to-ast@11.1.1':
- resolution: {integrity: sha512-ctRw1OKSXkOrR8VTvOxrQ5USEc4sNrfwXHa1NuTcR7wre4YbjPcKw+82C2uylg/TEwFRgwLmbhlln4qkmDyteg==}
+ '@chevrotain/types@10.5.0':
+ resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==}
- '@chevrotain/types@11.1.1':
- resolution: {integrity: sha512-wb2ToxG8LkgPYnKe9FH8oGn3TMCBdnwiuNC5l5y+CtlaVRbCytU0kbVsk6CGrqTL4ZN4ksJa0TXOYbxpbthtqw==}
+ '@chevrotain/types@11.1.2':
+ resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==}
- '@chevrotain/utils@11.1.1':
- resolution: {integrity: sha512-71eTYMzYXYSFPrbg/ZwftSaSDld7UYlS8OQa3lNnn9jzNtpFbaReRRyghzqS7rI3CDaorqpPJJcXGHK+FE1TVQ==}
+ '@chevrotain/utils@10.5.0':
+ resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==}
+
+ '@chevrotain/utils@11.1.2':
+ resolution: {integrity: sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA==}
'@cloudflare/kv-asset-handler@0.4.1':
resolution: {integrity: sha512-Nu8ahitGFFJztxUml9oD/DLb7Z28C8cd8F46IVQ7y5Btz575pvMY8AqZsXkX7Gds29eCKdMgIHjIvzskHgPSFg==}
@@ -722,11 +773,11 @@ packages:
resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==}
engines: {node: '>=18.0.0'}
- '@cloudflare/unenv-preset@2.14.0':
- resolution: {integrity: sha512-XKAkWhi1nBdNsSEoNG9nkcbyvfUrSjSf+VYVPfOto3gLTZVc3F4g6RASCMh6IixBKCG2yDgZKQIHGKtjcnLnKg==}
+ '@cloudflare/unenv-preset@2.15.0':
+ resolution: {integrity: sha512-EGYmJaGZKWl+X8tXxcnx4v2bOZSjQeNI5dWFeXivgX9+YCT69AkzHHwlNbVpqtEUTbew8eQurpyOpeN8fg00nw==}
peerDependencies:
unenv: 2.0.0-rc.24
- workerd: ^1.20260218.0
+ workerd: 1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0
peerDependenciesMeta:
workerd:
optional: true
@@ -753,8 +804,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@cloudflare/workerd-darwin-64@1.20260302.0':
- resolution: {integrity: sha512-cGtxPByeVrgoqxbmd8qs631wuGwf8yTm/FY44dEW4HdoXrb5jhlE4oWYHFafedkQCvGjY1Vbs3puAiKnuMxTXQ==}
+ '@cloudflare/workerd-darwin-64@1.20260301.1':
+ resolution: {integrity: sha512-+kJvwociLrvy1JV9BAvoSVsMEIYD982CpFmo/yMEvBwxDIjltYsLTE8DLi0mCkGsQ8Ygidv2fD9wavzXeiY7OQ==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
@@ -765,8 +816,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@cloudflare/workerd-darwin-arm64@1.20260302.0':
- resolution: {integrity: sha512-WRGqV6RNXM3xoQblJJw1EHKwx9exyhB18cdnToSCUFPObFhk3fzMLoQh7S+nUHUpto6aUrXPVj6R/4G3UPjCxw==}
+ '@cloudflare/workerd-darwin-arm64@1.20260301.1':
+ resolution: {integrity: sha512-PPIetY3e67YBr9O4UhILK8nbm5TqUDl14qx4rwFNrRSBOvlzuczzbd4BqgpAtbGVFxKp1PWpjAnBvGU/OI/tLQ==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
@@ -777,8 +828,8 @@ packages:
cpu: [x64]
os: [linux]
- '@cloudflare/workerd-linux-64@1.20260302.0':
- resolution: {integrity: sha512-gG423mtUjrmlQT+W2+KisLc6qcGcBLR+QcK5x1gje3bu/dF3oNiYuqY7o58A+sQk6IB849UC4UyNclo1RhP2xw==}
+ '@cloudflare/workerd-linux-64@1.20260301.1':
+ resolution: {integrity: sha512-Gu5vaVTZuYl3cHa+u5CDzSVDBvSkfNyuAHi6Mdfut7TTUdcb3V5CIcR/mXRSyMXzEy9YxEWIfdKMxOMBjupvYQ==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
@@ -789,8 +840,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@cloudflare/workerd-linux-arm64@1.20260302.0':
- resolution: {integrity: sha512-7M25noGI4WlSBOhrIaY8xZrnn87OQKtJg9YWAO2EFqGjF1Su5QXGaLlQVF4fAKbqTywbHnI8BAuIsIlUSNkhCg==}
+ '@cloudflare/workerd-linux-arm64@1.20260301.1':
+ resolution: {integrity: sha512-igL1pkyCXW6GiGpjdOAvqMi87UW0LMc/+yIQe/CSzuZJm5GzXoAMrwVTkCFnikk6JVGELrM5x0tGYlxa0sk5Iw==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
@@ -801,14 +852,14 @@ packages:
cpu: [x64]
os: [win32]
- '@cloudflare/workerd-windows-64@1.20260302.0':
- resolution: {integrity: sha512-jK1L3ADkiWxFzlqZTq2iHW1Bd2Nzu1fmMWCGZw4sMZ2W1B2WCm2wHwO2SX/py4BgylyEN3wuF+5zagbkNKht9A==}
+ '@cloudflare/workerd-windows-64@1.20260301.1':
+ resolution: {integrity: sha512-Q0wMJ4kcujXILwQKQFc1jaYamVsNvjuECzvRrTI8OxGFMx2yq9aOsswViE4X1gaS2YQQ5u0JGwuGi5WdT1Lt7A==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
- '@cloudflare/workers-types@4.20260302.0':
- resolution: {integrity: sha512-mbFRnlu1lNCScMpXZk/X/uBPufYx5OSbq+euGonGRcY+DgOwm2kczGdK401rUh52NB0fFMEcOy/zqwxv7CdDNA==}
+ '@cloudflare/workers-types@4.20260307.1':
+ resolution: {integrity: sha512-0PvWLVVD6Q64V/XhollYtc8H35Vxm2rZi8bkZbEr3lK+mNgd2FBBVhlZ6A3saAUq3giRF4US/UfU/3a8i1PEcg==}
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
@@ -838,8 +889,8 @@ packages:
peerDependencies:
'@csstools/css-tokenizer': ^4.0.0
- '@csstools/css-syntax-patches-for-csstree@1.0.28':
- resolution: {integrity: sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==}
+ '@csstools/css-syntax-patches-for-csstree@1.1.0':
+ resolution: {integrity: sha512-H4tuz2nhWgNKLt1inYpoVCfbJbMwX/lQKp3g69rrrIMIYlFD9+zTykOKhNR8uGrAmbS/kT9n6hTFkmDkxLgeTA==}
'@csstools/css-tokenizer@4.0.0':
resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==}
@@ -877,8 +928,22 @@ packages:
'@drizzle-team/brocli@0.10.2':
resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
- '@embedpdf/core@2.6.2':
- resolution: {integrity: sha512-HTy2B7Q5hlNqtYo6lIudwycekG4x/iTESq05uYqENkvTclcZkzebnNirPPPPRcf3oT/u6Qvfj4mkx3z7wTSNUA==}
+ '@electric-sql/pglite-socket@0.0.20':
+ resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==}
+ hasBin: true
+ peerDependencies:
+ '@electric-sql/pglite': 0.3.15
+
+ '@electric-sql/pglite-tools@0.2.20':
+ resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==}
+ peerDependencies:
+ '@electric-sql/pglite': 0.3.15
+
+ '@electric-sql/pglite@0.3.15':
+ resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==}
+
+ '@embedpdf/core@2.8.0':
+ resolution: {integrity: sha512-ui0HR4fl7ndiGPw40kMBxXCO9gZHctV1u3Q+/XTd34ONYJ+Pa2LoWNVW2IuPDK7PgKzABPT2axntowlVLPP10g==}
peerDependencies:
preact: ^10.26.4
react: '>=16.8.0'
@@ -886,8 +951,8 @@ packages:
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/engines@2.6.2':
- resolution: {integrity: sha512-ZyyMVqZ8bnTNmgAziLhNywKhafVFbtLuC5AGcQqlAOQfyZqOWd240FdDGViQXAq4sfSp/NopirvIUtAKHoIrtg==}
+ '@embedpdf/engines@2.8.0':
+ resolution: {integrity: sha512-s749nppKxOcgvFraySKrwtiCt2VMXFe8TFuZUV5R7z8TtMagt6o5NOk6VsdvIpggUYxIsiKhLkFvAqvkNgcjng==}
peerDependencies:
preact: ^10.26.4
react: '>=16.8.0'
@@ -916,276 +981,276 @@ packages:
'@embedpdf/fonts-tc@1.0.0':
resolution: {integrity: sha512-rGZJbVD6DYS5BbXdpEMnWkpVF0Knar+bsiyb2o3+YRx7O8eyFubEBQUSUInirQk69HA6fc3GhYCg7TyC/oD76Q==}
- '@embedpdf/models@2.6.2':
- resolution: {integrity: sha512-4mr1PIS5qR+HLKroUn9iU8qj+s/vptj82non94Ei0P6/yGG6GHv/E1lfALvd8rZ3FfHuF6V7Pa4SxS2WFDecYg==}
+ '@embedpdf/models@2.8.0':
+ resolution: {integrity: sha512-kk3Fm8exMmEX9Ce7VQePybmo04NQGdpsO3FsX1YOQqHpLVBk7tiTeOdetjBqI+YhQ2zWLa2naNKSOSGGzYLyxA==}
- '@embedpdf/pdfium@2.6.2':
- resolution: {integrity: sha512-LXqS+fSCQT1226X+XdrT6p0V2WR2cTDO3JzUix2v+9kl8IvlVfTWjkT5LVrOyS1poCsuySzd2GHz8jEweETgoQ==}
+ '@embedpdf/pdfium@2.8.0':
+ resolution: {integrity: sha512-RlNLRNboF1Y6fNDy4sJ/a/FEYxATZyeM+n25r3KZJjG+RaM6bxBWXvWlFlGBU5Vx2eqQ5AzDAmIE9cn1agFmqA==}
- '@embedpdf/plugin-annotation@2.6.2':
- resolution: {integrity: sha512-3rOqty+jTzJu3fUvNPsaM2SmeV6K2J/DkzdgBZNVV3neahEl9v1DTJEkAxCgLI/fj6wBXEkJrKmmtDGoDlvVAg==}
+ '@embedpdf/plugin-annotation@2.8.0':
+ resolution: {integrity: sha512-h31dT0pvQjFSwsBLytL4BBLf3WDdz9kmAYNKR10filikge7MpgTzgVYFD0C6AOyy2qK1Y/vqworCyh+emVD5aA==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-history': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2
- '@embedpdf/plugin-selection': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-history': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0
+ '@embedpdf/plugin-selection': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-capture@2.6.2':
- resolution: {integrity: sha512-gnm6ZCO4tAsCtqeqVRdXEUlnVcK6FksYaYlkHhA861ECOMf9s9iQxNueQqyTIK+wF28KlGR12wkO0oibc2WN2A==}
+ '@embedpdf/plugin-capture@2.8.0':
+ resolution: {integrity: sha512-4PckZ05bZ841Ogcb2hAtmV4LAEP5+iwK9YGPKgdltoH4KaVETCnxKqqtYlsRQudI7LEdH/aegrUEoa5r+jRORQ==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2
- '@embedpdf/plugin-render': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-commands@2.6.2':
- resolution: {integrity: sha512-dcDh86GuhN6Wm0K/2NFJs7oDVxg659zgKR3HY0VqzozvUFlRJc0yj6FaK0ASRUqsxaWhoNvc/DeuWClhBOcT9Q==}
+ '@embedpdf/plugin-commands@2.8.0':
+ resolution: {integrity: sha512-qchRR5+9KfnJ1CKue/L8NVj0y9p6CM6aHlIFnY9Lc7/6QELGXi8vPREzLXOJxAWQ3jVs2iqPHZL6NtSGwvWYbQ==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-document-manager@2.6.2':
- resolution: {integrity: sha512-5oEDv4qXelyvCy9vOtNUZkMlS/sh5RtrSTG968T+km2/UijQ37AZO/h/Py5X5S0JOqZVkRhX5tXeXVn2K5NiHg==}
+ '@embedpdf/plugin-document-manager@2.8.0':
+ resolution: {integrity: sha512-SS+IKJ2+rk4dHM3PvQQrvnfNdb5oOF1INR5r2w0MKo22C9WPD8Ncg1Jak/mCrGbSrJemW3pkIrKZhoREQtSrbA==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-export@2.6.2':
- resolution: {integrity: sha512-lgbVVkHgSMwsUCn+1hpu1Ic6KQvfQlEwdHovAXzyrjvk2oqbQytRJbXL3bQsZWFFg6nqsIUb/4jwJwn/+n/yig==}
+ '@embedpdf/plugin-export@2.8.0':
+ resolution: {integrity: sha512-AvqfyhB58HLoZMKyXLLT+1ebE7wrMEnIAjr+OqEuaNnekxvb8atD8EBByzgtXLiNLStlxFn5g1CKyQThpw4Pcw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-fullscreen@2.6.2':
- resolution: {integrity: sha512-Le4U/d/AsDjRtEZKMJOf+dQJOYVyZBMYcHFbt/yMzqq5b32iSIi5bYuPrlBbfFBseV+Qj3s1I4/Cnb8PBQUhBQ==}
+ '@embedpdf/plugin-fullscreen@2.8.0':
+ resolution: {integrity: sha512-xJqbZpWTgnLZwlLsYDY43tNQ5BJM51Xlr+fBK9OsSJJql+yGd9EquIdBC99KbkmVP78BG3OCOv0JkZ3C0ITQ4A==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-history@2.6.2':
- resolution: {integrity: sha512-MpTrxtNXjpdjUlmV+HnmPe9Abb/DX3k42JfFLwPhCXlF0BBuJnu300lb0qtZ02WXj8380/uL17Wb7ebSoVqIjA==}
+ '@embedpdf/plugin-history@2.8.0':
+ resolution: {integrity: sha512-S6TO7DqMqVtBYsztgvPvq8BOJTMl8rWdGjVMuoxD93HZdSgogoculwCATrJGor/BC+X6Vmtaqg6NJWSdIAeBEQ==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-i18n@2.6.2':
- resolution: {integrity: sha512-xww5MNgTG/9i/XRMuPTMEUe3e5keFBOTe2U3jNBjJGnV+KplOmuTWIn7WxpnuL5RffB9NHnvT8Gexw1CH/hc0Q==}
+ '@embedpdf/plugin-i18n@2.8.0':
+ resolution: {integrity: sha512-DsqkkzsWYUfi0oVWT12Z5VcVuwIzXVNdcJ2OPHdPGS/a6M2bH63MV2YGSaVqm1jkV9B6CyND1zqgaaG5SUPHKw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-interaction-manager@2.6.2':
- resolution: {integrity: sha512-7LP7rMDDRWqojQb4E9/S1tWPp+fRfqTvHbb4kgMo14umTK26XWw/xazwf1UxchAruOTC5qjhraH4Bug0MoVyyQ==}
+ '@embedpdf/plugin-interaction-manager@2.8.0':
+ resolution: {integrity: sha512-xdRTAp1YiXWm+3WVqIN8dkRT3I/dHTumLJy5Kvt7lc1W2XM3M5bfCk5eTTcjY1DPv2buyt44i/4XNWoXAgBXDg==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-pan@2.6.2':
- resolution: {integrity: sha512-bqzGdr7fSuN0SPDKeaTr2MX24tB2rtoNyrGWZ2kOjuMUMQnNwcrBjK8XbWRjL7tcPLObGOR8vXwzt+hbSfZ3ig==}
+ '@embedpdf/plugin-pan@2.8.0':
+ resolution: {integrity: sha512-EFqTEHk9E7AMRwguRO24jRl0J/5+pG07wlAm5U2rB0LDk30oAqVklFuDygaALdi8ZRBdkWOfD3Wl3gurQvfwAA==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2
- '@embedpdf/plugin-viewport': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0
+ '@embedpdf/plugin-viewport': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-print@2.6.2':
- resolution: {integrity: sha512-PaHl3h2eqMfzo6eviLvZuEGhAaZH877iF1RDTq1HAxpFgWeNKaJV3YcODDkSZwDzJW44jczTVstcEdN5Hk1b/w==}
+ '@embedpdf/plugin-print@2.8.0':
+ resolution: {integrity: sha512-PUdw2/1GwbewYrxVgsb+3lkYyYYcLU5qpazrBZjjx0v+SEpb2SMQOOPNUILeJGKbYUlxSz3qv/loFwqzALkUQA==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=18.0.0'
react-dom: '>=18.0.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-redaction@2.6.2':
- resolution: {integrity: sha512-ASQdGAlAbpUY8kSvmSIRXpBRasjBEZXnPGhMsjHtYJgrLGeWeGfd18StH54TVaykYScu8gwI8XdzZJEnfM89GQ==}
+ '@embedpdf/plugin-redaction@2.8.0':
+ resolution: {integrity: sha512-pIDFNd9rX7cwrhY6rFCBa5MTnGdLZHX7magToqna/Ffs1KEr0CfNF8jIXG0/E6KB6SsppbHwC7AkwRVWz8NoHg==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-annotation': 2.6.2
- '@embedpdf/plugin-history': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2
- '@embedpdf/plugin-selection': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-annotation': 2.8.0
+ '@embedpdf/plugin-history': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0
+ '@embedpdf/plugin-selection': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-render@2.6.2':
- resolution: {integrity: sha512-6WK8kCNBxTHrjRPbLHQaou9ZrpaFW2f56Uu+zKbqXCD+tV7d8T9WAVQuqDJrWxjrUXUjWy1RC+KEBMGCftIHWA==}
+ '@embedpdf/plugin-render@2.8.0':
+ resolution: {integrity: sha512-jVGSuyg366LmFzbDpqszLbu3G6VOfv1u46D1C0ph6pL3jisTlRswRosaXS4eVE/fAYTryBrI0olCpVYYct4bQw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-rotate@2.6.2':
- resolution: {integrity: sha512-g9JUMbIEm91igKIVe8tmccHDI0jBtcYzaaHupyL2bQBByU+Zyz12k2FKbVn+sx0ppk8tYAbyAxeNkB/jNpQh2w==}
+ '@embedpdf/plugin-rotate@2.8.0':
+ resolution: {integrity: sha512-lWATWEwhkBW77dJaKXlSJbqEMLTSy1lOhn0kDAZ5eyPZRo+7UWe7LHuT5HWzzRlbY9rpvnyixCT6Zp9rKT+WnQ==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-scroll@2.6.2':
- resolution: {integrity: sha512-jshTwq69zvotGWMTDdxY+EYR/FBxPfu15fVo6YgYTSjUFm6IJL2z4XIvCB5pdHHHwXV1gTpi8W4FV3/2LXCjnA==}
+ '@embedpdf/plugin-scroll@2.8.0':
+ resolution: {integrity: sha512-l6hFH6lsAI+07ZGuOwbC8qcRNdYzWSIfRszjt9UmhKZbvXLEp6YJeS/XOUC/37Kqi30tsmLDyZhMW1AooGAr1A==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-viewport': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-viewport': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-search@2.6.2':
- resolution: {integrity: sha512-o4vYsqjGctDjiwP6+wrRndQoU728wW7Xyxr7mvAIQXlg0/AFBewKXbrX64bhGvVPOTPLpwPFcGBVK073OnaVCQ==}
+ '@embedpdf/plugin-search@2.8.0':
+ resolution: {integrity: sha512-HZ7munHdAF2pJ1cT02yc5I0Xcr4b4CQ8GkhD4qhTpZK0yga/tQiDY2Jjstygv7XiZwHIDKvqOuQsQmOXDsEemw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-selection@2.6.2':
- resolution: {integrity: sha512-btTRcaq+smbkqvcYmBa7+hK50eGoDOaepUma6Og2KCEIS90ZOEAChKY+KJq6axKHDg153/9kUwB1HJ6jTUUz4w==}
+ '@embedpdf/plugin-selection@2.8.0':
+ resolution: {integrity: sha512-DcPyOp2WKoVYVpbZIP5t+JsEmCL9Y7bxe8PmiEBtlm1lustuUezdWyA2G4wsGCR4I/5uNlY85qBGCBhL195sSA==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-spread@2.6.2':
- resolution: {integrity: sha512-JmMhUsHrZ7zeVbpk6xQQlD7BEpvkGWMZG1CC50Il4l7hFTlG+5InqhOpdr5aa2dQRKWv9w0UB7G/wqyB8UciuA==}
+ '@embedpdf/plugin-spread@2.8.0':
+ resolution: {integrity: sha512-0Ld5HERaG8cKyWW7ktojG3FK6angkzYnBnw7Rnqf4cQuNdO7nKSTslyxkrLzF3vvmKrB//2ghm/pRVkgci4BOw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-thumbnail@2.6.2':
- resolution: {integrity: sha512-V5Ae9EBnVvhuNzQZzAUcoQGpA2G6nKe1gdAxzVUYhSYzpvW+Ld2dKG2ktEMBE4gZ5sXKV/tlHfON/HiP3hDm1g==}
+ '@embedpdf/plugin-thumbnail@2.8.0':
+ resolution: {integrity: sha512-Dq/Cqsn4GClRXNWerqlXNH8WDWK/TtHxwq6yr2kqgXPo1FyREto4I7GfdO1hygTu0Dl6HK2auEVHBVC8QT53fw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-render': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-tiling@2.6.2':
- resolution: {integrity: sha512-F0sqBp7noczTFpy7yCOiAoJf0ndW7cfyfXXyYXuMLL9916QFzobZi1AsXfqRamSYReJTNCF/Yor57j8jvm90MA==}
+ '@embedpdf/plugin-tiling@2.8.0':
+ resolution: {integrity: sha512-gPe5mG6hyyruki1eSuQYD2KDbo0Z0TxzSk8TcHIdEYYF6NlI2OghuO8Vczz5WLU8clX8xzn8c/c+tQMHEXfbZA==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-render': 2.6.2
- '@embedpdf/plugin-scroll': 2.6.2
- '@embedpdf/plugin-viewport': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0
+ '@embedpdf/plugin-scroll': 2.8.0
+ '@embedpdf/plugin-viewport': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-ui@2.6.2':
- resolution: {integrity: sha512-oyXCkV27nZIVJ6buSp7LeWhDDqjzMJd3EYICpEsYT1lRsVScoGi1mjht1ZfflTvHka6dC4JG+jXOq4nC/pFEpA==}
+ '@embedpdf/plugin-ui@2.8.0':
+ resolution: {integrity: sha512-RukCJFWKpBCao8ksiXLViXQafAvTpMtpMDXy3wt5zJMuWjYPvjPOWswZeztjeucRfS1F9JDIZohiwj9iE0AZJw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-render': 2.6.2
- '@embedpdf/plugin-scroll': 2.6.2
- '@embedpdf/plugin-viewport': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0
+ '@embedpdf/plugin-scroll': 2.8.0
+ '@embedpdf/plugin-viewport': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-view-manager@2.6.2':
- resolution: {integrity: sha512-n64h6X/eF6mqko904nA+2CsHNEGzXOAGmseQ15pJcabYmZOV9ORrnSOFc3Hgj7zjjfnAq+v8xrUm2uCXydbi9w==}
+ '@embedpdf/plugin-view-manager@2.8.0':
+ resolution: {integrity: sha512-AJynwWjWmyndCZFfhsNoKYDXk1TWKZjqiSczOC8j7ea77iNl/zNW7cgeTglx96xieFffDcG9K3F0MiMdS/snQQ==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-viewport@2.6.2':
- resolution: {integrity: sha512-uHLeKQqyKpUAJcbpsJ8P/c2qU6dTKYAC9l/xviURSABqKLw0IC3DLw6aTPZtzCFEsKiIVFZDwjz/LUt+DZaNHQ==}
+ '@embedpdf/plugin-viewport@2.8.0':
+ resolution: {integrity: sha512-E16hc4yPA54XQGHp0Dy3OYyE8ilBaJE7LJirVmha4kMkP7XBu6xHNOJrXtq4GsZmdLQkf+x8ie2DDbWS+tcwnw==}
peerDependencies:
- '@embedpdf/core': 2.6.2
+ '@embedpdf/core': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/plugin-zoom@2.6.2':
- resolution: {integrity: sha512-lw4JG+gDLeIJYyFzsmsNZcN1kwm+5qAvOPMWQ+CA6zMaNDKV5BwE3c4JRDGwqWF+syK0yvuDh9sjT50h+LSwwg==}
+ '@embedpdf/plugin-zoom@2.8.0':
+ resolution: {integrity: sha512-HepSQ7NFYhMsQsgfnC/G3b3LOYtNCWkCME0C0jBLrEYsgqsWozf97jIgzfOAeJsugyjQmojpgLUNt3xE9CtG6Q==}
peerDependencies:
- '@embedpdf/core': 2.6.2
- '@embedpdf/plugin-scroll': 2.6.2
- '@embedpdf/plugin-viewport': 2.6.2
+ '@embedpdf/core': 2.8.0
+ '@embedpdf/plugin-scroll': 2.8.0
+ '@embedpdf/plugin-viewport': 2.8.0
preact: ^10.26.4
react: '>=16.8.0'
react-dom: '>=16.8.0'
svelte: '>=5 <6'
vue: '>=3.2.0'
- '@embedpdf/utils@2.6.2':
- resolution: {integrity: sha512-+sY221n1rb1Q3JzFe8tZ+TISvjVzOt5kdnZbd6vEWFaUpS577x65T1Uk9ngb3GZt7o9DmC7Of5XdMqZiray2ow==}
+ '@embedpdf/utils@2.8.0':
+ resolution: {integrity: sha512-mt3DiQ8pnPk95q0zv7dXfN+y5fzJT2WtXyST8ziYEgmfhz0l2HT/MHCAwLzB3Whlnd2BdHThLfJyG1UD6pC84g==}
peerDependencies:
preact: ^10.26.4
react: '>=16.8.0'
@@ -1958,8 +2023,8 @@ packages:
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/config-array@0.21.1':
- resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
+ '@eslint/config-array@0.21.2':
+ resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/config-helpers@0.4.2':
@@ -1970,12 +2035,12 @@ packages:
resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/eslintrc@3.3.3':
- resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
+ '@eslint/eslintrc@3.3.5':
+ resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.39.3':
- resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==}
+ '@eslint/js@9.39.4':
+ resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.7':
@@ -1986,8 +2051,8 @@ packages:
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@exodus/bytes@1.14.1':
- resolution: {integrity: sha512-OhkBFWI6GcRMUroChZiopRiSp2iAMvEBK47NhJooDqz1RERO4QuZIZnjP63TXX8GAiLABkYmX+fuQsdJ1dd2QQ==}
+ '@exodus/bytes@1.15.0':
+ resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
'@noble/hashes': ^1.8.0 || ^2.0.0
@@ -1995,14 +2060,20 @@ packages:
'@noble/hashes':
optional: true
- '@floating-ui/core@1.7.4':
- resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==}
+ '@floating-ui/core@1.7.5':
+ resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+
+ '@floating-ui/dom@1.7.6':
+ resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
- '@floating-ui/dom@1.7.5':
- resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==}
+ '@floating-ui/utils@0.2.11':
+ resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
- '@floating-ui/utils@0.2.10':
- resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
+ '@hono/node-server@1.19.11':
+ resolution: {integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==}
+ engines: {node: '>=18.14.1'}
+ peerDependencies:
+ hono: ^4
'@hono/node-server@1.19.9':
resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==}
@@ -2043,8 +2114,8 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
- '@iconify-json/simple-icons@1.2.71':
- resolution: {integrity: sha512-rNoDFbq1fAYiEexBvrw613/xiUOPEu5MKVV/X8lI64AgdTzLQUUemr9f9fplxUMPoxCBP2rWzlhOEeTHk/Sf0Q==}
+ '@iconify-json/simple-icons@1.2.72':
+ resolution: {integrity: sha512-wkcixntHvaCoqPqerGrNFcHQ3Yx1ux4ZkhscCDK0DEHpP62XCH+cxq1HTsRjbUiQl/M9K8bj03HF6Wgn5iE2rQ==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
@@ -2052,8 +2123,8 @@ packages:
'@iconify/utils@3.1.0':
resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==}
- '@img/colour@1.0.0':
- resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
+ '@img/colour@1.1.0':
+ resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
engines: {node: '>=18'}
'@img/sharp-darwin-arm64@0.33.5':
@@ -2300,8 +2371,8 @@ packages:
'@internationalized/number@3.6.5':
resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==}
- '@ioredis/commands@1.5.0':
- resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==}
+ '@ioredis/commands@1.5.1':
+ resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==}
'@isaacs/balanced-match@4.0.1':
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
@@ -2355,8 +2426,8 @@ packages:
'@mermaid-js/parser@1.0.0':
resolution: {integrity: sha512-vvK0Hi/VWndxoh03Mmz6wa1KDriSPjS2XMZL/1l19HFwygiObEEoEwSDxOqyLzzAI6J2PU3261JjTMTO7x+BPw==}
- '@modelcontextprotocol/sdk@1.26.0':
- resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==}
+ '@modelcontextprotocol/sdk@1.27.1':
+ resolution: {integrity: sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA==}
engines: {node: '>=18'}
peerDependencies:
'@cfworker/json-schema': ^4.1.1
@@ -2365,6 +2436,13 @@ packages:
'@cfworker/json-schema':
optional: true
+ '@mongodb-js/saslprep@1.4.6':
+ resolution: {integrity: sha512-y+x3H1xBZd38n10NZF/rEBlvDOOMQ6LKUTHqr8R9VkJ+mmQOYtJFxIlkkK8fZrtOiL6VixbOBWMbZGBdal3Z1g==}
+
+ '@mrleebo/prisma-ast@0.13.1':
+ resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==}
+ engines: {node: '>=16'}
+
'@napi-rs/wasm-runtime@1.1.1':
resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==}
@@ -2505,6 +2583,9 @@ packages:
'@poppinss/dumper@0.6.5':
resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==}
+ '@poppinss/dumper@0.7.0':
+ resolution: {integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==}
+
'@poppinss/exception@1.2.3':
resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==}
@@ -2531,6 +2612,58 @@ packages:
preact: ^10.4.0 || ^11.0.0-0
vite: '>=2.0.0'
+ '@prisma/client-runtime-utils@7.4.2':
+ resolution: {integrity: sha512-cID+rzOEb38VyMsx5LwJMEY4NGIrWCNpKu/0ImbeooQ2Px7TI+kOt7cm0NelxUzF2V41UVVXAmYjANZQtCu1/Q==}
+
+ '@prisma/client@7.4.2':
+ resolution: {integrity: sha512-ts2mu+cQHriAhSxngO3StcYubBGTWDtu/4juZhXCUKOwgh26l+s4KD3vT2kMUzFyrYnll9u/3qWrtzRv9CGWzA==}
+ engines: {node: ^20.19 || ^22.12 || >=24.0}
+ peerDependencies:
+ prisma: '*'
+ typescript: '>=5.4.0'
+ peerDependenciesMeta:
+ prisma:
+ optional: true
+ typescript:
+ optional: true
+
+ '@prisma/config@7.4.2':
+ resolution: {integrity: sha512-CftBjWxav99lzY1Z4oDgomdb1gh9BJFAOmWF6P2v1xRfXqQb56DfBub+QKcERRdNoAzCb3HXy3Zii8Vb4AsXhg==}
+
+ '@prisma/debug@7.2.0':
+ resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==}
+
+ '@prisma/debug@7.4.2':
+ resolution: {integrity: sha512-aP7qzu+g/JnbF6U69LMwHoUkELiserKmWsE2shYuEpNUJ4GrtxBCvZwCyCBHFSH2kLTF2l1goBlBh4wuvRq62w==}
+
+ '@prisma/dev@0.20.0':
+ resolution: {integrity: sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ==}
+
+ '@prisma/engines-version@7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919':
+ resolution: {integrity: sha512-5FIKY3KoYQlBuZC2yc16EXfVRQ8HY+fLqgxkYfWCtKhRb3ajCRzP/rPeoSx11+NueJDANdh4hjY36mdmrTcGSg==}
+
+ '@prisma/engines@7.4.2':
+ resolution: {integrity: sha512-B+ZZhI4rXlzjVqRw/93AothEKOU5/x4oVyJFGo9RpHPnBwaPwk4Pi0Q4iGXipKxeXPs/dqljgNBjK0m8nocOJA==}
+
+ '@prisma/fetch-engine@7.4.2':
+ resolution: {integrity: sha512-f/c/MwYpdJO7taLETU8rahEstLeXfYgQGlz5fycG7Fbmva3iPdzGmjiSWHeSWIgNnlXnelUdCJqyZnFocurZuA==}
+
+ '@prisma/get-platform@7.2.0':
+ resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==}
+
+ '@prisma/get-platform@7.4.2':
+ resolution: {integrity: sha512-UTnChXRwiauzl/8wT4hhe7Xmixja9WE28oCnGpBtRejaHhvekx5kudr3R4Y9mLSA0kqGnAMeyTiKwDVMjaEVsw==}
+
+ '@prisma/query-plan-executor@7.2.0':
+ resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==}
+
+ '@prisma/studio-core@0.13.1':
+ resolution: {integrity: sha512-agdqaPEePRHcQ7CexEfkX1RvSH9uWDb6pXrZnhCRykhDFAV0/0P3d07WtfiY8hZWb7oRU4v+NkT4cGFHkQJIPg==}
+ peerDependencies:
+ '@types/react': ^18.0.0 || ^19.0.0
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+
'@protobufjs/aspromise@1.1.2':
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
@@ -2661,8 +2794,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-commonjs@29.0.0':
- resolution: {integrity: sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==}
+ '@rollup/plugin-commonjs@29.0.2':
+ resolution: {integrity: sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==}
engines: {node: '>=16.0.0 || 14 >= 14.17'}
peerDependencies:
rollup: ^2.68.0||^3.0.0||^4.0.0
@@ -2853,28 +2986,28 @@ packages:
cpu: [x64]
os: [win32]
- '@sentry-internal/browser-utils@10.39.0':
- resolution: {integrity: sha512-W6WODonMGiI13Az5P7jd/m2lj/JpIyuVKg7wE4X+YdlMehLspAv6I7gRE4OBSumS14ZjdaYDpD/lwtnBwKAzcA==}
+ '@sentry-internal/browser-utils@10.42.0':
+ resolution: {integrity: sha512-HCEICKvepxN4/6NYfnMMMlppcSwIEwtS66X6d1/mwaHdi2ivw0uGl52p7Nfhda/lIJArbrkWprxl0WcjZajhQA==}
engines: {node: '>=18'}
- '@sentry-internal/feedback@10.39.0':
- resolution: {integrity: sha512-cRXmmDeOr5FzVsBNRLU4WDEuC3fhuD0XV362EWl4DI3XBGao8ukaueKcLIKic5WZx6uXimjWw/UJmDLgxeCqkg==}
+ '@sentry-internal/feedback@10.42.0':
+ resolution: {integrity: sha512-lpPcHsog10MVYFTWE0Pf8vQRqQWwZHJpkVl2FEb9/HDdHFyTBUhCVoWo1KyKaG7GJl9AVKMAg7bp9SSNArhFNQ==}
engines: {node: '>=18'}
- '@sentry-internal/replay-canvas@10.39.0':
- resolution: {integrity: sha512-TTiX0XWCcqTqFGJjEZYObk93j/sJmXcqPzcu0cN2mIkKnnaHDY3w74SHZCshKqIr0AOQdt1HDNa36s3TCdt0Jw==}
+ '@sentry-internal/replay-canvas@10.42.0':
+ resolution: {integrity: sha512-am3m1Fj8ihoPfoYo41Qq4KeCAAICn4bySso8Oepu9dMNe9Lcnsf+reMRS2qxTPg3pZDc4JEMOcLyNCcgnAfrHw==}
engines: {node: '>=18'}
- '@sentry-internal/replay@10.39.0':
- resolution: {integrity: sha512-obZoYOrUfxIYBHkmtPpItRdE38VuzF1VIxSgZ8Mbtq/9UvCWh+eOaVWU2stN/cVu1KYuYX0nQwBvdN28L6y/JA==}
+ '@sentry-internal/replay@10.42.0':
+ resolution: {integrity: sha512-Zh3EoaH39x2lqVY1YyVB2vJEyCIrT+YLUQxYl1yvP0MJgLxaR6akVjkgxbSUJahan4cX5DxpZiEHfzdlWnYPyQ==}
engines: {node: '>=18'}
- '@sentry/browser@10.39.0':
- resolution: {integrity: sha512-I50W/1PDJWyqgNrGufGhBYCmmO3Bb159nx2Ut2bKoVveTfgH/hLEtDyW0kHo8Fu454mW+ukyXfU4L4s+kB9aaw==}
+ '@sentry/browser@10.42.0':
+ resolution: {integrity: sha512-iXxYjXNEBwY1MH4lDSDZZUNjzPJDK7/YLwVIJq/3iBYpIQVIhaJsoJnf3clx9+NfJ8QFKyKfcvgae61zm+hgTA==}
engines: {node: '>=18'}
- '@sentry/cloudflare@10.39.0':
- resolution: {integrity: sha512-x0DDNJJ1sDuHosFKURcn6I7eMQfJKNF317NclARgE6a+sg0Ty5OpaNMaQF9VlPVDB7JGXohADJ+88I1x0mB87g==}
+ '@sentry/cloudflare@10.42.0':
+ resolution: {integrity: sha512-EfovCbS4Xi8+epXilN6CzplxPzk+GxJZq574LaW8HJhIRnkF8/qfJ3iuh966EgKGCnVMF7c9EQsnfgcRKe8dog==}
engines: {node: '>=18'}
peerDependencies:
'@cloudflare/workers-types': ^4.x
@@ -2882,12 +3015,12 @@ packages:
'@cloudflare/workers-types':
optional: true
- '@sentry/core@10.39.0':
- resolution: {integrity: sha512-xCLip2mBwCdRrvXHtVEULX0NffUTYZZBhEUGht0WFL+GNdNQ7gmBOGOczhZlrf2hgFFtDO0fs1xiP9bqq5orEQ==}
+ '@sentry/core@10.42.0':
+ resolution: {integrity: sha512-L4rMrXMqUKBanpjpMT+TuAVk6xAijz6AWM6RiEYpohAr7SGcCEc1/T0+Ep1eLV8+pwWacfU27OvELIyNeOnGzA==}
engines: {node: '>=18'}
- '@sentry/solid@10.39.0':
- resolution: {integrity: sha512-zvU5u/XkpVOzA1wlOAppozfxt537EMlghZ2WIHN4fFx0xLZTyPW+/CkDRGmQntcFhMvBgRMYbrfL0GY0GPX49A==}
+ '@sentry/solid@10.42.0':
+ resolution: {integrity: sha512-33RGF8dW0Q4wpM4QXlJgQsd52p/4E0aEBEHWmLUGaVsU97w4KKN179vVrTjOMX0KPEYx+ozOBVjE+qsWI7E9Ig==}
engines: {node: '>=18'}
peerDependencies:
'@solidjs/router': ^0.13.4 || ^0.14.0 || ^0.15.0
@@ -2969,8 +3102,8 @@ packages:
peerDependencies:
solid-js: ^1.8.6
- '@solidjs/start@1.3.0':
- resolution: {integrity: sha512-FMqc0ZaAUIFBVOEUV87Y1W6LuCN5OveOigXvjZ9CarB/TQSC3QqDBSX+EyWkvreGIU7zsEIi0mka6NGJgJ5oOQ==}
+ '@solidjs/start@1.3.2':
+ resolution: {integrity: sha512-tasDl3utVbtP0rr4InB3ntBIFV2upvEiFrOOCkRrAA3yBfjx9elpxnc94sJQXo65PNYdAAAkPIC6h93vLrtwHg==}
peerDependencies:
vinxi: ^0.5.7
@@ -3293,8 +3426,11 @@ packages:
'@types/micromatch@4.0.10':
resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==}
- '@types/node@25.3.0':
- resolution: {integrity: sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==}
+ '@types/node@25.3.5':
+ resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==}
+
+ '@types/react@19.2.14':
+ resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==}
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -3308,6 +3444,12 @@ packages:
'@types/web-bluetooth@0.0.21':
resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
+ '@types/webidl-conversions@7.0.3':
+ resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==}
+
+ '@types/whatwg-url@13.0.0':
+ resolution: {integrity: sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==}
+
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
@@ -3450,17 +3592,17 @@ packages:
'@vitest/utils@4.0.18':
resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==}
- '@vue/compiler-core@3.5.28':
- resolution: {integrity: sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==}
+ '@vue/compiler-core@3.5.29':
+ resolution: {integrity: sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==}
- '@vue/compiler-dom@3.5.28':
- resolution: {integrity: sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA==}
+ '@vue/compiler-dom@3.5.29':
+ resolution: {integrity: sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==}
- '@vue/compiler-sfc@3.5.28':
- resolution: {integrity: sha512-6TnKMiNkd6u6VeVDhZn/07KhEZuBSn43Wd2No5zaP5s3xm8IqFTHBj84HJah4UepSUJTro5SoqqlOY22FKY96g==}
+ '@vue/compiler-sfc@3.5.29':
+ resolution: {integrity: sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==}
- '@vue/compiler-ssr@3.5.28':
- resolution: {integrity: sha512-JCq//9w1qmC6UGLWJX7RXzrGpKkroubey/ZFqTpvEIDJEKGgntuDMqkuWiZvzTzTA5h2qZvFBFHY7fAAa9475g==}
+ '@vue/compiler-ssr@3.5.29':
+ resolution: {integrity: sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==}
'@vue/devtools-api@7.7.9':
resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==}
@@ -3471,22 +3613,22 @@ packages:
'@vue/devtools-shared@7.7.9':
resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==}
- '@vue/reactivity@3.5.28':
- resolution: {integrity: sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw==}
+ '@vue/reactivity@3.5.29':
+ resolution: {integrity: sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==}
- '@vue/runtime-core@3.5.28':
- resolution: {integrity: sha512-POVHTdbgnrBBIpnbYU4y7pOMNlPn2QVxVzkvEA2pEgvzbelQq4ZOUxbp2oiyo+BOtiYlm8Q44wShHJoBvDPAjQ==}
+ '@vue/runtime-core@3.5.29':
+ resolution: {integrity: sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==}
- '@vue/runtime-dom@3.5.28':
- resolution: {integrity: sha512-4SXxSF8SXYMuhAIkT+eBRqOkWEfPu6nhccrzrkioA6l0boiq7sp18HCOov9qWJA5HML61kW8p/cB4MmBiG9dSA==}
+ '@vue/runtime-dom@3.5.29':
+ resolution: {integrity: sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==}
- '@vue/server-renderer@3.5.28':
- resolution: {integrity: sha512-pf+5ECKGj8fX95bNincbzJ6yp6nyzuLDhYZCeFxUNp8EBrQpPpQaLX3nNCp49+UbgbPun3CeVE+5CXVV1Xydfg==}
+ '@vue/server-renderer@3.5.29':
+ resolution: {integrity: sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==}
peerDependencies:
- vue: 3.5.28
+ vue: 3.5.29
- '@vue/shared@3.5.28':
- resolution: {integrity: sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==}
+ '@vue/shared@3.5.29':
+ resolution: {integrity: sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==}
'@vueuse/core@12.8.2':
resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==}
@@ -3541,233 +3683,233 @@ packages:
'@xenova/transformers@2.17.2':
resolution: {integrity: sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ==}
- '@zag-js/accordion@1.34.1':
- resolution: {integrity: sha512-FEk9iBwoCkbs96386MfKG7fKZ6uAnID/ppkYFs3FatTf79liJi6cQekWuOxhDPwpmbndCBNSO+eRJgsN1DWGxw==}
+ '@zag-js/accordion@1.35.3':
+ resolution: {integrity: sha512-wmw6yo5Zr6ShiKGTc5ICEOJCurWAOSGubIpGISiHi3cZ4tlxKF/vpATIUT3eq8xzdB56YK57yKCujs/WmwqqoA==}
- '@zag-js/anatomy@1.34.1':
- resolution: {integrity: sha512-FQuhlB5ggZvC2AKy52qITBe8Q8GCHdO+tsSY0A7kOe1C3wDnZNRCKtiNfkcIlEc3uP+alMhF/7xn09N7XXOTcQ==}
+ '@zag-js/anatomy@1.35.3':
+ resolution: {integrity: sha512-oqU9iLNNylrtJMBX5Xu4DsxnPNvtZLiobryv2oNtsDI1mi1Fca/XHghQC9K5aYT0qNsmHj1M3W5WAWTaOtPLkQ==}
- '@zag-js/angle-slider@1.34.1':
- resolution: {integrity: sha512-TQjzs9GZMWX4TKCmO164eWBnmw9R0EzQUkbEMSPgQ5Ue2vxxU4CCFlcn2HNlP0cz1PASk2xnMPRhcoPoRUTM+w==}
+ '@zag-js/angle-slider@1.35.3':
+ resolution: {integrity: sha512-HXRlmsbNEJSBT53fq9XQKL/vwZWwJC3nprskI7s4f/jy8a4uXPTlv7N7zuBYjew+ScTMzZah6fLWzUztBehmSg==}
- '@zag-js/aria-hidden@1.34.1':
- resolution: {integrity: sha512-3oO8T4ezzZI+DSDTaPZ4ZE6wdzHqywlz2Q6sqwjnsE46NcmlnZkaFgDPJCNPH56tXLsB7uE7A6KXLYxQrLf6fw==}
+ '@zag-js/aria-hidden@1.35.3':
+ resolution: {integrity: sha512-dk5POebn10WneQfLrEgbTzwolaXWpCSHL6F3jCTinW9IbOx7BXghzJD21iU5Iun+y9CorqJPW3p7LplYNUMO5Q==}
- '@zag-js/async-list@1.34.1':
- resolution: {integrity: sha512-Tt8dLkZGaVoX5CSmZhtg2kjzcz6uxruq29H+RLpG6mHooJt7YSjClmQIdLCgh/B/8aNDlXHir5pM/iiyGPHsqw==}
+ '@zag-js/async-list@1.35.3':
+ resolution: {integrity: sha512-SXX3wGzLK/maKS1PJ3XfLIGWbu0022f/OhcFsT1PbiHnoFZTH7h2fBhirrCBfy2TYFQ6r5uxgjkhPUNkuaeYnA==}
- '@zag-js/auto-resize@1.34.1':
- resolution: {integrity: sha512-jBOPBB/ILpVX1Craw/0ng2rlWDsBDTwXa9Nt/QFg2fJ0F5GYbye874/2kQQyroiEB7g2KGLgEAhmZt/7SHS8JA==}
+ '@zag-js/auto-resize@1.35.3':
+ resolution: {integrity: sha512-ufG8HSqzLd9h5rnos8aumj8iORlRskeR/gbpJu1NHrnHBWIrpuXm6KJJR2oZhTFY1BUMMk8eYIBA2QkVuiJzWA==}
- '@zag-js/avatar@1.34.1':
- resolution: {integrity: sha512-O7Bt02kZiTozNsEaWWgGYyTOU3wFejQIQl1Y0bYEeFbBQ2y75pmffhK9792UW6oZ+nwQ+s/0/kAMkzZWSl3qww==}
+ '@zag-js/avatar@1.35.3':
+ resolution: {integrity: sha512-lbQ2Q4Va8AAScKULOHw2tCQez+0JRYGHSMFq6i+dJmeT3dlSgRanm69ra6K2po6hM9E4v6pRe+xOVE+9QMDnuA==}
- '@zag-js/carousel@1.34.1':
- resolution: {integrity: sha512-aKOXJCslU8HoPp54sNv0tQraVG00fq9qL/ZwmZAzKw6G2kLtHaHtxBunQMRVrVGCYxXqsdoHWGikKT9PJWIICg==}
+ '@zag-js/carousel@1.35.3':
+ resolution: {integrity: sha512-F+b8HzUeZfB+xUkAkLG4r0Ubui8pj7pSgZhi26ZiWgsM7tsd7cD+xRMXkvPEITN5Fd5QCe3KlVBuE00w5byjmg==}
- '@zag-js/cascade-select@1.34.1':
- resolution: {integrity: sha512-NfGskK/4uezZWmVF/Mo4mEeG47GbRE0CrU0+l8UkWWKF4ZMjLl49hBbvyoZlJLiHiDl0KxIrixr8VWR/gAgiJQ==}
+ '@zag-js/cascade-select@1.35.3':
+ resolution: {integrity: sha512-Nifdx77hEuAdXqr1wpZSPjLXqygRhq/WvnPjGhCeSqFPpy62uT4JZ3avyjUZ4I0UhvIpkleUcXtFwQ3cSMh4ww==}
- '@zag-js/checkbox@1.34.1':
- resolution: {integrity: sha512-qj9paN6hcFwmQz+T7ABrlN8zVeA/11WLB2JDhno2xuJjdHDmOSWnWVxCEf8lv4nxcw3SUnJnMgFtAWLd0xJkFA==}
+ '@zag-js/checkbox@1.35.3':
+ resolution: {integrity: sha512-8XBt/Wg2zSQWqV2ZFqZBQUjYRkOYHA2O3IEi0VVYtds3S1n7Pu/HqkZT5qDw+E/SY2+X9Uyx4hO7h2XrlsiZQQ==}
- '@zag-js/clipboard@1.34.1':
- resolution: {integrity: sha512-O1xH2e3E+GYXubA/vtBkuE3AD81hO3N5P1weA6iHOCyDl8CAtKMZZ1xMuCTwt+wujwdvM1DT4IF+II9fBMngAw==}
+ '@zag-js/clipboard@1.35.3':
+ resolution: {integrity: sha512-obTwynBpp6c17fLHe5tg//FQ497QsyCEry+K3bTdlrivWW200wvfHxZ6RKVbKwDAwhH+ye0bI1xkYAId8j7sdA==}
- '@zag-js/collapsible@1.34.1':
- resolution: {integrity: sha512-1u32Zz/shcmxPbPsXuiIc5D9eIoZdpFoLuzlUzGlutBzq7zoavmMVIGmSevBEn12a6vhk/dPoiz2+OAKXi+2ww==}
+ '@zag-js/collapsible@1.35.3':
+ resolution: {integrity: sha512-IweG8JOBCerJwLO6QzTZGEMlsYUmQfQSeD0jniFguMM8vcunvGVSrM+AaL8pDbmXd+snXokaGyJpGO3vzMW6Fw==}
- '@zag-js/collection@1.34.1':
- resolution: {integrity: sha512-C61BL3cFyEfPCsPKeWshc8l7D3igqySPksVtmfzHhxcnlOxgVkBBpik7JF/cYk9yU6pHB6bCRzRgPDziiyOHLQ==}
+ '@zag-js/collection@1.35.3':
+ resolution: {integrity: sha512-BYoWJ4b7ma2PgiuQbRSnP603f2DlK6se5JtViUHTamZScLLLWnWHuQ6zFa1KS5kiIkbb7CFM6/bJ3WNYLch8Ig==}
- '@zag-js/color-picker@1.34.1':
- resolution: {integrity: sha512-ajvJoGtKvGJ3KZaoLV/wu1djg9/ahKDgyyR1fcfnFRrlpczPAejTqgan+Yazuc4ZuZ/fbAMeCfVxY2BzVoxYOQ==}
+ '@zag-js/color-picker@1.35.3':
+ resolution: {integrity: sha512-i9roSgtqeA1b4Q+jWqnxjXB//BQXMP5m1FQ4YcZVq/0yT14A53JIknchuqrh3wC3yPsJMXFqCoKg+NET2+OVig==}
- '@zag-js/color-utils@1.34.1':
- resolution: {integrity: sha512-8QcwmqyydxQPJBMOIsMqDHS0F2wDHmvPG2XhlgoGZD6wX/++atz/usLBPV29q53HCIowrIiCh05whWyHodKREQ==}
+ '@zag-js/color-utils@1.35.3':
+ resolution: {integrity: sha512-vxkEVgz4YdSbdaPvjiRI1VsJAdwzu/dUNvzqOaiVcPDrHr/FFgmUbv0SOFjnfSb2QWGI8EDEMn02RW9ym+BzGw==}
- '@zag-js/combobox@1.34.1':
- resolution: {integrity: sha512-YzqOYbfh8vDmc/ewj3DetGHt0hwYuvDV/2BdCQJ5rLtLK8iLJuTB79x8l6QJBCi93BG64E7aY7Wa7jyK+1oILQ==}
+ '@zag-js/combobox@1.35.3':
+ resolution: {integrity: sha512-s1qmttTGJTMjlDakL+uvWSEggpafKr1vhOeZCh8j+N4eFt9bLAwaffjuh/1JzWBvzovw7WoMVkizdTXPlN8oYg==}
- '@zag-js/core@1.34.1':
- resolution: {integrity: sha512-GjOZOL/p0tsuH/koYR+mSoegs3JXpP0ZkFuidAf0R4zqklNSdTLzhb00CZHGZcdWCExhmG18YwpjbEx8eyfV5g==}
+ '@zag-js/core@1.35.3':
+ resolution: {integrity: sha512-fGAHyqOYSEFmo52t7wI4dvbFfLyJmUlyf7wknsiUlzUHlrn3yv5PAZYZ2TibpOD1hwXIp4AoCjbiIPPZBxirZw==}
- '@zag-js/date-picker@1.34.1':
- resolution: {integrity: sha512-ubhpCRDf7vVXSvToJvnsnqjTB2hhbsYEaeIrwsHTFAFOETD15A5H/aC5PeiwCouLEbTQDiIoaDlOsNh57IO7XQ==}
+ '@zag-js/date-picker@1.35.3':
+ resolution: {integrity: sha512-4G10h6pzzLbd84SE2CKtqi6Z9wEBhSyx4GRSxxy3tsf5wAxnz4anRFat9CGwn2YVUYcUJpD+umYgBMPt6zGDnA==}
peerDependencies:
'@internationalized/date': '>=3.0.0'
- '@zag-js/date-utils@1.34.1':
- resolution: {integrity: sha512-UG0aooQXNWINlO8RWcBFv6aEHE1jAFKU4vNprh0nDOl61O0+j+lbV0qYushgyZ7O6aYSoI+tdb/Myv+BPqQxyg==}
+ '@zag-js/date-utils@1.35.3':
+ resolution: {integrity: sha512-1co0FPpZ6nO5dN8sZtECkMYaf+3E5zu0KSIJZpZiXb4TgsZMDyHu7K7IsiKFHk9qmhuF6AdPpNxBju91pSXMFg==}
peerDependencies:
'@internationalized/date': '>=3.0.0'
- '@zag-js/dialog@1.34.1':
- resolution: {integrity: sha512-2PfuUhC2e0ouQ2s2F9qmeThwTMGptVCAMDNMh1ZOPeVzQLvnsIQDvcYHeb62BuKgYDeoUiz3Tz/ns/sV/VI1kw==}
+ '@zag-js/dialog@1.35.3':
+ resolution: {integrity: sha512-byosV+aBHH5LoFKnjEgC7WdqJid7bP9UhgWLSC7+IXbxrif9Czg1YVp6ZlQM6Nx6uD1vnty4touI3P7D7CTKcw==}
- '@zag-js/dismissable@1.34.1':
- resolution: {integrity: sha512-7dj7G0Cl6Fu7IHENdLT1tFeePuq8BqxPT6xANdk66hnpVeyDKcrR3XjN+ChWpYxGIkeOfPGYsjRHx1kDiFv89g==}
+ '@zag-js/dismissable@1.35.3':
+ resolution: {integrity: sha512-XPk+lqmsZp2Z1yMb5K1yj/e7Sobv4D7zK66B1GS97lk9Xzz8vuSgsimcLy0p7RXQl3KL6H5L69inSuQa2exybQ==}
- '@zag-js/dom-query@1.34.1':
- resolution: {integrity: sha512-7GaxMaShtWsGgsz9jPfi+aJSQrx7aVFnCi5edGet76Tcytv0MRTqFKUcpSCWu3W3znBt8tQO07Mu1SBSNQk07Q==}
+ '@zag-js/dom-query@1.35.3':
+ resolution: {integrity: sha512-1RbFZoT4CjlHN9TUNse1++ZVOyKo45ktucTIT349o6HMsoWWKmTJDPvFkMBbmu/qY6XXn4dT+LJEp4bL3DR+Qw==}
- '@zag-js/drawer@1.34.1':
- resolution: {integrity: sha512-8Dc6MDxVf6t9a0VQ++7hI3jSNhnVLXF4oNSnyBNUqI4XNbxffp8vk5KWeVC7fKxgoMxnlfmipiYdS+PmyWJffQ==}
+ '@zag-js/drawer@1.35.3':
+ resolution: {integrity: sha512-DN5bwa7bDCDaUSbNzFxMc2U/WmbLcXvPSQjyOpKI6CC3VbW2kKaOnjJ5qQG+W5YBO0FpmJBtaxRV7lke4sZH2w==}
- '@zag-js/editable@1.34.1':
- resolution: {integrity: sha512-IXR8TE/S7uuTOY/Mj3tk8zmXlpgym9OUYZGFjohVdXeUC9INIeO27ei8mfAxY3JLqnYIyrLGD0Q7OUUj2L/vTQ==}
+ '@zag-js/editable@1.35.3':
+ resolution: {integrity: sha512-HcjeacS61vQXfNT9IalZj/+oS45yW5bIDO2NjJWV7zNe5AG29NCceUnvBhy+hrUKPnKcjfDocdW5rCL+Lvs/CQ==}
- '@zag-js/file-upload@1.34.1':
- resolution: {integrity: sha512-lzAo3GUyHHfhRfQvlVDx7FERcCjJajyxEMuWQzOYd10jy62oaeBFkqyF2m6O3SZ6aMAiGyzR+sXpCWf/LRnxdQ==}
+ '@zag-js/file-upload@1.35.3':
+ resolution: {integrity: sha512-oIYwnDct4ERo2mfmcxsBIJnlmpzjrzYx82SQsXWD3NGKx3cgdh2lwBX+ebItaLH1jkgzBa3z0TWxc6rfvcUXbw==}
- '@zag-js/file-utils@1.34.1':
- resolution: {integrity: sha512-fn6FoCg36hkFvn5MrMgs3kT9T+EADnPIV90hz2uyf1VmHq6BudYU13yhebqfY0vWHk7vGmXWkiZaemW5JkXbRA==}
+ '@zag-js/file-utils@1.35.3':
+ resolution: {integrity: sha512-Tb05RCzx4swc156hd4jLiO7z+Gxg/HQ+JCds03jgTbrFJAz2D56YaMeI7gSDc1m4Xre3nyqQpSo9AeX5nzbE/w==}
- '@zag-js/floating-panel@1.34.1':
- resolution: {integrity: sha512-2yreCW74MO047Yd3jjofFyJpbfd55E9TBw0Hh4W1kMPpWg8E3XnL4gWrYYKX6ycjeWNVNNvyAg1O/0qiM49fiA==}
+ '@zag-js/floating-panel@1.35.3':
+ resolution: {integrity: sha512-nTZypcS0X46Oo1kpCQTnP5UlzjhypOAj3B4dq2z/3bAOC0TntYTnFkj8PbEJtExk7364xfMyxfgZOiv7Aqq01w==}
- '@zag-js/focus-trap@1.34.1':
- resolution: {integrity: sha512-vfIC3diaYbdxDmKmNASZYx0RrNj6bG0InrIgQF0Kk/qI81FcK/VXQDjpXnnWC+yG2u3hG8h+6kbfgHtgoCuDjQ==}
+ '@zag-js/focus-trap@1.35.3':
+ resolution: {integrity: sha512-evErLlGFdDVCI8xipNS5k0rAvO+KFRA9g273bbfWAL1+mT54mcB/XHa85nC3QpPgMNrSh+6LUNq9fapyOGoyYg==}
- '@zag-js/focus-visible@1.34.1':
- resolution: {integrity: sha512-Wvl/w6JpPU8DwEfq+I82yzlBX9mEp2o2k6DZc+3Kb3x/3oP8Jr0fCXdk+qWTvKekfVvDpM2vS1fjNNLfiOaQww==}
+ '@zag-js/focus-visible@1.35.3':
+ resolution: {integrity: sha512-g4F8PRGIoFoKBrHiQ1HQh5AjCS7brFRXHvpbDNb9+T11FGlF5Turb+6OVRoNV8MmiuqMltO2I28l36YsGc//uQ==}
- '@zag-js/highlight-word@1.34.1':
- resolution: {integrity: sha512-pPT5xaxTfW6E8/CRzMhtRTfacd6C/XpLtSCuDV0Ps84rAjsl1yrHJBT2InaMTR0fKbZd+T9HcUFKtvAe48qQfA==}
+ '@zag-js/highlight-word@1.35.3':
+ resolution: {integrity: sha512-K+mvEBbf3SUFjQeMeJQYb3cjri3x6sPaPhcKWayalelSLB/StWEGqcpmz+a6uUYrCUAK5kEi3Hn0YLGfn0GOig==}
- '@zag-js/hover-card@1.34.1':
- resolution: {integrity: sha512-o5ikKq83QVs63kouL3QyRIdSjs6On9joyl2/JnlWLEhGJA4NfdMLDUwdbUOzEbQgtlj8RV0VQN09lRtqs7UBWw==}
+ '@zag-js/hover-card@1.35.3':
+ resolution: {integrity: sha512-xVoKOtvrnzhYzciZ1csgiV76IQ4DRtx1lsJeFSrfg5MH0kYWeC/pcmm3yCd2+Qh/45J7DbSXeZneqxpyiF5Vvw==}
- '@zag-js/i18n-utils@1.34.1':
- resolution: {integrity: sha512-LqBStUq24txCz0CFW1R9/kaSA3ZrB13DpRdQfZ+o8C8HxRokdUe8Nz0uxko8NtXgO8hput9CSs5+xKjg1buc2A==}
+ '@zag-js/i18n-utils@1.35.3':
+ resolution: {integrity: sha512-k7UcNxbnC2jvGwCoHYAkFD3ZaRSMQNVHfuy8TujZQ+ci3IJovwgWLveZoRfFbXHkTLfhmbpE2tFXBdpwOVZutg==}
- '@zag-js/image-cropper@1.34.1':
- resolution: {integrity: sha512-LKVaIqv98BchQOQ6R7tir3mBYODZCYMwjfsNj7YgnnsN+gh9Fie1Cy4Hy/3UMMsXXCJL8LgOWULsK9Vc8PJOzw==}
+ '@zag-js/image-cropper@1.35.3':
+ resolution: {integrity: sha512-1PH6bg8JAQESHzNqjka2TJ0QGNBGBAO6rb7AZ+9CaCCLw0pIzbUJhqPMkwd9GhdWGKGP+e7wFitnjcT4W5Js8g==}
- '@zag-js/interact-outside@1.34.1':
- resolution: {integrity: sha512-wQdOYVhPFyYPJUDPYXQc1tg8vdJGTG5xwTEdOGVG1DpVo87VNsdb0KjnWPZsfPQEUSkvJIXtbjopp/OLw4fFow==}
+ '@zag-js/interact-outside@1.35.3':
+ resolution: {integrity: sha512-tOcuo/IztzpU7UKXtjVrLZtXzzcbhP4n2WynKwDRkTkq3mRCp61xXJp1csIBycI3JHm/CMeAEcPdRIioxIT/Zw==}
- '@zag-js/json-tree-utils@1.34.1':
- resolution: {integrity: sha512-MfZZvBxexy24VJtBGM8ngsoMILiVRI/MwL2+LVJQcuRlAyKvPBC5BnTSxVpokXIiu0cCHyvzAYbXqAcBNM+gWA==}
+ '@zag-js/json-tree-utils@1.35.3':
+ resolution: {integrity: sha512-nOv2dPJf+1mxsobYiSlYt96hR1MK7iHKG1iDLoO5wLggS6GQA3ix1BerHJK0zdehoEZ71R45el5ghCG1HB9VzQ==}
- '@zag-js/listbox@1.34.1':
- resolution: {integrity: sha512-0KcGH8lILd1fLO49VCl3nyalesm+Nvr6/oH6qflsbn+frM4JaDcF/S6gngtKXJ8Mzx+5Qua97uAvuk047Z0I/A==}
+ '@zag-js/listbox@1.35.3':
+ resolution: {integrity: sha512-FE6FOuBr6aWtOb8U8oDvAvcUzD6JKLXAe8WngiLFG+b2yyW4nlaz2AcKRG1bjjB066UMxMo9/+2p4D0Kf5Id1Q==}
- '@zag-js/live-region@1.34.1':
- resolution: {integrity: sha512-0Heu0z0cBQQDA1289nm0wQM3+ybEuOSqpPffHQdRgaTtUWnG0xkw0jt8qq0A/tq2VIlwLnbNledE4dh1Y6KwhA==}
+ '@zag-js/live-region@1.35.3':
+ resolution: {integrity: sha512-64rWcfggYpyr2Fn4pdrB/lljMgm3quwn9is+vdDN85Vv3WShKWoz08T4njidm0hwcIbzas0bRqQYWDLLsAoSJQ==}
- '@zag-js/marquee@1.34.1':
- resolution: {integrity: sha512-SR5H7oBjjtwvO893Zu8oCzwVSHOkOSSlOuzuOkoebTGIVxHXtWukM6hS9wxgS40Tp03X1qzeI1XqiCGK1wqaaQ==}
+ '@zag-js/marquee@1.35.3':
+ resolution: {integrity: sha512-bKZVpmAJWPDORP7WOWnS+65W5ZQBQmRs8zvV33ZfCpFbkXjhRiqKSzIj223/VOc2NEDjyWagz2vioAxrFYVzww==}
- '@zag-js/menu@1.34.1':
- resolution: {integrity: sha512-nhVM6dNf48QqeY0qzn6n5hTk8qbBM7FwnGAUJmGRx9nrrG1SpIpQ5sCxDcOwgI/Q2vMu+2ggmIiObvZKAqZkiA==}
+ '@zag-js/menu@1.35.3':
+ resolution: {integrity: sha512-KyY0EZXkIU57Mjt+Lg+pupiePk3LcnQcB3Gl05Vva61bNjBjdKV71qwCQru/OxPZEwYgPo46L7TDIb56kfK/VQ==}
- '@zag-js/navigation-menu@1.34.1':
- resolution: {integrity: sha512-LwGyM0VpcZxvIvoEnnAEVV3+gGQ+SLYjhj9M1GFJrtFBlHF+dhCRS3sJ1m58RiZYAiJgt6jiNe94S+WRbXs+9g==}
+ '@zag-js/navigation-menu@1.35.3':
+ resolution: {integrity: sha512-8cCHx0X/KjEpr2BaMOxJS5LiA6fs/CNqVTF/sTTgZAv7Dm+MH0yNuKm4kpPvcLaVeBpVE09bnyCHrNKzZes+Fw==}
- '@zag-js/number-input@1.34.1':
- resolution: {integrity: sha512-ZcqsC7XRzutc3nDV1AJO/kwb6ycAeDGTMOL3jTQND0xPZfUb5u/YZcMxinWHLwXZZ8ZuXZeWvtiy3veCUJGCFg==}
+ '@zag-js/number-input@1.35.3':
+ resolution: {integrity: sha512-uqawVybAcLcefVEHMVONuAA5kDSDPP5TsROr5PnAyFlhM1iD85+r3KAfCueoDX5w2X4ibbu9o2tdV6zTFKD/nQ==}
- '@zag-js/pagination@1.34.1':
- resolution: {integrity: sha512-lnQsu1TxiLUDYiIL5mng2dA5RtyBG4WkZeMCZXhk8gCe8wBJ4jbTe3KhPBAFALV9Lq4YCrV/DyhsCNWcoXGkyg==}
+ '@zag-js/pagination@1.35.3':
+ resolution: {integrity: sha512-fKm4s5KAd12RiCI/EDmmGKjPQ+i2qS/UsJPdMe65yb/4mY5OibwV2zyHcVeFsOD4gBZpnU6kYlDAGSttmLWLlQ==}
- '@zag-js/password-input@1.34.1':
- resolution: {integrity: sha512-0gay9u9NqN8b4QuIpABlCtP93TbQJ8uRGurUSQwgbbG6llf+EOLiZs5f0H19MVnhbcINatv9p34Je6GAP2SBbA==}
+ '@zag-js/password-input@1.35.3':
+ resolution: {integrity: sha512-etd0gm6ELAm3y+cFhPU+TYm8khm9cL5Mg5m2DcZxu1Mqpj7JY0LsXZ8SFOdCZgTIHuMEhKBiYfnuyMAd4CJztA==}
- '@zag-js/pin-input@1.34.1':
- resolution: {integrity: sha512-xmXdDA2JahFD+I+avDw62WX9/tKH6ab6rkn46ciqHbGTTgSW23s/btiPRuMshdd4lnqXgQgKBE/wkVdRZzeRnA==}
+ '@zag-js/pin-input@1.35.3':
+ resolution: {integrity: sha512-ZFt+WIHMdVlSg29BrQLFq5ijabiUO3tXMhoKhjjzTSe/tLqfNeu3UxFB6y/FYpn8+Cvn6xwvhu3lgnORYmI0zQ==}
- '@zag-js/popover@1.34.1':
- resolution: {integrity: sha512-zIbR0weo16mxOmsjwDCjyMvYZjZjSKSx00YnRinsZw388SzFYRQoKV1eEpHsms8SD6xPIcqfGqedv3oCOBss4Q==}
+ '@zag-js/popover@1.35.3':
+ resolution: {integrity: sha512-+MIEENPsbKPxzoNuDI/C5d5ZN9uxnfZ+MBDc5C5XSgjjg9FcvMXClNq7IFM1aZi24peRXg9cMNf//lApVRT37w==}
- '@zag-js/popper@1.34.1':
- resolution: {integrity: sha512-e9xklP5YjfqS6sTSzezsRBdaD5ilMTQoEedAQecy16jstIAQsberctUYZVg8vRQubA9ukmv1JvaNbkVFclr13w==}
+ '@zag-js/popper@1.35.3':
+ resolution: {integrity: sha512-gpB7Xn9WtlfrUsIVbSgNQGDwgNOL/cSGt0Id3wEQKArmqVC704EWtPvXzOMMybBEdm8YW2hQrXuo+o66abI1Sg==}
- '@zag-js/presence@1.34.1':
- resolution: {integrity: sha512-KxbxEvZwpFAeStKFLCIc4tNZ0T9bEfdhY0f2PEfITsiu0b4s5JVu5+ClUqvhhNI1TUcn6Hah3ZvBkvQZGf9soQ==}
+ '@zag-js/presence@1.35.3':
+ resolution: {integrity: sha512-ev5E7+U9IZAGvEaflpdVLHaZl8ZaQMhGB3ypd0yKhPwXeM51obV8w3+5HjzTqHPl8TKuoHWL31YaiUBd5EuS6w==}
- '@zag-js/progress@1.34.1':
- resolution: {integrity: sha512-w1/wTOuxOZLt+VttcyaBef/Us2DfS3omN+1c0Cyqu61VVPAfQj1cE05K8M52H2VkSMvpTjMqW23cAfX3nfGWig==}
+ '@zag-js/progress@1.35.3':
+ resolution: {integrity: sha512-u0GxQN1AfXMAgzYOUMxKQA12DyuAP0svh2S//KvOorTSv7d5hAa8nZXi2cEv5abYsyfKJ6/bc1Z56byzW1jVZw==}
- '@zag-js/qr-code@1.34.1':
- resolution: {integrity: sha512-Y331dZLgEXYsM6bmRUmZi8eBbplNmlEd1yaYutyljoJ9rl/EuUtcCjLS1QoDCIFxS6egtbYBQamqCtUA0DIakw==}
+ '@zag-js/qr-code@1.35.3':
+ resolution: {integrity: sha512-t0Ehwogr49vTNtWyNdQU2tYex7uJyfAn7N/5LgD7FXw8aa+RBMWZWlqjCUvHqJ929tVMrn+LIrQnZCcwNunalA==}
- '@zag-js/radio-group@1.34.1':
- resolution: {integrity: sha512-dRy7Z1zE2qwyyjI68icLBkPzM+ZzL0aAklFVc7kd/ejYxZfk6SrPoMjg3u22a34J2scxHwh/LdSuQFmauj4sAA==}
+ '@zag-js/radio-group@1.35.3':
+ resolution: {integrity: sha512-kOzocjqWk3dXuRfyfsHwfw63Z99NHbc7rvVUutSsfXANXi+DFYZHuqdPUwMt+29LfaL15XTOfuGV+yUXDCgQHQ==}
- '@zag-js/rating-group@1.34.1':
- resolution: {integrity: sha512-ndvw9jHGYO1bYaYN4xL2z+zQimXoetPgems43YChbntOzfbSELYSXvdLG1KCll3Kti/caHgRT+yaodHcTvjN3w==}
+ '@zag-js/rating-group@1.35.3':
+ resolution: {integrity: sha512-BmhJZdbaTnd3nFWMY+nR+HF952UhWXfaXXxiBWptSLMBfAYImQTWBMrLgTHCSnVfmFATj4Gb7xQe79FQU8T5fA==}
- '@zag-js/rect-utils@1.34.1':
- resolution: {integrity: sha512-ms81ltfYBsabzk6tqy+kheMAUkx9IB+AUt8sATWGgqSTemBuMv/dptCJt3+WbkQjc8NveuEWmq3S6w1KJ31gaQ==}
+ '@zag-js/rect-utils@1.35.3':
+ resolution: {integrity: sha512-mt/oD3RXdyaX6ZPSd8BO13vvPBJ7QpVWieubE3O0WM3OPhU7ykDMRp/tR7cYMQrzUm04GlY9pbkmSSw2uABxlA==}
- '@zag-js/remove-scroll@1.34.1':
- resolution: {integrity: sha512-irnvF4cwoAidwdU4UsPQyhTivnY3V/ZBO9EW/zTJ78qm3sjkRDDZsKEVV2UstUEmvH1jcFFPp6eNoTVItsyJBg==}
+ '@zag-js/remove-scroll@1.35.3':
+ resolution: {integrity: sha512-e59z9SbEpPiw0qwNQa2cB5/h30ZCLREaHsCw1TKTANFhwg7v85k9Lq1H/G/49li1CAjmiaOU9BNGlDvbzpNETQ==}
- '@zag-js/scroll-area@1.34.1':
- resolution: {integrity: sha512-yP4D+j8D99kVRX9mJfPDHKS4wYVZgPs4S6qqCnVGZHTngMvrzzVtHYTzNdn+jnKHIVqYBizO3lIglAd7jQOvTw==}
+ '@zag-js/scroll-area@1.35.3':
+ resolution: {integrity: sha512-IQwdUws/AckRIHK1z/wHdHurnOeGd8h8Dmspfh3VT7NkwTnxeJ4SW9di9smuD+d25eXkJRuX5zGEDHAyx2IaPQ==}
- '@zag-js/scroll-snap@1.34.1':
- resolution: {integrity: sha512-pvgbJ3tjKRM1LlF14QY5riV/KT2EYGfYY4Cl5QuONqjO0ergrRd0FxDzhiwqIthgXrDZOavMucr7yqCLrjVQQA==}
+ '@zag-js/scroll-snap@1.35.3':
+ resolution: {integrity: sha512-NVa2yRm2DQnF6hTV9k7Xz7l8YCZBagZTiqSwNvWKUulKD1csjt2fpBxvUt2cK+1iQnLOey2ydhs7MMsAnXPbJA==}
- '@zag-js/select@1.34.1':
- resolution: {integrity: sha512-4Pc062McPgdRYwOU6v8jaqP48nBeTuSbuToHWixTVUhDkAsLDd7A8od2sKPsGHRsPOce0D259vJS5L3c0vtfig==}
+ '@zag-js/select@1.35.3':
+ resolution: {integrity: sha512-ztszGHWvlbBDE0YT5LYPH+sMd6VH1ct5pH/M9VSzIUO6C5PARkW0NwSVQ1rCQJMj4sfvSE1gC1/r7urRzqEcUQ==}
- '@zag-js/signature-pad@1.34.1':
- resolution: {integrity: sha512-yeYi4Tl+IgPfGA5ejbYSpHU52MBchR0S2aqT9X4kRJniCcnKLV3ZI5VOz8cYXCpYMDiWSsQnzcIIohHNHVhK2g==}
+ '@zag-js/signature-pad@1.35.3':
+ resolution: {integrity: sha512-jvtxxzAQ8fre11zWUh6HflG4Ycr5z83Wba4pONRJbUE/vNgkJQ7yJgfyUl1QTlkn8Arfg2Zwoxu9GIq80HLZWg==}
- '@zag-js/slider@1.34.1':
- resolution: {integrity: sha512-mzM1IhbldUdaS9aBNdAJpA2B1uF0vdIeEv5X9Fcn8xD/u+o8RMiFomunJmMDwZ8VlSnODwomopOP5UVKI9J3SQ==}
+ '@zag-js/slider@1.35.3':
+ resolution: {integrity: sha512-Th142JO4Fqla5AWhGrTW6CQicwvTw87PdVpur/WotQ7brlZIww5HipzEMh5eQJSWfwpKD4PI2bYK9V/ZE/mpXA==}
- '@zag-js/solid@1.34.1':
- resolution: {integrity: sha512-snZEOm5jJd6U15JaPJIQRXL+Tfb7c/xTS5rXS8/jk1GXbIEYnDN6BYWT9vqBt1jfONPiiaAdfMZG5CzAN4hlbQ==}
+ '@zag-js/solid@1.35.3':
+ resolution: {integrity: sha512-Gp6jFWwLeToD+Y0lcEwi15XIHSmJbyPhl/klxKQWWpr7+p3OAoNWwOQbxkhRU7M9hhJrYYsENfSETwG9QhMfBQ==}
peerDependencies:
solid-js: '>=1.1.3'
- '@zag-js/splitter@1.34.1':
- resolution: {integrity: sha512-Gg3KC1Moo+67/96Mo/EIz/0/I1Ib5Ui5uC9mdnAwzVdKjanEHRHSV6uCZITA4wlFKA7lQKbDwjhRo0kqsw8egw==}
+ '@zag-js/splitter@1.35.3':
+ resolution: {integrity: sha512-IsIbRwzjr5amGANEDsZDSToaSn8wHUWvS2l0XHmf3BiiguVApaZgQTlfqthVQC9hBHMOaGIXIW1CFUOrQYkvUQ==}
- '@zag-js/steps@1.34.1':
- resolution: {integrity: sha512-3MlrmND0MLrMXh1oXkDQkn3V4XuF5Li93wVVT7pvCT+VxnXgXUWGMT82IM2Edj/MA6DTbUqZtOEfFkcFw3aySw==}
+ '@zag-js/steps@1.35.3':
+ resolution: {integrity: sha512-TYIrqV+v9/ULhvrTRBtQFFvJQPPTWOmjFXxlIxDwozek5R4dCIyeUYt1/ChJEc2mNETocbfDVSTxRO1dwCFpwQ==}
- '@zag-js/store@1.34.1':
- resolution: {integrity: sha512-127OWtrFKuS9HsbZITancVrydA9CpDHxyS5V+gDA7bnsNdw8kKx1H82oMh8Ok6hkDXvilhEB+g+UIOVeQD7RwQ==}
+ '@zag-js/store@1.35.3':
+ resolution: {integrity: sha512-7kEV4T/20DU36UIfVMzuDlLhWSSEy/vabmpiB700tcdD9BBBODTiSg3ZeljW17dQbvE545vZOFEjVf/cQ5LVGA==}
- '@zag-js/switch@1.34.1':
- resolution: {integrity: sha512-yOibKwJ+/WZBxVBpiK7mFEFjz88rLCzAhYEr5Om52fsWPc7BbxZKBZw058e0yx5mEBXJUTXNebgp1fkmth7U9g==}
+ '@zag-js/switch@1.35.3':
+ resolution: {integrity: sha512-EP/2cJ46sd+6C5x5+89jn/9NOpM05CRESYB4RMhOnTe/WFtcS4IpiYtVHFhikdXkvJoibm67O2EHep2Pm/Xj4w==}
- '@zag-js/tabs@1.34.1':
- resolution: {integrity: sha512-5qAz3jyawmfwpIjd5rNe10yae3YdZSaUu9bNk8ZzJXkXu+Sf69BO6M/k32+ZtAS1i+cku7ZXluza95CxA/Oshg==}
+ '@zag-js/tabs@1.35.3':
+ resolution: {integrity: sha512-lZKlDmxE25miCikj9QZCCnL02SVV2K14KZy5bn7+XDgrWlfSNTpNTj8r5E3zGlSgio5pkTGou57ASqS7WaPDWg==}
- '@zag-js/tags-input@1.34.1':
- resolution: {integrity: sha512-6kgb9Ww+sgTi5kV0eoPE+uV42R2PCj4plUffNK+z4j3+km2T2jvp2/gvB6JKk0aV2NCzVzQ3lyk+Oy62sH6lyg==}
+ '@zag-js/tags-input@1.35.3':
+ resolution: {integrity: sha512-HqyoQ3DZFhByOGnDShFfxi6u0bIf7aSVTlwmAvcL+b2ZhyU6/wIMGc4WJE7BMx1NYWM/jNLHedvGExAI8R0kXQ==}
- '@zag-js/timer@1.34.1':
- resolution: {integrity: sha512-awQXcKCHAKS+XBJCV+TpZhSI+zRmQCtYUqVjXMv6Mj1jmB7PS/I7gAt1D7wGmMKtkBZ4vbRxe2p2qO3StlpxRA==}
+ '@zag-js/timer@1.35.3':
+ resolution: {integrity: sha512-edmgitbRgsq+msxvVB4wc17Q5d5k63zMWaLJnWjUdDGAgEtM6/HNxwGb3riv46S2U3RgYxaaHTNZ/M7EE5mvYw==}
- '@zag-js/toast@1.34.1':
- resolution: {integrity: sha512-Ad1QQ2aSbJUO+wDOLRAONrhhTsAm6YHwSxKnp4wMOvTw6UcBgRr2MeebrvYx/kwHa4UK/Y9L5rxoyRoTrk2mGg==}
+ '@zag-js/toast@1.35.3':
+ resolution: {integrity: sha512-whlR791GHdnMD21nNPsl2Dbql8+qu1wBZl75QzwYrjR8FlKjp8bhr3gXKzQEddcBXe9GPEFGvUs4iCyXsuTbpg==}
- '@zag-js/toggle-group@1.34.1':
- resolution: {integrity: sha512-QDgABKDhz8EShqZoIK4NR0Ca2qDpOYAaClHlq4loyWqBhKSt1Xtok7GaD4iwer+U/5WpkzJqIlwV2nC09dsRpA==}
+ '@zag-js/toggle-group@1.35.3':
+ resolution: {integrity: sha512-Gn6JHzkQ4tlttjZcE0ZjIdxYkFeVp9VHrcMVizjJTkGZRmQ+kPZ5G/wOsZhIrvLX3Dw6Y0NkuBcP+jDHz/o3TA==}
- '@zag-js/toggle@1.34.1':
- resolution: {integrity: sha512-zwKX3+VMHg5U6/b0pzHIto7TQTWVHgKpoenzSApGnoHcJMgJRLkV738uBgmiP6wGzgAX9RmUIf1jjzOdLFndaA==}
+ '@zag-js/toggle@1.35.3':
+ resolution: {integrity: sha512-aFfHKuR4sKzglhkmWLA+0RTNPs9dfeqwtc96qljawGYfAYWJXkEPYK9dFfVa+arZ7L84xBi24QSLiTg7LGSFLw==}
- '@zag-js/tooltip@1.34.1':
- resolution: {integrity: sha512-3IsEixpaOqZ6ZRSqEabZOp97yHx2uQFFA6Ge9FbJC+gK7clqwoqPJrg79PkBYTBvi0H7JoyRPhImWRSQES2YSA==}
+ '@zag-js/tooltip@1.35.3':
+ resolution: {integrity: sha512-/pImDGYl79MfLdvEphj3rSvNdj2tLW4GwGEncgdLM/GKwQiEUjfi/9EJOfLYP23M4lOOnoW7orehJ9xeaXOAkA==}
- '@zag-js/tour@1.34.1':
- resolution: {integrity: sha512-V1uw8VulpQJ6HG6OR0BSQHphnkEJLMPV9EyN2nm+d7JWKiikxLf2zlopw/CKwaBbg4JNlqo2q1K0lhzv2wBeBQ==}
+ '@zag-js/tour@1.35.3':
+ resolution: {integrity: sha512-DI2aCXmZaE9KcPZDs9itc2BO7ixLApJ/yVRfM69pXwVOrucdSeDDNPFkfbhj5XwB+9VjjZEkqWFHKntRIyPl5g==}
- '@zag-js/tree-view@1.34.1':
- resolution: {integrity: sha512-ExoUFplWtTyVEGITgAFR2kIaJax/zznPuWVBiWL+Avf7qn0+CCs1b1JOPeGQtqUXk9Fso67uw9BwNQFOxbQelA==}
+ '@zag-js/tree-view@1.35.3':
+ resolution: {integrity: sha512-DbHaLxSNa1goE3o3IsXxEdzp8P5dvmkk1rVWgNUUIhpA+44idEjSSNXJkHPl18Mk5blqSMVjK1EX91oqai01Vw==}
- '@zag-js/types@1.34.1':
- resolution: {integrity: sha512-DAg2cD5g0PvYGIC08GWa71aSyO2IEGlQCIIdOtmUSN2PdLyRi3IllNHlnDYFCkTGbb0GUunCro8FLvE9Aj2BOA==}
+ '@zag-js/types@1.35.3':
+ resolution: {integrity: sha512-Fnm3AMs1lfb55hlkip/eJeWHOjFB3gSi1JkZlkkdltG2l7y/zsHkumPSe6jIKy+DRRIFKRCyXVTatbPN27bO3w==}
- '@zag-js/utils@1.34.1':
- resolution: {integrity: sha512-XgNTbcxPgNkPEuH/s/WUSU3M1mnO7453P53Wvym3dte+zPmqjwf5VT1FmEw8t6YQDBiBkIEKpUnNwR2x/pmZgg==}
+ '@zag-js/utils@1.35.3':
+ resolution: {integrity: sha512-LHcC+9y6TFhDsIz9I3koYxONl2JFfx5yQDzc6ZEQO2cqzXedRcN0R9IPqNGCX7JuhGt14ctDkVCm1JWGP2J6Wg==}
abbrev@3.0.1:
resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
@@ -3836,8 +3978,8 @@ packages:
ajv@8.18.0:
resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==}
- algoliasearch@5.49.0:
- resolution: {integrity: sha512-Tse7vx7WOvbU+kpq/L3BrBhSWTPbtMa59zIEhMn+Z2NoxZlpcCRUDCRxQ7kDFs1T3CHxDgvb+mDuILiBBpBaAA==}
+ algoliasearch@5.49.1:
+ resolution: {integrity: sha512-X3Pp2aRQhg4xUC6PQtkubn5NpRKuUPQ9FPDQlx36SmpFwwH2N0/tw4c+NXV3nw3PsgeUs+BuWGP0gjz3TvENLQ==}
engines: {node: '>= 14.0.0'}
ansi-align@3.0.1:
@@ -3922,8 +4064,12 @@ packages:
resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- axios@1.13.5:
- resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==}
+ aws-ssl-profiles@1.1.2:
+ resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==}
+ engines: {node: '>= 6.0.0'}
+
+ axios@1.13.6:
+ resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==}
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
@@ -3974,8 +4120,8 @@ packages:
bare-abort-controller:
optional: true
- bare-fs@4.5.4:
- resolution: {integrity: sha512-POK4oplfA7P7gqvetNmCs4CNtm9fNsx+IAh7jH7GgU0OJdge2rso0R20TNWVq6VoWcCvsTdlNDaleLHGaKx8CA==}
+ bare-fs@4.5.5:
+ resolution: {integrity: sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w==}
engines: {bare: '>=1.16.0'}
peerDependencies:
bare-buffer: '*'
@@ -3983,8 +4129,8 @@ packages:
bare-buffer:
optional: true
- bare-os@3.6.2:
- resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==}
+ bare-os@3.7.1:
+ resolution: {integrity: sha512-ebvMaS5BgZKmJlvuWh14dg9rbUI84QeV3WlWn6Ph6lFI8jJoh7ADtVTyD2c93euwbe+zgi0DVrl4YmqXeM9aIA==}
engines: {bare: '>=1.14.0'}
bare-path@3.0.0:
@@ -4016,8 +4162,8 @@ packages:
resolution: {integrity: sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==}
engines: {node: '>=10.0.0'}
- better-auth@1.4.19:
- resolution: {integrity: sha512-3RlZJcA0+NH25wYD85vpIGwW9oSTuEmLIaGbT8zg41w/Pa2hVWHKedjoUHHJtnzkBXzDb+CShkLnSw7IThDdqQ==}
+ better-auth@1.5.4:
+ resolution: {integrity: sha512-ReykcEKx6Kp9560jG1wtlDBnftA7L7xb3ZZdDWm5yGXKKe2pUf+oBjH0fqekrkRII0m4XBVQbQ0mOrFv+3FdYg==}
peerDependencies:
'@lynx-js/react': '*'
'@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0
@@ -4078,8 +4224,8 @@ packages:
vue:
optional: true
- better-call@1.1.8:
- resolution: {integrity: sha512-XMQ2rs6FNXasGNfMjzbyroSwKwYbZ/T3IxruSS6U2MJRsSYh3wYtG3o6H00ZlKZ/C/UPOAD97tqgQJNsxyeTXw==}
+ better-call@1.3.2:
+ resolution: {integrity: sha512-4cZIfrerDsNTn3cm+MhLbUePN0gdwkhSXEuG7r/zuQ8c/H7iU0/jSK5TD3FW7U0MgKHce/8jGpPYNO4Ve+4NBw==}
peerDependencies:
zod: ^4.0.0
peerDependenciesMeta:
@@ -4128,8 +4274,8 @@ packages:
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
- brace-expansion@5.0.3:
- resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==}
+ brace-expansion@5.0.4:
+ resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==}
engines: {node: 18 || 20 || >=22}
braces@3.0.3:
@@ -4141,6 +4287,10 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ bson@7.2.0:
+ resolution: {integrity: sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==}
+ engines: {node: '>=20.19.0'}
+
btoa@1.2.1:
resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==}
engines: {node: '>= 0.4.0'}
@@ -4178,6 +4328,14 @@ packages:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
+ c12@3.1.0:
+ resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==}
+ peerDependencies:
+ magicast: ^0.3.5
+ peerDependenciesMeta:
+ magicast:
+ optional: true
+
c12@3.3.3:
resolution: {integrity: sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==}
peerDependencies:
@@ -4206,8 +4364,8 @@ packages:
resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
engines: {node: '>=16'}
- caniuse-lite@1.0.30001774:
- resolution: {integrity: sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==}
+ caniuse-lite@1.0.30001777:
+ resolution: {integrity: sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -4250,8 +4408,11 @@ packages:
peerDependencies:
chevrotain: ^11.0.0
- chevrotain@11.1.1:
- resolution: {integrity: sha512-f0yv5CPKaFxfsPTBzX7vGuim4oIC1/gcS7LUGdBSwl2dU6+FON6LVUksdOo1qJjoUvXNn45urgh8C+0a24pACQ==}
+ chevrotain@10.5.0:
+ resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==}
+
+ chevrotain@11.1.2:
+ resolution: {integrity: sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg==}
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
@@ -4305,8 +4466,8 @@ packages:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
- cli-truncate@5.1.1:
- resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==}
+ cli-truncate@5.2.0:
+ resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==}
engines: {node: '>=20'}
clipboardy@4.0.0:
@@ -4448,8 +4609,8 @@ packages:
cose-base@2.2.0:
resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==}
- cosmiconfig@9.0.0:
- resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
+ cosmiconfig@9.0.1:
+ resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==}
engines: {node: '>=14'}
peerDependencies:
typescript: '>=4.9.5'
@@ -4457,8 +4618,8 @@ packages:
typescript:
optional: true
- countup.js@2.9.0:
- resolution: {integrity: sha512-llqrvyXztRFPp6+i8jx25phHWcVWhrHO4Nlt0uAOSKHB8778zzQswa4MU3qKBvkXfJKftRYFJuVHez67lyKdHg==}
+ countup.js@2.10.0:
+ resolution: {integrity: sha512-QQpZx7oYxsR+OeITlZe46fY/OQjV11oBqjY8wgIXzLU2jIz8GzOrbMhqKLysGY8bWI3T1ZNrYkwGzKb4JNgyzg==}
crc-32@1.2.2:
resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
@@ -4483,8 +4644,8 @@ packages:
css-select@5.2.2:
resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
- css-tree@3.1.0:
- resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
+ css-tree@3.2.1:
+ resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-what@6.2.2:
@@ -4730,6 +4891,10 @@ packages:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ deepmerge-ts@7.1.5:
+ resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==}
+ engines: {node: '>=16.0.0'}
+
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@@ -4793,8 +4958,8 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
- devtools-protocol@0.0.1566079:
- resolution: {integrity: sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==}
+ devtools-protocol@0.0.1581282:
+ resolution: {integrity: sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==}
dexie@4.3.0:
resolution: {integrity: sha512-5EeoQpJvMKHe6zWt/FSIIuRa3CWlZeIl6zKXt+Lz7BU6RoRRLgX9dZEynRfXrkLcldKYCBiz7xekTEylnie1Ug==}
@@ -4819,8 +4984,9 @@ packages:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
- dompurify@3.3.1:
- resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==}
+ dompurify@3.3.2:
+ resolution: {integrity: sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==}
+ engines: {node: '>=20'}
domutils@3.2.2:
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
@@ -4946,13 +5112,16 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ effect@3.18.4:
+ resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==}
+
ejs@3.1.10:
resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.302:
- resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==}
+ electron-to-chromium@1.5.307:
+ resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==}
emoji-regex-xs@1.0.0:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
@@ -4966,6 +5135,10 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ empathic@2.0.0:
+ resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
+ engines: {node: '>=14'}
+
encodeurl@2.0.0:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: '>= 0.8'}
@@ -4973,8 +5146,8 @@ packages:
end-of-stream@1.4.5:
resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
- enhanced-resolve@5.19.0:
- resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==}
+ enhanced-resolve@5.20.0:
+ resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==}
engines: {node: '>=10.13.0'}
entities@4.5.0:
@@ -5029,8 +5202,8 @@ packages:
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
engines: {node: '>= 0.4'}
- es-toolkit@1.44.0:
- resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==}
+ es-toolkit@1.45.1:
+ resolution: {integrity: sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==}
esbuild-register@3.6.0:
resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
@@ -5129,8 +5302,8 @@ packages:
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@9.39.3:
- resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==}
+ eslint@9.39.4:
+ resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -5218,8 +5391,8 @@ packages:
resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
engines: {node: '>=12.0.0'}
- express-rate-limit@8.2.1:
- resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==}
+ express-rate-limit@8.3.0:
+ resolution: {integrity: sha512-KJzBawY6fB9FiZGdE/0aftepZ91YlaGIrV8vgblRM3J8X+dHx/aiowJWwkx6LIGyuqGiANsjSwwrbb8mifOJ4Q==}
engines: {node: '>= 16'}
peerDependencies:
express: '>= 4.11'
@@ -5240,6 +5413,10 @@ packages:
resolution: {integrity: sha512-CGnyrvbhPlWYMngksqrSSUT1BAVP49dZocrHuK0SvtR0D5TMs5wP0o3j7jexDJW01KSadjBp1M/71o/KR3nD1w==}
engines: {node: '>=18'}
+ fast-check@3.23.2:
+ resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==}
+ engines: {node: '>=8.0.0'}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -5284,9 +5461,8 @@ packages:
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
- filelist@1.0.5:
- resolution: {integrity: sha512-ct/ckWBV/9Dg3MlvCXsLcSUyoWwv9mCKqlhLNB2DAuXR/NZolSXlQqP5dyy6guWlPXBhodZyZ5lGPQcbQDxrEQ==}
- engines: {node: 20 || >=22}
+ filelist@1.0.6:
+ resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==}
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
@@ -5311,8 +5487,8 @@ packages:
flatbuffers@1.12.0:
resolution: {integrity: sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==}
- flatted@3.3.3:
- resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+ flatted@3.3.4:
+ resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==}
focus-trap@7.8.0:
resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==}
@@ -5368,6 +5544,9 @@ packages:
engines: {node: '>= 18.0.0'}
hasBin: true
+ generate-function@2.3.1:
+ resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
+
gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
@@ -5456,6 +5635,12 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ grammex@3.1.12:
+ resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==}
+
+ graphmatch@1.1.1:
+ resolution: {integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==}
+
guid-typescript@1.0.9:
resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==}
@@ -5502,8 +5687,12 @@ packages:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
- hono@4.12.2:
- resolution: {integrity: sha512-gJnaDHXKDayjt8ue0n8Gs0A007yKXj4Xzb8+cNjZeYsSzzwKc0Lr+OZgYwVfB0pHfUs17EPoLvrOsEaJ9mj+Tg==}
+ hono@4.11.4:
+ resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==}
+ engines: {node: '>=16.9.0'}
+
+ hono@4.12.5:
+ resolution: {integrity: sha512-3qq+FUBtlTHhtYxbxheZgY8NIFnkkC/MR8u5TTsr7YZ3wixryQ3cCwn3iZbg8p8B88iDBBAYSfZDS75t8MN7Vg==}
engines: {node: '>=16.9.0'}
hookable@5.5.3:
@@ -5542,6 +5731,9 @@ packages:
resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+ http-status-codes@2.3.0:
+ resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==}
+
https-proxy-agent@7.0.6:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
@@ -5628,14 +5820,10 @@ packages:
resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
engines: {node: '>=12'}
- ioredis@5.9.3:
- resolution: {integrity: sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==}
+ ioredis@5.10.0:
+ resolution: {integrity: sha512-HVBe9OFuqs+Z6n64q09PQvP1/R4Bm+30PAyyD4wIEqssh3v9L21QjCVk4kRLucMBcDokJTcLjsGeVRlq/nH6DA==}
engines: {node: '>=12.22.0'}
- ip-address@10.0.1:
- resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==}
- engines: {node: '>= 12'}
-
ip-address@10.1.0:
resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==}
engines: {node: '>= 12'}
@@ -5718,6 +5906,9 @@ packages:
is-promise@4.0.0:
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
+ is-property@1.0.2:
+ resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==}
+
is-reference@1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
@@ -5781,8 +5972,8 @@ packages:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
- jose@6.1.3:
- resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==}
+ jose@6.2.0:
+ resolution: {integrity: sha512-xsfE1TcSCbUdo6U07tR0mvhg0flGxU8tPLbF03mirl2ukGQENhUg4ubGYQnhVH0b5stLlPM+WOqDkEl1R1y5sQ==}
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -5835,8 +6026,8 @@ packages:
resolution: {integrity: sha512-eQQBjBnsVtGacsG9uJNB8qOr3yA8rga4wAaGG1qRcBzSIvfhERLrWxMAM1hp5fcS6Abo8M4+bUBTekYR0qTPQw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- katex@0.16.32:
- resolution: {integrity: sha512-ac0FzkRJlpw4WyH3Zu/OgU9LmPKqjHr6O2BxfSrBt8uJ1BhvH2YK3oJ4ut/K+O+6qQt2MGpdbn0MrffVEnnUDQ==}
+ katex@0.16.37:
+ resolution: {integrity: sha512-TIGjO2cCGYono+uUzgkE7RFF329mLLWGuHUlSr6cwIVj9O8f0VQZ783rsanmJpFUo32vvtj7XT04NGRPh+SZFg==}
hasBin: true
kebab-case@1.0.2:
@@ -5962,6 +6153,10 @@ packages:
resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==}
engines: {node: '>= 12.0.0'}
+ lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@@ -6002,12 +6197,18 @@ packages:
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
lodash@4.17.23:
resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
long@4.0.0:
resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
+ long@5.3.2:
+ resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
+
loupe@3.2.1:
resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
@@ -6025,6 +6226,10 @@ packages:
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
engines: {node: '>=12'}
+ lru.min@1.1.4:
+ resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==}
+ engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'}
+
lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@@ -6053,13 +6258,16 @@ packages:
mdast-util-to-hast@13.2.1:
resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
- mdn-data@2.12.2:
- resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
+ mdn-data@2.27.1:
+ resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==}
media-typer@1.1.0:
resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
engines: {node: '>= 0.8'}
+ memory-pager@1.5.0:
+ resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==}
+
merge-anything@5.1.7:
resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
engines: {node: '>=12.13'}
@@ -6149,8 +6357,8 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
- miniflare@4.20260302.0:
- resolution: {integrity: sha512-joGFywlo7HdfHXXGOkc6tDCVkwjEncM0mwEsMOLWcl+vDVJPj9HRV7JtEa0+lCpNOLdYw7mZNHYe12xz9KtJOw==}
+ miniflare@4.20260301.1:
+ resolution: {integrity: sha512-fqkHx0QMKswRH9uqQQQOU/RoaS3Wjckxy3CUX3YGJr0ZIMu7ObvI+NovdYi6RIsSPthNtq+3TPmRNxjeRiasog==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -6158,19 +6366,19 @@ packages:
resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==}
engines: {node: 20 || >=22}
- minimatch@10.2.2:
- resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==}
+ minimatch@10.2.4:
+ resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
engines: {node: 18 || 20 || >=22}
- minimatch@3.1.3:
- resolution: {integrity: sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==}
+ minimatch@3.1.5:
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
- minimatch@5.1.7:
- resolution: {integrity: sha512-FjiwU9HaHW6YB3H4a1sFudnv93lvydNjz2lmyUXR6IwKhGI+bgL3SOZrBGn6kvvX2pJvhEkGSGjyTHN47O4rqA==}
+ minimatch@5.1.9:
+ resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
engines: {node: '>=10'}
- minimatch@9.0.6:
- resolution: {integrity: sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==}
+ minimatch@9.0.9:
+ resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
engines: {node: '>=16 || 14 >=14.17'}
minimist@1.2.8:
@@ -6197,8 +6405,39 @@ packages:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
- mlly@1.8.0:
- resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+ mlly@1.8.1:
+ resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==}
+
+ mongodb-connection-string-url@7.0.1:
+ resolution: {integrity: sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==}
+ engines: {node: '>=20.19.0'}
+
+ mongodb@7.1.0:
+ resolution: {integrity: sha512-kMfnKunbolQYwCIyrkxNJFB4Ypy91pYqua5NargS/f8ODNSJxT03ZU3n1JqL4mCzbSih8tvmMEMLpKTT7x5gCg==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@aws-sdk/credential-providers': ^3.806.0
+ '@mongodb-js/zstd': ^7.0.0
+ gcp-metadata: ^7.0.1
+ kerberos: ^7.0.0
+ mongodb-client-encryption: '>=7.0.0 <7.1.0'
+ snappy: ^7.3.2
+ socks: ^2.8.6
+ peerDependenciesMeta:
+ '@aws-sdk/credential-providers':
+ optional: true
+ '@mongodb-js/zstd':
+ optional: true
+ gcp-metadata:
+ optional: true
+ kerberos:
+ optional: true
+ mongodb-client-encryption:
+ optional: true
+ snappy:
+ optional: true
+ socks:
+ optional: true
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
@@ -6210,13 +6449,21 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ mysql2@3.15.3:
+ resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==}
+ engines: {node: '>= 8.0'}
+
+ named-placeholders@1.1.6:
+ resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==}
+ engines: {node: '>=8.0.0'}
+
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanostores@1.1.0:
- resolution: {integrity: sha512-yJBmDJr18xy47dbNVlHcgdPrulSn1nhSE6Ns9vTG+Nx9VPT6iV1MD6aQFp/t52zpf82FhLLTXAXr30NuCnxvwA==}
+ nanostores@1.1.1:
+ resolution: {integrity: sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg==}
engines: {node: ^20.0.0 || >=22.0.0}
napi-build-utils@2.0.0:
@@ -6279,8 +6526,8 @@ packages:
node-mock-http@1.0.4:
resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==}
- node-releases@2.0.27:
- resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
+ node-releases@2.0.36:
+ resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==}
non-layered-tidy-tree-layout@2.0.2:
resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==}
@@ -6517,10 +6764,14 @@ packages:
points-on-path@0.2.1:
resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==}
- postcss@8.5.6:
- resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ postcss@8.5.8:
+ resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==}
engines: {node: ^10 || ^12 || >=14}
+ postgres@3.4.7:
+ resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==}
+ engines: {node: '>=12'}
+
postmark@4.0.7:
resolution: {integrity: sha512-DjNniUl1XNCGUKhCR98ePd5gv16rlUAVKKaU9TUqnE3hDSqfT9XDulu1idjagQmdyGscqnRtXk/puAEiYMeevg==}
@@ -6605,6 +6856,19 @@ packages:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ prisma@7.4.2:
+ resolution: {integrity: sha512-2bP8Ruww3Q95Z2eH4Yqh4KAENRsj/SxbdknIVBfd6DmjPwmpsC4OVFMLOeHt6tM3Amh8ebjvstrUz3V/hOe1dA==}
+ engines: {node: ^20.19 || ^22.12 || >=24.0}
+ hasBin: true
+ peerDependencies:
+ better-sqlite3: '>=9.0.0'
+ typescript: '>=5.4.0'
+ peerDependenciesMeta:
+ better-sqlite3:
+ optional: true
+ typescript:
+ optional: true
+
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -6616,6 +6880,9 @@ packages:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
+ proper-lockfile@4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+
property-information@7.1.0:
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
@@ -6640,22 +6907,25 @@ packages:
proxy-memoize@3.0.1:
resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==}
- pump@3.0.3:
- resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
+ pump@3.0.4:
+ resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==}
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- puppeteer-core@24.37.5:
- resolution: {integrity: sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==}
+ puppeteer-core@24.38.0:
+ resolution: {integrity: sha512-zB3S/tksIhgi2gZRndUe07AudBz5SXOB7hqG0kEa9/YXWrGwlVlYm3tZtwKgfRftBzbmLQl5iwHkQQl04n/mWw==}
engines: {node: '>=18'}
- puppeteer@24.37.5:
- resolution: {integrity: sha512-3PAOIQLceyEmn1Fi76GkGO2EVxztv5OtdlB1m8hMUZL3f8KDHnlvXbvCXv+Ls7KzF1R0KdKBqLuT/Hhrok12hQ==}
+ puppeteer@24.38.0:
+ resolution: {integrity: sha512-abnJOBVoL9PQTLKSbYGm9mjNFyIPaTVj77J/6cS370dIQtcZMpx8wyZoAuBzR71Aoon6yvI71NEVFUsl3JU82g==}
engines: {node: '>=18'}
hasBin: true
+ pure-rand@6.1.0:
+ resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
+
qs@6.15.0:
resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==}
engines: {node: '>=0.6'}
@@ -6766,6 +7036,9 @@ packages:
resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ regexp-to-ast@0.5.0:
+ resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==}
+
regexp-tree@0.1.27:
resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
hasBin: true
@@ -6774,6 +7047,9 @@ packages:
resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==}
hasBin: true
+ remeda@2.33.4:
+ resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==}
+
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -6805,6 +7081,10 @@ packages:
resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
reusify@1.1.0:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -6825,8 +7105,8 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
- rollup-plugin-visualizer@6.0.5:
- resolution: {integrity: sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==}
+ rollup-plugin-visualizer@6.0.11:
+ resolution: {integrity: sha512-TBwVHVY7buHjIKVLqr9scTVFwqZqMXINcCphPwIWKPDCOBIa+jCQfafvbjRJDZgXdq/A996Dy6yGJ/+/NtAXDQ==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -6909,6 +7189,9 @@ packages:
resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==}
engines: {node: '>= 18'}
+ seq-queue@0.0.5:
+ resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==}
+
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
@@ -6933,8 +7216,8 @@ packages:
resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==}
engines: {node: '>= 18'}
- set-cookie-parser@2.7.2:
- resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==}
+ set-cookie-parser@3.0.1:
+ resolution: {integrity: sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==}
setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
@@ -7015,10 +7298,6 @@ packages:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
- slice-ansi@7.1.2:
- resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==}
- engines: {node: '>=18'}
-
slice-ansi@8.0.0:
resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==}
engines: {node: '>=20'}
@@ -7087,10 +7366,17 @@ packages:
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+ sparse-bitfield@3.0.3:
+ resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==}
+
speakingurl@14.0.1:
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
engines: {node: '>=0.10.0'}
+ sqlstring@2.3.3:
+ resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==}
+ engines: {node: '>= 0.6'}
+
stack-trace@1.0.0-pre2:
resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==}
engines: {node: '>=16'}
@@ -7151,8 +7437,8 @@ packages:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
- strip-ansi@7.1.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
+ strip-ansi@7.2.0:
+ resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
engines: {node: '>=12'}
strip-final-newline@3.0.0:
@@ -7178,8 +7464,8 @@ packages:
strip-literal@3.1.0:
resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
- stripe@20.3.1:
- resolution: {integrity: sha512-k990yOT5G5rhX3XluRPw5Y8RLdJDW4dzQ29wWT66piHrbnM2KyamJ1dKgPsw4HzGHRWjDiSSdcI2WdxQUPV3aQ==}
+ stripe@20.4.1:
+ resolution: {integrity: sha512-axCguHItc8Sxt0HC6aSkdVRPffjYPV7EQqZRb2GkIa8FzWDycE7nHJM19C6xAIynH1Qp1/BHiopSi96jGBxT0w==}
engines: {node: '>=16'}
peerDependencies:
'@types/node': '>=16'
@@ -7244,18 +7530,18 @@ packages:
tar-fs@2.1.4:
resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==}
- tar-fs@3.1.1:
- resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==}
+ tar-fs@3.1.2:
+ resolution: {integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==}
tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
engines: {node: '>=6'}
- tar-stream@3.1.7:
- resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
+ tar-stream@3.1.8:
+ resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==}
- tar@7.5.9:
- resolution: {integrity: sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==}
+ tar@7.5.10:
+ resolution: {integrity: sha512-8mOPs1//5q/rlkNSPcCegA6hiHJYDmSLEI8aMH/CdSQJNWztHC9WHNam5zdQlfpTwB9Xp7IBEsHfV5LKMJGVAw==}
engines: {node: '>=18'}
teex@1.0.1:
@@ -7319,11 +7605,11 @@ packages:
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
engines: {node: '>=14.0.0'}
- tldts-core@7.0.23:
- resolution: {integrity: sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==}
+ tldts-core@7.0.25:
+ resolution: {integrity: sha512-ZjCZK0rppSBu7rjHYDYsEaMOIbbT+nWF57hKkv4IUmZWBNrBWBOjIElc0mKRgLM8bm7x/BBlof6t2gi/Oq/Asw==}
- tldts@7.0.23:
- resolution: {integrity: sha512-ASdhgQIBSay0R/eXggAkQ53G4nTJqTXqC2kbaBbdDwM7SkjyZyO0OaaN1/FH7U/yCeqOHDwFO5j8+Os/IS1dXw==}
+ tldts@7.0.25:
+ resolution: {integrity: sha512-keinCnPbwXEUG3ilrWQZU+CqcTTzHq9m2HhoUP2l7Xmi8l1LuijAXLpAJ5zRW+ifKTNscs4NdCkfkDCBYm352w==}
hasBin: true
to-regex-range@5.0.1:
@@ -7348,6 +7634,10 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ tr46@5.1.1:
+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
+ engines: {node: '>=18'}
+
tr46@6.0.0:
resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==}
engines: {node: '>=20'}
@@ -7380,38 +7670,38 @@ packages:
tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
- turbo-darwin-64@2.8.10:
- resolution: {integrity: sha512-A03fXh+B7S8mL3PbdhTd+0UsaGrhfyPkODvzBDpKRY7bbeac4MDFpJ7I+Slf2oSkCEeSvHKR7Z4U71uKRUfX7g==}
+ turbo-darwin-64@2.8.14:
+ resolution: {integrity: sha512-9sFi7n2lLfEsGWi5OEoA/eTtQU2BPKtzSYKqufMtDeRmqMT9vKjbv9gJCRkllSVE9BOXA0qXC3diyX8V8rKIKw==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@2.8.10:
- resolution: {integrity: sha512-sidzowgWL3s5xCHLeqwC9M3s9M0i16W1nuQF3Mc7fPHpZ+YPohvcbVFBB2uoRRHYZg6yBnwD4gyUHKTeXfwtXA==}
+ turbo-darwin-arm64@2.8.14:
+ resolution: {integrity: sha512-aS4yJuy6A1PCLws+PJpZP0qCURG8Y5iVx13z/WAbKyeDTY6W6PiGgcEllSaeLGxyn++382ztN/EZH85n2zZ6VQ==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@2.8.10:
- resolution: {integrity: sha512-YK9vcpL3TVtqonB021XwgaQhY9hJJbKKUhLv16osxV0HkcQASQWUqR56yMge7puh6nxU67rQlTq1b7ksR1T3KA==}
+ turbo-linux-64@2.8.14:
+ resolution: {integrity: sha512-XC6wPUDJkakjhNLaS0NrHDMiujRVjH+naEAwvKLArgqRaFkNxjmyNDRM4eu3soMMFmjym6NTxYaF74rvET+Orw==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@2.8.10:
- resolution: {integrity: sha512-3+j2tL0sG95iBJTm+6J8/45JsETQABPqtFyYjVjBbi6eVGdtNTiBmHNKrbvXRlQ3ZbUG75bKLaSSDHSEEN+btQ==}
+ turbo-linux-arm64@2.8.14:
+ resolution: {integrity: sha512-ChfE7isyVNjZrVSPDwcfqcHLG/FuIBbOFxnt1FM8vSuBGzHAs8AlTdwFNIxlEMJfZ8Ad9mdMxdmsCUPIWiQ6cg==}
cpu: [arm64]
os: [linux]
- turbo-windows-64@2.8.10:
- resolution: {integrity: sha512-hdeF5qmVY/NFgiucf8FW0CWJWtyT2QPm5mIsX0W1DXAVzqKVXGq+Zf+dg4EUngAFKjDzoBeN6ec2Fhajwfztkw==}
+ turbo-windows-64@2.8.14:
+ resolution: {integrity: sha512-FTbIeQL1ycLFW2t9uQNMy+bRSzi3Xhwun/e7ZhFBdM+U0VZxxrtfYEBM9CHOejlfqomk6Jh7aRz0sJoqYn39Hg==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@2.8.10:
- resolution: {integrity: sha512-QGdr/Q8LWmj+ITMkSvfiz2glf0d7JG0oXVzGL3jxkGqiBI1zXFj20oqVY0qWi+112LO9SVrYdpHS0E/oGFrMbQ==}
+ turbo-windows-arm64@2.8.14:
+ resolution: {integrity: sha512-KgZX12cTyhY030qS7ieT8zRkhZZE2VWJasDFVUSVVn17nR7IShpv68/7j5UqJNeRLIGF1XPK0phsP5V5yw3how==}
cpu: [arm64]
os: [win32]
- turbo@2.8.10:
- resolution: {integrity: sha512-OxbzDES66+x7nnKGg2MwBA1ypVsZoDTLHpeaP4giyiHSixbsiTaMyeJqbEyvBdp5Cm28fc+8GG6RdQtic0ijwQ==}
+ turbo@2.8.14:
+ resolution: {integrity: sha512-UCTxeMNYT1cKaHiIFdLCQ7ulI+jw5i5uOnJOrRXsgUD7G3+OjlUjwVd7JfeVt2McWSVGjYA3EVW/v1FSsJ5DtA==}
hasBin: true
type-check@0.4.0:
@@ -7430,8 +7720,8 @@ packages:
resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==}
engines: {node: '>= 0.6'}
- typed-query-selector@2.12.0:
- resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==}
+ typed-query-selector@2.12.1:
+ resolution: {integrity: sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==}
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
@@ -7474,8 +7764,8 @@ packages:
resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==}
engines: {node: '>=20'}
- unimport@5.6.0:
- resolution: {integrity: sha512-8rqAmtJV8o60x46kBAJKtHpJDJWkA2xcBqWKPI14MgUb05o1pnpnCnXSxedUXyeq7p8fR5g3pTo2BaswZ9lD9A==}
+ unimport@5.7.0:
+ resolution: {integrity: sha512-njnL6sp8lEA8QQbZrt+52p/g4X0rw3bnGGmUcJnt1jeG8+iiqO779aGz0PirCtydAIVcuTBRlJ52F0u46z309Q==}
engines: {node: '>=18.12.0'}
unist-util-is@6.0.1:
@@ -7597,6 +7887,14 @@ packages:
resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
hasBin: true
+ valibot@1.2.0:
+ resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==}
+ peerDependencies:
+ typescript: '>=5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -7850,8 +8148,8 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
- vue@3.5.28:
- resolution: {integrity: sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg==}
+ vue@3.5.29:
+ resolution: {integrity: sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -7868,6 +8166,10 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+
webidl-conversions@8.0.1:
resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==}
engines: {node: '>=20'}
@@ -7883,6 +8185,10 @@ packages:
resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==}
engines: {node: '>=20'}
+ whatwg-url@14.2.0:
+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
+ engines: {node: '>=18'}
+
whatwg-url@15.1.0:
resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==}
engines: {node: '>=20'}
@@ -7922,8 +8228,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
- workerd@1.20260302.0:
- resolution: {integrity: sha512-FhNdC8cenMDllI6bTktFgxP5Bn5ZEnGtofgKipY6pW9jtq708D1DeGI6vGad78KQLBGaDwFy1eThjCoLYgFfog==}
+ workerd@1.20260301.1:
+ resolution: {integrity: sha512-oterQ1IFd3h7PjCfT4znSFOkJCvNQ6YMOyZ40YsnO3nrSpgB4TbJVYWFOnyJAw71/RQuupfVqZZWKvsy8GO3fw==}
engines: {node: '>=16'}
hasBin: true
@@ -7938,12 +8244,12 @@ packages:
'@cloudflare/workers-types':
optional: true
- wrangler@4.67.1:
- resolution: {integrity: sha512-5GXz8cQNN/2KCMQ/22oe9Vf9xwVNillOowhKq6W2+ZuveU4/IrTm61K4iIUOsBYmrhYGopSfk0GmyCTuNh2rsA==}
+ wrangler@4.71.0:
+ resolution: {integrity: sha512-j6pSGAncOLNQDRzqtp0EqzYj52CldDP7uz/C9cxVrIgqa5p+cc0b4pIwnapZZAGv9E1Loa3tmPD0aXonH7KTkw==}
engines: {node: '>=20.0.0'}
hasBin: true
peerDependencies:
- '@cloudflare/workers-types': ^4.20260302.0
+ '@cloudflare/workers-types': ^4.20260226.1
peerDependenciesMeta:
'@cloudflare/workers-types':
optional: true
@@ -8066,11 +8372,14 @@ packages:
youch-core@0.3.3:
resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==}
+ youch@4.1.0:
+ resolution: {integrity: sha512-cYekNh2tUoU+voS11X0D0UQntVCSO6LQ1h10VriQGmfbpf0mnGTruwZICts23UUNiZCXm8H8hQBtRrdsbhuNNg==}
+
youch@4.1.0-beta.10:
resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==}
- youch@4.1.0-beta.14:
- resolution: {integrity: sha512-VqcHA/HqOxaBMjBQCYz1h8jYdAAeLm6cVLmefijJjMY4aovOfKkqMry7amNX3JiN4hXArb7ZVYBNpjEVkV3r/A==}
+ zeptomatch@2.1.0:
+ resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==}
zimmerframe@1.1.4:
resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
@@ -8107,190 +8416,190 @@ snapshots:
ansi-styles: 6.2.3
is-fullwidth-code-point: 5.1.0
- '@algolia/abtesting@1.15.0':
+ '@algolia/abtesting@1.15.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3)':
+ '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)
+ '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)
+ '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- search-insights
- '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3)':
+ '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)
+ '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)
search-insights: 2.17.3
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)':
+ '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)':
dependencies:
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)
- '@algolia/client-search': 5.49.0
- algoliasearch: 5.49.0
+ '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)
+ '@algolia/client-search': 5.49.1
+ algoliasearch: 5.49.1
- '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)':
+ '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)':
dependencies:
- '@algolia/client-search': 5.49.0
- algoliasearch: 5.49.0
+ '@algolia/client-search': 5.49.1
+ algoliasearch: 5.49.1
- '@algolia/client-abtesting@5.49.0':
+ '@algolia/client-abtesting@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/client-analytics@5.49.0':
+ '@algolia/client-analytics@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/client-common@5.49.0': {}
+ '@algolia/client-common@5.49.1': {}
- '@algolia/client-insights@5.49.0':
+ '@algolia/client-insights@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/client-personalization@5.49.0':
+ '@algolia/client-personalization@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/client-query-suggestions@5.49.0':
+ '@algolia/client-query-suggestions@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/client-search@5.49.0':
+ '@algolia/client-search@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/ingestion@1.49.0':
+ '@algolia/ingestion@1.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/monitoring@1.49.0':
+ '@algolia/monitoring@1.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/recommend@5.49.0':
+ '@algolia/recommend@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ '@algolia/client-common': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
- '@algolia/requester-browser-xhr@5.49.0':
+ '@algolia/requester-browser-xhr@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
+ '@algolia/client-common': 5.49.1
- '@algolia/requester-fetch@5.49.0':
+ '@algolia/requester-fetch@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
+ '@algolia/client-common': 5.49.1
- '@algolia/requester-node-http@5.49.0':
+ '@algolia/requester-node-http@5.49.1':
dependencies:
- '@algolia/client-common': 5.49.0
+ '@algolia/client-common': 5.49.1
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.6.0
tinyexec: 1.0.2
- '@ark-ui/solid@5.32.0(solid-js@1.9.11)':
+ '@ark-ui/solid@5.34.1(solid-js@1.9.11)':
dependencies:
'@internationalized/date': 3.11.0
- '@zag-js/accordion': 1.34.1
- '@zag-js/anatomy': 1.34.1
- '@zag-js/angle-slider': 1.34.1
- '@zag-js/async-list': 1.34.1
- '@zag-js/auto-resize': 1.34.1
- '@zag-js/avatar': 1.34.1
- '@zag-js/carousel': 1.34.1
- '@zag-js/cascade-select': 1.34.1
- '@zag-js/checkbox': 1.34.1
- '@zag-js/clipboard': 1.34.1
- '@zag-js/collapsible': 1.34.1
- '@zag-js/collection': 1.34.1
- '@zag-js/color-picker': 1.34.1
- '@zag-js/color-utils': 1.34.1
- '@zag-js/combobox': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/date-picker': 1.34.1(@internationalized/date@3.11.0)
- '@zag-js/date-utils': 1.34.1(@internationalized/date@3.11.0)
- '@zag-js/dialog': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/drawer': 1.34.1
- '@zag-js/editable': 1.34.1
- '@zag-js/file-upload': 1.34.1
- '@zag-js/file-utils': 1.34.1
- '@zag-js/floating-panel': 1.34.1
- '@zag-js/focus-trap': 1.34.1
- '@zag-js/highlight-word': 1.34.1
- '@zag-js/hover-card': 1.34.1
- '@zag-js/i18n-utils': 1.34.1
- '@zag-js/image-cropper': 1.34.1
- '@zag-js/json-tree-utils': 1.34.1
- '@zag-js/listbox': 1.34.1
- '@zag-js/marquee': 1.34.1
- '@zag-js/menu': 1.34.1
- '@zag-js/navigation-menu': 1.34.1
- '@zag-js/number-input': 1.34.1
- '@zag-js/pagination': 1.34.1
- '@zag-js/password-input': 1.34.1
- '@zag-js/pin-input': 1.34.1
- '@zag-js/popover': 1.34.1
- '@zag-js/presence': 1.34.1
- '@zag-js/progress': 1.34.1
- '@zag-js/qr-code': 1.34.1
- '@zag-js/radio-group': 1.34.1
- '@zag-js/rating-group': 1.34.1
- '@zag-js/scroll-area': 1.34.1
- '@zag-js/select': 1.34.1
- '@zag-js/signature-pad': 1.34.1
- '@zag-js/slider': 1.34.1
- '@zag-js/solid': 1.34.1(solid-js@1.9.11)
- '@zag-js/splitter': 1.34.1
- '@zag-js/steps': 1.34.1
- '@zag-js/switch': 1.34.1
- '@zag-js/tabs': 1.34.1
- '@zag-js/tags-input': 1.34.1
- '@zag-js/timer': 1.34.1
- '@zag-js/toast': 1.34.1
- '@zag-js/toggle': 1.34.1
- '@zag-js/toggle-group': 1.34.1
- '@zag-js/tooltip': 1.34.1
- '@zag-js/tour': 1.34.1
- '@zag-js/tree-view': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/accordion': 1.35.3
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/angle-slider': 1.35.3
+ '@zag-js/async-list': 1.35.3
+ '@zag-js/auto-resize': 1.35.3
+ '@zag-js/avatar': 1.35.3
+ '@zag-js/carousel': 1.35.3
+ '@zag-js/cascade-select': 1.35.3
+ '@zag-js/checkbox': 1.35.3
+ '@zag-js/clipboard': 1.35.3
+ '@zag-js/collapsible': 1.35.3
+ '@zag-js/collection': 1.35.3
+ '@zag-js/color-picker': 1.35.3
+ '@zag-js/color-utils': 1.35.3
+ '@zag-js/combobox': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/date-picker': 1.35.3(@internationalized/date@3.11.0)
+ '@zag-js/date-utils': 1.35.3(@internationalized/date@3.11.0)
+ '@zag-js/dialog': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/drawer': 1.35.3
+ '@zag-js/editable': 1.35.3
+ '@zag-js/file-upload': 1.35.3
+ '@zag-js/file-utils': 1.35.3
+ '@zag-js/floating-panel': 1.35.3
+ '@zag-js/focus-trap': 1.35.3
+ '@zag-js/highlight-word': 1.35.3
+ '@zag-js/hover-card': 1.35.3
+ '@zag-js/i18n-utils': 1.35.3
+ '@zag-js/image-cropper': 1.35.3
+ '@zag-js/json-tree-utils': 1.35.3
+ '@zag-js/listbox': 1.35.3
+ '@zag-js/marquee': 1.35.3
+ '@zag-js/menu': 1.35.3
+ '@zag-js/navigation-menu': 1.35.3
+ '@zag-js/number-input': 1.35.3
+ '@zag-js/pagination': 1.35.3
+ '@zag-js/password-input': 1.35.3
+ '@zag-js/pin-input': 1.35.3
+ '@zag-js/popover': 1.35.3
+ '@zag-js/presence': 1.35.3
+ '@zag-js/progress': 1.35.3
+ '@zag-js/qr-code': 1.35.3
+ '@zag-js/radio-group': 1.35.3
+ '@zag-js/rating-group': 1.35.3
+ '@zag-js/scroll-area': 1.35.3
+ '@zag-js/select': 1.35.3
+ '@zag-js/signature-pad': 1.35.3
+ '@zag-js/slider': 1.35.3
+ '@zag-js/solid': 1.35.3(solid-js@1.9.11)
+ '@zag-js/splitter': 1.35.3
+ '@zag-js/steps': 1.35.3
+ '@zag-js/switch': 1.35.3
+ '@zag-js/tabs': 1.35.3
+ '@zag-js/tags-input': 1.35.3
+ '@zag-js/timer': 1.35.3
+ '@zag-js/toast': 1.35.3
+ '@zag-js/toggle': 1.35.3
+ '@zag-js/toggle-group': 1.35.3
+ '@zag-js/tooltip': 1.35.3
+ '@zag-js/tour': 1.35.3
+ '@zag-js/tree-view': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
solid-js: 1.9.11
'@asamuzakjp/css-color@4.1.2':
@@ -8305,13 +8614,13 @@ snapshots:
dependencies:
'@asamuzakjp/nwsapi': 2.3.9
bidi-js: 1.0.3
- css-tree: 3.1.0
+ css-tree: 3.2.1
is-potential-custom-element-name: 1.0.1
lru-cache: 11.2.6
'@asamuzakjp/nwsapi@2.3.9': {}
- '@asteasolutions/zod-to-openapi@8.4.1(zod@4.3.6)':
+ '@asteasolutions/zod-to-openapi@8.4.3(zod@4.3.6)':
dependencies:
openapi3-ts: 4.5.0
zod: 4.3.6
@@ -8462,33 +8771,65 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
- '@better-auth/core@1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)':
+ '@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)':
dependencies:
- '@better-auth/utils': 0.3.0
+ '@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
'@standard-schema/spec': 1.1.0
- better-call: 1.1.8(zod@4.3.6)
- jose: 6.1.3
+ better-call: 1.3.2(zod@4.3.6)
+ jose: 6.2.0
kysely: 0.28.11
- nanostores: 1.1.0
+ nanostores: 1.1.1
zod: 4.3.6
+ optionalDependencies:
+ '@cloudflare/workers-types': 4.20260307.1
- '@better-auth/stripe@1.4.19(@better-auth/core@1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))(better-auth@1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3)))(better-call@1.1.8(zod@4.3.6))(stripe@20.3.1(@types/node@25.3.0))':
+ '@better-auth/drizzle-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))':
dependencies:
- '@better-auth/core': 1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)
- better-auth: 1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3))
- better-call: 1.1.8(zod@4.3.6)
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/utils': 0.3.1
+ drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
+
+ '@better-auth/kysely-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)':
+ dependencies:
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/utils': 0.3.1
+ kysely: 0.28.11
+
+ '@better-auth/memory-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)':
+ dependencies:
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/utils': 0.3.1
+
+ '@better-auth/mongo-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0(socks@2.8.7))':
+ dependencies:
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/utils': 0.3.1
+ mongodb: 7.1.0(socks@2.8.7)
+
+ '@better-auth/prisma-adapter@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))':
+ dependencies:
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/utils': 0.3.1
+ '@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3)
+ prisma: 7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+
+ '@better-auth/stripe@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(better-auth@1.5.4(61d6557326f155d0f9393fbb3d05c0cd))(better-call@1.3.2(zod@4.3.6))(stripe@20.4.1(@types/node@25.3.5))':
+ dependencies:
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ better-auth: 1.5.4(61d6557326f155d0f9393fbb3d05c0cd)
+ better-call: 1.3.2(zod@4.3.6)
defu: 6.1.4
- stripe: 20.3.1(@types/node@25.3.0)
+ stripe: 20.4.1(@types/node@25.3.5)
zod: 4.3.6
- '@better-auth/telemetry@1.4.19(@better-auth/core@1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))':
+ '@better-auth/telemetry@1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))':
dependencies:
- '@better-auth/core': 1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)
- '@better-auth/utils': 0.3.0
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
- '@better-auth/utils@0.3.0': {}
+ '@better-auth/utils@0.3.1': {}
'@better-fetch/fetch@1.1.21': {}
@@ -8497,22 +8838,37 @@ snapshots:
'@braintree/sanitize-url@7.1.2': {}
- '@chevrotain/cst-dts-gen@11.1.1':
+ '@chevrotain/cst-dts-gen@10.5.0':
+ dependencies:
+ '@chevrotain/gast': 10.5.0
+ '@chevrotain/types': 10.5.0
+ lodash: 4.17.21
+
+ '@chevrotain/cst-dts-gen@11.1.2':
dependencies:
- '@chevrotain/gast': 11.1.1
- '@chevrotain/types': 11.1.1
+ '@chevrotain/gast': 11.1.2
+ '@chevrotain/types': 11.1.2
lodash-es: 4.17.23
- '@chevrotain/gast@11.1.1':
+ '@chevrotain/gast@10.5.0':
+ dependencies:
+ '@chevrotain/types': 10.5.0
+ lodash: 4.17.21
+
+ '@chevrotain/gast@11.1.2':
dependencies:
- '@chevrotain/types': 11.1.1
+ '@chevrotain/types': 11.1.2
lodash-es: 4.17.23
- '@chevrotain/regexp-to-ast@11.1.1': {}
+ '@chevrotain/regexp-to-ast@11.1.2': {}
- '@chevrotain/types@11.1.1': {}
+ '@chevrotain/types@10.5.0': {}
- '@chevrotain/utils@11.1.1': {}
+ '@chevrotain/types@11.1.2': {}
+
+ '@chevrotain/utils@10.5.0': {}
+
+ '@chevrotain/utils@11.1.2': {}
'@cloudflare/kv-asset-handler@0.4.1':
dependencies:
@@ -8520,11 +8876,11 @@ snapshots:
'@cloudflare/kv-asset-handler@0.4.2': {}
- '@cloudflare/unenv-preset@2.14.0(unenv@2.0.0-rc.24)(workerd@1.20260302.0)':
+ '@cloudflare/unenv-preset@2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260301.1)':
dependencies:
unenv: 2.0.0-rc.24
optionalDependencies:
- workerd: 1.20260302.0
+ workerd: 1.20260301.1
'@cloudflare/unenv-preset@2.7.13(unenv@2.0.0-rc.24)(workerd@1.20251217.0)':
dependencies:
@@ -8532,7 +8888,7 @@ snapshots:
optionalDependencies:
workerd: 1.20251217.0
- '@cloudflare/vitest-pool-workers@0.11.1(@cloudflare/workers-types@4.20260302.0)(@vitest/runner@4.0.18)(@vitest/snapshot@4.0.18)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@cloudflare/vitest-pool-workers@0.11.1(@cloudflare/workers-types@4.20260307.1)(@vitest/runner@4.0.18)(@vitest/snapshot@4.0.18)(vitest@3.2.0(@types/node@25.3.5)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@vitest/runner': 4.0.18
'@vitest/snapshot': 4.0.18
@@ -8542,8 +8898,8 @@ snapshots:
esbuild: 0.27.0
miniflare: 4.20251217.0
semver: 7.7.4
- vitest: 3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.56.0(@cloudflare/workers-types@4.20260302.0)
+ vitest: 3.2.0(@types/node@25.3.5)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ wrangler: 4.56.0(@cloudflare/workers-types@4.20260307.1)
zod: 3.25.76
transitivePeerDependencies:
- '@cloudflare/workers-types'
@@ -8553,34 +8909,34 @@ snapshots:
'@cloudflare/workerd-darwin-64@1.20251217.0':
optional: true
- '@cloudflare/workerd-darwin-64@1.20260302.0':
+ '@cloudflare/workerd-darwin-64@1.20260301.1':
optional: true
'@cloudflare/workerd-darwin-arm64@1.20251217.0':
optional: true
- '@cloudflare/workerd-darwin-arm64@1.20260302.0':
+ '@cloudflare/workerd-darwin-arm64@1.20260301.1':
optional: true
'@cloudflare/workerd-linux-64@1.20251217.0':
optional: true
- '@cloudflare/workerd-linux-64@1.20260302.0':
+ '@cloudflare/workerd-linux-64@1.20260301.1':
optional: true
'@cloudflare/workerd-linux-arm64@1.20251217.0':
optional: true
- '@cloudflare/workerd-linux-arm64@1.20260302.0':
+ '@cloudflare/workerd-linux-arm64@1.20260301.1':
optional: true
'@cloudflare/workerd-windows-64@1.20251217.0':
optional: true
- '@cloudflare/workerd-windows-64@1.20260302.0':
+ '@cloudflare/workerd-windows-64@1.20260301.1':
optional: true
- '@cloudflare/workers-types@4.20260302.0': {}
+ '@cloudflare/workers-types@4.20260307.1': {}
'@cspotcode/source-map-support@0.8.1':
dependencies:
@@ -8604,7 +8960,7 @@ snapshots:
dependencies:
'@csstools/css-tokenizer': 4.0.0
- '@csstools/css-syntax-patches-for-csstree@1.0.28': {}
+ '@csstools/css-syntax-patches-for-csstree@1.1.0': {}
'@csstools/css-tokenizer@4.0.0': {}
@@ -8617,9 +8973,9 @@ snapshots:
'@docsearch/css@3.8.2': {}
- '@docsearch/js@3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3)':
+ '@docsearch/js@3.8.2(@algolia/client-search@5.49.1)(search-insights@2.17.3)':
dependencies:
- '@docsearch/react': 3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3)
+ '@docsearch/react': 3.8.2(@algolia/client-search@5.49.1)(search-insights@2.17.3)
preact: 10.28.4
transitivePeerDependencies:
- '@algolia/client-search'
@@ -8628,12 +8984,12 @@ snapshots:
- react-dom
- search-insights
- '@docsearch/react@3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3)':
+ '@docsearch/react@3.8.2(@algolia/client-search@5.49.1)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3)
- '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)
+ '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)
+ '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)
'@docsearch/css': 3.8.2
- algoliasearch: 5.49.0
+ algoliasearch: 5.49.1
optionalDependencies:
search-insights: 2.17.3
transitivePeerDependencies:
@@ -8641,17 +8997,27 @@ snapshots:
'@drizzle-team/brocli@0.10.2': {}
- '@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)':
dependencies:
- '@embedpdf/engines': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@electric-sql/pglite': 0.3.15
+
+ '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)':
+ dependencies:
+ '@electric-sql/pglite': 0.3.15
+
+ '@electric-sql/pglite@0.3.15': {}
+
+ '@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@embedpdf/engines': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/engines@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/engines@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
'@embedpdf/fonts-arabic': 1.0.0
'@embedpdf/fonts-hebrew': 1.0.0
@@ -8660,13 +9026,13 @@ snapshots:
'@embedpdf/fonts-latin': 1.0.0
'@embedpdf/fonts-sc': 1.0.0
'@embedpdf/fonts-tc': 1.0.0
- '@embedpdf/models': 2.6.2
- '@embedpdf/pdfium': 2.6.2
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/pdfium': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
'@embedpdf/fonts-arabic@1.0.0': {}
@@ -8682,282 +9048,282 @@ snapshots:
'@embedpdf/fonts-tc@1.0.0': {}
- '@embedpdf/models@2.6.2': {}
+ '@embedpdf/models@2.8.0': {}
- '@embedpdf/pdfium@2.6.2': {}
+ '@embedpdf/pdfium@2.8.0': {}
- '@embedpdf/plugin-annotation@2.6.2(ad1f116069e2875cbd7302042aaf58d3)':
+ '@embedpdf/plugin-annotation@2.8.0(a402eff97e44b8a035d7f545c7158135)':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-history': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-interaction-manager': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-selection': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/utils': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-history': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-interaction-manager': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-selection': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/utils': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-capture@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-render@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-capture@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-render@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-render': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-render': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-commands@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-commands@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-document-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-document-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-export@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-export@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-fullscreen@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-fullscreen@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-history@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-history@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-i18n@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-i18n@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-pan@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-pan@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-viewport': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-viewport': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-print@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-print@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-redaction@2.6.2(d911e0a70829346636f03fe48bccf2b8)':
+ '@embedpdf/plugin-redaction@2.8.0(4de63f8d21781097e5d675cdbaf73f71)':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-annotation': 2.6.2(ad1f116069e2875cbd7302042aaf58d3)
- '@embedpdf/plugin-history': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-interaction-manager': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-selection': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/utils': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-annotation': 2.8.0(a402eff97e44b8a035d7f545c7158135)
+ '@embedpdf/plugin-history': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-interaction-manager': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-selection': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/utils': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-render@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-render@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-rotate@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-rotate@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-scroll@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-scroll@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-viewport': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-viewport': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-search@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-search@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-selection@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-selection@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-interaction-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-interaction-manager': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/utils': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-interaction-manager': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/utils': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-spread@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-spread@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-thumbnail@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-render@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-thumbnail@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-render@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-render': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-tiling@2.6.2(60e3722d1129fa8e515c6cab2323c1cf)':
+ '@embedpdf/plugin-tiling@2.8.0(a2178b18b2fd24a91650f4cf7697ee26)':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-render': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-scroll': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-viewport': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-scroll': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-viewport': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-ui@2.6.2(60e3722d1129fa8e515c6cab2323c1cf)':
+ '@embedpdf/plugin-ui@2.8.0(a2178b18b2fd24a91650f4cf7697ee26)':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-render': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-scroll': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-viewport': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-render': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-scroll': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-viewport': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-view-manager@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-view-manager@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/plugin-zoom@2.6.2(b3109c7b9dc2ece1b638dcaeb87738a9)':
+ '@embedpdf/plugin-zoom@2.8.0(8fba2ba33b2b9290d7f6d6cffabe8012)':
dependencies:
- '@embedpdf/core': 2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/models': 2.6.2
- '@embedpdf/plugin-scroll': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
- '@embedpdf/plugin-viewport': 2.6.2(@embedpdf/core@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))
+ '@embedpdf/core': 2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/models': 2.8.0
+ '@embedpdf/plugin-scroll': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(@embedpdf/plugin-viewport@2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
+ '@embedpdf/plugin-viewport': 2.8.0(@embedpdf/core@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3)))(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
- '@embedpdf/utils@2.6.2(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.28(typescript@5.9.3))':
+ '@embedpdf/utils@2.8.0(preact@10.28.4)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(svelte@5.46.1)(vue@3.5.29(typescript@5.9.3))':
dependencies:
preact: 10.28.4
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
svelte: 5.46.1
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
'@emnapi/core@1.8.1':
dependencies:
@@ -9354,18 +9720,18 @@ snapshots:
'@esbuild/win32-x64@0.27.3':
optional: true
- '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3(jiti@2.6.1))':
+ '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))':
dependencies:
- eslint: 9.39.3(jiti@2.6.1)
+ eslint: 9.39.4(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
- '@eslint/config-array@0.21.1':
+ '@eslint/config-array@0.21.2':
dependencies:
'@eslint/object-schema': 2.1.7
debug: 4.4.3
- minimatch: 3.1.3
+ minimatch: 3.1.5
transitivePeerDependencies:
- supports-color
@@ -9377,7 +9743,7 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.3.3':
+ '@eslint/eslintrc@3.3.5':
dependencies:
ajv: 6.14.0
debug: 4.4.3
@@ -9386,12 +9752,12 @@ snapshots:
ignore: 5.3.2
import-fresh: 3.3.1
js-yaml: 4.1.1
- minimatch: 3.1.3
+ minimatch: 3.1.5
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.39.3': {}
+ '@eslint/js@9.39.4': {}
'@eslint/object-schema@2.1.7': {}
@@ -9400,36 +9766,40 @@ snapshots:
'@eslint/core': 0.17.0
levn: 0.4.1
- '@exodus/bytes@1.14.1(@noble/hashes@2.0.1)':
+ '@exodus/bytes@1.15.0(@noble/hashes@2.0.1)':
optionalDependencies:
'@noble/hashes': 2.0.1
- '@floating-ui/core@1.7.4':
+ '@floating-ui/core@1.7.5':
dependencies:
- '@floating-ui/utils': 0.2.10
+ '@floating-ui/utils': 0.2.11
- '@floating-ui/dom@1.7.5':
+ '@floating-ui/dom@1.7.6':
dependencies:
- '@floating-ui/core': 1.7.4
- '@floating-ui/utils': 0.2.10
+ '@floating-ui/core': 1.7.5
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/utils@0.2.11': {}
- '@floating-ui/utils@0.2.10': {}
+ '@hono/node-server@1.19.11(hono@4.12.5)':
+ dependencies:
+ hono: 4.12.5
- '@hono/node-server@1.19.9(hono@4.12.2)':
+ '@hono/node-server@1.19.9(hono@4.11.4)':
dependencies:
- hono: 4.12.2
+ hono: 4.11.4
- '@hono/zod-openapi@1.2.2(hono@4.12.2)(zod@4.3.6)':
+ '@hono/zod-openapi@1.2.2(hono@4.12.5)(zod@4.3.6)':
dependencies:
- '@asteasolutions/zod-to-openapi': 8.4.1(zod@4.3.6)
- '@hono/zod-validator': 0.7.6(hono@4.12.2)(zod@4.3.6)
- hono: 4.12.2
+ '@asteasolutions/zod-to-openapi': 8.4.3(zod@4.3.6)
+ '@hono/zod-validator': 0.7.6(hono@4.12.5)(zod@4.3.6)
+ hono: 4.12.5
openapi3-ts: 4.5.0
zod: 4.3.6
- '@hono/zod-validator@0.7.6(hono@4.12.2)(zod@4.3.6)':
+ '@hono/zod-validator@0.7.6(hono@4.12.5)(zod@4.3.6)':
dependencies:
- hono: 4.12.2
+ hono: 4.12.5
zod: 4.3.6
'@huggingface/jinja@0.2.2': {}
@@ -9445,7 +9815,7 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
- '@iconify-json/simple-icons@1.2.71':
+ '@iconify-json/simple-icons@1.2.72':
dependencies:
'@iconify/types': 2.0.0
@@ -9455,9 +9825,9 @@ snapshots:
dependencies:
'@antfu/install-pkg': 1.1.0
'@iconify/types': 2.0.0
- mlly: 1.8.0
+ mlly: 1.8.1
- '@img/colour@1.0.0': {}
+ '@img/colour@1.1.0': {}
'@img/sharp-darwin-arm64@0.33.5':
optionalDependencies:
@@ -9636,7 +10006,7 @@ snapshots:
dependencies:
'@swc/helpers': 0.5.19
- '@ioredis/commands@1.5.0': {}
+ '@ioredis/commands@1.5.1': {}
'@isaacs/balanced-match@4.0.1': {}
@@ -9648,7 +10018,7 @@ snapshots:
dependencies:
string-width: 5.1.2
string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
+ strip-ansi: 7.2.0
strip-ansi-cjs: strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
@@ -9696,7 +10066,7 @@ snapshots:
node-fetch: 2.7.0
nopt: 8.1.0
semver: 7.7.4
- tar: 7.5.9
+ tar: 7.5.10
transitivePeerDependencies:
- encoding
- supports-color
@@ -9716,9 +10086,9 @@ snapshots:
dependencies:
langium: 4.2.1
- '@modelcontextprotocol/sdk@1.26.0(zod@4.3.6)':
+ '@modelcontextprotocol/sdk@1.27.1(zod@4.3.6)':
dependencies:
- '@hono/node-server': 1.19.9(hono@4.12.2)
+ '@hono/node-server': 1.19.11(hono@4.12.5)
ajv: 8.18.0
ajv-formats: 3.0.1(ajv@8.18.0)
content-type: 1.0.5
@@ -9727,9 +10097,9 @@ snapshots:
eventsource: 3.0.7
eventsource-parser: 3.0.6
express: 5.2.1
- express-rate-limit: 8.2.1(express@5.2.1)
- hono: 4.12.2
- jose: 6.1.3
+ express-rate-limit: 8.3.0(express@5.2.1)
+ hono: 4.12.5
+ jose: 6.2.0
json-schema-typed: 8.0.2
pkce-challenge: 5.0.1
raw-body: 3.0.2
@@ -9738,6 +10108,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@mongodb-js/saslprep@1.4.6':
+ dependencies:
+ sparse-bitfield: 3.0.3
+
+ '@mrleebo/prisma-ast@0.13.1':
+ dependencies:
+ chevrotain: 10.5.0
+ lilconfig: 2.1.0
+
'@napi-rs/wasm-runtime@1.1.1':
dependencies:
'@emnapi/core': 1.8.1
@@ -9854,20 +10233,26 @@ snapshots:
'@sindresorhus/is': 7.2.0
supports-color: 10.2.2
+ '@poppinss/dumper@0.7.0':
+ dependencies:
+ '@poppinss/colors': 4.1.6
+ '@sindresorhus/is': 7.2.0
+ supports-color: 10.2.2
+
'@poppinss/exception@1.2.3': {}
- '@preact/preset-vite@2.10.3(@babel/core@7.29.0)(preact@10.28.4)(rollup@4.59.0)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@preact/preset-vite@2.10.3(@babel/core@7.29.0)(preact@10.28.4)(rollup@4.59.0)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0)
'@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0)
- '@prefresh/vite': 2.4.12(preact@10.28.4)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@prefresh/vite': 2.4.12(preact@10.28.4)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.0)
debug: 4.4.3
picocolors: 1.1.1
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vite-prerender-plugin: 0.5.12(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-prerender-plugin: 0.5.12(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
transitivePeerDependencies:
- preact
- rollup
@@ -9881,7 +10266,7 @@ snapshots:
'@prefresh/utils@1.2.1': {}
- '@prefresh/vite@2.4.12(preact@10.28.4)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@prefresh/vite@2.4.12(preact@10.28.4)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/core': 7.29.0
'@prefresh/babel-plugin': 0.5.3
@@ -9889,10 +10274,85 @@ snapshots:
'@prefresh/utils': 1.2.1
'@rollup/pluginutils': 4.2.1
preact: 10.28.4
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
+ '@prisma/client-runtime-utils@7.4.2': {}
+
+ '@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3)':
+ dependencies:
+ '@prisma/client-runtime-utils': 7.4.2
+ optionalDependencies:
+ prisma: 7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@prisma/config@7.4.2(magicast@0.5.2)':
+ dependencies:
+ c12: 3.1.0(magicast@0.5.2)
+ deepmerge-ts: 7.1.5
+ effect: 3.18.4
+ empathic: 2.0.0
+ transitivePeerDependencies:
+ - magicast
+
+ '@prisma/debug@7.2.0': {}
+
+ '@prisma/debug@7.4.2': {}
+
+ '@prisma/dev@0.20.0(typescript@5.9.3)':
+ dependencies:
+ '@electric-sql/pglite': 0.3.15
+ '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15)
+ '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15)
+ '@hono/node-server': 1.19.9(hono@4.11.4)
+ '@mrleebo/prisma-ast': 0.13.1
+ '@prisma/get-platform': 7.2.0
+ '@prisma/query-plan-executor': 7.2.0
+ foreground-child: 3.3.1
+ get-port-please: 3.2.0
+ hono: 4.11.4
+ http-status-codes: 2.3.0
+ pathe: 2.0.3
+ proper-lockfile: 4.1.2
+ remeda: 2.33.4
+ std-env: 3.10.0
+ valibot: 1.2.0(typescript@5.9.3)
+ zeptomatch: 2.1.0
+ transitivePeerDependencies:
+ - typescript
+
+ '@prisma/engines-version@7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919': {}
+
+ '@prisma/engines@7.4.2':
+ dependencies:
+ '@prisma/debug': 7.4.2
+ '@prisma/engines-version': 7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919
+ '@prisma/fetch-engine': 7.4.2
+ '@prisma/get-platform': 7.4.2
+
+ '@prisma/fetch-engine@7.4.2':
+ dependencies:
+ '@prisma/debug': 7.4.2
+ '@prisma/engines-version': 7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919
+ '@prisma/get-platform': 7.4.2
+
+ '@prisma/get-platform@7.2.0':
+ dependencies:
+ '@prisma/debug': 7.2.0
+
+ '@prisma/get-platform@7.4.2':
+ dependencies:
+ '@prisma/debug': 7.4.2
+
+ '@prisma/query-plan-executor@7.2.0': {}
+
+ '@prisma/studio-core@0.13.1(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@types/react': 19.2.14
+ react: 19.2.4
+ react-dom: 19.2.3(react@19.2.4)
+
'@protobufjs/aspromise@1.1.2': {}
'@protobufjs/base64@1.1.2': {}
@@ -9923,7 +10383,7 @@ snapshots:
progress: 2.0.3
proxy-agent: 6.5.0
semver: 7.7.4
- tar-fs: 3.1.1
+ tar-fs: 3.1.2
yargs: 17.7.2
transitivePeerDependencies:
- bare-abort-controller
@@ -9982,7 +10442,7 @@ snapshots:
optionalDependencies:
rollup: 4.59.0
- '@rollup/plugin-commonjs@29.0.0(rollup@4.59.0)':
+ '@rollup/plugin-commonjs@29.0.2(rollup@4.59.0)':
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
commondir: 1.0.1
@@ -10121,45 +10581,45 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.59.0':
optional: true
- '@sentry-internal/browser-utils@10.39.0':
+ '@sentry-internal/browser-utils@10.42.0':
dependencies:
- '@sentry/core': 10.39.0
+ '@sentry/core': 10.42.0
- '@sentry-internal/feedback@10.39.0':
+ '@sentry-internal/feedback@10.42.0':
dependencies:
- '@sentry/core': 10.39.0
+ '@sentry/core': 10.42.0
- '@sentry-internal/replay-canvas@10.39.0':
+ '@sentry-internal/replay-canvas@10.42.0':
dependencies:
- '@sentry-internal/replay': 10.39.0
- '@sentry/core': 10.39.0
+ '@sentry-internal/replay': 10.42.0
+ '@sentry/core': 10.42.0
- '@sentry-internal/replay@10.39.0':
+ '@sentry-internal/replay@10.42.0':
dependencies:
- '@sentry-internal/browser-utils': 10.39.0
- '@sentry/core': 10.39.0
+ '@sentry-internal/browser-utils': 10.42.0
+ '@sentry/core': 10.42.0
- '@sentry/browser@10.39.0':
+ '@sentry/browser@10.42.0':
dependencies:
- '@sentry-internal/browser-utils': 10.39.0
- '@sentry-internal/feedback': 10.39.0
- '@sentry-internal/replay': 10.39.0
- '@sentry-internal/replay-canvas': 10.39.0
- '@sentry/core': 10.39.0
+ '@sentry-internal/browser-utils': 10.42.0
+ '@sentry-internal/feedback': 10.42.0
+ '@sentry-internal/replay': 10.42.0
+ '@sentry-internal/replay-canvas': 10.42.0
+ '@sentry/core': 10.42.0
- '@sentry/cloudflare@10.39.0(@cloudflare/workers-types@4.20260302.0)':
+ '@sentry/cloudflare@10.42.0(@cloudflare/workers-types@4.20260307.1)':
dependencies:
'@opentelemetry/api': 1.9.0
- '@sentry/core': 10.39.0
+ '@sentry/core': 10.42.0
optionalDependencies:
- '@cloudflare/workers-types': 4.20260302.0
+ '@cloudflare/workers-types': 4.20260307.1
- '@sentry/core@10.39.0': {}
+ '@sentry/core@10.42.0': {}
- '@sentry/solid@10.39.0(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11)':
+ '@sentry/solid@10.42.0(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11)':
dependencies:
- '@sentry/browser': 10.39.0
- '@sentry/core': 10.39.0
+ '@sentry/browser': 10.42.0
+ '@sentry/core': 10.42.0
solid-js: 1.9.11
optionalDependencies:
'@solidjs/router': 0.15.4(solid-js@1.9.11)
@@ -10257,11 +10717,11 @@ snapshots:
dependencies:
solid-js: 1.9.11
- '@solidjs/start@1.3.0(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@solidjs/start@1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
- '@tanstack/server-functions-plugin': 1.121.21(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
- '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
- '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@tanstack/server-functions-plugin': 1.121.21(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))
+ '@vinxi/server-components': 0.5.1(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))
cookie-es: 2.0.0
defu: 6.1.4
error-stack-parser: 2.1.4
@@ -10273,8 +10733,8 @@ snapshots:
source-map-js: 1.2.1
terracotta: 1.1.0(solid-js@1.9.11)
tinyglobby: 0.2.15
- vinxi: 0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ vinxi: 0.5.11(8957e57c08f05dd579cfce7ceebb1280)
+ vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
transitivePeerDependencies:
- '@testing-library/jest-dom'
- solid-js
@@ -10303,7 +10763,7 @@ snapshots:
'@tailwindcss/node@4.2.1':
dependencies:
'@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.19.0
+ enhanced-resolve: 5.20.0
jiti: 2.6.1
lightningcss: 1.31.1
magic-string: 0.30.21
@@ -10361,14 +10821,14 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.2.1
'@tailwindcss/oxide-win32-x64-msvc': 4.2.1
- '@tailwindcss/vite@4.2.1(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@tailwindcss/vite@4.2.1(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@tailwindcss/node': 4.2.1
'@tailwindcss/oxide': 4.2.1
tailwindcss: 4.2.1
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- '@tanstack/directive-functions-plugin@1.121.21(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@tanstack/directive-functions-plugin@1.121.21(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/code-frame': 7.26.2
'@babel/core': 7.29.0
@@ -10377,7 +10837,7 @@ snapshots:
'@tanstack/router-utils': 1.161.4
babel-dead-code-elimination: 1.0.12
tiny-invariant: 1.3.3
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
@@ -10399,7 +10859,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/server-functions-plugin@1.121.21(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@tanstack/server-functions-plugin@1.121.21(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/code-frame': 7.26.2
'@babel/core': 7.29.0
@@ -10408,7 +10868,7 @@ snapshots:
'@babel/template': 7.28.6
'@babel/traverse': 7.29.0
'@babel/types': 7.29.0
- '@tanstack/directive-functions-plugin': 1.121.21(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@tanstack/directive-functions-plugin': 1.121.21(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
babel-dead-code-elimination: 1.0.12
tiny-invariant: 1.3.3
transitivePeerDependencies:
@@ -10485,7 +10945,7 @@ snapshots:
'@types/better-sqlite3@7.6.13':
dependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
'@types/braces@3.0.5': {}
@@ -10642,10 +11102,14 @@ snapshots:
dependencies:
'@types/braces': 3.0.5
- '@types/node@25.3.0':
+ '@types/node@25.3.5':
dependencies:
undici-types: 7.18.2
+ '@types/react@19.2.14':
+ dependencies:
+ csstype: 3.2.3
+
'@types/resolve@1.20.2': {}
'@types/trusted-types@2.0.7':
@@ -10655,19 +11119,25 @@ snapshots:
'@types/web-bluetooth@0.0.21': {}
+ '@types/webidl-conversions@7.0.3': {}
+
+ '@types/whatwg-url@13.0.0':
+ dependencies:
+ '@types/webidl-conversions': 7.0.3
+
'@types/yauzl@2.10.3':
dependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
optional: true
- '@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.56.1
'@typescript-eslint/types': 8.56.1
'@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.56.1
debug: 4.4.3
- eslint: 9.39.3(jiti@2.6.1)
+ eslint: 9.39.4(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -10699,7 +11169,7 @@ snapshots:
'@typescript-eslint/types': 8.56.1
'@typescript-eslint/visitor-keys': 8.56.1
debug: 4.4.3
- minimatch: 10.2.2
+ minimatch: 10.2.4
semver: 7.7.4
tinyglobby: 0.2.15
ts-api-utils: 2.4.0(typescript@5.9.3)
@@ -10707,13 +11177,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
'@typescript-eslint/scope-manager': 8.56.1
'@typescript-eslint/types': 8.56.1
'@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
- eslint: 9.39.3(jiti@2.6.1)
+ eslint: 9.39.4(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -10756,7 +11226,7 @@ snapshots:
h3: 1.15.3
http-shutdown: 1.2.2
jiti: 1.21.7
- mlly: 1.8.0
+ mlly: 1.8.1
node-forge: 1.3.3
pathe: 1.1.2
std-env: 3.10.0
@@ -10764,7 +11234,7 @@ snapshots:
untun: 0.1.3
uqr: 0.1.2
- '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))':
dependencies:
'@babel/parser': 7.29.0
acorn: 8.16.0
@@ -10775,23 +11245,23 @@ snapshots:
magicast: 0.2.11
recast: 0.23.11
tslib: 2.8.1
- vinxi: 0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vinxi: 0.5.11(8957e57c08f05dd579cfce7ceebb1280)
- '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vinxi/server-components@0.5.1(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))':
dependencies:
- '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280))
acorn: 8.16.0
acorn-loose: 8.5.2
acorn-typescript: 1.4.13(acorn@8.16.0)
astring: 1.9.0
magicast: 0.2.11
recast: 0.23.11
- vinxi: 0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vinxi: 0.5.11(8957e57c08f05dd579cfce7ceebb1280)
- '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.3.0)(lightningcss@1.31.1)(terser@5.46.0))(vue@3.5.28(typescript@5.9.3))':
+ '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.31.1)(terser@5.46.0))(vue@3.5.29(typescript@5.9.3))':
dependencies:
- vite: 5.4.21(@types/node@25.3.0)(lightningcss@1.31.1)(terser@5.46.0)
- vue: 3.5.28(typescript@5.9.3)
+ vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.31.1)(terser@5.46.0)
+ vue: 3.5.29(typescript@5.9.3)
'@vitest/expect@3.2.0':
dependencies:
@@ -10810,21 +11280,21 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.0.3
- '@vitest/mocker@3.2.0(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@3.2.0(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 3.2.0
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 4.0.18
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/pretty-format@3.2.0':
dependencies:
@@ -10870,12 +11340,12 @@ snapshots:
dependencies:
'@vitest/utils': 4.0.18
fflate: 0.8.2
- flatted: 3.3.3
+ flatted: 3.3.4
pathe: 2.0.3
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/utils@3.2.0':
dependencies:
@@ -10888,35 +11358,35 @@ snapshots:
'@vitest/pretty-format': 4.0.18
tinyrainbow: 3.0.3
- '@vue/compiler-core@3.5.28':
+ '@vue/compiler-core@3.5.29':
dependencies:
'@babel/parser': 7.29.0
- '@vue/shared': 3.5.28
+ '@vue/shared': 3.5.29
entities: 7.0.1
estree-walker: 2.0.2
source-map-js: 1.2.1
- '@vue/compiler-dom@3.5.28':
+ '@vue/compiler-dom@3.5.29':
dependencies:
- '@vue/compiler-core': 3.5.28
- '@vue/shared': 3.5.28
+ '@vue/compiler-core': 3.5.29
+ '@vue/shared': 3.5.29
- '@vue/compiler-sfc@3.5.28':
+ '@vue/compiler-sfc@3.5.29':
dependencies:
'@babel/parser': 7.29.0
- '@vue/compiler-core': 3.5.28
- '@vue/compiler-dom': 3.5.28
- '@vue/compiler-ssr': 3.5.28
- '@vue/shared': 3.5.28
+ '@vue/compiler-core': 3.5.29
+ '@vue/compiler-dom': 3.5.29
+ '@vue/compiler-ssr': 3.5.29
+ '@vue/shared': 3.5.29
estree-walker: 2.0.2
magic-string: 0.30.21
- postcss: 8.5.6
+ postcss: 8.5.8
source-map-js: 1.2.1
- '@vue/compiler-ssr@3.5.28':
+ '@vue/compiler-ssr@3.5.29':
dependencies:
- '@vue/compiler-dom': 3.5.28
- '@vue/shared': 3.5.28
+ '@vue/compiler-dom': 3.5.29
+ '@vue/shared': 3.5.29
'@vue/devtools-api@7.7.9':
dependencies:
@@ -10936,46 +11406,46 @@ snapshots:
dependencies:
rfdc: 1.4.1
- '@vue/reactivity@3.5.28':
+ '@vue/reactivity@3.5.29':
dependencies:
- '@vue/shared': 3.5.28
+ '@vue/shared': 3.5.29
- '@vue/runtime-core@3.5.28':
+ '@vue/runtime-core@3.5.29':
dependencies:
- '@vue/reactivity': 3.5.28
- '@vue/shared': 3.5.28
+ '@vue/reactivity': 3.5.29
+ '@vue/shared': 3.5.29
- '@vue/runtime-dom@3.5.28':
+ '@vue/runtime-dom@3.5.29':
dependencies:
- '@vue/reactivity': 3.5.28
- '@vue/runtime-core': 3.5.28
- '@vue/shared': 3.5.28
+ '@vue/reactivity': 3.5.29
+ '@vue/runtime-core': 3.5.29
+ '@vue/shared': 3.5.29
csstype: 3.2.3
- '@vue/server-renderer@3.5.28(vue@3.5.28(typescript@5.9.3))':
+ '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@vue/compiler-ssr': 3.5.28
- '@vue/shared': 3.5.28
- vue: 3.5.28(typescript@5.9.3)
+ '@vue/compiler-ssr': 3.5.29
+ '@vue/shared': 3.5.29
+ vue: 3.5.29(typescript@5.9.3)
- '@vue/shared@3.5.28': {}
+ '@vue/shared@3.5.29': {}
'@vueuse/core@12.8.2(typescript@5.9.3)':
dependencies:
'@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 12.8.2
'@vueuse/shared': 12.8.2(typescript@5.9.3)
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
transitivePeerDependencies:
- typescript
- '@vueuse/integrations@12.8.2(axios@1.13.5)(change-case@5.4.4)(focus-trap@7.8.0)(typescript@5.9.3)':
+ '@vueuse/integrations@12.8.2(axios@1.13.6)(change-case@5.4.4)(focus-trap@7.8.0)(typescript@5.9.3)':
dependencies:
'@vueuse/core': 12.8.2(typescript@5.9.3)
'@vueuse/shared': 12.8.2(typescript@5.9.3)
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
optionalDependencies:
- axios: 1.13.5
+ axios: 1.13.6
change-case: 5.4.4
focus-trap: 7.8.0
transitivePeerDependencies:
@@ -10985,7 +11455,7 @@ snapshots:
'@vueuse/shared@12.8.2(typescript@5.9.3)':
dependencies:
- vue: 3.5.28(typescript@5.9.3)
+ vue: 3.5.29(typescript@5.9.3)
transitivePeerDependencies:
- typescript
@@ -11001,561 +11471,561 @@ snapshots:
- bare-buffer
- react-native-b4a
- '@zag-js/accordion@1.34.1':
+ '@zag-js/accordion@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/anatomy@1.34.1': {}
+ '@zag-js/anatomy@1.35.3': {}
- '@zag-js/angle-slider@1.34.1':
+ '@zag-js/angle-slider@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/rect-utils': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/rect-utils': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/aria-hidden@1.34.1':
+ '@zag-js/aria-hidden@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/async-list@1.34.1':
+ '@zag-js/async-list@1.35.3':
dependencies:
- '@zag-js/core': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/core': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/auto-resize@1.34.1':
+ '@zag-js/auto-resize@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/avatar@1.34.1':
+ '@zag-js/avatar@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/carousel@1.34.1':
+ '@zag-js/carousel@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/scroll-snap': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/scroll-snap': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/cascade-select@1.34.1':
+ '@zag-js/cascade-select@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/collection': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/rect-utils': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/collection': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/rect-utils': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/checkbox@1.34.1':
+ '@zag-js/checkbox@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/clipboard@1.34.1':
+ '@zag-js/clipboard@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/collapsible@1.34.1':
+ '@zag-js/collapsible@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/collection@1.34.1':
+ '@zag-js/collection@1.35.3':
dependencies:
- '@zag-js/utils': 1.34.1
+ '@zag-js/utils': 1.35.3
- '@zag-js/color-picker@1.34.1':
+ '@zag-js/color-picker@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/color-utils': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/color-utils': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/color-utils@1.34.1':
+ '@zag-js/color-utils@1.35.3':
dependencies:
- '@zag-js/utils': 1.34.1
+ '@zag-js/utils': 1.35.3
- '@zag-js/combobox@1.34.1':
+ '@zag-js/combobox@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/aria-hidden': 1.34.1
- '@zag-js/collection': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/aria-hidden': 1.35.3
+ '@zag-js/collection': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/core@1.34.1':
+ '@zag-js/core@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/date-picker@1.34.1(@internationalized/date@3.11.0)':
+ '@zag-js/date-picker@1.35.3(@internationalized/date@3.11.0)':
dependencies:
'@internationalized/date': 3.11.0
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/date-utils': 1.34.1(@internationalized/date@3.11.0)
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/live-region': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/date-utils@1.34.1(@internationalized/date@3.11.0)':
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/date-utils': 1.35.3(@internationalized/date@3.11.0)
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/live-region': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/date-utils@1.35.3(@internationalized/date@3.11.0)':
dependencies:
'@internationalized/date': 3.11.0
- '@zag-js/dialog@1.34.1':
+ '@zag-js/dialog@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/aria-hidden': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-trap': 1.34.1
- '@zag-js/remove-scroll': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/aria-hidden': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-trap': 1.35.3
+ '@zag-js/remove-scroll': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/dismissable@1.34.1':
+ '@zag-js/dismissable@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
- '@zag-js/interact-outside': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/interact-outside': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/dom-query@1.34.1':
+ '@zag-js/dom-query@1.35.3':
dependencies:
- '@zag-js/types': 1.34.1
+ '@zag-js/types': 1.35.3
- '@zag-js/drawer@1.34.1':
+ '@zag-js/drawer@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/aria-hidden': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-trap': 1.34.1
- '@zag-js/remove-scroll': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/aria-hidden': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-trap': 1.35.3
+ '@zag-js/remove-scroll': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/editable@1.34.1':
+ '@zag-js/editable@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/interact-outside': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/interact-outside': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/file-upload@1.34.1':
+ '@zag-js/file-upload@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/file-utils': 1.34.1
- '@zag-js/i18n-utils': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/file-utils': 1.35.3
+ '@zag-js/i18n-utils': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/file-utils@1.34.1':
+ '@zag-js/file-utils@1.35.3':
dependencies:
- '@zag-js/i18n-utils': 1.34.1
+ '@zag-js/i18n-utils': 1.35.3
- '@zag-js/floating-panel@1.34.1':
+ '@zag-js/floating-panel@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/rect-utils': 1.34.1
- '@zag-js/store': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/rect-utils': 1.35.3
+ '@zag-js/store': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/focus-trap@1.34.1':
+ '@zag-js/focus-trap@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/focus-visible@1.34.1':
+ '@zag-js/focus-visible@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/highlight-word@1.34.1': {}
+ '@zag-js/highlight-word@1.35.3': {}
- '@zag-js/hover-card@1.34.1':
+ '@zag-js/hover-card@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/i18n-utils@1.34.1':
+ '@zag-js/i18n-utils@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/image-cropper@1.34.1':
+ '@zag-js/image-cropper@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/interact-outside@1.34.1':
+ '@zag-js/interact-outside@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/json-tree-utils@1.34.1': {}
+ '@zag-js/json-tree-utils@1.35.3': {}
- '@zag-js/listbox@1.34.1':
+ '@zag-js/listbox@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/collection': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/collection': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/live-region@1.34.1': {}
+ '@zag-js/live-region@1.35.3': {}
- '@zag-js/marquee@1.34.1':
+ '@zag-js/marquee@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/menu@1.34.1':
+ '@zag-js/menu@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/rect-utils': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/rect-utils': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/navigation-menu@1.34.1':
+ '@zag-js/navigation-menu@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/number-input@1.34.1':
+ '@zag-js/number-input@1.35.3':
dependencies:
'@internationalized/number': 3.6.5
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/pagination@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/password-input@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/pin-input@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/popover@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/aria-hidden': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-trap': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/remove-scroll': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/popper@1.34.1':
- dependencies:
- '@floating-ui/dom': 1.7.5
- '@zag-js/dom-query': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/presence@1.34.1':
- dependencies:
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
-
- '@zag-js/progress@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/qr-code@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/pagination@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/password-input@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/pin-input@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/popover@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/aria-hidden': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-trap': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/remove-scroll': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/popper@1.35.3':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/presence@1.35.3':
+ dependencies:
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+
+ '@zag-js/progress@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/qr-code@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
proxy-memoize: 3.0.1
uqr: 0.1.2
- '@zag-js/radio-group@1.34.1':
+ '@zag-js/radio-group@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/rating-group@1.34.1':
+ '@zag-js/rating-group@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/rect-utils@1.34.1': {}
+ '@zag-js/rect-utils@1.35.3': {}
- '@zag-js/remove-scroll@1.34.1':
+ '@zag-js/remove-scroll@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/scroll-area@1.34.1':
+ '@zag-js/scroll-area@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/scroll-snap@1.34.1':
+ '@zag-js/scroll-snap@1.35.3':
dependencies:
- '@zag-js/dom-query': 1.34.1
+ '@zag-js/dom-query': 1.35.3
- '@zag-js/select@1.34.1':
+ '@zag-js/select@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/collection': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/collection': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/signature-pad@1.34.1':
+ '@zag-js/signature-pad@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
perfect-freehand: 1.2.3
- '@zag-js/slider@1.34.1':
+ '@zag-js/slider@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/solid@1.34.1(solid-js@1.9.11)':
+ '@zag-js/solid@1.35.3(solid-js@1.9.11)':
dependencies:
'@solid-primitives/keyed': 1.5.3(solid-js@1.9.11)
- '@zag-js/core': 1.34.1
- '@zag-js/store': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/core': 1.35.3
+ '@zag-js/store': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
solid-js: 1.9.11
- '@zag-js/splitter@1.34.1':
+ '@zag-js/splitter@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/steps@1.34.1':
+ '@zag-js/steps@1.35.3':
dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
- '@zag-js/store@1.34.1':
+ '@zag-js/store@1.35.3':
dependencies:
proxy-compare: 3.0.1
- '@zag-js/switch@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/tabs@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/tags-input@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/auto-resize': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/interact-outside': 1.34.1
- '@zag-js/live-region': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/timer@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/toast@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/toggle-group@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/toggle@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/tooltip@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-visible': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/tour@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dismissable': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/focus-trap': 1.34.1
- '@zag-js/interact-outside': 1.34.1
- '@zag-js/popper': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/tree-view@1.34.1':
- dependencies:
- '@zag-js/anatomy': 1.34.1
- '@zag-js/collection': 1.34.1
- '@zag-js/core': 1.34.1
- '@zag-js/dom-query': 1.34.1
- '@zag-js/types': 1.34.1
- '@zag-js/utils': 1.34.1
-
- '@zag-js/types@1.34.1':
+ '@zag-js/switch@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/tabs@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/tags-input@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/auto-resize': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/interact-outside': 1.35.3
+ '@zag-js/live-region': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/timer@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/toast@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/toggle-group@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/toggle@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/tooltip@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-visible': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/tour@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dismissable': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/focus-trap': 1.35.3
+ '@zag-js/interact-outside': 1.35.3
+ '@zag-js/popper': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/tree-view@1.35.3':
+ dependencies:
+ '@zag-js/anatomy': 1.35.3
+ '@zag-js/collection': 1.35.3
+ '@zag-js/core': 1.35.3
+ '@zag-js/dom-query': 1.35.3
+ '@zag-js/types': 1.35.3
+ '@zag-js/utils': 1.35.3
+
+ '@zag-js/types@1.35.3':
dependencies:
csstype: 3.2.3
- '@zag-js/utils@1.34.1': {}
+ '@zag-js/utils@1.35.3': {}
abbrev@3.0.1: {}
@@ -11615,22 +12085,22 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- algoliasearch@5.49.0:
- dependencies:
- '@algolia/abtesting': 1.15.0
- '@algolia/client-abtesting': 5.49.0
- '@algolia/client-analytics': 5.49.0
- '@algolia/client-common': 5.49.0
- '@algolia/client-insights': 5.49.0
- '@algolia/client-personalization': 5.49.0
- '@algolia/client-query-suggestions': 5.49.0
- '@algolia/client-search': 5.49.0
- '@algolia/ingestion': 1.49.0
- '@algolia/monitoring': 1.49.0
- '@algolia/recommend': 5.49.0
- '@algolia/requester-browser-xhr': 5.49.0
- '@algolia/requester-fetch': 5.49.0
- '@algolia/requester-node-http': 5.49.0
+ algoliasearch@5.49.1:
+ dependencies:
+ '@algolia/abtesting': 1.15.1
+ '@algolia/client-abtesting': 5.49.1
+ '@algolia/client-analytics': 5.49.1
+ '@algolia/client-common': 5.49.1
+ '@algolia/client-insights': 5.49.1
+ '@algolia/client-personalization': 5.49.1
+ '@algolia/client-query-suggestions': 5.49.1
+ '@algolia/client-search': 5.49.1
+ '@algolia/ingestion': 1.49.1
+ '@algolia/monitoring': 1.49.1
+ '@algolia/recommend': 5.49.1
+ '@algolia/requester-browser-xhr': 5.49.1
+ '@algolia/requester-fetch': 5.49.1
+ '@algolia/requester-node-http': 5.49.1
ansi-align@3.0.1:
dependencies:
@@ -11676,10 +12146,11 @@ snapshots:
buffer-crc32: 1.0.0
readable-stream: 4.7.0
readdir-glob: 1.1.3
- tar-stream: 3.1.7
+ tar-stream: 3.1.8
zip-stream: 6.0.1
transitivePeerDependencies:
- bare-abort-controller
+ - bare-buffer
- react-native-b4a
argparse@2.0.1: {}
@@ -11710,7 +12181,9 @@ snapshots:
auto-bind@5.0.1: {}
- axios@1.13.5:
+ aws-ssl-profiles@1.1.2: {}
+
+ axios@1.13.6:
dependencies:
follow-redirects: 1.15.11
form-data: 4.0.5
@@ -11757,7 +12230,7 @@ snapshots:
bare-events@2.8.2: {}
- bare-fs@4.5.4:
+ bare-fs@4.5.5:
dependencies:
bare-events: 2.8.2
bare-path: 3.0.0
@@ -11767,15 +12240,12 @@ snapshots:
transitivePeerDependencies:
- bare-abort-controller
- react-native-b4a
- optional: true
- bare-os@3.6.2:
- optional: true
+ bare-os@3.7.1: {}
bare-path@3.0.0:
dependencies:
- bare-os: 3.6.2
- optional: true
+ bare-os: 3.7.1
bare-stream@2.8.0(bare-events@2.8.2):
dependencies:
@@ -11786,12 +12256,10 @@ snapshots:
transitivePeerDependencies:
- bare-abort-controller
- react-native-b4a
- optional: true
bare-url@2.3.2:
dependencies:
bare-path: 3.0.0
- optional: true
base64-js@1.5.1: {}
@@ -11799,62 +12267,84 @@ snapshots:
basic-ftp@5.2.0: {}
- better-auth@1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3)):
+ better-auth@1.5.4(61d6557326f155d0f9393fbb3d05c0cd):
dependencies:
- '@better-auth/core': 1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)
- '@better-auth/telemetry': 1.4.19(@better-auth/core@1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))
- '@better-auth/utils': 0.3.0
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/drizzle-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))
+ '@better-auth/kysely-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)
+ '@better-auth/memory-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)
+ '@better-auth/mongo-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0(socks@2.8.7))
+ '@better-auth/prisma-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
+ '@better-auth/telemetry': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))
+ '@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
'@noble/ciphers': 2.1.1
'@noble/hashes': 2.0.1
- better-call: 1.1.8(zod@4.3.6)
+ better-call: 1.3.2(zod@4.3.6)
defu: 6.1.4
- jose: 6.1.3
+ jose: 6.2.0
kysely: 0.28.11
- nanostores: 1.1.0
+ nanostores: 1.1.1
zod: 4.3.6
optionalDependencies:
+ '@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3)
better-sqlite3: 12.6.2
drizzle-kit: 0.31.9
- drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)
+ drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
+ mongodb: 7.1.0(socks@2.8.7)
+ mysql2: 3.15.3
+ prisma: 7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
solid-js: 1.9.11
svelte: 5.46.1
- vitest: 3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vue: 3.5.28(typescript@5.9.3)
+ vitest: 3.2.0(@types/node@25.3.5)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue: 3.5.29(typescript@5.9.3)
+ transitivePeerDependencies:
+ - '@cloudflare/workers-types'
- better-auth@1.4.19(better-sqlite3@12.6.2)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(svelte@5.46.1)(vitest@4.0.18)(vue@3.5.28(typescript@5.9.3)):
+ better-auth@1.5.4(df0661f5bde84186cc7a939741e06321):
dependencies:
- '@better-auth/core': 1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)
- '@better-auth/telemetry': 1.4.19(@better-auth/core@1.4.19(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))
- '@better-auth/utils': 0.3.0
+ '@better-auth/core': 1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1)
+ '@better-auth/drizzle-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))
+ '@better-auth/kysely-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(kysely@0.28.11)
+ '@better-auth/memory-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)
+ '@better-auth/mongo-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(mongodb@7.1.0(socks@2.8.7))
+ '@better-auth/prisma-adapter': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
+ '@better-auth/telemetry': 1.5.4(@better-auth/core@1.5.4(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260307.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.0)(kysely@0.28.11)(nanostores@1.1.1))
+ '@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
'@noble/ciphers': 2.1.1
'@noble/hashes': 2.0.1
- better-call: 1.1.8(zod@4.3.6)
+ better-call: 1.3.2(zod@4.3.6)
defu: 6.1.4
- jose: 6.1.3
+ jose: 6.2.0
kysely: 0.28.11
- nanostores: 1.1.0
+ nanostores: 1.1.1
zod: 4.3.6
optionalDependencies:
+ '@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3)
better-sqlite3: 12.6.2
drizzle-kit: 0.31.9
- drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)
+ drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
+ mongodb: 7.1.0(socks@2.8.7)
+ mysql2: 3.15.3
+ prisma: 7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
react: 19.2.4
react-dom: 19.2.3(react@19.2.4)
solid-js: 1.9.11
svelte: 5.46.1
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vue: 3.5.28(typescript@5.9.3)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue: 3.5.29(typescript@5.9.3)
+ transitivePeerDependencies:
+ - '@cloudflare/workers-types'
- better-call@1.1.8(zod@4.3.6):
+ better-call@1.3.2(zod@4.3.6):
dependencies:
- '@better-auth/utils': 0.3.0
+ '@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
rou3: 0.7.12
- set-cookie-parser: 2.7.2
+ set-cookie-parser: 3.0.1
optionalDependencies:
zod: 4.3.6
@@ -11924,7 +12414,7 @@ snapshots:
dependencies:
balanced-match: 1.0.2
- brace-expansion@5.0.3:
+ brace-expansion@5.0.4:
dependencies:
balanced-match: 4.0.4
@@ -11935,11 +12425,13 @@ snapshots:
browserslist@4.28.1:
dependencies:
baseline-browser-mapping: 2.10.0
- caniuse-lite: 1.0.30001774
- electron-to-chromium: 1.5.302
- node-releases: 2.0.27
+ caniuse-lite: 1.0.30001777
+ electron-to-chromium: 1.5.307
+ node-releases: 2.0.36
update-browserslist-db: 1.2.3(browserslist@4.28.1)
+ bson@7.2.0: {}
+
btoa@1.2.1: {}
buffer-crc32@0.2.13: {}
@@ -11968,6 +12460,23 @@ snapshots:
bytes@3.1.2: {}
+ c12@3.1.0(magicast@0.5.2):
+ dependencies:
+ chokidar: 4.0.3
+ confbox: 0.2.4
+ defu: 6.1.4
+ dotenv: 16.6.1
+ exsolve: 1.0.8
+ giget: 2.0.0
+ jiti: 2.6.1
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 1.0.0
+ pkg-types: 2.3.0
+ rc9: 2.1.2
+ optionalDependencies:
+ magicast: 0.5.2
+
c12@3.3.3(magicast@0.5.2):
dependencies:
chokidar: 5.0.0
@@ -12001,7 +12510,7 @@ snapshots:
camelcase@8.0.0: {}
- caniuse-lite@1.0.30001774: {}
+ caniuse-lite@1.0.30001777: {}
ccount@2.0.1: {}
@@ -12034,18 +12543,27 @@ snapshots:
check-error@2.1.3: {}
- chevrotain-allstar@0.3.1(chevrotain@11.1.1):
+ chevrotain-allstar@0.3.1(chevrotain@11.1.2):
dependencies:
- chevrotain: 11.1.1
+ chevrotain: 11.1.2
lodash-es: 4.17.23
- chevrotain@11.1.1:
+ chevrotain@10.5.0:
dependencies:
- '@chevrotain/cst-dts-gen': 11.1.1
- '@chevrotain/gast': 11.1.1
- '@chevrotain/regexp-to-ast': 11.1.1
- '@chevrotain/types': 11.1.1
- '@chevrotain/utils': 11.1.1
+ '@chevrotain/cst-dts-gen': 10.5.0
+ '@chevrotain/gast': 10.5.0
+ '@chevrotain/types': 10.5.0
+ '@chevrotain/utils': 10.5.0
+ lodash: 4.17.21
+ regexp-to-ast: 0.5.0
+
+ chevrotain@11.1.2:
+ dependencies:
+ '@chevrotain/cst-dts-gen': 11.1.2
+ '@chevrotain/gast': 11.1.2
+ '@chevrotain/regexp-to-ast': 11.1.2
+ '@chevrotain/types': 11.1.2
+ '@chevrotain/utils': 11.1.2
lodash-es: 4.17.23
chokidar@4.0.3:
@@ -12060,9 +12578,9 @@ snapshots:
chownr@3.0.0: {}
- chromium-bidi@14.0.0(devtools-protocol@0.0.1566079):
+ chromium-bidi@14.0.0(devtools-protocol@0.0.1581282):
dependencies:
- devtools-protocol: 0.0.1566079
+ devtools-protocol: 0.0.1581282
mitt: 3.0.1
zod: 3.25.76
@@ -12092,9 +12610,9 @@ snapshots:
cli-spinners@2.9.2: {}
- cli-truncate@5.1.1:
+ cli-truncate@5.2.0:
dependencies:
- slice-ansi: 7.1.2
+ slice-ansi: 8.0.0
string-width: 8.2.0
clipboardy@4.0.0:
@@ -12223,7 +12741,7 @@ snapshots:
dependencies:
layout-base: 2.0.1
- cosmiconfig@9.0.0(typescript@5.9.3):
+ cosmiconfig@9.0.1(typescript@5.9.3):
dependencies:
env-paths: 2.2.1
import-fresh: 3.3.1
@@ -12232,7 +12750,7 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
- countup.js@2.9.0: {}
+ countup.js@2.10.0: {}
crc-32@1.2.2: {}
@@ -12261,9 +12779,9 @@ snapshots:
domutils: 3.2.2
nth-check: 2.1.1
- css-tree@3.1.0:
+ css-tree@3.2.1:
dependencies:
- mdn-data: 2.12.2
+ mdn-data: 2.27.1
source-map-js: 1.2.1
css-what@6.2.2: {}
@@ -12273,8 +12791,8 @@ snapshots:
cssstyle@5.3.7:
dependencies:
'@asamuzakjp/css-color': 4.1.2
- '@csstools/css-syntax-patches-for-csstree': 1.0.28
- css-tree: 3.1.0
+ '@csstools/css-syntax-patches-for-csstree': 1.1.0
+ css-tree: 3.2.1
lru-cache: 11.2.6
csstype@3.2.3: {}
@@ -12477,10 +12995,12 @@ snapshots:
dayjs@1.11.19: {}
- db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)):
+ db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3):
optionalDependencies:
+ '@electric-sql/pglite': 0.3.15
better-sqlite3: 12.6.2
- drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)
+ drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
+ mysql2: 3.15.3
debug@2.6.9:
dependencies:
@@ -12502,6 +13022,8 @@ snapshots:
deep-is@0.1.4: {}
+ deepmerge-ts@7.1.5: {}
+
deepmerge@4.3.1: {}
default-browser-id@5.0.1: {}
@@ -12547,7 +13069,7 @@ snapshots:
dependencies:
dequal: 2.0.3
- devtools-protocol@0.0.1566079: {}
+ devtools-protocol@0.0.1581282: {}
dexie@4.3.0: {}
@@ -12569,7 +13091,7 @@ snapshots:
dependencies:
domelementtype: 2.3.0
- dompurify@3.3.1:
+ dompurify@3.3.2:
optionalDependencies:
'@types/trusted-types': 2.0.7
@@ -12596,14 +13118,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11):
+ drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)):
optionalDependencies:
- '@cloudflare/workers-types': 4.20260302.0
+ '@cloudflare/workers-types': 4.20260307.1
+ '@electric-sql/pglite': 0.3.15
'@opentelemetry/api': 1.9.0
+ '@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3)
'@types/better-sqlite3': 7.6.13
better-sqlite3: 12.6.2
gel: 2.2.0
kysely: 0.28.11
+ mysql2: 3.15.3
+ postgres: 3.4.7
+ prisma: 7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
dunder-proto@1.0.1:
dependencies:
@@ -12617,11 +13144,16 @@ snapshots:
ee-first@1.1.1: {}
+ effect@3.18.4:
+ dependencies:
+ '@standard-schema/spec': 1.1.0
+ fast-check: 3.23.2
+
ejs@3.1.10:
dependencies:
jake: 10.9.4
- electron-to-chromium@1.5.302: {}
+ electron-to-chromium@1.5.307: {}
emoji-regex-xs@1.0.0: {}
@@ -12631,13 +13163,15 @@ snapshots:
emoji-regex@9.2.2: {}
+ empathic@2.0.0: {}
+
encodeurl@2.0.0: {}
end-of-stream@1.4.5:
dependencies:
once: 1.4.0
- enhanced-resolve@5.19.0:
+ enhanced-resolve@5.20.0:
dependencies:
graceful-fs: 4.2.11
tapable: 2.3.0
@@ -12682,7 +13216,7 @@ snapshots:
has-tostringtag: 1.0.2
hasown: 2.0.2
- es-toolkit@1.44.0: {}
+ es-toolkit@1.45.1: {}
esbuild-register@3.6.0(esbuild@0.25.12):
dependencies:
@@ -12849,14 +13383,14 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-plugin-drizzle@0.2.3(eslint@9.39.3(jiti@2.6.1)):
+ eslint-plugin-drizzle@0.2.3(eslint@9.39.4(jiti@2.6.1)):
dependencies:
- eslint: 9.39.3(jiti@2.6.1)
+ eslint: 9.39.4(jiti@2.6.1)
- eslint-plugin-solid@0.14.5(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3):
+ eslint-plugin-solid@0.14.5(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.3(jiti@2.6.1)
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
estraverse: 5.3.0
is-html: 2.0.0
kebab-case: 1.0.2
@@ -12866,12 +13400,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-sonarjs@3.0.7(eslint@9.39.3(jiti@2.6.1)):
+ eslint-plugin-sonarjs@3.0.7(eslint@9.39.4(jiti@2.6.1)):
dependencies:
'@eslint-community/regexpp': 4.12.2
builtin-modules: 3.3.0
bytes: 3.1.2
- eslint: 9.39.3(jiti@2.6.1)
+ eslint: 9.39.4(jiti@2.6.1)
functional-red-black-tree: 1.0.1
jsx-ast-utils-x: 0.1.0
lodash.merge: 4.6.2
@@ -12880,16 +13414,16 @@ snapshots:
semver: 7.7.4
typescript: 5.9.3
- eslint-plugin-unicorn@62.0.0(eslint@9.39.3(jiti@2.6.1)):
+ eslint-plugin-unicorn@62.0.0(eslint@9.39.4(jiti@2.6.1)):
dependencies:
'@babel/helper-validator-identifier': 7.28.5
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
'@eslint/plugin-kit': 0.4.1
change-case: 5.4.4
ci-info: 4.4.0
clean-regexp: 1.0.0
core-js-compat: 3.48.0
- eslint: 9.39.3(jiti@2.6.1)
+ eslint: 9.39.4(jiti@2.6.1)
esquery: 1.7.0
find-up-simple: 1.0.1
globals: 16.5.0
@@ -12913,15 +13447,15 @@ snapshots:
eslint-visitor-keys@5.0.1: {}
- eslint@9.39.3(jiti@2.6.1):
+ eslint@9.39.4(jiti@2.6.1):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
- '@eslint/config-array': 0.21.1
+ '@eslint/config-array': 0.21.2
'@eslint/config-helpers': 0.4.2
'@eslint/core': 0.17.0
- '@eslint/eslintrc': 3.3.3
- '@eslint/js': 9.39.3
+ '@eslint/eslintrc': 3.3.5
+ '@eslint/js': 9.39.4
'@eslint/plugin-kit': 0.4.1
'@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
@@ -12946,7 +13480,7 @@ snapshots:
is-glob: 4.0.3
json-stable-stringify-without-jsonify: 1.0.1
lodash.merge: 4.6.2
- minimatch: 3.1.3
+ minimatch: 3.1.5
natural-compare: 1.4.0
optionator: 0.9.4
optionalDependencies:
@@ -13024,10 +13558,10 @@ snapshots:
expect-type@1.3.0: {}
- express-rate-limit@8.2.1(express@5.2.1):
+ express-rate-limit@8.3.0(express@5.2.1):
dependencies:
express: 5.2.1
- ip-address: 10.0.1
+ ip-address: 10.1.0
express@5.2.1:
dependencies:
@@ -13076,6 +13610,10 @@ snapshots:
fake-indexeddb@6.2.5: {}
+ fast-check@3.23.2:
+ dependencies:
+ pure-rand: 6.1.0
+
fast-deep-equal@3.1.3: {}
fast-fifo@1.3.2: {}
@@ -13114,9 +13652,9 @@ snapshots:
file-uri-to-path@1.0.0: {}
- filelist@1.0.5:
+ filelist@1.0.6:
dependencies:
- minimatch: 10.2.2
+ minimatch: 5.1.9
fill-range@7.1.1:
dependencies:
@@ -13142,12 +13680,12 @@ snapshots:
flat-cache@4.0.1:
dependencies:
- flatted: 3.3.3
+ flatted: 3.3.4
keyv: 4.5.4
flatbuffers@1.12.0: {}
- flatted@3.3.3: {}
+ flatted@3.3.4: {}
focus-trap@7.8.0:
dependencies:
@@ -13197,6 +13735,10 @@ snapshots:
- supports-color
optional: true
+ generate-function@2.3.1:
+ dependencies:
+ is-property: 1.0.2
+
gensync@1.0.0-beta.2: {}
get-caller-file@2.0.5: {}
@@ -13225,7 +13767,7 @@ snapshots:
get-stream@5.2.0:
dependencies:
- pump: 3.0.3
+ pump: 3.0.4
get-stream@8.0.1: {}
@@ -13266,14 +13808,14 @@ snapshots:
dependencies:
foreground-child: 3.3.1
jackspeak: 3.4.3
- minimatch: 9.0.6
+ minimatch: 9.0.9
minipass: 7.1.3
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
glob@13.0.6:
dependencies:
- minimatch: 10.2.2
+ minimatch: 10.2.4
minipass: 7.1.3
path-scurry: 2.0.2
@@ -13282,7 +13824,7 @@ snapshots:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 3.1.3
+ minimatch: 3.1.5
once: 1.4.0
path-is-absolute: 1.0.1
@@ -13303,6 +13845,10 @@ snapshots:
graceful-fs@4.2.11: {}
+ grammex@3.1.12: {}
+
+ graphmatch@1.1.1: {}
+
guid-typescript@1.0.9: {}
gzip-size@6.0.0:
@@ -13371,13 +13917,15 @@ snapshots:
he@1.2.0: {}
- hono@4.12.2: {}
+ hono@4.11.4: {}
+
+ hono@4.12.5: {}
hookable@5.5.3: {}
html-encoding-sniffer@6.0.0(@noble/hashes@2.0.1):
dependencies:
- '@exodus/bytes': 1.14.1(@noble/hashes@2.0.1)
+ '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1)
transitivePeerDependencies:
- '@noble/hashes'
@@ -13414,6 +13962,8 @@ snapshots:
http-shutdown@1.2.2: {}
+ http-status-codes@2.3.0: {}
+
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.4
@@ -13459,13 +14009,13 @@ snapshots:
ini@1.3.8: {}
- ink-spinner@5.0.0(ink@6.8.0(react@19.2.4))(react@19.2.4):
+ ink-spinner@5.0.0(ink@6.8.0(@types/react@19.2.14)(react@19.2.4))(react@19.2.4):
dependencies:
cli-spinners: 2.9.2
- ink: 6.8.0(react@19.2.4)
+ ink: 6.8.0(@types/react@19.2.14)(react@19.2.4)
react: 19.2.4
- ink@6.8.0(react@19.2.4):
+ ink@6.8.0(@types/react@19.2.14)(react@19.2.4):
dependencies:
'@alcalzone/ansi-tokenize': 0.2.5
ansi-escapes: 7.3.0
@@ -13474,9 +14024,9 @@ snapshots:
chalk: 5.6.2
cli-boxes: 3.0.0
cli-cursor: 4.0.0
- cli-truncate: 5.1.1
+ cli-truncate: 5.2.0
code-excerpt: 4.0.0
- es-toolkit: 1.44.0
+ es-toolkit: 1.45.1
indent-string: 5.0.0
is-in-ci: 2.0.0
patch-console: 2.0.0
@@ -13493,6 +14043,8 @@ snapshots:
wrap-ansi: 9.0.2
ws: 8.19.0
yoga-layout: 3.2.1
+ optionalDependencies:
+ '@types/react': 19.2.14
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -13503,9 +14055,9 @@ snapshots:
internmap@2.0.3: {}
- ioredis@5.9.3:
+ ioredis@5.10.0:
dependencies:
- '@ioredis/commands': 1.5.0
+ '@ioredis/commands': 1.5.1
cluster-key-slot: 1.1.2
debug: 4.4.3
denque: 2.1.0
@@ -13517,8 +14069,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- ip-address@10.0.1: {}
-
ip-address@10.1.0: {}
ipaddr.js@1.9.1: {}
@@ -13573,6 +14123,8 @@ snapshots:
is-promise@4.0.0: {}
+ is-property@1.0.2: {}
+
is-reference@1.2.1:
dependencies:
'@types/estree': 1.0.8
@@ -13618,14 +14170,14 @@ snapshots:
jake@10.9.4:
dependencies:
async: 3.2.6
- filelist: 1.0.5
+ filelist: 1.0.6
picocolors: 1.1.1
jiti@1.21.7: {}
jiti@2.6.1: {}
- jose@6.1.3: {}
+ jose@6.2.0: {}
js-tokens@4.0.0: {}
@@ -13639,7 +14191,7 @@ snapshots:
dependencies:
'@acemir/cssom': 0.9.31
'@asamuzakjp/dom-selector': 6.8.1
- '@exodus/bytes': 1.14.1(@noble/hashes@2.0.1)
+ '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1)
cssstyle: 5.3.7
data-urls: 6.0.1
decimal.js: 10.6.0
@@ -13681,7 +14233,7 @@ snapshots:
jsx-ast-utils-x@0.1.0: {}
- katex@0.16.32:
+ katex@0.16.37:
dependencies:
commander: 8.3.0
@@ -13707,8 +14259,8 @@ snapshots:
langium@4.2.1:
dependencies:
- chevrotain: 11.1.1
- chevrotain-allstar: 0.3.1(chevrotain@11.1.1)
+ chevrotain: 11.1.2
+ chevrotain-allstar: 0.3.1(chevrotain@11.1.2)
vscode-languageserver: 9.0.1
vscode-languageserver-textdocument: 1.0.12
vscode-uri: 3.1.0
@@ -13779,6 +14331,8 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.31.1
lightningcss-win32-x64-msvc: 1.31.1
+ lilconfig@2.1.0: {}
+
lines-and-columns@1.2.4: {}
listhen@1.9.0:
@@ -13794,7 +14348,7 @@ snapshots:
h3: 1.15.5
http-shutdown: 1.2.2
jiti: 2.6.1
- mlly: 1.8.0
+ mlly: 1.8.1
node-forge: 1.3.3
pathe: 1.1.2
std-env: 3.10.0
@@ -13804,24 +14358,24 @@ snapshots:
local-pkg@1.1.2:
dependencies:
- mlly: 1.8.0
+ mlly: 1.8.1
pkg-types: 2.3.0
quansync: 0.2.11
localflare-api@0.3.1:
dependencies:
- hono: 4.12.2
+ hono: 4.12.5
localflare-core@0.3.1:
dependencies:
tiny-jsonc: 1.0.2
toml: 3.0.0
- localflare@0.3.1:
+ localflare@0.3.1(@types/react@19.2.14):
dependencies:
cac: 6.7.14
- ink: 6.8.0(react@19.2.4)
- ink-spinner: 5.0.0(ink@6.8.0(react@19.2.4))(react@19.2.4)
+ ink: 6.8.0(@types/react@19.2.14)(react@19.2.4)
+ ink-spinner: 5.0.0(ink@6.8.0(@types/react@19.2.14)(react@19.2.4))(react@19.2.4)
localflare-api: 0.3.1
localflare-core: 0.3.1
open: 10.2.0
@@ -13847,10 +14401,14 @@ snapshots:
lodash.merge@4.6.2: {}
+ lodash@4.17.21: {}
+
lodash@4.17.23: {}
long@4.0.0: {}
+ long@5.3.2: {}
+
loupe@3.2.1: {}
lru-cache@10.4.3: {}
@@ -13863,6 +14421,8 @@ snapshots:
lru-cache@7.18.3: {}
+ lru.min@1.1.4: {}
+
lz-string@1.5.0: {}
magic-string@0.30.21:
@@ -13899,10 +14459,12 @@ snapshots:
unist-util-visit: 5.1.0
vfile: 6.0.3
- mdn-data@2.12.2: {}
+ mdn-data@2.27.1: {}
media-typer@1.1.0: {}
+ memory-pager@1.5.0: {}
+
merge-anything@5.1.7:
dependencies:
is-what: 4.1.16
@@ -13926,8 +14488,8 @@ snapshots:
d3-sankey: 0.12.3
dagre-d3-es: 7.0.13
dayjs: 1.11.19
- dompurify: 3.3.1
- katex: 0.16.32
+ dompurify: 3.3.2
+ katex: 0.16.37
khroma: 2.1.0
lodash-es: 4.17.23
marked: 16.4.2
@@ -14002,12 +14564,12 @@ snapshots:
- bufferutil
- utf-8-validate
- miniflare@4.20260302.0:
+ miniflare@4.20260301.1:
dependencies:
'@cspotcode/source-map-support': 0.8.1
sharp: 0.34.5
undici: 7.18.2
- workerd: 1.20260302.0
+ workerd: 1.20260301.1
ws: 8.18.0
youch: 4.1.0-beta.10
transitivePeerDependencies:
@@ -14018,21 +14580,21 @@ snapshots:
dependencies:
'@isaacs/brace-expansion': 5.0.1
- minimatch@10.2.2:
+ minimatch@10.2.4:
dependencies:
- brace-expansion: 5.0.3
+ brace-expansion: 5.0.4
- minimatch@3.1.3:
+ minimatch@3.1.5:
dependencies:
brace-expansion: 1.1.12
- minimatch@5.1.7:
+ minimatch@5.1.9:
dependencies:
brace-expansion: 2.0.2
- minimatch@9.0.6:
+ minimatch@9.0.9:
dependencies:
- brace-expansion: 5.0.3
+ brace-expansion: 2.0.2
minimist@1.2.8: {}
@@ -14052,22 +14614,51 @@ snapshots:
dependencies:
minimist: 1.2.8
- mlly@1.8.0:
+ mlly@1.8.1:
dependencies:
acorn: 8.16.0
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.6.3
+ mongodb-connection-string-url@7.0.1:
+ dependencies:
+ '@types/whatwg-url': 13.0.0
+ whatwg-url: 14.2.0
+
+ mongodb@7.1.0(socks@2.8.7):
+ dependencies:
+ '@mongodb-js/saslprep': 1.4.6
+ bson: 7.2.0
+ mongodb-connection-string-url: 7.0.1
+ optionalDependencies:
+ socks: 2.8.7
+
mrmime@2.0.1: {}
ms@2.0.0: {}
ms@2.1.3: {}
+ mysql2@3.15.3:
+ dependencies:
+ aws-ssl-profiles: 1.1.2
+ denque: 2.1.0
+ generate-function: 2.3.1
+ iconv-lite: 0.7.2
+ long: 5.3.2
+ lru.min: 1.1.4
+ named-placeholders: 1.1.6
+ seq-queue: 0.0.5
+ sqlstring: 2.3.3
+
+ named-placeholders@1.1.6:
+ dependencies:
+ lru.min: 1.1.4
+
nanoid@3.3.11: {}
- nanostores@1.1.0: {}
+ nanostores@1.1.1: {}
napi-build-utils@2.0.0: {}
@@ -14077,11 +14668,11 @@ snapshots:
netmask@2.0.2: {}
- nitropack@2.13.1(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(rolldown@1.0.0-beta.51):
+ nitropack@2.13.1(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3)(rolldown@1.0.0-beta.51):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.2
'@rollup/plugin-alias': 6.0.0(rollup@4.59.0)
- '@rollup/plugin-commonjs': 29.0.0(rollup@4.59.0)
+ '@rollup/plugin-commonjs': 29.0.2(rollup@4.59.0)
'@rollup/plugin-inject': 5.0.5(rollup@4.59.0)
'@rollup/plugin-json': 6.1.0(rollup@4.59.0)
'@rollup/plugin-node-resolve': 16.0.3(rollup@4.59.0)
@@ -14098,7 +14689,7 @@ snapshots:
cookie-es: 2.0.0
croner: 9.1.0
crossws: 0.3.5
- db0: 0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))
+ db0: 0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3)
defu: 6.1.4
destr: 2.0.5
dot-prop: 10.1.0
@@ -14111,7 +14702,7 @@ snapshots:
h3: 1.15.5
hookable: 5.5.3
httpxy: 0.1.7
- ioredis: 5.9.3
+ ioredis: 5.10.0
jiti: 2.6.1
klona: 2.0.6
knitwork: 1.3.0
@@ -14119,7 +14710,7 @@ snapshots:
magic-string: 0.30.21
magicast: 0.5.2
mime: 4.1.0
- mlly: 1.8.0
+ mlly: 1.8.1
node-fetch-native: 1.6.7
node-mock-http: 1.0.4
ofetch: 1.5.1
@@ -14130,7 +14721,7 @@ snapshots:
pretty-bytes: 7.1.0
radix3: 1.1.2
rollup: 4.59.0
- rollup-plugin-visualizer: 6.0.5(rolldown@1.0.0-beta.51)(rollup@4.59.0)
+ rollup-plugin-visualizer: 6.0.11(rolldown@1.0.0-beta.51)(rollup@4.59.0)
scule: 1.3.0
semver: 7.7.4
serve-placeholder: 2.0.2
@@ -14142,12 +14733,12 @@ snapshots:
uncrypto: 0.1.3
unctx: 2.5.0
unenv: 2.0.0-rc.24
- unimport: 5.6.0
+ unimport: 5.7.0
unplugin-utils: 0.3.1
- unstorage: 1.17.4(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(ioredis@5.9.3)
+ unstorage: 1.17.4(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3))(ioredis@5.10.0)
untyped: 2.0.0
unwasm: 0.5.3
- youch: 4.1.0-beta.14
+ youch: 4.1.0
youch-core: 0.3.3
transitivePeerDependencies:
- '@azure/app-configuration'
@@ -14168,6 +14759,7 @@ snapshots:
- '@vercel/kv'
- aws4fetch
- bare-abort-controller
+ - bare-buffer
- better-sqlite3
- drizzle-orm
- encoding
@@ -14204,7 +14796,7 @@ snapshots:
node-mock-http@1.0.4: {}
- node-releases@2.0.27: {}
+ node-releases@2.0.36: {}
non-layered-tidy-tree-layout@2.0.2:
optional: true
@@ -14426,7 +15018,7 @@ snapshots:
pkg-types@1.3.1:
dependencies:
confbox: 0.1.8
- mlly: 1.8.0
+ mlly: 1.8.1
pathe: 2.0.3
pkg-types@2.3.0:
@@ -14448,15 +15040,17 @@ snapshots:
path-data-parser: 0.1.0
points-on-curve: 0.2.0
- postcss@8.5.6:
+ postcss@8.5.8:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
+ postgres@3.4.7: {}
+
postmark@4.0.7:
dependencies:
- axios: 1.13.5
+ axios: 1.13.6
transitivePeerDependencies:
- debug
@@ -14471,7 +15065,7 @@ snapshots:
mkdirp-classic: 0.5.3
napi-build-utils: 2.0.0
node-abi: 3.87.0
- pump: 3.0.3
+ pump: 3.0.4
rc: 1.2.8
simple-get: 4.0.1
tar-fs: 2.1.4
@@ -14493,12 +15087,35 @@ snapshots:
ansi-styles: 5.2.0
react-is: 17.0.2
+ prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3):
+ dependencies:
+ '@prisma/config': 7.4.2(magicast@0.5.2)
+ '@prisma/dev': 0.20.0(typescript@5.9.3)
+ '@prisma/engines': 7.4.2
+ '@prisma/studio-core': 0.13.1(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)
+ mysql2: 3.15.3
+ postgres: 3.4.7
+ optionalDependencies:
+ better-sqlite3: 12.6.2
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - '@types/react'
+ - magicast
+ - react
+ - react-dom
+
process-nextick-args@2.0.1: {}
process@0.11.10: {}
progress@2.0.3: {}
+ proper-lockfile@4.1.2:
+ dependencies:
+ graceful-fs: 4.2.11
+ retry: 0.12.0
+ signal-exit: 3.0.7
+
property-information@7.1.0: {}
protobufjs@6.11.4:
@@ -14514,7 +15131,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
long: 4.0.0
proxy-addr@2.0.7:
@@ -14543,20 +15160,20 @@ snapshots:
dependencies:
proxy-compare: 3.0.1
- pump@3.0.3:
+ pump@3.0.4:
dependencies:
end-of-stream: 1.4.5
once: 1.4.0
punycode@2.3.1: {}
- puppeteer-core@24.37.5:
+ puppeteer-core@24.38.0:
dependencies:
'@puppeteer/browsers': 2.13.0
- chromium-bidi: 14.0.0(devtools-protocol@0.0.1566079)
+ chromium-bidi: 14.0.0(devtools-protocol@0.0.1581282)
debug: 4.4.3
- devtools-protocol: 0.0.1566079
- typed-query-selector: 2.12.0
+ devtools-protocol: 0.0.1581282
+ typed-query-selector: 2.12.1
webdriver-bidi-protocol: 0.4.1
ws: 8.19.0
transitivePeerDependencies:
@@ -14567,14 +15184,14 @@ snapshots:
- supports-color
- utf-8-validate
- puppeteer@24.37.5(typescript@5.9.3):
+ puppeteer@24.38.0(typescript@5.9.3):
dependencies:
'@puppeteer/browsers': 2.13.0
- chromium-bidi: 14.0.0(devtools-protocol@0.0.1566079)
- cosmiconfig: 9.0.0(typescript@5.9.3)
- devtools-protocol: 0.0.1566079
- puppeteer-core: 24.37.5
- typed-query-selector: 2.12.0
+ chromium-bidi: 14.0.0(devtools-protocol@0.0.1581282)
+ cosmiconfig: 9.0.1(typescript@5.9.3)
+ devtools-protocol: 0.0.1581282
+ puppeteer-core: 24.38.0
+ typed-query-selector: 2.12.1
transitivePeerDependencies:
- bare-abort-controller
- bare-buffer
@@ -14584,6 +15201,8 @@ snapshots:
- typescript
- utf-8-validate
+ pure-rand@6.1.0: {}
+
qs@6.15.0:
dependencies:
side-channel: 1.1.0
@@ -14659,7 +15278,7 @@ snapshots:
readdir-glob@1.1.3:
dependencies:
- minimatch: 5.1.7
+ minimatch: 5.1.9
readdirp@4.1.2: {}
@@ -14712,12 +15331,16 @@ snapshots:
'@eslint-community/regexpp': 4.12.2
refa: 0.12.1
+ regexp-to-ast@0.5.0: {}
+
regexp-tree@0.1.27: {}
regjsparser@0.13.0:
dependencies:
jsesc: 3.1.0
+ remeda@2.33.4: {}
+
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
@@ -14741,6 +15364,8 @@ snapshots:
onetime: 5.1.2
signal-exit: 3.0.7
+ retry@0.12.0: {}
+
reusify@1.1.0: {}
rfdc@1.4.1: {}
@@ -14772,7 +15397,7 @@ snapshots:
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.51
optional: true
- rollup-plugin-visualizer@6.0.5(rolldown@1.0.0-beta.51)(rollup@4.59.0):
+ rollup-plugin-visualizer@6.0.11(rolldown@1.0.0-beta.51)(rollup@4.59.0):
dependencies:
open: 8.4.2
picomatch: 4.0.3
@@ -14904,6 +15529,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ seq-queue@0.0.5: {}
+
serialize-javascript@6.0.2:
dependencies:
randombytes: 2.1.0
@@ -14936,7 +15563,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- set-cookie-parser@2.7.2: {}
+ set-cookie-parser@3.0.1: {}
setprototypeof@1.2.0: {}
@@ -14948,7 +15575,7 @@ snapshots:
prebuild-install: 7.1.3
semver: 7.7.4
simple-get: 4.0.1
- tar-fs: 3.1.1
+ tar-fs: 3.1.2
tunnel-agent: 0.6.0
transitivePeerDependencies:
- bare-abort-controller
@@ -14983,7 +15610,7 @@ snapshots:
sharp@0.34.5:
dependencies:
- '@img/colour': 1.0.0
+ '@img/colour': 1.1.0
detect-libc: 2.1.2
semver: 7.7.4
optionalDependencies:
@@ -15100,11 +15727,6 @@ snapshots:
slash@5.1.0: {}
- slice-ansi@7.1.2:
- dependencies:
- ansi-styles: 6.2.3
- is-fullwidth-code-point: 5.1.0
-
slice-ansi@8.0.0:
dependencies:
ansi-styles: 6.2.3
@@ -15183,8 +15805,14 @@ snapshots:
space-separated-tokens@2.0.2: {}
+ sparse-bitfield@3.0.3:
+ dependencies:
+ memory-pager: 1.5.0
+
speakingurl@14.0.1: {}
+ sqlstring@2.3.3: {}
+
stack-trace@1.0.0-pre2: {}
stack-utils@2.0.6:
@@ -15222,18 +15850,18 @@ snapshots:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
- strip-ansi: 7.1.2
+ strip-ansi: 7.2.0
string-width@7.2.0:
dependencies:
emoji-regex: 10.6.0
get-east-asian-width: 1.5.0
- strip-ansi: 7.1.2
+ strip-ansi: 7.2.0
string-width@8.2.0:
dependencies:
get-east-asian-width: 1.5.0
- strip-ansi: 7.1.2
+ strip-ansi: 7.2.0
string_decoder@1.1.1:
dependencies:
@@ -15252,7 +15880,7 @@ snapshots:
dependencies:
ansi-regex: 5.0.1
- strip-ansi@7.1.2:
+ strip-ansi@7.2.0:
dependencies:
ansi-regex: 6.2.2
@@ -15272,9 +15900,9 @@ snapshots:
dependencies:
js-tokens: 9.0.1
- stripe@20.3.1(@types/node@25.3.0):
+ stripe@20.4.1(@types/node@25.3.5):
optionalDependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
style-to-object@1.0.14:
dependencies:
@@ -15334,15 +15962,15 @@ snapshots:
dependencies:
chownr: 1.1.4
mkdirp-classic: 0.5.3
- pump: 3.0.3
+ pump: 3.0.4
tar-stream: 2.2.0
- tar-fs@3.1.1:
+ tar-fs@3.1.2:
dependencies:
- pump: 3.0.3
- tar-stream: 3.1.7
+ pump: 3.0.4
+ tar-stream: 3.1.8
optionalDependencies:
- bare-fs: 4.5.4
+ bare-fs: 4.5.5
bare-path: 3.0.0
transitivePeerDependencies:
- bare-abort-controller
@@ -15357,16 +15985,18 @@ snapshots:
inherits: 2.0.4
readable-stream: 3.6.2
- tar-stream@3.1.7:
+ tar-stream@3.1.8:
dependencies:
b4a: 1.8.0
+ bare-fs: 4.5.5
fast-fifo: 1.3.2
streamx: 2.23.0
transitivePeerDependencies:
- bare-abort-controller
+ - bare-buffer
- react-native-b4a
- tar@7.5.9:
+ tar@7.5.10:
dependencies:
'@isaacs/fs-minipass': 4.0.1
chownr: 3.0.0
@@ -15380,7 +16010,6 @@ snapshots:
transitivePeerDependencies:
- bare-abort-controller
- react-native-b4a
- optional: true
temp@0.9.4:
dependencies:
@@ -15430,11 +16059,11 @@ snapshots:
tinyspy@4.0.4: {}
- tldts-core@7.0.23: {}
+ tldts-core@7.0.25: {}
- tldts@7.0.23:
+ tldts@7.0.25:
dependencies:
- tldts-core: 7.0.23
+ tldts-core: 7.0.25
to-regex-range@5.0.1:
dependencies:
@@ -15448,10 +16077,14 @@ snapshots:
tough-cookie@6.0.0:
dependencies:
- tldts: 7.0.23
+ tldts: 7.0.25
tr46@0.0.3: {}
+ tr46@5.1.1:
+ dependencies:
+ punycode: 2.3.1
+
tr46@6.0.0:
dependencies:
punycode: 2.3.1
@@ -15479,32 +16112,32 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- turbo-darwin-64@2.8.10:
+ turbo-darwin-64@2.8.14:
optional: true
- turbo-darwin-arm64@2.8.10:
+ turbo-darwin-arm64@2.8.14:
optional: true
- turbo-linux-64@2.8.10:
+ turbo-linux-64@2.8.14:
optional: true
- turbo-linux-arm64@2.8.10:
+ turbo-linux-arm64@2.8.14:
optional: true
- turbo-windows-64@2.8.10:
+ turbo-windows-64@2.8.14:
optional: true
- turbo-windows-arm64@2.8.10:
+ turbo-windows-arm64@2.8.14:
optional: true
- turbo@2.8.10:
+ turbo@2.8.14:
optionalDependencies:
- turbo-darwin-64: 2.8.10
- turbo-darwin-arm64: 2.8.10
- turbo-linux-64: 2.8.10
- turbo-linux-arm64: 2.8.10
- turbo-windows-64: 2.8.10
- turbo-windows-arm64: 2.8.10
+ turbo-darwin-64: 2.8.14
+ turbo-darwin-arm64: 2.8.14
+ turbo-linux-64: 2.8.14
+ turbo-linux-arm64: 2.8.14
+ turbo-windows-64: 2.8.14
+ turbo-windows-arm64: 2.8.14
type-check@0.4.0:
dependencies:
@@ -15522,7 +16155,7 @@ snapshots:
media-typer: 1.1.0
mime-types: 3.0.2
- typed-query-selector@2.12.0: {}
+ typed-query-selector@2.12.1: {}
typescript@5.9.3: {}
@@ -15561,14 +16194,14 @@ snapshots:
unicorn-magic@0.4.0: {}
- unimport@5.6.0:
+ unimport@5.7.0:
dependencies:
acorn: 8.16.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
local-pkg: 1.1.2
magic-string: 0.30.21
- mlly: 1.8.0
+ mlly: 1.8.1
pathe: 2.0.3
picomatch: 4.0.3
pkg-types: 2.3.0
@@ -15615,7 +16248,7 @@ snapshots:
picomatch: 4.0.3
webpack-virtual-modules: 0.6.2
- unstorage@1.17.4(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(ioredis@5.9.3):
+ unstorage@1.17.4(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3))(ioredis@5.10.0):
dependencies:
anymatch: 3.1.3
chokidar: 5.0.0
@@ -15626,8 +16259,8 @@ snapshots:
ofetch: 1.5.1
ufo: 1.6.3
optionalDependencies:
- db0: 0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))
- ioredis: 5.9.3
+ db0: 0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3)
+ ioredis: 5.10.0
untun@0.1.3:
dependencies:
@@ -15648,7 +16281,7 @@ snapshots:
exsolve: 1.0.8
knitwork: 1.3.0
magic-string: 0.30.21
- mlly: 1.8.0
+ mlly: 1.8.1
pathe: 2.0.3
pkg-types: 2.3.0
@@ -15668,6 +16301,10 @@ snapshots:
uuid@11.1.0: {}
+ valibot@1.2.0(typescript@5.9.3):
+ optionalDependencies:
+ typescript: 5.9.3
+
vary@1.1.2: {}
vfile-message@4.0.3:
@@ -15680,7 +16317,7 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vinxi@0.5.11(@types/node@25.3.0)(better-sqlite3@12.6.2)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.31.1)(rolldown@1.0.0-beta.51)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
+ vinxi@0.5.11(8957e57c08f05dd579cfce7ceebb1280):
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
@@ -15701,7 +16338,7 @@ snapshots:
hookable: 5.5.3
http-proxy: 1.18.1
micromatch: 4.0.8
- nitropack: 2.13.1(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11))(rolldown@1.0.0-beta.51)
+ nitropack: 2.13.1(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3)(rolldown@1.0.0-beta.51)
node-fetch-native: 1.6.7
path-to-regexp: 6.3.0
pathe: 1.1.2
@@ -15713,8 +16350,8 @@ snapshots:
ufo: 1.6.3
unctx: 2.5.0
unenv: 1.10.0
- unstorage: 1.17.4(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260302.0)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)))(ioredis@5.9.3)
- vite: 6.4.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ unstorage: 1.17.4(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@12.6.2)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260307.1)(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(better-sqlite3@12.6.2)(gel@2.2.0)(kysely@0.28.11)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(better-sqlite3@12.6.2)(magicast@0.5.2)(react-dom@19.2.3(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mysql2@3.15.3))(ioredis@5.10.0)
+ vite: 6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
zod: 4.3.6
transitivePeerDependencies:
- '@azure/app-configuration'
@@ -15736,6 +16373,7 @@ snapshots:
- '@vercel/kv'
- aws4fetch
- bare-abort-controller
+ - bare-buffer
- better-sqlite3
- db0
- debug
@@ -15761,13 +16399,13 @@ snapshots:
- xml2js
- yaml
- vite-node@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
+ vite-node@3.2.0(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -15782,7 +16420,7 @@ snapshots:
- tsx
- yaml
- vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
'@babel/core': 7.29.0
'@types/babel__core': 7.20.5
@@ -15790,14 +16428,14 @@ snapshots:
merge-anything: 5.1.7
solid-js: 1.9.11
solid-refresh: 0.6.3(solid-js@1.9.11)
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vitefu: 1.1.2(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vitefu: 1.1.2(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
optionalDependencies:
'@testing-library/jest-dom': 6.9.1
transitivePeerDependencies:
- supports-color
- vite-prerender-plugin@0.5.12(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-prerender-plugin@0.5.12(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
kolorist: 1.8.0
magic-string: 0.30.21
@@ -15805,29 +16443,29 @@ snapshots:
simple-code-frame: 1.3.0
source-map: 0.7.6
stack-trace: 1.0.0-pre2
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vite@5.4.21(@types/node@25.3.0)(lightningcss@1.31.1)(terser@5.46.0):
+ vite@5.4.21(@types/node@25.3.5)(lightningcss@1.31.1)(terser@5.46.0):
dependencies:
esbuild: 0.21.5
- postcss: 8.5.6
+ postcss: 8.5.8
rollup: 4.59.0
optionalDependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
fsevents: 2.3.3
lightningcss: 1.31.1
terser: 5.46.0
- vite@6.4.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
+ vite@6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
- postcss: 8.5.6
+ postcss: 8.5.8
rollup: 4.59.0
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
fsevents: 2.3.3
jiti: 2.6.1
lightningcss: 1.31.1
@@ -15835,16 +16473,16 @@ snapshots:
tsx: 4.21.0
yaml: 2.8.2
- vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
+ vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
esbuild: 0.27.3
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
- postcss: 8.5.6
+ postcss: 8.5.8
rollup: 4.59.0
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
fsevents: 2.3.3
jiti: 2.6.1
lightningcss: 1.31.1
@@ -15852,39 +16490,39 @@ snapshots:
tsx: 4.21.0
yaml: 2.8.2
- vitefu@1.1.2(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
+ vitefu@1.1.2(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
optionalDependencies:
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vitepress-plugin-mermaid@2.0.17(mermaid@11.12.3)(vitepress@1.6.4(@algolia/client-search@5.49.0)(@types/node@25.3.0)(axios@1.13.5)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3)):
+ vitepress-plugin-mermaid@2.0.17(mermaid@11.12.3)(vitepress@1.6.4(@algolia/client-search@5.49.1)(@types/node@25.3.5)(axios@1.13.6)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3)):
dependencies:
mermaid: 11.12.3
- vitepress: 1.6.4(@algolia/client-search@5.49.0)(@types/node@25.3.0)(axios@1.13.5)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3)
+ vitepress: 1.6.4(@algolia/client-search@5.49.1)(@types/node@25.3.5)(axios@1.13.6)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3)
optionalDependencies:
'@mermaid-js/mermaid-mindmap': 9.3.0
- vitepress@1.6.4(@algolia/client-search@5.49.0)(@types/node@25.3.0)(axios@1.13.5)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3):
+ vitepress@1.6.4(@algolia/client-search@5.49.1)(@types/node@25.3.5)(axios@1.13.6)(change-case@5.4.4)(lightningcss@1.31.1)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3):
dependencies:
'@docsearch/css': 3.8.2
- '@docsearch/js': 3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3)
- '@iconify-json/simple-icons': 1.2.71
+ '@docsearch/js': 3.8.2(@algolia/client-search@5.49.1)(search-insights@2.17.3)
+ '@iconify-json/simple-icons': 1.2.72
'@shikijs/core': 2.5.0
'@shikijs/transformers': 2.5.0
'@shikijs/types': 2.5.0
'@types/markdown-it': 14.1.2
- '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.3.0)(lightningcss@1.31.1)(terser@5.46.0))(vue@3.5.28(typescript@5.9.3))
+ '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.31.1)(terser@5.46.0))(vue@3.5.29(typescript@5.9.3))
'@vue/devtools-api': 7.7.9
- '@vue/shared': 3.5.28
+ '@vue/shared': 3.5.29
'@vueuse/core': 12.8.2(typescript@5.9.3)
- '@vueuse/integrations': 12.8.2(axios@1.13.5)(change-case@5.4.4)(focus-trap@7.8.0)(typescript@5.9.3)
+ '@vueuse/integrations': 12.8.2(axios@1.13.6)(change-case@5.4.4)(focus-trap@7.8.0)(typescript@5.9.3)
focus-trap: 7.8.0
mark.js: 8.11.1
minisearch: 7.2.0
shiki: 2.5.0
- vite: 5.4.21(@types/node@25.3.0)(lightningcss@1.31.1)(terser@5.46.0)
- vue: 3.5.28(typescript@5.9.3)
+ vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.31.1)(terser@5.46.0)
+ vue: 3.5.29(typescript@5.9.3)
optionalDependencies:
- postcss: 8.5.6
+ postcss: 8.5.8
transitivePeerDependencies:
- '@algolia/client-search'
- '@types/node'
@@ -15912,11 +16550,11 @@ snapshots:
- typescript
- universal-cookie
- vitest@3.2.0(@types/node@25.3.0)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
+ vitest@3.2.0(@types/node@25.3.5)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.0
- '@vitest/mocker': 3.2.0(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 3.2.0(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.0
'@vitest/snapshot': 3.2.0
@@ -15934,11 +16572,11 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
- vite-node: 3.2.0(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-node: 3.2.0(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
jsdom: 27.4.0(@noble/hashes@2.0.1)
transitivePeerDependencies:
- jiti
@@ -15954,10 +16592,10 @@ snapshots:
- tsx
- yaml
- vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
+ vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(@vitest/ui@4.0.18)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
'@vitest/expect': 4.0.18
- '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/pretty-format': 4.0.18
'@vitest/runner': 4.0.18
'@vitest/snapshot': 4.0.18
@@ -15974,11 +16612,11 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.0
- '@types/node': 25.3.0
+ '@types/node': 25.3.5
'@vitest/ui': 4.0.18(vitest@4.0.18)
jsdom: 27.4.0(@noble/hashes@2.0.1)
transitivePeerDependencies:
@@ -16011,13 +16649,13 @@ snapshots:
vscode-uri@3.1.0: {}
- vue@3.5.28(typescript@5.9.3):
+ vue@3.5.29(typescript@5.9.3):
dependencies:
- '@vue/compiler-dom': 3.5.28
- '@vue/compiler-sfc': 3.5.28
- '@vue/runtime-dom': 3.5.28
- '@vue/server-renderer': 3.5.28(vue@3.5.28(typescript@5.9.3))
- '@vue/shared': 3.5.28
+ '@vue/compiler-dom': 3.5.29
+ '@vue/compiler-sfc': 3.5.29
+ '@vue/runtime-dom': 3.5.29
+ '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@5.9.3))
+ '@vue/shared': 3.5.29
optionalDependencies:
typescript: 5.9.3
@@ -16029,6 +16667,8 @@ snapshots:
webidl-conversions@3.0.1: {}
+ webidl-conversions@7.0.0: {}
+
webidl-conversions@8.0.1: {}
webpack-virtual-modules@0.6.2: {}
@@ -16037,6 +16677,11 @@ snapshots:
whatwg-mimetype@5.0.0: {}
+ whatwg-url@14.2.0:
+ dependencies:
+ tr46: 5.1.1
+ webidl-conversions: 7.0.0
+
whatwg-url@15.1.0:
dependencies:
tr46: 6.0.0
@@ -16078,15 +16723,15 @@ snapshots:
'@cloudflare/workerd-linux-arm64': 1.20251217.0
'@cloudflare/workerd-windows-64': 1.20251217.0
- workerd@1.20260302.0:
+ workerd@1.20260301.1:
optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20260302.0
- '@cloudflare/workerd-darwin-arm64': 1.20260302.0
- '@cloudflare/workerd-linux-64': 1.20260302.0
- '@cloudflare/workerd-linux-arm64': 1.20260302.0
- '@cloudflare/workerd-windows-64': 1.20260302.0
+ '@cloudflare/workerd-darwin-64': 1.20260301.1
+ '@cloudflare/workerd-darwin-arm64': 1.20260301.1
+ '@cloudflare/workerd-linux-64': 1.20260301.1
+ '@cloudflare/workerd-linux-arm64': 1.20260301.1
+ '@cloudflare/workerd-windows-64': 1.20260301.1
- wrangler@4.56.0(@cloudflare/workers-types@4.20260302.0):
+ wrangler@4.56.0(@cloudflare/workers-types@4.20260307.1):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.1
'@cloudflare/unenv-preset': 2.7.13(unenv@2.0.0-rc.24)(workerd@1.20251217.0)
@@ -16097,24 +16742,24 @@ snapshots:
unenv: 2.0.0-rc.24
workerd: 1.20251217.0
optionalDependencies:
- '@cloudflare/workers-types': 4.20260302.0
+ '@cloudflare/workers-types': 4.20260307.1
fsevents: 2.3.3
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- wrangler@4.67.1(@cloudflare/workers-types@4.20260302.0):
+ wrangler@4.71.0(@cloudflare/workers-types@4.20260307.1):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.2
- '@cloudflare/unenv-preset': 2.14.0(unenv@2.0.0-rc.24)(workerd@1.20260302.0)
+ '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260301.1)
blake3-wasm: 2.1.5
esbuild: 0.27.3
- miniflare: 4.20260302.0
+ miniflare: 4.20260301.1
path-to-regexp: 6.3.0
unenv: 2.0.0-rc.24
- workerd: 1.20260302.0
+ workerd: 1.20260301.1
optionalDependencies:
- '@cloudflare/workers-types': 4.20260302.0
+ '@cloudflare/workers-types': 4.20260307.1
fsevents: 2.3.3
transitivePeerDependencies:
- bufferutil
@@ -16130,13 +16775,13 @@ snapshots:
dependencies:
ansi-styles: 6.2.3
string-width: 5.1.2
- strip-ansi: 7.1.2
+ strip-ansi: 7.2.0
wrap-ansi@9.0.2:
dependencies:
ansi-styles: 6.2.3
string-width: 7.2.0
- strip-ansi: 7.1.2
+ strip-ansi: 7.2.0
wrappy@1.0.2: {}
@@ -16218,22 +16863,27 @@ snapshots:
'@poppinss/exception': 1.2.3
error-stack-parser-es: 1.0.5
- youch@4.1.0-beta.10:
+ youch@4.1.0:
dependencies:
'@poppinss/colors': 4.1.6
- '@poppinss/dumper': 0.6.5
+ '@poppinss/dumper': 0.7.0
'@speed-highlight/core': 1.2.14
- cookie: 1.1.1
+ cookie-es: 2.0.0
youch-core: 0.3.3
- youch@4.1.0-beta.14:
+ youch@4.1.0-beta.10:
dependencies:
'@poppinss/colors': 4.1.6
'@poppinss/dumper': 0.6.5
'@speed-highlight/core': 1.2.14
- cookie-es: 2.0.0
+ cookie: 1.1.1
youch-core: 0.3.3
+ zeptomatch@2.1.0:
+ dependencies:
+ grammex: 3.1.12
+ graphmatch: 1.1.1
+
zimmerframe@1.1.4: {}
zip-stream@6.0.1:
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index e47dedd96..cb70e3acd 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -3,9 +3,11 @@ packages:
onlyBuiltDependencies:
- '@parcel/watcher'
+ - '@prisma/engines'
- agent-browser
- better-sqlite3
- esbuild
+ - prisma
- protobufjs
- puppeteer
- sharp