diff --git a/.changeset/config.json b/.changeset/config.json index 2be13d4..9166825 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -3,7 +3,7 @@ "changelog": "@changesets/cli/changelog", "commit": false, "fixed": [], - "linked": [], + "linked": [["@atmo-dev/contrail", "@atmo-dev/contrail-sync"]], "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..af8aae8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: CI + +on: + pull_request: + push: + branches-ignore: ['main'] + +jobs: + check: + name: Build, test, typecheck + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: Cache turbo build setup + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- + + - uses: pnpm/action-setup@v4 + with: + version: 10.30.1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22.14 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Typecheck + run: pnpm typecheck + + - name: Build + run: pnpm build + + - name: Test + run: pnpm test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dfcc204..c99c117 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,7 +5,7 @@ on: branches: ['main'] permissions: - id-token: write + id-token: write # OIDC for npm trusted publishing contents: write pull-requests: write @@ -18,6 +18,16 @@ jobs: steps: - name: Check out code uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: Cache turbo build setup + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- - uses: pnpm/action-setup@v4 with: @@ -34,7 +44,7 @@ jobs: run: npm install -g npm@11.5.1 - name: Install dependencies - run: pnpm install + run: pnpm install --frozen-lockfile - name: Build run: pnpm build diff --git a/.gitignore b/.gitignore index d17a0b7..09e8139 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,12 @@ node_modules .wrangler dist +# Turbo +.turbo + # Generated (internal only) -lex.config.js -src/lexicon-types/ -src/core/queryable.generated.ts +packages/contrail/src/core/queryable.generated.ts +apps/*/src/lexicon-types/ +apps/*/lex.config.js -stuff/ \ No newline at end of file +stuff/ diff --git a/README.md b/README.md index 4e95bd6..0f711a7 100644 --- a/README.md +++ b/README.md @@ -1,444 +1,51 @@ # Contrail -> [!WARNING] -> Work in progress! Pre-alpha, expect breaking changes. +> **Work in progress!** Pre-alpha, expect breaking changes. -A library for indexing AT Protocol records. Define collections — get automatic Jetstream ingestion, PDS backfill, user discovery, typed XRPC endpoints, and (opt-in) permissioned spaces for private records. Works with Cloudflare Workers + D1, SvelteKit, Node.js, or any JavaScript runtime. +Contrail is a library (and a small set of sibling packages) for building AT Protocol appviews. Define collections, get automatic Jetstream ingestion, PDS backfill, typed XRPC endpoints, permissioned spaces for private records, group-controlled communities, and a client-side reactive sync layer. -## Install +## Packages -```bash -npm install @atmo-dev/contrail -``` - -## Usage - -```ts -import { Contrail } from "@atmo-dev/contrail"; - -const contrail = new Contrail({ - namespace: "com.example", - db, // any Database-compatible instance (D1, SQLite, etc.) - collections: { - event: { // short name → URL path + table suffix - collection: "community.lexicon.calendar.event", // full NSID of the record type - queryable: { - mode: {}, // string → equality filter (?mode=online) - name: {}, // string → equality filter (?name=...) - startsAt: { type: "range" }, // range → min/max filters (?startsAtMin=...&startsAtMax=...) - endsAt: { type: "range" }, - }, - searchable: ["name", "description"], - relations: { - rsvps: { - collection: "rsvp", // short name of the child collection - groupBy: "status", - count: true, - groups: { - interested: "community.lexicon.calendar.rsvp#interested", - going: "community.lexicon.calendar.rsvp#going", - notgoing: "community.lexicon.calendar.rsvp#notgoing", - }, - }, - }, - }, - rsvp: { - collection: "community.lexicon.calendar.rsvp", - queryable: { - status: {}, - "subject.uri": {}, - }, - references: { - event: { - collection: "event", // short name of the referenced collection - field: "subject.uri", - }, - }, - }, - }, -}); - -await contrail.init(); -``` - -### Query records - -```ts -const { records, cursor } = await contrail.query( - "event", // short name you declared in `collections` - { - filters: { mode: "in-person" }, - sort: { countType: "rsvp", direction: "desc" }, - limit: 20, - } -); -``` - -### Ingest from Jetstream - -```ts -// Run one ingestion cycle (catches up to present, then stops) -await contrail.ingest(); -``` - -### Persistent ingestion - -```ts -// Long-lived Jetstream connection with automatic batching and reconnection -const controller = new AbortController(); -await contrail.runPersistent({ - batchSize: 50, // flush every N events (default: 50) - flushIntervalMs: 5000, // or every N ms (default: 5000) - signal: controller.signal, -}); -``` +| Package | Description | +|---|---| +| [`@atmo-dev/contrail`](./packages/contrail) | Core library — indexing, XRPC server, spaces, communities, realtime publishing. | +| [`@atmo-dev/contrail-sync`](./packages/sync) | Client-side reactive watch-store over `watchRecords`. SSE + WebSocket, IndexedDB cache. | +| [`@atmo-dev/contrail-lexicons`](./packages/lexicons) | Lexicon codegen from a Contrail config + CLI (`contrail-lex`) wrapping `@atcute/lex-cli`. | -Call `controller.abort()` for graceful shutdown — the current batch is flushed and the cursor is saved. +## Apps (reference deployments — `workspace:*`-linked) -### Discover users and backfill +| App | Description | +|---|---| +| [`rsvp-atmo`](./apps/rsvp-atmo) | Cloudflare Workers + D1 indexer for `community.lexicon.calendar.*`. | +| [`group-chat`](./apps/group-chat) | Full-featured SvelteKit + Workers group chat using spaces, communities, and realtime. | +| [`postgres`](./apps/postgres) | Node + PostgreSQL minimal indexer. | +| [`cloudflare-workers`](./apps/cloudflare-workers) | Minimal Worker example. | +| [`sveltekit-cloudflare-workers`](./apps/sveltekit-cloudflare-workers) | SvelteKit Statusphere-style example. | -```ts -// Find users from relays -await contrail.discover(); - -// Backfill their records from PDS -await contrail.backfill({ concurrency: 100 }); - -// Or both in one call -await contrail.sync({ concurrency: 100 }); -``` - -### Notify of immediate updates - -```ts -// After writing to a user's PDS, tell Contrail to fetch it now -await contrail.notify("at://did:plc:abc/community.lexicon.calendar.rsvp/123"); - -// Batch up to 25 URIs -await contrail.notify([uri1, uri2, uri3]); -``` - -### HTTP handler (XRPC endpoints) - -Mount the full XRPC API in any framework: - -```ts -import { createHandler } from "@atmo-dev/contrail/server"; - -const handle = createHandler(contrail); -// handle: (Request, db?) => Promise -``` - -**SvelteKit:** - -```ts -// src/routes/xrpc/[...path]/+server.ts -export const GET = ({ request }) => handle(request); -export const POST = ({ request }) => handle(request); -``` - -**Cloudflare Worker:** - -```ts -export default { - async fetch(request, env) { - return handle(request, env.DB); - }, -}; -``` - -### SQLite adapter (Node.js / local dev) - -```ts -import { createSqliteDatabase } from "@atmo-dev/contrail/sqlite"; - -const db = createSqliteDatabase("data.db"); -const contrail = new Contrail({ ...config, db }); -``` - -> **Note:** The SQLite adapter uses Node's built-in `node:sqlite` (Node 22+). Full-text search (`searchable`) is not supported with this adapter because `node:sqlite` doesn't include the FTS5 extension. Search works on Cloudflare D1 and PostgreSQL. - -### PostgreSQL adapter (Node.js / server) - -```ts -import { createPostgresDatabase } from "@atmo-dev/contrail/postgres"; -import pg from "pg"; - -const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL }); -const db = createPostgresDatabase(pool); -const contrail = new Contrail({ ...config, db }); -``` - -PostgreSQL uses JSONB for record storage, tsvector generated columns for full-text search (instead of FTS5), and `BIGINT` for timestamp columns. - -## Examples - -### PostgreSQL (Node.js) - -See [`examples/postgres/`](examples/postgres/) for a complete example with Docker Compose, persistent Jetstream ingestion, user discovery/backfill, and an HTTP API server. - -### Cloudflare Workers - -This repo includes a working example that indexes AT Protocol calendar events and RSVPs on Cloudflare Workers + D1. - -### Setup +## Setup ```bash pnpm install -pnpm generate:pull # pull lexicons from network, auto-detect fields, generate types -``` - -### Dev - -```bash -pnpm sync # discover users and backfill records from PDS -pnpm dev:auto # start wrangler dev with auto-ingestion +pnpm build +pnpm test ``` -### Production +Per-package commands run through Turbo: ```bash -npx wrangler d1 create contrail -# Add database_id to wrangler.jsonc -pnpm deploy -pnpm sync # discover + backfill against prod D1 +pnpm build # turbo run build +pnpm typecheck # turbo run typecheck +pnpm test # turbo run test +pnpm --filter @atmo-dev/contrail build +pnpm --filter rsvp-atmo dev ``` -Ingestion runs automatically via cron (`*/1 * * * *`). Schema is auto-initialized. - -## Config - -### Collection options - -| Option | Default | Description | -|--------|---------|-------------| -| `queryable` | `{}` | Fields exposed as query filters. `{}` = string equality, `{ type: "range" }` = min/max | -| `discover` | `true` | Find users via relays. `false` = only track known DIDs | -| `relations` | `{}` | Many-to-one relationships with materialized counts | -| `relations.*.field` | `"subject.uri"` | Field in the related record to match against | -| `relations.*.match` | `"uri"` | Match against parent's `"uri"` or `"did"` | -| `relations.*.groupBy` | — | Split counts by this field's value | -| `relations.*.groups` | — | Group value mappings (e.g. `{ going: "collection#going" }`) | -| `relations.*.count` | `true` | Enable materialized count columns on the parent | -| `references` | `{}` | Forward references to other collections for hydration | -| `references.*.collection` | — | Short name of the target collection (key in `collections`) | -| `references.*.field` | — | Field containing the target record's AT URI | -| `queries` | `{}` | Custom query handlers (raw Response) | -| `pipelineQueries` | `{}` | Custom query handlers that go through the standard filter/sort/hydration pipeline | -| `searchable` | disabled | Full-text search fields. SQLite uses FTS5 virtual tables; PostgreSQL uses tsvector generated columns with GIN indexes. Provide `string[]` to enable, omit to disable | -| `collection` | — | Full NSID of the record type this short-name entry indexes (required) | -| `methods` | `["listRecords", "getRecord"]` | XRPC methods to emit for this collection | -| `allowInSpaces` | `true` | When spaces are enabled, emit a parallel `spaces_records_` table | - -### Top-level options - -| Option | Default | Description | -|--------|---------|-------------| -| `namespace` | — | Your reverse-domain namespace (e.g. `"com.example"`) | -| `collections` | — | Collection configurations | -| `profiles` | `["app.bsky.actor.profile"]` | Profile collection NSIDs | -| `relays` | Bluesky relays | Relay URLs for user discovery | -| `jetstreams` | Bluesky Jetstream | Jetstream URLs for real-time ingestion | -| `feeds` | — | Personalized feed configurations | -| `notify` | off | Expose `notifyOfUpdate`. `true` = open, string = `Authorization: Bearer ` required | -| `spaces` | — | Permissioned-spaces configuration. See [PERMISSIONED_DATA.md](./PERMISSIONED_DATA.md) | -| `logger` | `console` | Logger instance (`{ log, warn, error }`) | - -### Profiles - -`profiles` is a top-level config array of collection NSIDs that contain profile records (rkey `self`). Defaults to `["app.bsky.actor.profile"]`. These are auto-added to `collections` with `{ discover: false }`. Use `?profiles=true` on any endpoint to include a `profiles` map in the response, keyed by DID, with handle and profile record data. +## Releasing -## XRPC API - -When using `createHandler`, all endpoints live under the deployment's own namespace at `/xrpc/{namespace}.{...}`: - -| Endpoint | Description | -|----------|-------------| -| `{namespace}.{short}.listRecords` | List/filter records in a collection (keyed by its short name) | -| `{namespace}.{short}.getRecord` | Get single record by URI | -| `{namespace}.getProfile` | Get a user's profile by DID or handle | -| `{namespace}.notifyOfUpdate` | Notify of a record change for immediate indexing | -| `{namespace}.getCursor` | Current cursor position | -| `{namespace}.getOverview` | All collections summary | -| `{namespace}.permissionSet` | OAuth permission-set bundling every method above (auto-generated) | -| `{namespace}.space.*` | Spaces admin, invite, member, record XRPCs (when `spaces` is enabled) | - -### Query parameters - -**Filtering:** - -| Param | Example | Description | -|-------|---------|-------------| -| `actor` | `?actor=did:plc:...` or `?actor=alice.bsky.social` | Filter by DID or handle (triggers on-demand backfill) | -| `profiles` | `?profiles=true` | Include profile + identity info keyed by DID | -| `search` | `?search=meetup` | Full-text search across searchable fields (FTS5, ranked) | -| `{field}` | `?status=going` | Equality filter on queryable string field | -| `{field}Min` | `?startsAtMin=2026-03-16` | Range minimum (datetime/integer fields) | -| `{field}Max` | `?endsAtMax=2026-04-01` | Range maximum (datetime/integer fields) | -| `{rel}CountMin` | `?rsvpsCountMin=10` | Minimum total relation count | -| `{rel}{Group}CountMin` | `?rsvpsGoingCountMin=10` | Minimum relation count for a specific groupBy value | -| `hydrate{Rel}` | `?hydrateRsvps=10` | Embed latest N related records (per group if grouped) | -| `hydrate{Ref}` | `?hydrateEvent=true` | Embed the referenced record | -| `sort` | `?sort=startsAt` | Sort by a queryable field or count (see below) | -| `order` | `?order=asc` | Sort direction: `asc` or `desc` (default depends on field type) | -| `limit` | `?limit=25` | Page size (1-200, default 50) | -| `cursor` | `?cursor=...` | Pagination cursor | - -**Sorting** — `sort` accepts any queryable field param name or a count field: - -``` -?sort=startsAt # by date (default: desc for range fields) -?sort=name&order=asc # by name ascending -?sort=rsvpsCount # by total RSVP count (default: desc) -?sort=rsvpsGoingCount&order=asc # by going count ascending -``` - -**Search** uses SQLite FTS5 or PostgreSQL tsvector for ranked full-text search. To enable, set `searchable: ["field1", "field2"]` on a collection. Supports FTS5 syntax including prefix (`meetup*`), phrases (`"rust meetup"`), and boolean (`rust OR typescript`). Combinable with all other filters. - -``` -?search=meetup # basic search -?search=meetup&mode=online # search + filter -?search=rust*&sort=startsAt&order=asc # search + sort override -``` - -**Hydration** embeds related or referenced records inline: - -``` -?hydrateRsvps=5 # latest 5 RSVPs per group (going, interested, etc.) -?hydrateEvent=true # embed the referenced event record -?hydrateRsvps=5&hydrateEvent=true # combine both -``` - -### Examples (events) - -``` -# Upcoming events with 10+ going RSVPs, with RSVP records and profiles -/xrpc/com.example.event.listRecords?startsAtMin=2026-03-16&rsvpsGoingCountMin=10&hydrateRsvps=5&profiles=true - -# Events for a specific user (by handle) -/xrpc/com.example.event.listRecords?actor=alice.bsky.social&profiles=true - -# Single event with counts, RSVPs, and profiles -/xrpc/com.example.event.getRecord?uri=at://did:plc:.../community.lexicon.calendar.event/...&hydrateRsvps=10&profiles=true - -# Search for events by name/description -/xrpc/com.example.event.listRecords?search=meetup&profiles=true - -# RSVPs for a specific event, with the referenced event embedded -/xrpc/com.example.rsvp.listRecords?subjectUri=at://did:plc:.../community.lexicon.calendar.event/...&hydrateEvent=true&profiles=true -``` - -## Notify of Updates - -By default, Contrail ingests from Jetstream every minute (in the Worker example). If your app writes to a user's PDS and needs the change reflected immediately, use `contrail.notify()` or call the XRPC endpoint: - -```ts -// Programmatic -await contrail.notify(uri); - -// Or via HTTP -await fetch("https://your-contrail.workers.dev/xrpc/com.example.notifyOfUpdate", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ uri }), -}); -``` - -Contrail fetches the record from the user's PDS and figures out what to do: - -| PDS returns | Already indexed? | Action | -|---|---|---| -| Record (new CID) | No | **Create** — indexes it, recounts relations | -| Record (new CID) | Yes | **Update** — upserts the record, recounts relations | -| Record (same CID) | Yes | **Skip** — nothing changed | -| 404 | Yes | **Delete** — removes it, recounts relations | -| 404 | No | **No-op** | - -When Jetstream later delivers the same event, the duplicate is detected by CID and skipped. - -## Permissioned Data - -Contrail ships an opt-in permissioned-spaces subsystem: an auth-gated store for records that can't live on public PDSes — private events, invite-only groups, members-only chat. Set `config.spaces` and contrail exposes the space XRPCs at `{namespace}.space.*` alongside your public indexer: - -```ts -const contrail = new Contrail({ - namespace: "com.example", - collections: { /* ... */ }, - spaces: { - type: "com.example.event.space", // NSID classifying the kind of space - serviceDid: "did:web:example.com", // your deployment's DID - // `resolver` is optional — defaults to a composite did:plc + did:web resolver. - }, -}); -``` - -Each collection you declare also gets a parallel `spaces_records_` table (opt out per-collection via `allowInSpaces: false`). Auth uses atproto service-auth JWTs via `@atcute/xrpc-server`. Access is a simple `read` / `write` permission per member — the space owner is implicit write. Invites are first-class (generated token, hashed-at-rest, expiry + max-uses + revocation). - -**Unified `listRecords`.** The per-collection `listRecords` endpoint accepts three call shapes: - -| Call | Returns | -| --- | --- | -| No auth, no `spaceUri` | Public records only | -| `?spaceUri=…` + service-auth JWT | Records from that one space (ACL-gated) | -| Service-auth JWT, no `spaceUri` | Public records **unioned** with records from every space the caller is a member of | - -The union path runs the public and per-space queries in parallel and merges with a shared keyset cursor, so filters, sorts (`time`, record-field, count), hydration, and references all work across sources. Records from a space carry a `space: ` field in the response. - -Full design, migration story, and known limits: [PERMISSIONED_DATA.md](./PERMISSIONED_DATA.md). - -## Typesafe Client Usage - -You can get fully typed XRPC queries for any Contrail instance using [`@atcute/lex-cli`](https://github.com/mary-ext/atcute). The lexicon files are committed to the repo, so you can pull them directly via the git source. - -### Setup +Changesets drive versioning. `@atmo-dev/contrail` and `@atmo-dev/contrail-sync` are `linked` so their versions stay aligned (they share the realtime wire protocol). ```bash -npm install @atcute/client @atcute/lexicons @atcute/lex-cli -``` - -Create a `lex.config.js` pointing at the Contrail instance's repo: - -```js -import { defineLexiconConfig } from "@atcute/lex-cli"; - -export default defineLexiconConfig({ - outdir: "src/lexicon-types/", - imports: ["@atcute/atproto"], - files: ["lexicons/**/*.json"], - pull: { - outdir: "lexicons/", - sources: [ - { - type: "git", - remote: "https://github.com/USER/REPO.git", // the Contrail instance repo - pattern: ["lexicons-generated/**/*.json", "lexicons-pulled/**/*.json", "lexicons/**/*.json"], - }, - ], - }, -}); -``` - -Then pull and generate: - -```bash -npx lex-cli pull && npx lex-cli generate -``` - -### Usage - -Import the generated types (side-effect import registers them with `@atcute/client`), then query with full type safety: - -```ts -import "./lexicon-types/index.js"; // registers ambient types -import { Client } from "@atcute/client"; - -const rpc = new Client({ handler: simpleFetchHandler({ service: /* your contrail url */ }) }); - -const response = await rpc.get("com.example.rsvp.listRecords", { - params: { status: "going", limit: 10 }, // typed params -}); - -if (response.ok) { - console.log(response.data.records); // typed -} +pnpm changeset # add a changeset +pnpm changeset version # bump versions +pnpm release # build + publish ``` diff --git a/examples/cloudflare-workers/.gitignore b/apps/cloudflare-workers/.gitignore similarity index 100% rename from examples/cloudflare-workers/.gitignore rename to apps/cloudflare-workers/.gitignore diff --git a/examples/cloudflare-workers/README.md b/apps/cloudflare-workers/README.md similarity index 100% rename from examples/cloudflare-workers/README.md rename to apps/cloudflare-workers/README.md diff --git a/examples/cloudflare-workers/config.ts b/apps/cloudflare-workers/config.ts similarity index 100% rename from examples/cloudflare-workers/config.ts rename to apps/cloudflare-workers/config.ts diff --git a/examples/cloudflare-workers/generate.ts b/apps/cloudflare-workers/generate.ts similarity index 82% rename from examples/cloudflare-workers/generate.ts rename to apps/cloudflare-workers/generate.ts index 5e7a91b..61361dd 100644 --- a/examples/cloudflare-workers/generate.ts +++ b/apps/cloudflare-workers/generate.ts @@ -1,7 +1,7 @@ import { join, dirname } from "path"; import { fileURLToPath } from "url"; import { config } from "./config"; -import { generateLexicons } from "@atmo-dev/contrail/generate"; +import { generateLexicons } from "@atmo-dev/contrail-lexicons"; const ROOT_DIR = dirname(fileURLToPath(import.meta.url)); diff --git a/examples/cloudflare-workers/package.json b/apps/cloudflare-workers/package.json similarity index 88% rename from examples/cloudflare-workers/package.json rename to apps/cloudflare-workers/package.json index 91167c7..cffa716 100644 --- a/examples/cloudflare-workers/package.json +++ b/apps/cloudflare-workers/package.json @@ -12,11 +12,12 @@ "sync:remote": "tsx sync.ts --remote" }, "dependencies": { - "@atmo-dev/contrail": "^0.0.3" + "@atmo-dev/contrail": "workspace:*" }, "devDependencies": { "@atcute/lex-cli": "^2.5.3", "@atcute/lexicon-doc": "^2.1.2", + "@atmo-dev/contrail-lexicons": "workspace:*", "@cloudflare/workers-types": "^4.20250124.0", "tsx": "^4.21.0", "typescript": "^5.7.3", diff --git a/examples/cloudflare-workers/sync.ts b/apps/cloudflare-workers/sync.ts similarity index 100% rename from examples/cloudflare-workers/sync.ts rename to apps/cloudflare-workers/sync.ts diff --git a/examples/cloudflare-workers/tsconfig.json b/apps/cloudflare-workers/tsconfig.json similarity index 100% rename from examples/cloudflare-workers/tsconfig.json rename to apps/cloudflare-workers/tsconfig.json diff --git a/examples/cloudflare-workers/worker.ts b/apps/cloudflare-workers/worker.ts similarity index 100% rename from examples/cloudflare-workers/worker.ts rename to apps/cloudflare-workers/worker.ts diff --git a/examples/cloudflare-workers/wrangler.jsonc b/apps/cloudflare-workers/wrangler.jsonc similarity index 100% rename from examples/cloudflare-workers/wrangler.jsonc rename to apps/cloudflare-workers/wrangler.jsonc diff --git a/examples/sveltekit-group-chat/.claude/settings.local.json b/apps/group-chat/.claude/settings.local.json similarity index 100% rename from examples/sveltekit-group-chat/.claude/settings.local.json rename to apps/group-chat/.claude/settings.local.json diff --git a/examples/sveltekit-group-chat/.env.example b/apps/group-chat/.env.example similarity index 100% rename from examples/sveltekit-group-chat/.env.example rename to apps/group-chat/.env.example diff --git a/examples/sveltekit-cloudflare-workers/.gitignore b/apps/group-chat/.gitignore similarity index 100% rename from examples/sveltekit-cloudflare-workers/.gitignore rename to apps/group-chat/.gitignore diff --git a/examples/sveltekit-cloudflare-workers/.npmrc b/apps/group-chat/.npmrc similarity index 100% rename from examples/sveltekit-cloudflare-workers/.npmrc rename to apps/group-chat/.npmrc diff --git a/examples/sveltekit-cloudflare-workers/.prettierignore b/apps/group-chat/.prettierignore similarity index 100% rename from examples/sveltekit-cloudflare-workers/.prettierignore rename to apps/group-chat/.prettierignore diff --git a/examples/sveltekit-cloudflare-workers/.prettierrc b/apps/group-chat/.prettierrc similarity index 100% rename from examples/sveltekit-cloudflare-workers/.prettierrc rename to apps/group-chat/.prettierrc diff --git a/examples/sveltekit-cloudflare-workers/LICENSE b/apps/group-chat/LICENSE similarity index 100% rename from examples/sveltekit-cloudflare-workers/LICENSE rename to apps/group-chat/LICENSE diff --git a/examples/sveltekit-group-chat/README.md b/apps/group-chat/README.md similarity index 100% rename from examples/sveltekit-group-chat/README.md rename to apps/group-chat/README.md diff --git a/examples/sveltekit-cloudflare-workers/eslint.config.js b/apps/group-chat/eslint.config.js similarity index 100% rename from examples/sveltekit-cloudflare-workers/eslint.config.js rename to apps/group-chat/eslint.config.js diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/channel/getRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/channel/getRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/channel/getRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/channel/getRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/channel/listRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/channel/listRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/channel/listRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/channel/listRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/channel/watchRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/channel/watchRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/channel/watchRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/channel/watchRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/adopt.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/adopt.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/adopt.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/adopt.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/defs.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/defs.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/defs.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/defs.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/delete.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/delete.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/delete.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/delete.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/deleteRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/deleteRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/deleteRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/deleteRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/getHealth.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/getHealth.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/getHealth.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/getHealth.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/list.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/list.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/list.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/list.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/mint.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/mint.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/mint.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/mint.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/putRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/putRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/putRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/putRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/reauth.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/reauth.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/reauth.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/reauth.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/create.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/create.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/create.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/create.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/delete.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/delete.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/delete.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/delete.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/deleteRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/deleteRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/deleteRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/deleteRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/grant.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/grant.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/grant.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/grant.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/listMembers.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/listMembers.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/listMembers.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/listMembers.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/putRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/putRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/putRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/putRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/resync.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/resync.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/resync.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/resync.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/revoke.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/revoke.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/revoke.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/revoke.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/setAccessLevel.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/setAccessLevel.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/community/space/setAccessLevel.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/community/space/setAccessLevel.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/getCursor.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/getCursor.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/getCursor.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/getCursor.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/getOverview.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/getOverview.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/getOverview.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/getOverview.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/getProfile.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/getProfile.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/getProfile.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/getProfile.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/create.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/invite/create.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/create.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/invite/create.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/defs.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/invite/defs.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/defs.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/invite/defs.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/list.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/invite/list.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/list.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/invite/list.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/redeem.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/invite/redeem.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/redeem.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/invite/redeem.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/revoke.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/invite/revoke.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/invite/revoke.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/invite/revoke.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/message/getRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/message/getRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/message/getRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/message/getRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/message/listRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/message/listRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/message/listRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/message/listRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/message/watchRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/message/watchRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/message/watchRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/message/watchRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/notifyOfUpdate.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/notifyOfUpdate.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/notifyOfUpdate.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/notifyOfUpdate.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/permissionSet.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/permissionSet.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/permissionSet.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/permissionSet.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/realtime/subscribe.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/realtime/subscribe.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/realtime/subscribe.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/realtime/subscribe.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/realtime/ticket.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/realtime/ticket.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/realtime/ticket.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/realtime/ticket.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/server/getRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/server/getRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/server/getRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/server/getRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/server/listRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/server/listRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/server/listRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/server/listRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/server/watchRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/server/watchRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/server/watchRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/server/watchRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/addMember.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/addMember.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/addMember.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/addMember.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/createSpace.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/createSpace.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/createSpace.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/createSpace.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/defs.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/defs.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/defs.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/defs.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/deleteRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/deleteRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/deleteRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/deleteRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/getBlob.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/getBlob.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/getBlob.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/getBlob.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/getRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/getRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/getRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/getRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/getSpace.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/getSpace.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/getSpace.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/getSpace.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/leaveSpace.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/leaveSpace.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/leaveSpace.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/leaveSpace.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listBlobs.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/listBlobs.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listBlobs.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/listBlobs.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listMembers.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/listMembers.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listMembers.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/listMembers.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listRecords.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/listRecords.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listRecords.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/listRecords.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listSpaces.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/listSpaces.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/listSpaces.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/listSpaces.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/putRecord.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/putRecord.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/putRecord.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/putRecord.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/removeMember.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/removeMember.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/removeMember.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/removeMember.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/uploadBlob.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/space/uploadBlob.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/space/uploadBlob.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/space/uploadBlob.json diff --git a/examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/spaceExt/whoami.json b/apps/group-chat/lexicons-generated/tools/atmo/chat/spaceExt/whoami.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-generated/tools/atmo/chat/spaceExt/whoami.json rename to apps/group-chat/lexicons-generated/tools/atmo/chat/spaceExt/whoami.json diff --git a/examples/sveltekit-group-chat/lexicons-pulled/README.md b/apps/group-chat/lexicons-pulled/README.md similarity index 100% rename from examples/sveltekit-group-chat/lexicons-pulled/README.md rename to apps/group-chat/lexicons-pulled/README.md diff --git a/examples/sveltekit-cloudflare-workers/lexicons-pulled/app/bsky/actor/profile.json b/apps/group-chat/lexicons-pulled/app/bsky/actor/profile.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-pulled/app/bsky/actor/profile.json rename to apps/group-chat/lexicons-pulled/app/bsky/actor/profile.json diff --git a/examples/sveltekit-group-chat/lexicons/tools/atmo/chat/channel.json b/apps/group-chat/lexicons/tools/atmo/chat/channel.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons/tools/atmo/chat/channel.json rename to apps/group-chat/lexicons/tools/atmo/chat/channel.json diff --git a/examples/sveltekit-group-chat/lexicons/tools/atmo/chat/message.json b/apps/group-chat/lexicons/tools/atmo/chat/message.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons/tools/atmo/chat/message.json rename to apps/group-chat/lexicons/tools/atmo/chat/message.json diff --git a/examples/sveltekit-group-chat/lexicons/tools/atmo/chat/server.json b/apps/group-chat/lexicons/tools/atmo/chat/server.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons/tools/atmo/chat/server.json rename to apps/group-chat/lexicons/tools/atmo/chat/server.json diff --git a/examples/sveltekit-group-chat/package.json b/apps/group-chat/package.json similarity index 96% rename from examples/sveltekit-group-chat/package.json rename to apps/group-chat/package.json index abe6f0c..71d4219 100644 --- a/examples/sveltekit-group-chat/package.json +++ b/apps/group-chat/package.json @@ -60,6 +60,8 @@ "dependencies": { "@atcute/jetstream": "^1.1.2", "@atmo-dev/contrail": "workspace:*", + "@atmo-dev/contrail-sync": "workspace:*", + "@atmo-dev/contrail-lexicons": "workspace:*", "@foxui/core": "^0.9.1", "@foxui/social": "^0.8.10", "@foxui/time": "^0.8.5", diff --git a/examples/sveltekit-cloudflare-workers/pnpm-lock.yaml b/apps/group-chat/pnpm-lock.yaml similarity index 100% rename from examples/sveltekit-cloudflare-workers/pnpm-lock.yaml rename to apps/group-chat/pnpm-lock.yaml diff --git a/examples/sveltekit-group-chat/scripts/append-scheduled.ts b/apps/group-chat/scripts/append-scheduled.ts similarity index 100% rename from examples/sveltekit-group-chat/scripts/append-scheduled.ts rename to apps/group-chat/scripts/append-scheduled.ts diff --git a/examples/sveltekit-group-chat/scripts/generate.ts b/apps/group-chat/scripts/generate.ts similarity index 98% rename from examples/sveltekit-group-chat/scripts/generate.ts rename to apps/group-chat/scripts/generate.ts index 7818daf..205c0f9 100644 --- a/examples/sveltekit-group-chat/scripts/generate.ts +++ b/apps/group-chat/scripts/generate.ts @@ -2,7 +2,7 @@ import { join, dirname } from 'path'; import { fileURLToPath } from 'url'; import { writeFileSync } from 'fs'; import { baseConfig } from '../src/lib/contrail/config'; -import { generateLexicons, extractXrpcMethods } from '@atmo-dev/contrail/generate'; +import { generateLexicons, extractXrpcMethods } from '@atmo-dev/contrail-lexicons'; const ROOT_DIR = join(dirname(fileURLToPath(import.meta.url)), '..'); diff --git a/examples/sveltekit-cloudflare-workers/scripts/sync.ts b/apps/group-chat/scripts/sync.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/scripts/sync.ts rename to apps/group-chat/scripts/sync.ts diff --git a/examples/sveltekit-cloudflare-workers/src/app.css b/apps/group-chat/src/app.css similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/app.css rename to apps/group-chat/src/app.css diff --git a/examples/sveltekit-group-chat/src/app.d.ts b/apps/group-chat/src/app.d.ts similarity index 100% rename from examples/sveltekit-group-chat/src/app.d.ts rename to apps/group-chat/src/app.d.ts diff --git a/examples/sveltekit-cloudflare-workers/src/app.html b/apps/group-chat/src/app.html similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/app.html rename to apps/group-chat/src/app.html diff --git a/examples/sveltekit-group-chat/src/hooks.server.ts b/apps/group-chat/src/hooks.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/hooks.server.ts rename to apps/group-chat/src/hooks.server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/auth.svelte.ts b/apps/group-chat/src/lib/atproto/auth.svelte.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/auth.svelte.ts rename to apps/group-chat/src/lib/atproto/auth.svelte.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/generated-methods.ts b/apps/group-chat/src/lib/atproto/generated-methods.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/generated-methods.ts rename to apps/group-chat/src/lib/atproto/generated-methods.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/image-helper.ts b/apps/group-chat/src/lib/atproto/image-helper.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/image-helper.ts rename to apps/group-chat/src/lib/atproto/image-helper.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/index.ts b/apps/group-chat/src/lib/atproto/index.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/index.ts rename to apps/group-chat/src/lib/atproto/index.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/methods.ts b/apps/group-chat/src/lib/atproto/methods.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/methods.ts rename to apps/group-chat/src/lib/atproto/methods.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/port.ts b/apps/group-chat/src/lib/atproto/port.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/port.ts rename to apps/group-chat/src/lib/atproto/port.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-key.ts b/apps/group-chat/src/lib/atproto/scripts/generate-key.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-key.ts rename to apps/group-chat/src/lib/atproto/scripts/generate-key.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-secret.ts b/apps/group-chat/src/lib/atproto/scripts/generate-secret.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-secret.ts rename to apps/group-chat/src/lib/atproto/scripts/generate-secret.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/setup-dev.ts b/apps/group-chat/src/lib/atproto/scripts/setup-dev.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/setup-dev.ts rename to apps/group-chat/src/lib/atproto/scripts/setup-dev.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/tunnel.ts b/apps/group-chat/src/lib/atproto/scripts/tunnel.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/scripts/tunnel.ts rename to apps/group-chat/src/lib/atproto/scripts/tunnel.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/kv-store.ts b/apps/group-chat/src/lib/atproto/server/kv-store.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/kv-store.ts rename to apps/group-chat/src/lib/atproto/server/kv-store.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.remote.ts b/apps/group-chat/src/lib/atproto/server/oauth.remote.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.remote.ts rename to apps/group-chat/src/lib/atproto/server/oauth.remote.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.ts b/apps/group-chat/src/lib/atproto/server/oauth.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.ts rename to apps/group-chat/src/lib/atproto/server/oauth.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/profile.ts b/apps/group-chat/src/lib/atproto/server/profile.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/profile.ts rename to apps/group-chat/src/lib/atproto/server/profile.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/repo.remote.ts b/apps/group-chat/src/lib/atproto/server/repo.remote.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/repo.remote.ts rename to apps/group-chat/src/lib/atproto/server/repo.remote.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/session.ts b/apps/group-chat/src/lib/atproto/server/session.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/session.ts rename to apps/group-chat/src/lib/atproto/server/session.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/signed-cookie.ts b/apps/group-chat/src/lib/atproto/server/signed-cookie.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/signed-cookie.ts rename to apps/group-chat/src/lib/atproto/server/signed-cookie.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/settings.ts b/apps/group-chat/src/lib/atproto/settings.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/settings.ts rename to apps/group-chat/src/lib/atproto/settings.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/ui/LoginModal.svelte b/apps/group-chat/src/lib/atproto/ui/LoginModal.svelte similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/ui/LoginModal.svelte rename to apps/group-chat/src/lib/atproto/ui/LoginModal.svelte diff --git a/examples/sveltekit-cloudflare-workers/src/lib/contrail/client.ts b/apps/group-chat/src/lib/contrail/client.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/contrail/client.ts rename to apps/group-chat/src/lib/contrail/client.ts diff --git a/examples/sveltekit-group-chat/src/lib/contrail/config.ts b/apps/group-chat/src/lib/contrail/config.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/contrail/config.ts rename to apps/group-chat/src/lib/contrail/config.ts diff --git a/examples/sveltekit-group-chat/src/lib/contrail/index.ts b/apps/group-chat/src/lib/contrail/index.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/contrail/index.ts rename to apps/group-chat/src/lib/contrail/index.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/emojis/icons.json b/apps/group-chat/src/lib/emojis/icons.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/emojis/icons.json rename to apps/group-chat/src/lib/emojis/icons.json diff --git a/examples/sveltekit-cloudflare-workers/src/lib/emojis/index.ts b/apps/group-chat/src/lib/emojis/index.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/emojis/index.ts rename to apps/group-chat/src/lib/emojis/index.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/index.ts b/apps/group-chat/src/lib/index.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/index.ts rename to apps/group-chat/src/lib/index.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/channels-context.ts b/apps/group-chat/src/lib/rooms/channels-context.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/channels-context.ts rename to apps/group-chat/src/lib/rooms/channels-context.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/connection.svelte.ts b/apps/group-chat/src/lib/rooms/connection.svelte.ts similarity index 94% rename from examples/sveltekit-group-chat/src/lib/rooms/connection.svelte.ts rename to apps/group-chat/src/lib/rooms/connection.svelte.ts index 831e4e8..95c56d9 100644 --- a/examples/sveltekit-group-chat/src/lib/rooms/connection.svelte.ts +++ b/apps/group-chat/src/lib/rooms/connection.svelte.ts @@ -2,7 +2,7 @@ * the current view. The channel page updates this as its WatchQuery status * changes; the server navbar renders a tiny colored dot for it. */ -import type { WatchStoreStatus } from '@atmo-dev/contrail/sync'; +import type { WatchStoreStatus } from '@atmo-dev/contrail-sync'; export const connection = $state<{ status: WatchStoreStatus }>({ status: 'idle' }); diff --git a/examples/sveltekit-group-chat/src/lib/rooms/invites.remote.ts b/apps/group-chat/src/lib/rooms/invites.remote.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/invites.remote.ts rename to apps/group-chat/src/lib/rooms/invites.remote.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/profiles.svelte.ts b/apps/group-chat/src/lib/rooms/profiles.svelte.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/profiles.svelte.ts rename to apps/group-chat/src/lib/rooms/profiles.svelte.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/realtime.svelte.ts b/apps/group-chat/src/lib/rooms/realtime.svelte.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/realtime.svelte.ts rename to apps/group-chat/src/lib/rooms/realtime.svelte.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/rooms.remote.ts b/apps/group-chat/src/lib/rooms/rooms.remote.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/rooms.remote.ts rename to apps/group-chat/src/lib/rooms/rooms.remote.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/server.ts b/apps/group-chat/src/lib/rooms/server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/server.ts rename to apps/group-chat/src/lib/rooms/server.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/unread.svelte.ts b/apps/group-chat/src/lib/rooms/unread.svelte.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/unread.svelte.ts rename to apps/group-chat/src/lib/rooms/unread.svelte.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/uri.ts b/apps/group-chat/src/lib/rooms/uri.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/rooms/uri.ts rename to apps/group-chat/src/lib/rooms/uri.ts diff --git a/examples/sveltekit-group-chat/src/lib/rooms/watch.svelte.ts b/apps/group-chat/src/lib/rooms/watch.svelte.ts similarity index 98% rename from examples/sveltekit-group-chat/src/lib/rooms/watch.svelte.ts rename to apps/group-chat/src/lib/rooms/watch.svelte.ts index 85c2ddb..9271c28 100644 --- a/examples/sveltekit-group-chat/src/lib/rooms/watch.svelte.ts +++ b/apps/group-chat/src/lib/rooms/watch.svelte.ts @@ -1,4 +1,4 @@ -/** Svelte 5 binding over `@atmo-dev/contrail/sync`. +/** Svelte 5 binding over `@atmo-dev/contrail-sync`. * * Usage: * const messagesQuery = $derived( @@ -28,8 +28,8 @@ import { type WatchRecord, type WatchStore, type WatchStoreStatus -} from '@atmo-dev/contrail/sync'; -import { createIndexedDBCache } from '@atmo-dev/contrail/sync/cache-idb'; +} from '@atmo-dev/contrail-sync'; +import { createIndexedDBCache } from '@atmo-dev/contrail-sync/cache-idb'; import type { InferInput } from '@atcute/lexicons'; import type { BaseSchema } from '@atcute/lexicons/validations'; import type { Records, XRPCQueries } from '@atcute/lexicons/ambient'; diff --git a/examples/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth-client-metadata.json/+server.ts b/apps/group-chat/src/routes/(oauth)/oauth-client-metadata.json/+server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth-client-metadata.json/+server.ts rename to apps/group-chat/src/routes/(oauth)/oauth-client-metadata.json/+server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/callback/+server.ts b/apps/group-chat/src/routes/(oauth)/oauth/callback/+server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/callback/+server.ts rename to apps/group-chat/src/routes/(oauth)/oauth/callback/+server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/jwks.json/+server.ts b/apps/group-chat/src/routes/(oauth)/oauth/jwks.json/+server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/jwks.json/+server.ts rename to apps/group-chat/src/routes/(oauth)/oauth/jwks.json/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/+layout.server.ts b/apps/group-chat/src/routes/+layout.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/+layout.server.ts rename to apps/group-chat/src/routes/+layout.server.ts diff --git a/examples/sveltekit-group-chat/src/routes/+layout.svelte b/apps/group-chat/src/routes/+layout.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/+layout.svelte rename to apps/group-chat/src/routes/+layout.svelte diff --git a/examples/sveltekit-cloudflare-workers/src/routes/+layout.ts b/apps/group-chat/src/routes/+layout.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/+layout.ts rename to apps/group-chat/src/routes/+layout.ts diff --git a/examples/sveltekit-group-chat/src/routes/+page.server.ts b/apps/group-chat/src/routes/+page.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/+page.server.ts rename to apps/group-chat/src/routes/+page.server.ts diff --git a/examples/sveltekit-group-chat/src/routes/+page.svelte b/apps/group-chat/src/routes/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/+page.svelte rename to apps/group-chat/src/routes/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/api/blob-upload/+server.ts b/apps/group-chat/src/routes/api/blob-upload/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/api/blob-upload/+server.ts rename to apps/group-chat/src/routes/api/blob-upload/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/api/blob/+server.ts b/apps/group-chat/src/routes/api/blob/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/api/blob/+server.ts rename to apps/group-chat/src/routes/api/blob/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/api/cron/+server.ts b/apps/group-chat/src/routes/api/cron/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/api/cron/+server.ts rename to apps/group-chat/src/routes/api/cron/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/api/ticket/+server.ts b/apps/group-chat/src/routes/api/ticket/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/api/ticket/+server.ts rename to apps/group-chat/src/routes/api/ticket/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/+layout.server.ts b/apps/group-chat/src/routes/c/[communityDid]/+layout.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/+layout.server.ts rename to apps/group-chat/src/routes/c/[communityDid]/+layout.server.ts diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/+layout.svelte b/apps/group-chat/src/routes/c/[communityDid]/+layout.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/+layout.svelte rename to apps/group-chat/src/routes/c/[communityDid]/+layout.svelte diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/+page.svelte b/apps/group-chat/src/routes/c/[communityDid]/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/+page.svelte rename to apps/group-chat/src/routes/c/[communityDid]/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/[channelKey]/+page.server.ts b/apps/group-chat/src/routes/c/[communityDid]/[channelKey]/+page.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/[channelKey]/+page.server.ts rename to apps/group-chat/src/routes/c/[communityDid]/[channelKey]/+page.server.ts diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/[channelKey]/+page.svelte b/apps/group-chat/src/routes/c/[communityDid]/[channelKey]/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/[channelKey]/+page.svelte rename to apps/group-chat/src/routes/c/[communityDid]/[channelKey]/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/invites/+page.server.ts b/apps/group-chat/src/routes/c/[communityDid]/settings/invites/+page.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/invites/+page.server.ts rename to apps/group-chat/src/routes/c/[communityDid]/settings/invites/+page.server.ts diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/invites/+page.svelte b/apps/group-chat/src/routes/c/[communityDid]/settings/invites/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/invites/+page.svelte rename to apps/group-chat/src/routes/c/[communityDid]/settings/invites/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/members/+page.server.ts b/apps/group-chat/src/routes/c/[communityDid]/settings/members/+page.server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/members/+page.server.ts rename to apps/group-chat/src/routes/c/[communityDid]/settings/members/+page.server.ts diff --git a/examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/members/+page.svelte b/apps/group-chat/src/routes/c/[communityDid]/settings/members/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/c/[communityDid]/settings/members/+page.svelte rename to apps/group-chat/src/routes/c/[communityDid]/settings/members/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/join/[token]/+page.svelte b/apps/group-chat/src/routes/join/[token]/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/join/[token]/+page.svelte rename to apps/group-chat/src/routes/join/[token]/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/new/+page.svelte b/apps/group-chat/src/routes/new/+page.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/routes/new/+page.svelte rename to apps/group-chat/src/routes/new/+page.svelte diff --git a/examples/sveltekit-group-chat/src/routes/xrpc/[...path]/+server.ts b/apps/group-chat/src/routes/xrpc/[...path]/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/xrpc/[...path]/+server.ts rename to apps/group-chat/src/routes/xrpc/[...path]/+server.ts diff --git a/examples/sveltekit-cloudflare-workers/static/favicon.png b/apps/group-chat/static/favicon.png similarity index 100% rename from examples/sveltekit-cloudflare-workers/static/favicon.png rename to apps/group-chat/static/favicon.png diff --git a/examples/sveltekit-cloudflare-workers/svelte.config.js b/apps/group-chat/svelte.config.js similarity index 100% rename from examples/sveltekit-cloudflare-workers/svelte.config.js rename to apps/group-chat/svelte.config.js diff --git a/examples/sveltekit-cloudflare-workers/tsconfig.json b/apps/group-chat/tsconfig.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/tsconfig.json rename to apps/group-chat/tsconfig.json diff --git a/examples/sveltekit-cloudflare-workers/vite.config.ts b/apps/group-chat/vite.config.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/vite.config.ts rename to apps/group-chat/vite.config.ts diff --git a/examples/sveltekit-group-chat/wrangler.jsonc b/apps/group-chat/wrangler.jsonc similarity index 100% rename from examples/sveltekit-group-chat/wrangler.jsonc rename to apps/group-chat/wrangler.jsonc diff --git a/examples/postgres/README.md b/apps/postgres/README.md similarity index 100% rename from examples/postgres/README.md rename to apps/postgres/README.md diff --git a/examples/postgres/config.ts b/apps/postgres/config.ts similarity index 100% rename from examples/postgres/config.ts rename to apps/postgres/config.ts diff --git a/examples/postgres/docker-compose.yml b/apps/postgres/docker-compose.yml similarity index 100% rename from examples/postgres/docker-compose.yml rename to apps/postgres/docker-compose.yml diff --git a/examples/postgres/ingest.ts b/apps/postgres/ingest.ts similarity index 100% rename from examples/postgres/ingest.ts rename to apps/postgres/ingest.ts diff --git a/examples/postgres/package.json b/apps/postgres/package.json similarity index 89% rename from examples/postgres/package.json rename to apps/postgres/package.json index 2ff5ca8..6b6b853 100644 --- a/examples/postgres/package.json +++ b/apps/postgres/package.json @@ -9,7 +9,7 @@ "serve": "tsx serve.ts" }, "dependencies": { - "@atmo-dev/contrail": "^0.0.5", + "@atmo-dev/contrail": "workspace:*", "pg": "^8.20.0" }, "devDependencies": { diff --git a/examples/postgres/serve.ts b/apps/postgres/serve.ts similarity index 100% rename from examples/postgres/serve.ts rename to apps/postgres/serve.ts diff --git a/examples/postgres/sync.ts b/apps/postgres/sync.ts similarity index 100% rename from examples/postgres/sync.ts rename to apps/postgres/sync.ts diff --git a/examples/postgres/tsconfig.json b/apps/postgres/tsconfig.json similarity index 100% rename from examples/postgres/tsconfig.json rename to apps/postgres/tsconfig.json diff --git a/Dockerfile b/apps/rsvp-atmo/Dockerfile similarity index 100% rename from Dockerfile rename to apps/rsvp-atmo/Dockerfile diff --git a/lexicons-generated/rsvp/atmo/community/adopt.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/adopt.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/adopt.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/adopt.json diff --git a/lexicons-generated/rsvp/atmo/community/defs.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/defs.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/defs.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/defs.json diff --git a/lexicons-generated/rsvp/atmo/community/delete.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/delete.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/delete.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/delete.json diff --git a/lexicons-generated/rsvp/atmo/community/deleteRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/deleteRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/deleteRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/deleteRecord.json diff --git a/lexicons-generated/rsvp/atmo/community/getHealth.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/getHealth.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/getHealth.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/getHealth.json diff --git a/lexicons-generated/rsvp/atmo/community/invite/create.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/create.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/invite/create.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/create.json diff --git a/lexicons-generated/rsvp/atmo/community/invite/list.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/list.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/invite/list.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/list.json diff --git a/lexicons-generated/rsvp/atmo/community/invite/redeem.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/redeem.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/invite/redeem.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/redeem.json diff --git a/lexicons-generated/rsvp/atmo/community/invite/revoke.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/revoke.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/invite/revoke.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/invite/revoke.json diff --git a/lexicons-generated/rsvp/atmo/community/list.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/list.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/list.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/list.json diff --git a/lexicons-generated/rsvp/atmo/community/mint.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/mint.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/mint.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/mint.json diff --git a/lexicons-generated/rsvp/atmo/community/putRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/putRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/putRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/putRecord.json diff --git a/lexicons-generated/rsvp/atmo/community/reauth.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/reauth.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/reauth.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/reauth.json diff --git a/lexicons-generated/rsvp/atmo/community/space/create.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/create.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/create.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/create.json diff --git a/lexicons-generated/rsvp/atmo/community/space/delete.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/delete.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/delete.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/delete.json diff --git a/lexicons-generated/rsvp/atmo/community/space/deleteRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/deleteRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/deleteRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/deleteRecord.json diff --git a/lexicons-generated/rsvp/atmo/community/space/grant.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/grant.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/grant.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/grant.json diff --git a/lexicons-generated/rsvp/atmo/community/space/listMembers.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/listMembers.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/listMembers.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/listMembers.json diff --git a/lexicons-generated/rsvp/atmo/community/space/putRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/putRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/putRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/putRecord.json diff --git a/lexicons-generated/rsvp/atmo/community/space/resync.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/resync.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/resync.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/resync.json diff --git a/lexicons-generated/rsvp/atmo/community/space/revoke.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/revoke.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/revoke.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/revoke.json diff --git a/lexicons-generated/rsvp/atmo/community/space/setAccessLevel.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/setAccessLevel.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/setAccessLevel.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/setAccessLevel.json diff --git a/lexicons-generated/rsvp/atmo/community/space/whoami.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/whoami.json similarity index 100% rename from lexicons-generated/rsvp/atmo/community/space/whoami.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/community/space/whoami.json diff --git a/lexicons-generated/rsvp/atmo/event/getRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/event/getRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/event/getRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/event/getRecord.json diff --git a/lexicons-generated/rsvp/atmo/event/listRecords.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/event/listRecords.json similarity index 100% rename from lexicons-generated/rsvp/atmo/event/listRecords.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/event/listRecords.json diff --git a/lexicons-generated/rsvp/atmo/getCursor.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/getCursor.json similarity index 100% rename from lexicons-generated/rsvp/atmo/getCursor.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/getCursor.json diff --git a/lexicons-generated/rsvp/atmo/getOverview.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/getOverview.json similarity index 100% rename from lexicons-generated/rsvp/atmo/getOverview.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/getOverview.json diff --git a/lexicons-generated/rsvp/atmo/getProfile.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/getProfile.json similarity index 100% rename from lexicons-generated/rsvp/atmo/getProfile.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/getProfile.json diff --git a/lexicons-generated/rsvp/atmo/notifyOfUpdate.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/notifyOfUpdate.json similarity index 100% rename from lexicons-generated/rsvp/atmo/notifyOfUpdate.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/notifyOfUpdate.json diff --git a/lexicons-generated/rsvp/atmo/permissionSet.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/permissionSet.json similarity index 100% rename from lexicons-generated/rsvp/atmo/permissionSet.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/permissionSet.json diff --git a/lexicons-generated/rsvp/atmo/rsvp/getRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/rsvp/getRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/rsvp/getRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/rsvp/getRecord.json diff --git a/lexicons-generated/rsvp/atmo/rsvp/listRecords.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/rsvp/listRecords.json similarity index 100% rename from lexicons-generated/rsvp/atmo/rsvp/listRecords.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/rsvp/listRecords.json diff --git a/lexicons-generated/rsvp/atmo/space/addMember.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/addMember.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/addMember.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/addMember.json diff --git a/lexicons-generated/rsvp/atmo/space/createSpace.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/createSpace.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/createSpace.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/createSpace.json diff --git a/lexicons-generated/rsvp/atmo/space/defs.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/defs.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/defs.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/defs.json diff --git a/lexicons-generated/rsvp/atmo/space/deleteRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/deleteRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/deleteRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/deleteRecord.json diff --git a/lexicons-generated/rsvp/atmo/space/getBlob.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/getBlob.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/getBlob.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/getBlob.json diff --git a/lexicons-generated/rsvp/atmo/space/getRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/getRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/getRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/getRecord.json diff --git a/lexicons-generated/rsvp/atmo/space/getSpace.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/getSpace.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/getSpace.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/getSpace.json diff --git a/lexicons-generated/rsvp/atmo/space/leaveSpace.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/leaveSpace.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/leaveSpace.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/leaveSpace.json diff --git a/lexicons-generated/rsvp/atmo/space/listBlobs.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listBlobs.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/listBlobs.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listBlobs.json diff --git a/lexicons-generated/rsvp/atmo/space/listMembers.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listMembers.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/listMembers.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listMembers.json diff --git a/lexicons-generated/rsvp/atmo/space/listRecords.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listRecords.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/listRecords.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listRecords.json diff --git a/lexicons-generated/rsvp/atmo/space/listSpaces.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listSpaces.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/listSpaces.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/listSpaces.json diff --git a/lexicons-generated/rsvp/atmo/space/putRecord.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/putRecord.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/putRecord.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/putRecord.json diff --git a/lexicons-generated/rsvp/atmo/space/removeMember.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/removeMember.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/removeMember.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/removeMember.json diff --git a/lexicons-generated/rsvp/atmo/space/uploadBlob.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/uploadBlob.json similarity index 100% rename from lexicons-generated/rsvp/atmo/space/uploadBlob.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/space/uploadBlob.json diff --git a/lexicons-generated/rsvp/atmo/spaceExt/invite/create.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/create.json similarity index 100% rename from lexicons-generated/rsvp/atmo/spaceExt/invite/create.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/create.json diff --git a/lexicons-generated/rsvp/atmo/spaceExt/invite/list.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/list.json similarity index 100% rename from lexicons-generated/rsvp/atmo/spaceExt/invite/list.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/list.json diff --git a/lexicons-generated/rsvp/atmo/spaceExt/invite/redeem.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/redeem.json similarity index 100% rename from lexicons-generated/rsvp/atmo/spaceExt/invite/redeem.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/redeem.json diff --git a/lexicons-generated/rsvp/atmo/spaceExt/invite/revoke.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/revoke.json similarity index 100% rename from lexicons-generated/rsvp/atmo/spaceExt/invite/revoke.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/invite/revoke.json diff --git a/lexicons-generated/rsvp/atmo/spaceExt/whoami.json b/apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/whoami.json similarity index 100% rename from lexicons-generated/rsvp/atmo/spaceExt/whoami.json rename to apps/rsvp-atmo/lexicons-generated/rsvp/atmo/spaceExt/whoami.json diff --git a/lexicons-pulled/README.md b/apps/rsvp-atmo/lexicons-pulled/README.md similarity index 100% rename from lexicons-pulled/README.md rename to apps/rsvp-atmo/lexicons-pulled/README.md diff --git a/examples/sveltekit-group-chat/lexicons-pulled/app/bsky/actor/profile.json b/apps/rsvp-atmo/lexicons-pulled/app/bsky/actor/profile.json similarity index 100% rename from examples/sveltekit-group-chat/lexicons-pulled/app/bsky/actor/profile.json rename to apps/rsvp-atmo/lexicons-pulled/app/bsky/actor/profile.json diff --git a/lexicons-pulled/community/lexicon/calendar/event.json b/apps/rsvp-atmo/lexicons-pulled/community/lexicon/calendar/event.json similarity index 100% rename from lexicons-pulled/community/lexicon/calendar/event.json rename to apps/rsvp-atmo/lexicons-pulled/community/lexicon/calendar/event.json diff --git a/lexicons-pulled/community/lexicon/calendar/rsvp.json b/apps/rsvp-atmo/lexicons-pulled/community/lexicon/calendar/rsvp.json similarity index 100% rename from lexicons-pulled/community/lexicon/calendar/rsvp.json rename to apps/rsvp-atmo/lexicons-pulled/community/lexicon/calendar/rsvp.json diff --git a/lexicons-pulled/community/lexicon/location/address.json b/apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/address.json similarity index 100% rename from lexicons-pulled/community/lexicon/location/address.json rename to apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/address.json diff --git a/lexicons-pulled/community/lexicon/location/fsq.json b/apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/fsq.json similarity index 100% rename from lexicons-pulled/community/lexicon/location/fsq.json rename to apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/fsq.json diff --git a/lexicons-pulled/community/lexicon/location/geo.json b/apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/geo.json similarity index 100% rename from lexicons-pulled/community/lexicon/location/geo.json rename to apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/geo.json diff --git a/lexicons-pulled/community/lexicon/location/hthree.json b/apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/hthree.json similarity index 100% rename from lexicons-pulled/community/lexicon/location/hthree.json rename to apps/rsvp-atmo/lexicons-pulled/community/lexicon/location/hthree.json diff --git a/lexicons/README.md b/apps/rsvp-atmo/lexicons/README.md similarity index 100% rename from lexicons/README.md rename to apps/rsvp-atmo/lexicons/README.md diff --git a/apps/rsvp-atmo/package.json b/apps/rsvp-atmo/package.json new file mode 100644 index 0000000..8503756 --- /dev/null +++ b/apps/rsvp-atmo/package.json @@ -0,0 +1,35 @@ +{ + "name": "rsvp-atmo", + "private": true, + "version": "0.0.0", + "type": "module", + "description": "Reference Cloudflare Workers deployment of contrail — indexes community.lexicon.calendar.event/rsvp on D1 with the full spaces/community/realtime surface enabled.", + "scripts": { + "dev": "wrangler dev --test-scheduled", + "dev:auto": "tsx scripts/dev.ts", + "deploy": "wrangler deploy", + "clean": "tsx scripts/clean.ts", + "generate": "tsx src/generate.ts", + "generate:pull": "contrail-lex all --config src/config.ts", + "publish-lexicons": "tsx scripts/publish-lexicons.ts", + "typecheck": "tsc --noEmit", + "ingest": "curl -s http://localhost:8787/__scheduled?cron=*/1+*+*+*+*", + "sync": "tsx src/sync.ts" + }, + "dependencies": { + "@atmo-dev/contrail": "workspace:*" + }, + "devDependencies": { + "@atcute/atproto": "^3.1.10", + "@atcute/client": "^4.2.1", + "@atcute/lex-cli": "^2.5.3", + "@atcute/lexicon-doc": "^2.1.2", + "@atcute/lexicons": "^1.2.9", + "@atmo-dev/contrail-lexicons": "workspace:*", + "@cloudflare/workers-types": "^4.20250124.0", + "@types/node": "^25.5.0", + "tsx": "^4.21.0", + "typescript": "^5.7.3", + "wrangler": "^4.63.0" + } +} diff --git a/scripts/clean.ts b/apps/rsvp-atmo/scripts/clean.ts similarity index 100% rename from scripts/clean.ts rename to apps/rsvp-atmo/scripts/clean.ts diff --git a/scripts/dev.ts b/apps/rsvp-atmo/scripts/dev.ts similarity index 100% rename from scripts/dev.ts rename to apps/rsvp-atmo/scripts/dev.ts diff --git a/scripts/publish-lexicons.ts b/apps/rsvp-atmo/scripts/publish-lexicons.ts similarity index 94% rename from scripts/publish-lexicons.ts rename to apps/rsvp-atmo/scripts/publish-lexicons.ts index d497f2d..f5909f9 100644 --- a/scripts/publish-lexicons.ts +++ b/apps/rsvp-atmo/scripts/publish-lexicons.ts @@ -11,7 +11,7 @@ */ import { join } from "node:path"; -import { publishLexicons } from "../src/publish"; +import { publishLexicons } from "@atmo-dev/contrail-lexicons"; const ROOT = join(import.meta.dirname, ".."); diff --git a/app/config.ts b/apps/rsvp-atmo/src/config.ts similarity index 96% rename from app/config.ts rename to apps/rsvp-atmo/src/config.ts index 6dd74dc..e5fa2e3 100644 --- a/app/config.ts +++ b/apps/rsvp-atmo/src/config.ts @@ -1,4 +1,4 @@ -import type { ContrailConfig } from "../src/index"; +import type { ContrailConfig } from "@atmo-dev/contrail"; export const config: ContrailConfig = { namespace: "rsvp.atmo", diff --git a/app/generate.ts b/apps/rsvp-atmo/src/generate.ts similarity index 86% rename from app/generate.ts rename to apps/rsvp-atmo/src/generate.ts index c359b24..2239922 100644 --- a/app/generate.ts +++ b/apps/rsvp-atmo/src/generate.ts @@ -6,7 +6,7 @@ import { join, dirname } from "path"; import { fileURLToPath } from "url"; import { config } from "./config"; -import { generateLexicons } from "../src/generate"; +import { generateLexicons } from "@atmo-dev/contrail-lexicons"; const ROOT_DIR = join(dirname(fileURLToPath(import.meta.url)), ".."); diff --git a/app/sync.ts b/apps/rsvp-atmo/src/sync.ts similarity index 97% rename from app/sync.ts rename to apps/rsvp-atmo/src/sync.ts index d6f6580..bf25bc9 100644 --- a/app/sync.ts +++ b/apps/rsvp-atmo/src/sync.ts @@ -5,7 +5,7 @@ * pnpm sync # local D1 * pnpm sync --remote # prod D1 */ -import { Contrail } from "../src/index"; +import { Contrail } from "@atmo-dev/contrail"; import { config } from "./config"; import { getPlatformProxy } from "wrangler"; diff --git a/app/worker.ts b/apps/rsvp-atmo/src/worker.ts similarity index 85% rename from app/worker.ts rename to apps/rsvp-atmo/src/worker.ts index 00a60a8..b046d44 100644 --- a/app/worker.ts +++ b/apps/rsvp-atmo/src/worker.ts @@ -1,5 +1,5 @@ -import { Contrail } from "../src/index"; -import { createHandler } from "../src/server"; +import { Contrail } from "@atmo-dev/contrail"; +import { createHandler } from "@atmo-dev/contrail/server"; import { config } from "./config"; const contrail = new Contrail(config); diff --git a/apps/rsvp-atmo/tsconfig.json b/apps/rsvp-atmo/tsconfig.json new file mode 100644 index 0000000..bb57862 --- /dev/null +++ b/apps/rsvp-atmo/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types", "node"] + }, + "include": ["src", "scripts"] +} diff --git a/wrangler.jsonc b/apps/rsvp-atmo/wrangler.jsonc similarity index 93% rename from wrangler.jsonc rename to apps/rsvp-atmo/wrangler.jsonc index 2eb97e0..9f223f2 100644 --- a/wrangler.jsonc +++ b/apps/rsvp-atmo/wrangler.jsonc @@ -1,7 +1,7 @@ { "$schema": "node_modules/wrangler/config-schema.json", "name": "contrail", - "main": "app/worker.ts", + "main": "src/worker.ts", "compatibility_date": "2025-12-25", "observability": { "enabled": true diff --git a/examples/sveltekit-cloudflare-workers/.claude/settings.local.json b/apps/sveltekit-cloudflare-workers/.claude/settings.local.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/.claude/settings.local.json rename to apps/sveltekit-cloudflare-workers/.claude/settings.local.json diff --git a/examples/sveltekit-cloudflare-workers/.env.example b/apps/sveltekit-cloudflare-workers/.env.example similarity index 100% rename from examples/sveltekit-cloudflare-workers/.env.example rename to apps/sveltekit-cloudflare-workers/.env.example diff --git a/examples/sveltekit-group-chat/.gitignore b/apps/sveltekit-cloudflare-workers/.gitignore similarity index 100% rename from examples/sveltekit-group-chat/.gitignore rename to apps/sveltekit-cloudflare-workers/.gitignore diff --git a/examples/sveltekit-group-chat/.npmrc b/apps/sveltekit-cloudflare-workers/.npmrc similarity index 100% rename from examples/sveltekit-group-chat/.npmrc rename to apps/sveltekit-cloudflare-workers/.npmrc diff --git a/examples/sveltekit-group-chat/.prettierignore b/apps/sveltekit-cloudflare-workers/.prettierignore similarity index 100% rename from examples/sveltekit-group-chat/.prettierignore rename to apps/sveltekit-cloudflare-workers/.prettierignore diff --git a/examples/sveltekit-group-chat/.prettierrc b/apps/sveltekit-cloudflare-workers/.prettierrc similarity index 100% rename from examples/sveltekit-group-chat/.prettierrc rename to apps/sveltekit-cloudflare-workers/.prettierrc diff --git a/examples/sveltekit-group-chat/LICENSE b/apps/sveltekit-cloudflare-workers/LICENSE similarity index 100% rename from examples/sveltekit-group-chat/LICENSE rename to apps/sveltekit-cloudflare-workers/LICENSE diff --git a/examples/sveltekit-cloudflare-workers/README.md b/apps/sveltekit-cloudflare-workers/README.md similarity index 100% rename from examples/sveltekit-cloudflare-workers/README.md rename to apps/sveltekit-cloudflare-workers/README.md diff --git a/examples/sveltekit-group-chat/eslint.config.js b/apps/sveltekit-cloudflare-workers/eslint.config.js similarity index 100% rename from examples/sveltekit-group-chat/eslint.config.js rename to apps/sveltekit-cloudflare-workers/eslint.config.js diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getCursor.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getCursor.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getCursor.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getCursor.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getOverview.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getOverview.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getOverview.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getOverview.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getProfile.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getProfile.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getProfile.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/getProfile.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/notifyOfUpdate.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/notifyOfUpdate.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/notifyOfUpdate.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/notifyOfUpdate.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/permissionSet.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/permissionSet.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/permissionSet.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/permissionSet.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/getRecord.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/getRecord.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/getRecord.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/getRecord.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/listRecords.json b/apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/listRecords.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/listRecords.json rename to apps/sveltekit-cloudflare-workers/lexicons-generated/statusphere/app/status/listRecords.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-pulled/README.md b/apps/sveltekit-cloudflare-workers/lexicons-pulled/README.md similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-pulled/README.md rename to apps/sveltekit-cloudflare-workers/lexicons-pulled/README.md diff --git a/lexicons-pulled/app/bsky/actor/profile.json b/apps/sveltekit-cloudflare-workers/lexicons-pulled/app/bsky/actor/profile.json similarity index 100% rename from lexicons-pulled/app/bsky/actor/profile.json rename to apps/sveltekit-cloudflare-workers/lexicons-pulled/app/bsky/actor/profile.json diff --git a/examples/sveltekit-cloudflare-workers/lexicons-pulled/xyz/statusphere/status.json b/apps/sveltekit-cloudflare-workers/lexicons-pulled/xyz/statusphere/status.json similarity index 100% rename from examples/sveltekit-cloudflare-workers/lexicons-pulled/xyz/statusphere/status.json rename to apps/sveltekit-cloudflare-workers/lexicons-pulled/xyz/statusphere/status.json diff --git a/examples/sveltekit-cloudflare-workers/package.json b/apps/sveltekit-cloudflare-workers/package.json similarity index 96% rename from examples/sveltekit-cloudflare-workers/package.json rename to apps/sveltekit-cloudflare-workers/package.json index f45b5ab..9c97ee5 100644 --- a/examples/sveltekit-cloudflare-workers/package.json +++ b/apps/sveltekit-cloudflare-workers/package.json @@ -59,7 +59,8 @@ "license": "MIT", "dependencies": { "@atcute/jetstream": "^1.1.2", - "@atmo-dev/contrail": "^0.1.1", + "@atmo-dev/contrail": "workspace:*", + "@atmo-dev/contrail-lexicons": "workspace:*", "@foxui/core": "^0.9.1", "@foxui/social": "^0.8.10", "@foxui/time": "^0.8.5", diff --git a/examples/sveltekit-cloudflare-workers/scripts/append-scheduled.ts b/apps/sveltekit-cloudflare-workers/scripts/append-scheduled.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/scripts/append-scheduled.ts rename to apps/sveltekit-cloudflare-workers/scripts/append-scheduled.ts diff --git a/examples/sveltekit-cloudflare-workers/scripts/generate.ts b/apps/sveltekit-cloudflare-workers/scripts/generate.ts similarity index 83% rename from examples/sveltekit-cloudflare-workers/scripts/generate.ts rename to apps/sveltekit-cloudflare-workers/scripts/generate.ts index 5a1cb3a..6dd6fde 100644 --- a/examples/sveltekit-cloudflare-workers/scripts/generate.ts +++ b/apps/sveltekit-cloudflare-workers/scripts/generate.ts @@ -1,7 +1,7 @@ import { join, dirname } from 'path'; import { fileURLToPath } from 'url'; import { config } from '../src/lib/contrail/config'; -import { generateLexicons } from '@atmo-dev/contrail/generate'; +import { generateLexicons } from '@atmo-dev/contrail-lexicons'; const ROOT_DIR = join(dirname(fileURLToPath(import.meta.url)), '..'); diff --git a/examples/sveltekit-group-chat/scripts/sync.ts b/apps/sveltekit-cloudflare-workers/scripts/sync.ts similarity index 100% rename from examples/sveltekit-group-chat/scripts/sync.ts rename to apps/sveltekit-cloudflare-workers/scripts/sync.ts diff --git a/examples/sveltekit-group-chat/src/app.css b/apps/sveltekit-cloudflare-workers/src/app.css similarity index 100% rename from examples/sveltekit-group-chat/src/app.css rename to apps/sveltekit-cloudflare-workers/src/app.css diff --git a/examples/sveltekit-cloudflare-workers/src/app.d.ts b/apps/sveltekit-cloudflare-workers/src/app.d.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/app.d.ts rename to apps/sveltekit-cloudflare-workers/src/app.d.ts diff --git a/examples/sveltekit-group-chat/src/app.html b/apps/sveltekit-cloudflare-workers/src/app.html similarity index 100% rename from examples/sveltekit-group-chat/src/app.html rename to apps/sveltekit-cloudflare-workers/src/app.html diff --git a/examples/sveltekit-cloudflare-workers/src/hooks.server.ts b/apps/sveltekit-cloudflare-workers/src/hooks.server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/hooks.server.ts rename to apps/sveltekit-cloudflare-workers/src/hooks.server.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/auth.svelte.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/auth.svelte.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/auth.svelte.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/auth.svelte.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/image-helper.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/image-helper.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/image-helper.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/image-helper.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/index.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/index.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/index.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/index.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/methods.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/methods.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/methods.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/methods.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/port.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/port.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/port.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/port.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/scripts/generate-key.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-key.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/scripts/generate-key.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-key.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/scripts/generate-secret.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-secret.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/scripts/generate-secret.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/generate-secret.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/scripts/setup-dev.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/setup-dev.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/scripts/setup-dev.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/setup-dev.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/scripts/tunnel.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/tunnel.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/scripts/tunnel.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/scripts/tunnel.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/kv-store.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/kv-store.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/kv-store.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/kv-store.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/oauth.remote.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.remote.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/oauth.remote.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.remote.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/oauth.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/oauth.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/oauth.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/profile.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/profile.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/profile.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/profile.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/server/repo.remote.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/repo.remote.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/server/repo.remote.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/repo.remote.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/session.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/session.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/session.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/session.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/server/signed-cookie.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/server/signed-cookie.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/server/signed-cookie.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/server/signed-cookie.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/atproto/settings.ts b/apps/sveltekit-cloudflare-workers/src/lib/atproto/settings.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/atproto/settings.ts rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/settings.ts diff --git a/examples/sveltekit-group-chat/src/lib/atproto/ui/LoginModal.svelte b/apps/sveltekit-cloudflare-workers/src/lib/atproto/ui/LoginModal.svelte similarity index 100% rename from examples/sveltekit-group-chat/src/lib/atproto/ui/LoginModal.svelte rename to apps/sveltekit-cloudflare-workers/src/lib/atproto/ui/LoginModal.svelte diff --git a/examples/sveltekit-group-chat/src/lib/contrail/client.ts b/apps/sveltekit-cloudflare-workers/src/lib/contrail/client.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/contrail/client.ts rename to apps/sveltekit-cloudflare-workers/src/lib/contrail/client.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/contrail/config.ts b/apps/sveltekit-cloudflare-workers/src/lib/contrail/config.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/contrail/config.ts rename to apps/sveltekit-cloudflare-workers/src/lib/contrail/config.ts diff --git a/examples/sveltekit-cloudflare-workers/src/lib/contrail/index.ts b/apps/sveltekit-cloudflare-workers/src/lib/contrail/index.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/lib/contrail/index.ts rename to apps/sveltekit-cloudflare-workers/src/lib/contrail/index.ts diff --git a/examples/sveltekit-group-chat/src/lib/emojis/icons.json b/apps/sveltekit-cloudflare-workers/src/lib/emojis/icons.json similarity index 100% rename from examples/sveltekit-group-chat/src/lib/emojis/icons.json rename to apps/sveltekit-cloudflare-workers/src/lib/emojis/icons.json diff --git a/examples/sveltekit-group-chat/src/lib/emojis/index.ts b/apps/sveltekit-cloudflare-workers/src/lib/emojis/index.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/emojis/index.ts rename to apps/sveltekit-cloudflare-workers/src/lib/emojis/index.ts diff --git a/examples/sveltekit-group-chat/src/lib/index.ts b/apps/sveltekit-cloudflare-workers/src/lib/index.ts similarity index 100% rename from examples/sveltekit-group-chat/src/lib/index.ts rename to apps/sveltekit-cloudflare-workers/src/lib/index.ts diff --git a/examples/sveltekit-group-chat/src/routes/(oauth)/oauth-client-metadata.json/+server.ts b/apps/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth-client-metadata.json/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/(oauth)/oauth-client-metadata.json/+server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth-client-metadata.json/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/(oauth)/oauth/callback/+server.ts b/apps/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/callback/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/(oauth)/oauth/callback/+server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/callback/+server.ts diff --git a/examples/sveltekit-group-chat/src/routes/(oauth)/oauth/jwks.json/+server.ts b/apps/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/jwks.json/+server.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/(oauth)/oauth/jwks.json/+server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/(oauth)/oauth/jwks.json/+server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/+layout.server.ts b/apps/sveltekit-cloudflare-workers/src/routes/+layout.server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/+layout.server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/+layout.server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/+layout.svelte b/apps/sveltekit-cloudflare-workers/src/routes/+layout.svelte similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/+layout.svelte rename to apps/sveltekit-cloudflare-workers/src/routes/+layout.svelte diff --git a/examples/sveltekit-group-chat/src/routes/+layout.ts b/apps/sveltekit-cloudflare-workers/src/routes/+layout.ts similarity index 100% rename from examples/sveltekit-group-chat/src/routes/+layout.ts rename to apps/sveltekit-cloudflare-workers/src/routes/+layout.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/+page.server.ts b/apps/sveltekit-cloudflare-workers/src/routes/+page.server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/+page.server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/+page.server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/+page.svelte b/apps/sveltekit-cloudflare-workers/src/routes/+page.svelte similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/+page.svelte rename to apps/sveltekit-cloudflare-workers/src/routes/+page.svelte diff --git a/examples/sveltekit-cloudflare-workers/src/routes/api/cron/+server.ts b/apps/sveltekit-cloudflare-workers/src/routes/api/cron/+server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/api/cron/+server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/api/cron/+server.ts diff --git a/examples/sveltekit-cloudflare-workers/src/routes/xrpc/[...path]/+server.ts b/apps/sveltekit-cloudflare-workers/src/routes/xrpc/[...path]/+server.ts similarity index 100% rename from examples/sveltekit-cloudflare-workers/src/routes/xrpc/[...path]/+server.ts rename to apps/sveltekit-cloudflare-workers/src/routes/xrpc/[...path]/+server.ts diff --git a/examples/sveltekit-group-chat/static/favicon.png b/apps/sveltekit-cloudflare-workers/static/favicon.png similarity index 100% rename from examples/sveltekit-group-chat/static/favicon.png rename to apps/sveltekit-cloudflare-workers/static/favicon.png diff --git a/examples/sveltekit-cloudflare-workers/static/og.png b/apps/sveltekit-cloudflare-workers/static/og.png similarity index 100% rename from examples/sveltekit-cloudflare-workers/static/og.png rename to apps/sveltekit-cloudflare-workers/static/og.png diff --git a/examples/sveltekit-group-chat/svelte.config.js b/apps/sveltekit-cloudflare-workers/svelte.config.js similarity index 100% rename from examples/sveltekit-group-chat/svelte.config.js rename to apps/sveltekit-cloudflare-workers/svelte.config.js diff --git a/examples/sveltekit-group-chat/tsconfig.json b/apps/sveltekit-cloudflare-workers/tsconfig.json similarity index 100% rename from examples/sveltekit-group-chat/tsconfig.json rename to apps/sveltekit-cloudflare-workers/tsconfig.json diff --git a/examples/sveltekit-group-chat/vite.config.ts b/apps/sveltekit-cloudflare-workers/vite.config.ts similarity index 100% rename from examples/sveltekit-group-chat/vite.config.ts rename to apps/sveltekit-cloudflare-workers/vite.config.ts diff --git a/examples/sveltekit-cloudflare-workers/wrangler.jsonc b/apps/sveltekit-cloudflare-workers/wrangler.jsonc similarity index 100% rename from examples/sveltekit-cloudflare-workers/wrangler.jsonc rename to apps/sveltekit-cloudflare-workers/wrangler.jsonc diff --git a/bin/ingest.ts b/bin/ingest.ts deleted file mode 100644 index a7d3b69..0000000 --- a/bin/ingest.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Persistent Jetstream ingestion with runtime configuration. - * - * Connects to an externally-provided database and subscribes to Jetstream. - * The container does not own the database — it receives a connection URL. - * - * Environment: - * JETSTREAM_URL - Jetstream WebSocket URL (required) - * CONTRAIL_ADAPTER - "postgres" or "sqlite" (default: "postgres") - * DATABASE_URL - PostgreSQL connection string (required when adapter=postgres) - * SQLITE_PATH - SQLite file path (required when adapter=sqlite) - * CONTRAIL_CONFIG - Path to config file (default: "/app/config/contrail.config.ts") - * FLUSH_INTERVAL_MS - Batch flush interval in ms (default: 500) - */ - -import { Contrail } from "../src/index.ts"; -import type { ContrailConfig, Database } from "../src/index.ts"; - -const ADAPTER = process.env.CONTRAIL_ADAPTER ?? "postgres"; -const JETSTREAM_URL = process.env.JETSTREAM_URL; -const CONFIG_PATH = process.env.CONTRAIL_CONFIG ?? "/app/config/contrail.config.ts"; -const FLUSH_INTERVAL_MS = parseInt(process.env.FLUSH_INTERVAL_MS ?? "500", 10); - -async function createDatabase(): Promise<{ db: Database; cleanup: () => Promise }> { - if (ADAPTER === "postgres") { - const url = process.env.DATABASE_URL; - if (!url) { - console.error("DATABASE_URL is required when CONTRAIL_ADAPTER=postgres"); - process.exit(1); - } - const pg = await import("pg"); - const { createPostgresDatabase } = await import("../src/adapters/postgres.ts"); - const pool = new pg.default.Pool({ connectionString: url }); - return { db: createPostgresDatabase(pool), cleanup: () => pool.end() }; - } - - if (ADAPTER === "sqlite") { - const path = process.env.SQLITE_PATH; - if (!path) { - console.error("SQLITE_PATH is required when CONTRAIL_ADAPTER=sqlite"); - process.exit(1); - } - const { createSqliteDatabase } = await import("../src/adapters/sqlite.ts"); - return { db: createSqliteDatabase(path), cleanup: async () => {} }; - } - - console.error(`Unknown adapter: ${ADAPTER}. Use "postgres" or "sqlite".`); - process.exit(1); -} - -async function loadConfig(): Promise { - const module = await import(CONFIG_PATH); - return module.config ?? module.default; -} - -async function main() { - if (!JETSTREAM_URL) { - console.error("JETSTREAM_URL is required"); - process.exit(1); - } - - const config = await loadConfig(); - config.jetstreams = [JETSTREAM_URL]; - - const { db, cleanup } = await createDatabase(); - const contrail = new Contrail({ ...config, db }); - - const controller = new AbortController(); - const shutdown = () => { - console.log("\nShutting down gracefully..."); - controller.abort(); - }; - process.on("SIGTERM", shutdown); - process.on("SIGINT", shutdown); - - console.log("Contrail ingester starting"); - console.log(` Adapter: ${ADAPTER}`); - console.log(` Jetstream: ${JETSTREAM_URL}`); - console.log(` Config: ${CONFIG_PATH}`); - console.log(` Flush: ${FLUSH_INTERVAL_MS}ms`); - - await contrail.runPersistent({ - signal: controller.signal, - flushIntervalMs: FLUSH_INTERVAL_MS, - }); - - await cleanup(); - console.log("Done."); -} - -main().catch((err) => { - console.error(err); - process.exit(1); -}); diff --git a/examples/sveltekit-group-chat/pnpm-lock.yaml b/examples/sveltekit-group-chat/pnpm-lock.yaml deleted file mode 100644 index 35f6a60..0000000 --- a/examples/sveltekit-group-chat/pnpm-lock.yaml +++ /dev/null @@ -1,4750 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@atcute/jetstream': - specifier: ^1.1.2 - version: 1.1.2 - '@foxui/core': - specifier: ^0.8.2 - version: 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2) - '@foxui/social': - specifier: ^0.8.4 - version: 0.8.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(highlight.js@11.11.1)(svelte@5.55.0)(tailwindcss@4.2.2) - '@foxui/time': - specifier: ^0.8.2 - version: 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2) - contrail: - specifier: github:flo-bit/contrail - version: https://codeload.github.com/flo-bit/contrail/tar.gz/ee24d4faa5d5e1515fa71398bca035b191880dbf(@atcute/identity@1.1.4) - valibot: - specifier: ^1.3.1 - version: 1.3.1(typescript@6.0.2) - devDependencies: - '@atcute/atproto': - specifier: ^3.1.10 - version: 3.1.10 - '@atcute/bluesky': - specifier: ^3.3.0 - version: 3.3.0 - '@atcute/client': - specifier: ^4.2.1 - version: 4.2.1 - '@atcute/identity-resolver': - specifier: ^1.2.2 - version: 1.2.2(@atcute/identity@1.1.4) - '@atcute/lex-cli': - specifier: ^2.5.3 - version: 2.5.3 - '@atcute/lexicon-doc': - specifier: ^2.1.2 - version: 2.1.2 - '@atcute/lexicons': - specifier: ^1.2.9 - version: 1.2.9 - '@atcute/oauth-node-client': - specifier: ^1.1.0 - version: 1.1.0 - '@atcute/tid': - specifier: ^1.1.2 - version: 1.1.2 - '@cloudflare/workers-types': - specifier: ^4.20260317.1 - version: 4.20260317.1 - '@eslint/compat': - specifier: ^2.0.3 - version: 2.0.3(eslint@10.1.0(jiti@2.6.1)) - '@eslint/js': - specifier: ^10.0.1 - version: 10.0.1(eslint@10.1.0(jiti@2.6.1)) - '@sveltejs/adapter-cloudflare': - specifier: ^7.2.8 - version: 7.2.8(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(wrangler@4.78.0(@cloudflare/workers-types@4.20260317.1)) - '@sveltejs/kit': - specifier: ^2.55.0 - version: 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - '@sveltejs/vite-plugin-svelte': - specifier: ^7.0.0 - version: 7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - '@tailwindcss/forms': - specifier: ^0.5.11 - version: 0.5.11(tailwindcss@4.2.2) - '@tailwindcss/vite': - specifier: ^4.2.2 - version: 4.2.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - bits-ui: - specifier: ^2.16.4 - version: 2.16.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - eslint: - specifier: ^10.1.0 - version: 10.1.0(jiti@2.6.1) - eslint-config-prettier: - specifier: ^10.1.8 - version: 10.1.8(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-svelte: - specifier: ^3.16.0 - version: 3.16.0(eslint@10.1.0(jiti@2.6.1))(svelte@5.55.0) - globals: - specifier: ^17.4.0 - version: 17.4.0 - prettier: - specifier: ^3.8.1 - version: 3.8.1 - prettier-plugin-svelte: - specifier: ^3.5.1 - version: 3.5.1(prettier@3.8.1)(svelte@5.55.0) - prettier-plugin-tailwindcss: - specifier: ^0.7.2 - version: 0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.0))(prettier@3.8.1) - svelte: - specifier: ^5.55.0 - version: 5.55.0 - svelte-check: - specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.4)(svelte@5.55.0)(typescript@6.0.2) - tailwindcss: - specifier: ^4.2.2 - version: 4.2.2 - tsx: - specifier: ^4.21.0 - version: 4.21.0 - typescript: - specifier: ^6.0.2 - version: 6.0.2 - typescript-eslint: - specifier: ^8.57.2 - version: 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - vite: - specifier: ^8.0.3 - version: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0) - wrangler: - specifier: ^4.78.0 - version: 4.78.0(@cloudflare/workers-types@4.20260317.1) - -packages: - - '@atcute/atproto@3.1.10': - resolution: {integrity: sha512-+GKZpOc0PJcdWMQEkTfg/rSNDAAHxmAUGBl60g2az15etqJn5WaUPNGFE2sB7hKpwi5Ue2h/L0OacINcE/JDDQ==, tarball: https://registry.npmjs.org/@atcute/atproto/-/atproto-3.1.10.tgz} - - '@atcute/bluesky-richtext-segmenter@3.0.0': - resolution: {integrity: sha512-NhZTUKtFpeBBbILwAcxj5u4RobIoHOmGw3CAaaEFNebKYSvmTecrXJ7XufHw5DFOUdr8SiKXQVRQxGAxulMNWg==, tarball: https://registry.npmjs.org/@atcute/bluesky-richtext-segmenter/-/bluesky-richtext-segmenter-3.0.0.tgz} - - '@atcute/bluesky@3.3.0': - resolution: {integrity: sha512-TrLnlxuD6F/D2ZYzJ3aCiRD0yiFuhmVsd6oULNzzr8V9Xzlufg0yxkRiGmbMiF2iI508y/MFi6vzo625301c5A==, tarball: https://registry.npmjs.org/@atcute/bluesky/-/bluesky-3.3.0.tgz} - - '@atcute/car@5.1.1': - resolution: {integrity: sha512-MeRUJNXYgAHrJZw7mMoZJb9xIqv3LZLQw90rRRAVAo8SGNdICwyqe6Bf2LGesX73QM04MBuYO6Kqhvold3TFfg==, tarball: https://registry.npmjs.org/@atcute/car/-/car-5.1.1.tgz} - - '@atcute/cbor@2.3.2': - resolution: {integrity: sha512-xP2SORSau/VVI00x2V4BjwIkHr6EQ7l/MXEOPaa4LGYtePFc4gnD4L1yN10dT5NEuUnvGEuCh6arLB7gz1smVQ==, tarball: https://registry.npmjs.org/@atcute/cbor/-/cbor-2.3.2.tgz} - - '@atcute/cid@2.4.1': - resolution: {integrity: sha512-bwhna69RCv7yetXudtj+2qrMPYvhhIQqvJz6YUpUS98v7OdF3X2dnye9Nig2NDrklZcuyOsu7sQo7GOykJXRLQ==, tarball: https://registry.npmjs.org/@atcute/cid/-/cid-2.4.1.tgz} - - '@atcute/client@4.2.1': - resolution: {integrity: sha512-ZBFM2pW075JtgGFu5g7HHZBecrClhlcNH8GVP9Zz1aViWR+cjjBsTpeE63rJs+FCOHFYlirUyo5L8SGZ4kMINw==, tarball: https://registry.npmjs.org/@atcute/client/-/client-4.2.1.tgz} - - '@atcute/crypto@2.4.1': - resolution: {integrity: sha512-tJ3Pi/XYcAsABKtqSlSOTKfO5YiQ4XdqlTuPS8HiRZSezOPcXBFFzAFWpSIJPURbVPFQL3LLrrK0Ea24wl5qeQ==, tarball: https://registry.npmjs.org/@atcute/crypto/-/crypto-2.4.1.tgz} - - '@atcute/identity-resolver@1.2.2': - resolution: {integrity: sha512-eUh/UH4bFvuXS0X7epYCeJC/kj4rbBXfSRumLEH4smMVwNOgTo7cL/0Srty+P/qVPoZEyXdfEbS0PHJyzoXmHw==, tarball: https://registry.npmjs.org/@atcute/identity-resolver/-/identity-resolver-1.2.2.tgz} - peerDependencies: - '@atcute/identity': ^1.0.0 - - '@atcute/identity@1.1.4': - resolution: {integrity: sha512-RCw1IqflfuSYCxK5m0lZCm0UnvIzcUnuhngiBhJEJb9a9Mc2SEf1xP3H8N5r8pvEH1LoAYd6/zrvCNU+uy9esw==, tarball: https://registry.npmjs.org/@atcute/identity/-/identity-1.1.4.tgz} - - '@atcute/jetstream@1.1.2': - resolution: {integrity: sha512-u6p/h2xppp7LE6W/9xErAJ6frfN60s8adZuCKtfAaaBBiiYbb1CfpzN8Uc+2qtJZNorqGvuuDb5572Jmh7yHBQ==, tarball: https://registry.npmjs.org/@atcute/jetstream/-/jetstream-1.1.2.tgz} - - '@atcute/lex-cli@2.5.3': - resolution: {integrity: sha512-829rvezMOfRkJQRKvupNT8TWT/YYffJ2QsB80D9aPjkXSogrETZA7xZcPaMZBXg+mJaVbLO9S4ThPQmlF0L4UQ==, tarball: https://registry.npmjs.org/@atcute/lex-cli/-/lex-cli-2.5.3.tgz} - hasBin: true - - '@atcute/lexicon-doc@2.1.2': - resolution: {integrity: sha512-jTLcOka7b8BIn2SnIZm2m7l6unlJ0gpgW1MnRpSqNbly/AvyRUR/GREduh/QmjT4SGasDm8vdhrM0kOSPFpDLQ==, tarball: https://registry.npmjs.org/@atcute/lexicon-doc/-/lexicon-doc-2.1.2.tgz} - - '@atcute/lexicon-resolver@0.1.6': - resolution: {integrity: sha512-wJC/ChmpP7k+ywpOd07CMvioXjIGaFpF3bDwXLi/086LYjSWHOvtW6pyC+mqP5wLhjyH2hn4wmi77Buew1l1aw==, tarball: https://registry.npmjs.org/@atcute/lexicon-resolver/-/lexicon-resolver-0.1.6.tgz} - peerDependencies: - '@atcute/identity': ^1.1.0 - '@atcute/identity-resolver': ^1.1.3 - - '@atcute/lexicons@1.2.9': - resolution: {integrity: sha512-/RRHm2Cw9o8Mcsrq0eo8fjS9okKYLGfuFwrQ0YoP/6sdSDsXshaTLJsvLlcUcaDaSJ1YFOuHIo3zr2Om2F/16g==, tarball: https://registry.npmjs.org/@atcute/lexicons/-/lexicons-1.2.9.tgz} - - '@atcute/mst@1.0.0': - resolution: {integrity: sha512-pMce2efib+dmKtnGnIvJZitVncJkpr3AmhyfgfYllni8KzsaDGsJmuGavSVpuojAhQe+6jYwHFtpm/beiiH4uw==, tarball: https://registry.npmjs.org/@atcute/mst/-/mst-1.0.0.tgz} - - '@atcute/multibase@1.2.0': - resolution: {integrity: sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==, tarball: https://registry.npmjs.org/@atcute/multibase/-/multibase-1.2.0.tgz} - - '@atcute/oauth-crypto@0.1.0': - resolution: {integrity: sha512-qZYDCNLF/4B6AndYT1rsQelN8621AC5u/sL5PHvlr/qqAbmmUwCBGjEgRSyZtHE1AqD60VNiSMlOgAuEQTSl3w==, tarball: https://registry.npmjs.org/@atcute/oauth-crypto/-/oauth-crypto-0.1.0.tgz} - - '@atcute/oauth-keyset@0.1.0': - resolution: {integrity: sha512-+wqT/+I5Lg9VzKnKY3g88+N45xbq+wsdT6bHDGqCVa2u57gRvolFF4dY+weMfc/OX641BIZO6/o+zFtKBsMQnQ==, tarball: https://registry.npmjs.org/@atcute/oauth-keyset/-/oauth-keyset-0.1.0.tgz} - - '@atcute/oauth-node-client@1.1.0': - resolution: {integrity: sha512-xCp/VfjtvTeKscKR/oI2hdMTp1/DaF/7ll8b6yZOCgbKlVDDfhCn5mmKNVARGTNaoywxrXG3XffbWCIx3/E87w==, tarball: https://registry.npmjs.org/@atcute/oauth-node-client/-/oauth-node-client-1.1.0.tgz} - - '@atcute/oauth-types@0.1.1': - resolution: {integrity: sha512-u+3KMjse3Uc/9hDyilu1QVN7IpcnjVXgRzhddzBB8Uh6wePHNVBDdi9wQvFTVVA3zmxtMJVptXRyLLg6Ou9bqg==, tarball: https://registry.npmjs.org/@atcute/oauth-types/-/oauth-types-0.1.1.tgz} - - '@atcute/repo@0.1.3': - resolution: {integrity: sha512-kN4gkrkQgJwI5xkVQ9zSdI8ULR47uH48EdJdjMvKAWsSDu8zKYd8ZQ6n778qa6o3WYEq02v9QVf7pzeU+3fYVA==, tarball: https://registry.npmjs.org/@atcute/repo/-/repo-0.1.3.tgz} - - '@atcute/tid@1.1.2': - resolution: {integrity: sha512-bmPuOX/TOfcm/vsK9vM98spjkcx2wgd9S2PeK5oLgEr8IbNRPq7iMCAPzOL1nu5XAW3LlkOYQEbYRcw5vcQ37w==, tarball: https://registry.npmjs.org/@atcute/tid/-/tid-1.1.2.tgz} - - '@atcute/time-ms@1.3.2': - resolution: {integrity: sha512-F+qOyR9pO55g1d/QmN+Gr+fimoUQQLusdGSB6pjV0wW5KPILR4oQ4e2ZhWzqUbeHLAgWvgoTTMsMDdz62Xa2tg==, tarball: https://registry.npmjs.org/@atcute/time-ms/-/time-ms-1.3.2.tgz} - - '@atcute/uint8array@1.1.1': - resolution: {integrity: sha512-3LsC8XB8TKe9q/5hOA5sFuzGaIFdJZJNewC5OKa3o/eU6+K7JR6see9Zy2JbQERNVnRl11EzbNov1efgLMAs4g==, tarball: https://registry.npmjs.org/@atcute/uint8array/-/uint8array-1.1.1.tgz} - - '@atcute/util-fetch@1.0.5': - resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==, tarball: https://registry.npmjs.org/@atcute/util-fetch/-/util-fetch-1.0.5.tgz} - - '@atcute/util-text@1.2.0': - resolution: {integrity: sha512-b8WSh+Z7K601eUFFmTFj8QPKDO8Ic0VDDj63sdKzpkm+ySQKsYT5nXekViGqFVKbyKj1V5FyvZvgXad6/aI4QQ==, tarball: https://registry.npmjs.org/@atcute/util-text/-/util-text-1.2.0.tgz} - - '@atcute/varint@2.0.0': - resolution: {integrity: sha512-CEY/oVK/nVpL4e5y3sdenLETDL6/Xu5xsE/0TupK+f0Yv8jcD60t2gD8SHROWSvUwYLdkjczLCSA7YrtnjCzWw==, tarball: https://registry.npmjs.org/@atcute/varint/-/varint-2.0.0.tgz} - - '@badrap/valita@0.4.6': - resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==, tarball: https://registry.npmjs.org/@badrap/valita/-/valita-0.4.6.tgz} - engines: {node: '>= 18'} - - '@cloudflare/kv-asset-handler@0.4.2': - resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==, tarball: https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.2.tgz} - engines: {node: '>=18.0.0'} - - '@cloudflare/unenv-preset@2.16.0': - resolution: {integrity: sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==, tarball: https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.16.0.tgz} - peerDependencies: - unenv: 2.0.0-rc.24 - workerd: 1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0 - peerDependenciesMeta: - workerd: - optional: true - - '@cloudflare/workerd-darwin-64@1.20260317.1': - resolution: {integrity: sha512-8hjh3sPMwY8M/zedq3/sXoA2Q4BedlGufn3KOOleIG+5a4ReQKLlUah140D7J6zlKmYZAFMJ4tWC7hCuI/s79g==, tarball: https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260317.1.tgz} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - - '@cloudflare/workerd-darwin-arm64@1.20260317.1': - resolution: {integrity: sha512-M/MnNyvO5HMgoIdr3QHjdCj2T1ki9gt0vIUnxYxBu9ISXS/jgtMl6chUVPJ7zHYBn9MyYr8ByeN6frjYxj0MGg==, tarball: https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260317.1.tgz} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - - '@cloudflare/workerd-linux-64@1.20260317.1': - resolution: {integrity: sha512-1ltuEjkRcS3fsVF7CxsKlWiRmzq2ZqMfqDN0qUOgbUwkpXsLVJsXmoblaLf5OP00ELlcgF0QsN0p2xPEua4Uug==, tarball: https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260317.1.tgz} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - - '@cloudflare/workerd-linux-arm64@1.20260317.1': - resolution: {integrity: sha512-3QrNnPF1xlaNwkHpasvRvAMidOvQs2NhXQmALJrEfpIJ/IDL2la8g499yXp3eqhG3hVMCB07XVY149GTs42Xtw==, tarball: https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260317.1.tgz} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - - '@cloudflare/workerd-windows-64@1.20260317.1': - resolution: {integrity: sha512-MfZTz+7LfuIpMGTa3RLXHX8Z/pnycZLItn94WRdHr8LPVet+C5/1Nzei399w/jr3+kzT4pDKk26JF/tlI5elpQ==, tarball: https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260317.1.tgz} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - - '@cloudflare/workers-types@4.20260317.1': - resolution: {integrity: sha512-+G4eVwyCpm8Au1ex8vQBCuA9wnwqetz4tPNRoB/53qvktERWBRMQnrtvC1k584yRE3emMThtuY0gWshvSJ++PQ==, tarball: https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20260317.1.tgz} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, tarball: https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} - engines: {node: '>=12'} - - '@emnapi/core@1.9.1': - resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==, tarball: https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz} - - '@emnapi/runtime@1.9.1': - resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==, tarball: https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz} - - '@emnapi/wasi-threads@1.2.0': - resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==, tarball: https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz} - - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.27.4': - resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.27.4': - resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.27.4': - resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.27.4': - resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.27.4': - resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.4': - resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.27.4': - resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.4': - resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.27.4': - resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.27.4': - resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.27.4': - resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.27.4': - resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.27.4': - resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.27.4': - resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.4': - resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.27.4': - resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.27.4': - resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==, tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-arm64@0.27.4': - resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==, tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.4': - resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==, tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-arm64@0.27.4': - resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==, tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.4': - resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==, tarball: https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/openharmony-arm64@0.27.4': - resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==, tarball: https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.27.4': - resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.27.4': - resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.27.4': - resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.27.4': - resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==, tarball: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==, tarball: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/compat@2.0.3': - resolution: {integrity: sha512-SjIJhGigp8hmd1YGIBwh7Ovri7Kisl42GYFjrOyHhtfYGGoLW6teYi/5p8W50KSsawUPpuLOSmsq1bD0NGQLBw==, tarball: https://registry.npmjs.org/@eslint/compat/-/compat-2.0.3.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^8.40 || 9 || 10 - peerDependenciesMeta: - eslint: - optional: true - - '@eslint/config-array@0.23.3': - resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==, tarball: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-helpers@0.5.3': - resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==, tarball: https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/core@1.1.1': - resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==, tarball: https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==, tarball: https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^10.0.0 - peerDependenciesMeta: - eslint: - optional: true - - '@eslint/object-schema@3.0.3': - resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==, tarball: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/plugin-kit@0.6.1': - resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==, tarball: https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==, tarball: https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz} - - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==, tarball: https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz} - - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==, tarball: https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz} - - '@foxui/core@0.8.2': - resolution: {integrity: sha512-cVfFCQX4SfL7mezfQHAHln8M+ZiEZlwa4lIXMFUATLuhl4YCcwv7IvvtU+hMvq2ky+vsCEEry1XvXOLdSe6zAA==, tarball: https://registry.npmjs.org/@foxui/core/-/core-0.8.2.tgz} - peerDependencies: - svelte: '>=5' - tailwindcss: '>=3' - - '@foxui/social@0.8.4': - resolution: {integrity: sha512-+5pV402gpEwxSdWb0EMr2SKG/kutCEXzQI930oGA6Q8O/Dnk14noCf/hYAtZvBlAd0cwa6Grlgt7/VEwzU5NDg==, tarball: https://registry.npmjs.org/@foxui/social/-/social-0.8.4.tgz} - peerDependencies: - svelte: '>=5' - tailwindcss: '>=3' - - '@foxui/text@0.8.2': - resolution: {integrity: sha512-f1WotRAzZszqcg/c0RBs9Wuy7KdyHhsZRJNBaufFLl+hzMhCSJQq11lQPdRCUITKP2rBfeguZfqkAcqi0PuI8w==, tarball: https://registry.npmjs.org/@foxui/text/-/text-0.8.2.tgz} - peerDependencies: - svelte: '>=5' - tailwindcss: '>=3' - - '@foxui/time@0.8.2': - resolution: {integrity: sha512-w60jJij44bcle905AL/vBijyI/ilY4cSA21yxYg8C6swm5uH5wooW1fSFaTuC/Lg0GfhwTkW963kz66vVsYbiw==, tarball: https://registry.npmjs.org/@foxui/time/-/time-0.8.2.tgz} - peerDependencies: - svelte: '>=5' - tailwindcss: '>=3' - - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==, tarball: https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==, tarball: https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, tarball: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==, tarball: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz} - engines: {node: '>=18.18'} - - '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==, tarball: https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==, tarball: https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==, tarball: https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==, tarball: https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==, tarball: https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz} - cpu: [ppc64] - os: [linux] - - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz} - cpu: [riscv64] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==, tarball: https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==, tarball: https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==, tarball: https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==, tarball: https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [riscv64] - os: [linux] - - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==, tarball: https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==, tarball: https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==, tarball: https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==, tarball: https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==, tarball: https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==, tarball: https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==, tarball: https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==, tarball: https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@internationalized/date@3.10.1': - resolution: {integrity: sha512-oJrXtQiAXLvT9clCf1K4kxp3eKsQhIaZqxEyowkBcsvZDdZkbWrVmnGknxs5flTD0VGsxrxKgBCZty1EzoiMzA==, tarball: https://registry.npmjs.org/@internationalized/date/-/date-3.10.1.tgz} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, tarball: https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==, tarball: https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, tarball: https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} - - '@mary-ext/event-iterator@1.0.0': - resolution: {integrity: sha512-l6gCPsWJ8aRCe/s7/oCmero70kDHgIK5m4uJvYgwEYTqVxoBOIXbKr5tnkLqUHEg6mNduB4IWvms3h70Hp9ADQ==, tarball: https://registry.npmjs.org/@mary-ext/event-iterator/-/event-iterator-1.0.0.tgz} - - '@mary-ext/simple-event-emitter@1.0.1': - resolution: {integrity: sha512-9+VvZisxZ/gSg+JJH7hmXaA8Qj42Qjz3O58RSB+INYc8iLA0icATZxHB9vKbj59ojDGZjO3hCKzMXocx3L0H8w==, tarball: https://registry.npmjs.org/@mary-ext/simple-event-emitter/-/simple-event-emitter-1.0.1.tgz} - - '@napi-rs/wasm-runtime@1.1.2': - resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==, tarball: https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.2.tgz} - peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 - - '@noble/secp256k1@3.0.0': - resolution: {integrity: sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg==, tarball: https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-3.0.0.tgz} - - '@number-flow/svelte@0.4.0': - resolution: {integrity: sha512-9tnowrlZlBV3IVe3Gm1V7yXSf4Ugag2k7iW45xqb04HXSa1ApEImopvGWAjJpHDvS849o+UCb0YH461Mtde9lA==, tarball: https://registry.npmjs.org/@number-flow/svelte/-/svelte-0.4.0.tgz} - peerDependencies: - svelte: ^4 || ^5 - - '@optique/core@0.6.11': - resolution: {integrity: sha512-GVLFihzBA1j78NFlkU5N1Lu0jRqET0k6Z66WK8VQKG/a3cxmCInVGSKMIdQG8i6pgC8wD5OizF6Y3QMztmhAxg==, tarball: https://registry.npmjs.org/@optique/core/-/core-0.6.11.tgz} - engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} - - '@optique/run@0.6.11': - resolution: {integrity: sha512-tsXBEygGSzNpFK2gjsRlXBn7FiScUeLFWIZNpoAZ8iG85Km0/3K9xgqlQAXoQ+uEZBe4XplnzyCDvmEgbyNT8w==, tarball: https://registry.npmjs.org/@optique/run/-/run-0.6.11.tgz} - engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} - - '@oxc-project/types@0.122.0': - resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==, tarball: https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz} - - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==, tarball: https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz} - - '@poppinss/colors@4.1.6': - resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==, tarball: https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz} - - '@poppinss/dumper@0.6.5': - resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==, tarball: https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz} - - '@poppinss/exception@1.2.3': - resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==, tarball: https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz} - - '@remirror/core-constants@3.0.0': - resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==, tarball: https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz} - - '@rolldown/binding-android-arm64@1.0.0-rc.12': - resolution: {integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==, tarball: https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - - '@rolldown/binding-darwin-arm64@1.0.0-rc.12': - resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==, tarball: https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@rolldown/binding-darwin-x64@1.0.0-rc.12': - resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==, tarball: https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@rolldown/binding-freebsd-x64@1.0.0-rc.12': - resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==, tarball: https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': - resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': - resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': - resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': - resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==, tarball: https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': - resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==, tarball: https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': - resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==, tarball: https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': - resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==, tarball: https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@rolldown/pluginutils@1.0.0-rc.12': - resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==, tarball: https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz} - - '@sindresorhus/is@7.2.0': - resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==, tarball: https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz} - engines: {node: '>=18'} - - '@speed-highlight/core@1.2.15': - resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==, tarball: https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.15.tgz} - - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==, tarball: https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz} - - '@sveltejs/acorn-typescript@1.0.9': - resolution: {integrity: sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==, tarball: https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz} - peerDependencies: - acorn: ^8.9.0 - - '@sveltejs/adapter-cloudflare@7.2.8': - resolution: {integrity: sha512-bIdhY/Fi4AQmqiBdQVKnafH1h9Gw+xbCvHyUu4EouC8rJOU02zwhi14k/FDhQ0mJF1iblIu3m8UNQ8GpGIvIOQ==, tarball: https://registry.npmjs.org/@sveltejs/adapter-cloudflare/-/adapter-cloudflare-7.2.8.tgz} - peerDependencies: - '@sveltejs/kit': ^2.0.0 - wrangler: ^4.0.0 - - '@sveltejs/kit@2.55.0': - resolution: {integrity: sha512-MdFRjevVxmAknf2NbaUkDF16jSIzXMWd4Nfah0Qp8TtQVoSp3bV4jKt8mX7z7qTUTWvgSaxtR0EG5WJf53gcuA==, tarball: https://registry.npmjs.org/@sveltejs/kit/-/kit-2.55.0.tgz} - engines: {node: '>=18.13'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: ^5.3.3 - vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - typescript: - optional: true - - '@sveltejs/vite-plugin-svelte@7.0.0': - resolution: {integrity: sha512-ILXmxC7HAsnkK2eslgPetrqqW1BKSL7LktsFgqzNj83MaivMGZzluWq32m25j2mDOjmSKX7GGWahePhuEs7P/g==, tarball: https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.0.0.tgz} - engines: {node: ^20.19 || ^22.12 || >=24} - peerDependencies: - svelte: ^5.46.4 - vite: ^8.0.0-beta.7 || ^8.0.0 - - '@swc/helpers@0.5.20': - resolution: {integrity: sha512-2egEBHUMasdypIzrprsu8g+OEVd7Vp2MM3a2eVlM/cyFYto0nGz5BX5BTgh/ShZZI9ed+ozEq+Ngt+rgmUs8tw==, tarball: https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.20.tgz} - - '@tailwindcss/forms@0.5.11': - resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==, tarball: https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.11.tgz} - peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' - - '@tailwindcss/node@4.2.2': - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==, tarball: https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz} - - '@tailwindcss/oxide-android-arm64@4.2.2': - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.2.2': - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.2.2': - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.2.2': - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.2.2': - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==, tarball: https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz} - engines: {node: '>= 20'} - - '@tailwindcss/vite@4.2.2': - resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==, tarball: https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz} - peerDependencies: - vite: ^5.2.0 || ^6 || ^7 || ^8 - - '@tiptap/core@3.21.0': - resolution: {integrity: sha512-IfnQiuEeabDSPr1C/zHFTbnvlTf5z0DE/d/xz4C6bkL4ZBDJ3rr99h2qsaV0l8F+kbNswZMlQdM8rxNlMy95fQ==, tarball: https://registry.npmjs.org/@tiptap/core/-/core-3.21.0.tgz} - peerDependencies: - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-blockquote@3.21.0': - resolution: {integrity: sha512-JDM/RR6rM0dMCZ1UnEf7eqmN6pAdIa2llhN+E24HdTGNJCklMFhLAGE/OT8/1r7M0WWA9GVO7/PTe4EdGh6+lQ==, tarball: https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-bold@3.21.0': - resolution: {integrity: sha512-iyEJRzG7XTCPlHwEDzUw3HnuYYCfL7lNpcCHmxcpYMrIUA8rv7EUxerIwApT6xY8hQ/07ljuJKgOyPvnJOOzuA==, tarball: https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-bubble-menu@3.21.0': - resolution: {integrity: sha512-/fabRRhhf8i4LAx9e8xz9ppqN5KgdJk3TxMuxAD5vAWGsejvhSoPa8O8H/QwwyntXm1Vue8aQiMHsUk48b2hGQ==, tarball: https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-bullet-list@3.21.0': - resolution: {integrity: sha512-PWNF+xwxgOeXYGD88sCQLKL0eBoQqjUnZNALxBjN3Y7x4llalh42rHOp2Nt2t6UbQgqTBtBzU/uFcussTpxreQ==, tarball: https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.21.0.tgz} - peerDependencies: - '@tiptap/extension-list': ^3.21.0 - - '@tiptap/extension-code-block-lowlight@3.21.0': - resolution: {integrity: sha512-79sS0tqoGVX6wq30ejzohpUVLeGOkTTUn5hCqjsniyYPTEtrn4tHyBnS4Du2TbrDV4SqcwgisWExhuB8pfEdYQ==, tarball: https://registry.npmjs.org/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/extension-code-block': ^3.21.0 - '@tiptap/pm': ^3.21.0 - highlight.js: ^11 - lowlight: ^2 || ^3 - - '@tiptap/extension-code-block@3.21.0': - resolution: {integrity: sha512-zrVOcOzDCjHQ8NJcC+qHmZZKiwnP/NMSb3qVJlSMN8TzuHept1MZCDa2Mbo70O6I0txo456SGuXB9sqV1vHmGg==, tarball: https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-code@3.21.0': - resolution: {integrity: sha512-D7wA9jp+4X2r1f3FIoga73s6Rn4rmZY57Jes6a4rK3HY+3yHk1r057pPIZSY8Drfs97jxHQVFdfUYUomLSFYBA==, tarball: https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-document@3.21.0': - resolution: {integrity: sha512-7oCyzXI9ChvJQUlr23AURdfVar4OIsrYUvqdhEwo3bjcI/Q/j0KJiXfuh6ZzL5eVaINSailH53sZaGg4THQtUg==, tarball: https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-dropcursor@3.21.0': - resolution: {integrity: sha512-6fsDSVAM2iz7eElvT6iivMrGBGjIP/oPigVZ/SPm6f31phaYhz6TIOEgV/Lr2jaPIOgyK4U0cU4Yd4KUBCmhzQ==, tarball: https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.21.0.tgz} - peerDependencies: - '@tiptap/extensions': ^3.21.0 - - '@tiptap/extension-floating-menu@3.21.0': - resolution: {integrity: sha512-n2HzTB+I/5rAl8R/1sKMv92JiY1oDK1hroXizxEKYa6dskJcAMW0CfYyPcPOZWQQEe7qoeOvQISr2ooLAKW+Mw==, tarball: https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.21.0.tgz} - peerDependencies: - '@floating-ui/dom': ^1.0.0 - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-gapcursor@3.21.0': - resolution: {integrity: sha512-wGjgAoYBTvPAe9QYMI5px355XcNeMkaUrMY9IHbMqgqdmHcDxqooxM4H6sYVX2CRcHwXy4I8NQAoOhSYrQJDMg==, tarball: https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.21.0.tgz} - peerDependencies: - '@tiptap/extensions': ^3.21.0 - - '@tiptap/extension-hard-break@3.21.0': - resolution: {integrity: sha512-6JFVSAOQ1qhQHi9mVcdn2/XO8YIMgYV8zjarzNUzP6Sf2waeE5BLXjlg6rIH/945sY1J+FndTojLru6gQ07a5A==, tarball: https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-heading@3.21.0': - resolution: {integrity: sha512-ji6VJmoRnDzAHYflEYEZohMHRi77UGLW1o3ua7UhI32iJ9nuYssbPNuzEeE4SvENMQwZRszad5+a+dKAa+NC7g==, tarball: https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-history@3.21.0': - resolution: {integrity: sha512-aYUxm0fLXGfn4XAsRq53lOX1cB+GRF8rScVuDHmQfEaJHNo09DSRtvgWnDHVdqIS8FvKkBcTO8eyPOBPMvkWiA==, tarball: https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-3.21.0.tgz} - peerDependencies: - '@tiptap/extensions': ^3.21.0 - - '@tiptap/extension-horizontal-rule@3.21.0': - resolution: {integrity: sha512-vNBnOfFEY62CoJPGo4nonRM7RiOvhII1vhoO+WFr1GxDqCAfmEFjToflt7JT1UJdo6lMVcD+aaaAgOiuSz5p6g==, tarball: https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-image@3.21.0': - resolution: {integrity: sha512-W9786a2K4LSZJMPeRLmoDulJeXOsM0ueRV2MHjTol7ikPRauROB7GUbAz9DyPAJHA2AGUfpswnGAYPO3tz5CLg==, tarball: https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-italic@3.21.0': - resolution: {integrity: sha512-2I8oPvwyXhRn1k8lbDFIutzvhtLEjoO5mmQCNX4TnT4PdxxaSrK9+ihYg12VeqhUeO7dg1MKiFqws0HVBrwzWg==, tarball: https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-link@3.21.0': - resolution: {integrity: sha512-oMU7Yve1sbgBsaFAUc2R0GPf4d3ZPVJeMUFC6b6X9rJIvx/IhEUEn9toQcSBGfp02uWK9NdQyIFYFdWlVXH++w==, tarball: https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-list-item@3.21.0': - resolution: {integrity: sha512-1ZymZmlQVbAoC4q5x3cro0v5+3I6l+BHqbhIMQLjQFlAOJfcE0pvqRzAFW7PduxUj41tXEtsYqp2NREvO9F5Fg==, tarball: https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.21.0.tgz} - peerDependencies: - '@tiptap/extension-list': ^3.21.0 - - '@tiptap/extension-list-keymap@3.21.0': - resolution: {integrity: sha512-EzrfW3ASNFPWKhR8sNOq7Kqw4hvaTAOn4dlI7chB8HIANSrlyPOUn+eKAnO6HQgsUgsbjg2GbTUrGrxcoLykUg==, tarball: https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.21.0.tgz} - peerDependencies: - '@tiptap/extension-list': ^3.21.0 - - '@tiptap/extension-list@3.21.0': - resolution: {integrity: sha512-KeBlEtLrGce2d3dgL89hmwWEtREuzlW4XY5bYWpKNvCbFqvdSb3n7vkdkw32YclZmMWxAcABgW6ucCStkE0rsQ==, tarball: https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/extension-ordered-list@3.21.0': - resolution: {integrity: sha512-+d+0orokMfqaBfvr9tUBgGvo2ZCV+fR3JzsJTmnLBWOkhBSJN7H4pnfXPTue0qwspUwRmkLJxdIlU+J7HkMrng==, tarball: https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.21.0.tgz} - peerDependencies: - '@tiptap/extension-list': ^3.21.0 - - '@tiptap/extension-paragraph@3.21.0': - resolution: {integrity: sha512-cMPG/jCoZ9NmLZ5ctFziILaxJGfDtMTb5OLBhifMFZeMVwF1pEJIygDEfnX/HSruv507weZSQG4pERO2tRszMg==, tarball: https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-placeholder@3.21.0': - resolution: {integrity: sha512-fs+cQqMh1d1naV6OgOhP/0qbRJwtw8DpQMj3/oqGKbaRRKIeecEaZPXYRd7MYa4e9K0Cfk5Bm0MNs9lwu/BYsw==, tarball: https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-3.21.0.tgz} - peerDependencies: - '@tiptap/extensions': ^3.21.0 - - '@tiptap/extension-strike@3.21.0': - resolution: {integrity: sha512-easnVaN11Wl+5fOtfvzJ10J762S9TRXZaMj5rLBGavgf82DCYHqhGhBqpLQrJ41r4nPABGlYvTRoxfvBLB74Lg==, tarball: https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-text@3.21.0': - resolution: {integrity: sha512-Zx8QdB8a5iBuE4uO21c3BjmpBfaJEr2Jd1QFnsdgx11fm6P7dGgZaGko1FaINhfOPRGTN6O/kiF02cDMdOHa/w==, tarball: https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-typography@3.21.0': - resolution: {integrity: sha512-/nHtkQTtBPmQPe4JnEGBxxCKIv2FToSB3PUfh7b4cccNkbs7yJZO30ySNJcMzNfn8pfSQPkJxZJcFuSm9RjZdg==, tarball: https://registry.npmjs.org/@tiptap/extension-typography/-/extension-typography-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extension-underline@3.21.0': - resolution: {integrity: sha512-gGmBEymbWnr8AIS8bI/bPw5rcwo7wAFcBw/TsLd1nAanu1dDqSRNDBrit3m02Ru+D88u2SfNvmbOPI1pz+1f5w==, tarball: https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - - '@tiptap/extensions@3.21.0': - resolution: {integrity: sha512-MN1uh5PmHT1F2BNsbc21MIS0AMFFA73oODlp/4ckpBR4o5AxRwV+8f43Cd52UL4MgMkKj/A+QfZ7iK9IDb0h5A==, tarball: https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/markdown@3.21.0': - resolution: {integrity: sha512-VhnHhB9LeEfB2xnbNZUV2itK0ae4iERbr+a4/ZrlZB9auPtggW4fIob/bQGOaeU+GZtk1xDLyKUDyKEEwgTXMw==, tarball: https://registry.npmjs.org/@tiptap/markdown/-/markdown-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tiptap/pm@3.21.0': - resolution: {integrity: sha512-I3sNo7oMMsR6FFz1ecvPb9uCF0VQuS2WV67j8Io2M7DJicRWCE/GM5DaiYjTeWBbnByk6BuG0txoJATAqPVliQ==, tarball: https://registry.npmjs.org/@tiptap/pm/-/pm-3.21.0.tgz} - - '@tiptap/starter-kit@3.21.0': - resolution: {integrity: sha512-w7fWxglDtqXFBgRYH+LforJyUboSAQllnWQbGVSTyX4rsICqZjkb3f6CTSUWpGoGKmlmbb2ZpEuoik7tur9d8Q==, tarball: https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.21.0.tgz} - - '@tiptap/suggestion@3.21.0': - resolution: {integrity: sha512-ShgbaH2hbCRLV+AaVuSx7a/nzPOSdUeW0TNeuxZfWim62MBcx33qtllja1zOoY2tgGXokEihuzFODx83IyvGfQ==, tarball: https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.21.0.tgz} - peerDependencies: - '@tiptap/core': ^3.21.0 - '@tiptap/pm': ^3.21.0 - - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==, tarball: https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz} - - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, tarball: https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz} - - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==, tarball: https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, tarball: https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz} - - '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==, tarball: https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz} - - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==, tarball: https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz} - - '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==, tarball: https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz} - - '@types/node@25.0.10': - resolution: {integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==, tarball: https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, tarball: https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, tarball: https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz} - - '@typescript-eslint/eslint-plugin@8.57.2': - resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==, tarball: https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.57.2 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/parser@8.57.2': - resolution: {integrity: sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==, tarball: https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/project-service@8.57.2': - resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==, tarball: https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/scope-manager@8.57.2': - resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==, tarball: https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.57.2': - resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==, tarball: https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/type-utils@8.57.2': - resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==, tarball: https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/types@8.57.2': - resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==, tarball: https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.57.2': - resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==, tarball: https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/utils@8.57.2': - resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==, tarball: https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/visitor-keys@8.57.2': - resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==, tarball: https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@use-gesture/core@10.3.1': - resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==, tarball: https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz} - - '@use-gesture/vanilla@10.3.1': - resolution: {integrity: sha512-lT4scGLu59ovA3zmtUonukAGcA0AdOOh+iwNDS05Bsu7Lq9aZToDHhI6D8Q2qvsVraovtsLLYwPrWdG/noMAKw==, tarball: https://registry.npmjs.org/@use-gesture/vanilla/-/vanilla-10.3.1.tgz} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==, tarball: https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==, tarball: https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz} - - aria-query@5.3.1: - resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==, tarball: https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz} - engines: {node: '>= 0.4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==, tarball: https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz} - engines: {node: '>= 0.4'} - - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz} - engines: {node: 18 || 20 || >=22} - - bits-ui@2.16.4: - resolution: {integrity: sha512-76dKbW0DGplG7qnVM3kljE2CmCXqh9tj9OfVo0DvC/ZGRkZNJ/auU/aQnMKBxDnSqRvsz2mZBccBkUKyF4/SoQ==, tarball: https://registry.npmjs.org/bits-ui/-/bits-ui-2.16.4.tgz} - engines: {node: '>=20'} - peerDependencies: - '@internationalized/date': ^3.8.1 - svelte: ^5.33.0 - - blake3-wasm@2.1.5: - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==, tarball: https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz} - - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz} - engines: {node: 18 || 20 || >=22} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz} - engines: {node: '>= 14.16.0'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, tarball: https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz} - engines: {node: '>=6'} - - contrail@https://codeload.github.com/flo-bit/contrail/tar.gz/ee24d4faa5d5e1515fa71398bca035b191880dbf: - resolution: {tarball: https://codeload.github.com/flo-bit/contrail/tar.gz/ee24d4faa5d5e1515fa71398bca035b191880dbf} - version: 0.0.2 - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==, tarball: https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz} - engines: {node: '>= 0.6'} - - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==, tarball: https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz} - engines: {node: '>=18'} - - core-js@3.49.0: - resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==, tarball: https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz} - - crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, tarball: https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz} - engines: {node: '>= 8'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, tarball: https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz} - engines: {node: '>=4'} - hasBin: true - - custom-event-polyfill@1.0.7: - resolution: {integrity: sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==, tarball: https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, tarball: https://registry.npmjs.org/debug/-/debug-4.4.3.tgz} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, tarball: https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz} - engines: {node: '>=0.10.0'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, tarball: https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz} - engines: {node: '>=6'} - - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==, tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz} - engines: {node: '>=8'} - - devalue@5.6.4: - resolution: {integrity: sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==, tarball: https://registry.npmjs.org/devalue/-/devalue-5.6.4.tgz} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, tarball: https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz} - - dompurify@3.3.3: - resolution: {integrity: sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==, tarball: https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz} - - emoji-picker-element@1.29.1: - resolution: {integrity: sha512-TOiHzu9Dqib3x4MwcAi3wi3RdyT4SoeB4b15AvH1ks4SBwTl7DeebhZ0d3x6dNi4XfNU7IGRZ7NBQllj0RqwrQ==, tarball: https://registry.npmjs.org/emoji-picker-element/-/emoji-picker-element-1.29.1.tgz} - - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==, tarball: https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz} - engines: {node: '>=10.13.0'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, tarball: https://registry.npmjs.org/entities/-/entities-4.5.0.tgz} - engines: {node: '>=0.12'} - - error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==, tarball: https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz} - - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.27.4: - resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz} - engines: {node: '>=18'} - hasBin: true - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} - engines: {node: '>=10'} - - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==, tarball: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-svelte@3.16.0: - resolution: {integrity: sha512-DJXxqpYZUxcE0SfYo8EJzV2ZC+zAD7fJp1n1HwcEMRR1cOEUYvjT9GuzJeNghMjgb7uxuK3IJAzI+x6zzUxO5A==, tarball: https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.16.0.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==, tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==, tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint@10.1.0: - resolution: {integrity: sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==, tarball: https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==, tarball: https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz} - - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==, tarball: https://registry.npmjs.org/espree/-/espree-10.4.0.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==, tarball: https://registry.npmjs.org/espree/-/espree-11.2.0.tgz} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==, tarball: https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz} - engines: {node: '>=0.10'} - - esrap@2.2.4: - resolution: {integrity: sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==, tarball: https://registry.npmjs.org/esrap/-/esrap-2.2.4.tgz} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} - engines: {node: '>=0.10.0'} - - event-target-polyfill@0.0.4: - resolution: {integrity: sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==, tarball: https://registry.npmjs.org/event-target-polyfill/-/event-target-polyfill-0.0.4.tgz} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, tarball: https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==, tarball: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz} - engines: {node: '>=16.0.0'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, tarball: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==, tarball: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz} - engines: {node: '>=16'} - - flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==, tarball: https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-tsconfig@4.13.7: - resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==, tarball: https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz} - engines: {node: '>=10.13.0'} - - globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==, tarball: https://registry.npmjs.org/globals/-/globals-16.5.0.tgz} - engines: {node: '>=18'} - - globals@17.4.0: - resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==, tarball: https://registry.npmjs.org/globals/-/globals-17.4.0.tgz} - engines: {node: '>=18'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz} - - highlight.js@11.11.1: - resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==, tarball: https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz} - engines: {node: '>=12.0.0'} - - hls.js@1.6.15: - resolution: {integrity: sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==, tarball: https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz} - - hono@4.12.9: - resolution: {integrity: sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==, tarball: https://registry.npmjs.org/hono/-/hono-4.12.9.tgz} - engines: {node: '>=16.9.0'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, tarball: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz} - engines: {node: '>= 4'} - - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==, tarball: https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz} - engines: {node: '>= 4'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz} - engines: {node: '>=0.8.19'} - - inline-style-parser@0.2.7: - resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==, tarball: https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz} - - is-emoji-supported@0.0.5: - resolution: {integrity: sha512-WOlXUhDDHxYqcSmFZis+xWhhqXiK2SU0iYiqmth5Ip0FHLZQAt9rKL5ahnilE8/86WH8tZ3bmNNNC+bTzamqlw==, tarball: https://registry.npmjs.org/is-emoji-supported/-/is-emoji-supported-0.0.5.tgz} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz} - engines: {node: '>=0.10.0'} - - is-reference@3.0.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==, tarball: https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz} - - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==, tarball: https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, tarball: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, tarball: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, tarball: https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz} - engines: {node: '>=6'} - - known-css-properties@0.37.0: - resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==, tarball: https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, tarball: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz} - engines: {node: '>= 0.8.0'} - - lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==, tarball: https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] - - lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==, tarball: https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - - lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==, tarball: https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - - lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==, tarball: https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - - lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==, tarball: https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - - lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==, tarball: https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==, tarball: https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==, tarball: https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==, tarball: https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==, tarball: https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - - lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==, tarball: https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - - lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==, tarball: https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz} - engines: {node: '>= 12.0.0'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, tarball: https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz} - engines: {node: '>=10'} - - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==, tarball: https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz} - - linkifyjs@4.3.2: - resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==, tarball: https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz} - - loadjs@4.3.0: - resolution: {integrity: sha512-vNX4ZZLJBeDEOBvdr2v/F+0aN5oMuPu7JTqrMwp+DtgK+AryOlpy6Xtm2/HpNr+azEa828oQjOtWsB6iDtSfSQ==, tarball: https://registry.npmjs.org/loadjs/-/loadjs-4.3.0.tgz} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==, tarball: https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, tarball: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz} - engines: {node: '>=10'} - - lowlight@3.3.0: - resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==, tarball: https://registry.npmjs.org/lowlight/-/lowlight-3.3.0.tgz} - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, tarball: https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz} - hasBin: true - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz} - - markdown-it@14.1.1: - resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==, tarball: https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz} - hasBin: true - - marked@17.0.5: - resolution: {integrity: sha512-6hLvc0/JEbRjRgzI6wnT2P1XuM1/RrrDEX0kPt0N7jGm1133g6X7DlxFasUIx+72aKAr904GTxhSLDrd5DIlZg==, tarball: https://registry.npmjs.org/marked/-/marked-17.0.5.tgz} - engines: {node: '>= 20'} - hasBin: true - - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==, tarball: https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz} - - mini-svg-data-uri@1.4.4: - resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==, tarball: https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz} - hasBin: true - - miniflare@4.20260317.3: - resolution: {integrity: sha512-tK78D3X4q30/SXqVwMhWrUfH+ffRou9dJLC+jkhNy5zh1I7i7T4JH6xihOvYxdCSBavJ5fQXaaxDJz6orh09BA==, tarball: https://registry.npmjs.org/miniflare/-/miniflare-4.20260317.3.tgz} - engines: {node: '>=18.0.0'} - hasBin: true - - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz} - engines: {node: 18 || 20 || >=22} - - mode-watcher@1.1.0: - resolution: {integrity: sha512-mUT9RRGPDYenk59qJauN1rhsIMKBmWA3xMF+uRwE8MW/tjhaDSCCARqkSuDTq8vr4/2KcAxIGVjACxTjdk5C3g==, tarball: https://registry.npmjs.org/mode-watcher/-/mode-watcher-1.1.0.tgz} - peerDependencies: - svelte: ^5.27.0 - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, tarball: https://registry.npmjs.org/mri/-/mri-1.2.0.tgz} - engines: {node: '>=4'} - - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==, tarball: https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz} - engines: {node: '>=10'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@5.1.7: - resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz} - engines: {node: ^18 || >=20} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz} - - number-flow@0.6.0: - resolution: {integrity: sha512-K8flNq2Wqus53vjp/btVo3qXFkagF8dIdYavreBfE7hlvFFG/b1HMGEH6nZL+mlrJ+4lbLP9OmPv3t2rmRkpSQ==, tarball: https://registry.npmjs.org/number-flow/-/number-flow-0.6.0.tgz} - - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==, tarball: https://registry.npmjs.org/obug/-/obug-2.1.1.tgz} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, tarball: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz} - engines: {node: '>= 0.8.0'} - - orderedmap@2.1.1: - resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==, tarball: https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, tarball: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, tarball: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz} - engines: {node: '>=10'} - - partysocket@1.1.16: - resolution: {integrity: sha512-d7xFv+ZC7x0p/DAHWJ5FhxQhimIx+ucyZY+kxL0cKddLBmK9c4p2tEA/L+dOOrWm6EYrRwrBjKQV0uSzOY9x1w==, tarball: https://registry.npmjs.org/partysocket/-/partysocket-1.1.16.tgz} - peerDependencies: - react: '>=17' - peerDependenciesMeta: - react: - optional: true - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, tarball: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz} - engines: {node: '>=8'} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, tarball: https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, tarball: https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz} - - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==, tarball: https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz} - engines: {node: '>=12'} - - plyr@3.8.4: - resolution: {integrity: sha512-DrzLbK9Wol3zeiuZCleD9aUOl0KAaBHR9H6WVVVYPZ4Ya+LYxUFTgSF1jooHcMQCv96Ws96wCaZzIoP3bES8pQ==, tarball: https://registry.npmjs.org/plyr/-/plyr-3.8.4.tgz} - - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==, tarball: https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-safe-parser@7.0.1: - resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==, tarball: https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.4.31 - - postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==, tarball: https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==, tarball: https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz} - engines: {node: '>=4'} - - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz} - engines: {node: '>= 0.8.0'} - - prettier-plugin-svelte@3.5.1: - resolution: {integrity: sha512-65+fr5+cgIKWKiqM1Doum4uX6bY8iFCdztvvp2RcF+AJoieaw9kJOFMNcJo/bkmKYsxFaM9OsVZK/gWauG/5mg==, tarball: https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.5.1.tgz} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - - prettier-plugin-tailwindcss@0.7.2: - resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==, tarball: https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.2.tgz} - engines: {node: '>=20.19'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-hermes': '*' - '@prettier/plugin-oxc': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-multiline-arrays: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-svelte: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-hermes': - optional: true - '@prettier/plugin-oxc': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - '@zackad/prettier-plugin-twig': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-multiline-arrays: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-svelte: - optional: true - - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==, tarball: https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz} - engines: {node: '>=14'} - hasBin: true - - prosemirror-changeset@2.4.0: - resolution: {integrity: sha512-LvqH2v7Q2SF6yxatuPP2e8vSUKS/L+xAU7dPDC4RMyHMhZoGDfBC74mYuyYF4gLqOEG758wajtyhNnsTkuhvng==, tarball: https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.4.0.tgz} - - prosemirror-collab@1.3.1: - resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==, tarball: https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz} - - prosemirror-commands@1.7.1: - resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==, tarball: https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz} - - prosemirror-dropcursor@1.8.2: - resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==, tarball: https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz} - - prosemirror-gapcursor@1.4.1: - resolution: {integrity: sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==, tarball: https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.1.tgz} - - prosemirror-history@1.5.0: - resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==, tarball: https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz} - - prosemirror-inputrules@1.5.1: - resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==, tarball: https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz} - - prosemirror-keymap@1.2.3: - resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==, tarball: https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz} - - prosemirror-markdown@1.13.4: - resolution: {integrity: sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw==, tarball: https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.4.tgz} - - prosemirror-menu@1.3.0: - resolution: {integrity: sha512-TImyPXCHPcDsSka2/lwJ6WjTASr4re/qWq1yoTTuLOqfXucwF6VcRa2LWCkM/EyTD1UO3CUwiH8qURJoWJRxwg==, tarball: https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.3.0.tgz} - - prosemirror-model@1.25.4: - resolution: {integrity: sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==, tarball: https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz} - - prosemirror-schema-basic@1.2.4: - resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==, tarball: https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz} - - prosemirror-schema-list@1.5.1: - resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==, tarball: https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz} - - prosemirror-state@1.4.4: - resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==, tarball: https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz} - - prosemirror-tables@1.8.5: - resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==, tarball: https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz} - - prosemirror-trailing-node@3.0.0: - resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==, tarball: https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz} - peerDependencies: - prosemirror-model: ^1.22.1 - prosemirror-state: ^1.4.2 - prosemirror-view: ^1.33.8 - - prosemirror-transform@1.11.0: - resolution: {integrity: sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==, tarball: https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.11.0.tgz} - - prosemirror-view@1.41.7: - resolution: {integrity: sha512-jUwKNCEIGiqdvhlS91/2QAg21e4dfU5bH2iwmSDQeosXJgKF7smG0YSplOWK0cjSNgIqXe7VXqo7EIfUFJdt3w==, tarball: https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.7.tgz} - - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, tarball: https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz} - engines: {node: '>=6'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz} - engines: {node: '>=6'} - - rangetouch@2.0.1: - resolution: {integrity: sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==, tarball: https://registry.npmjs.org/rangetouch/-/rangetouch-2.0.1.tgz} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==, tarball: https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz} - engines: {node: '>= 14.18.0'} - - regexparam@3.0.0: - resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==, tarball: https://registry.npmjs.org/regexparam/-/regexparam-3.0.0.tgz} - engines: {node: '>=8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, tarball: https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} - - rolldown@1.0.0-rc.12: - resolution: {integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==, tarball: https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.12.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - - rope-sequence@1.3.4: - resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==, tarball: https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz} - - runed@0.23.4: - resolution: {integrity: sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA==, tarball: https://registry.npmjs.org/runed/-/runed-0.23.4.tgz} - peerDependencies: - svelte: ^5.7.0 - - runed@0.25.0: - resolution: {integrity: sha512-7+ma4AG9FT2sWQEA0Egf6mb7PBT2vHyuHail1ie8ropfSjvZGtEAx8YTmUjv/APCsdRRxEVvArNjALk9zFSOrg==, tarball: https://registry.npmjs.org/runed/-/runed-0.25.0.tgz} - peerDependencies: - svelte: ^5.7.0 - - runed@0.28.0: - resolution: {integrity: sha512-k2xx7RuO9hWcdd9f+8JoBeqWtYrm5CALfgpkg2YDB80ds/QE4w0qqu34A7fqiAwiBBSBQOid7TLxwxVC27ymWQ==, tarball: https://registry.npmjs.org/runed/-/runed-0.28.0.tgz} - peerDependencies: - svelte: ^5.7.0 - - runed@0.35.1: - resolution: {integrity: sha512-2F4Q/FZzbeJTFdIS/PuOoPRSm92sA2LhzTnv6FXhCoENb3huf5+fDuNOg1LNvGOouy3u/225qxmuJvcV3IZK5Q==, tarball: https://registry.npmjs.org/runed/-/runed-0.35.1.tgz} - peerDependencies: - '@sveltejs/kit': ^2.21.0 - svelte: ^5.7.0 - peerDependenciesMeta: - '@sveltejs/kit': - optional: true - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, tarball: https://registry.npmjs.org/sade/-/sade-1.8.1.tgz} - engines: {node: '>=6'} - - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==, tarball: https://registry.npmjs.org/semver/-/semver-7.7.4.tgz} - engines: {node: '>=10'} - hasBin: true - - set-cookie-parser@3.1.0: - resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==, tarball: https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.0.tgz} - - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==, tarball: https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz} - engines: {node: '>=8'} - - sirv@3.0.2: - resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==, tarball: https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz} - engines: {node: '>=18'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz} - engines: {node: '>=0.10.0'} - - style-to-object@1.0.14: - resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==, tarball: https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz} - - supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz} - engines: {node: '>=18'} - - svelte-check@4.4.5: - resolution: {integrity: sha512-1bSwIRCvvmSHrlK52fOlZmVtUZgil43jNL/2H18pRpa+eQjzGt6e3zayxhp1S7GajPFKNM/2PMCG+DZFHlG9fw==, tarball: https://registry.npmjs.org/svelte-check/-/svelte-check-4.4.5.tgz} - engines: {node: '>= 18.0.0'} - hasBin: true - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: '>=5.0.0' - - svelte-eslint-parser@1.6.0: - resolution: {integrity: sha512-qoB1ehychT6OxEtQAqc/guSqLS20SlA53Uijl7x375s8nlUT0lb9ol/gzraEEatQwsyPTJo87s2CmKL9Xab+Uw==, tarball: https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.6.0.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.30.3} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte-sonner@1.1.0: - resolution: {integrity: sha512-3lYM6ZIqWe+p9vwwWHGWP/ZdvHiUtzURsud2quIxivrX4rvpXh6i+geBGn0m3JS6KwW6W8VgbOl3xQMcDuh6gg==, tarball: https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-1.1.0.tgz} - peerDependencies: - svelte: ^5.0.0 - - svelte-tiptap@3.0.1: - resolution: {integrity: sha512-Vi3kVGOd01f7mslOxGbJB7z2QavdvH+6WffhB+Y5fleTiZaW0YWqIboyO2u/uh4BQeosiINmmuRJ+Qwb7mYP+A==, tarball: https://registry.npmjs.org/svelte-tiptap/-/svelte-tiptap-3.0.1.tgz} - peerDependencies: - '@floating-ui/dom': ^1.0.0 - '@tiptap/core': ^3.0.0 - '@tiptap/extension-bubble-menu': ^3.0.0 - '@tiptap/extension-floating-menu': ^3.0.0 - '@tiptap/pm': ^3.0.0 - svelte: ^5.0.0 - - svelte-toolbelt@0.10.6: - resolution: {integrity: sha512-YWuX+RE+CnWYx09yseAe4ZVMM7e7GRFZM6OYWpBKOb++s+SQ8RBIMMe+Bs/CznBMc0QPLjr+vDBxTAkozXsFXQ==, tarball: https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.10.6.tgz} - engines: {node: '>=18', pnpm: '>=8.7.0'} - peerDependencies: - svelte: ^5.30.2 - - svelte-toolbelt@0.7.1: - resolution: {integrity: sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ==, tarball: https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.7.1.tgz} - engines: {node: '>=18', pnpm: '>=8.7.0'} - peerDependencies: - svelte: ^5.0.0 - - svelte@5.55.0: - resolution: {integrity: sha512-SThllKq6TRMBwPtat7ASnm/9CDXnIhBR0NPGw0ujn2DVYx9rVwsPZxDaDQcYGdUz/3BYVsCzdq7pZarRQoGvtw==, tarball: https://registry.npmjs.org/svelte/-/svelte-5.55.0.tgz} - engines: {node: '>=18'} - - tabbable@6.4.0: - resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==, tarball: https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz} - - tailwind-merge@3.5.0: - resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==, tarball: https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz} - - tailwind-variants@3.2.2: - resolution: {integrity: sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg==, tarball: https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-3.2.2.tgz} - engines: {node: '>=16.x', pnpm: '>=7.x'} - peerDependencies: - tailwind-merge: '>=3.0.0' - tailwindcss: '*' - peerDependenciesMeta: - tailwind-merge: - optional: true - - tailwindcss@4.2.2: - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==, tarball: https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz} - - tapable@2.3.2: - resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz} - engines: {node: '>=6'} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==, tarball: https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz} - engines: {node: '>=12.0.0'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, tarball: https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz} - engines: {node: '>=6'} - - ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==, tarball: https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz} - - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==, tarball: https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz} - engines: {node: '>=18.0.0'} - hasBin: true - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz} - engines: {node: '>= 0.8.0'} - - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz} - engines: {node: '>=16'} - - typescript-eslint@8.57.2: - resolution: {integrity: sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==, tarball: https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.2.tgz} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - typescript@6.0.2: - resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==, tarball: https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz} - engines: {node: '>=14.17'} - hasBin: true - - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, tarball: https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz} - - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz} - - undici@7.24.4: - resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==, tarball: https://registry.npmjs.org/undici/-/undici-7.24.4.tgz} - engines: {node: '>=20.18.1'} - - unenv@2.0.0-rc.24: - resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==, tarball: https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz} - - unicode-segmenter@0.14.5: - resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==, tarball: https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz} - - url-polyfill@1.1.14: - resolution: {integrity: sha512-p4f3TTAG6ADVF3mwbXw7hGw+QJyw5CnNGvYh5fCuQQZIiuKUswqcznyV3pGDP9j0TSmC4UvRKm8kl1QsX1diiQ==, tarball: https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.14.tgz} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz} - - valibot@1.3.1: - resolution: {integrity: sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==, tarball: https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz} - peerDependencies: - typescript: '>=5' - peerDependenciesMeta: - typescript: - optional: true - - vite@8.0.3: - resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==, tarball: https://registry.npmjs.org/vite/-/vite-8.0.3.tgz} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.1.0 - esbuild: ^0.27.0 - jiti: '>=1.21.0' - less: ^4.0.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - '@vitejs/devtools': - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitefu@1.1.2: - resolution: {integrity: sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==, tarball: https://registry.npmjs.org/vitefu/-/vitefu-1.1.2.tgz} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - - w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, tarball: https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz} - - web-haptics@0.0.6: - resolution: {integrity: sha512-eCzcf1LDi20+Fr0x9V3OkX92k0gxEQXaHajmhXHitsnk6SxPeshv8TBtBRqxyst8HI1uf2FyFVE7QS3jo1gkrw==, tarball: https://registry.npmjs.org/web-haptics/-/web-haptics-0.0.6.tgz} - peerDependencies: - react: '>=18' - react-dom: '>=18' - svelte: '>=4' - vue: '>=3' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - svelte: - optional: true - vue: - optional: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: https://registry.npmjs.org/which/-/which-2.0.2.tgz} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, tarball: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz} - engines: {node: '>=0.10.0'} - - workerd@1.20260317.1: - resolution: {integrity: sha512-ZuEq1OdrJBS+NV+L5HMYPCzVn49a2O60slQiiLpG44jqtlOo+S167fWC76kEXteXLLLydeuRrluRel7WdOUa4g==, tarball: https://registry.npmjs.org/workerd/-/workerd-1.20260317.1.tgz} - engines: {node: '>=16'} - hasBin: true - - worktop@0.8.0-next.18: - resolution: {integrity: sha512-+TvsA6VAVoMC3XDKR5MoC/qlLqDixEfOBysDEKnPIPou/NvoPWCAuXHXMsswwlvmEuvX56lQjvELLyLuzTKvRw==, tarball: https://registry.npmjs.org/worktop/-/worktop-0.8.0-next.18.tgz} - engines: {node: '>=12'} - - wrangler@4.78.0: - resolution: {integrity: sha512-He/vUhk4ih0D0eFmtNnlbT6Od8j+BEokaSR+oYjbVsH0SWIrIch+eHqfLRSBjBQaOoh6HCNxcafcIkBm2u0Hag==, tarball: https://registry.npmjs.org/wrangler/-/wrangler-4.78.0.tgz} - engines: {node: '>=20.3.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20260317.1 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, tarball: https://registry.npmjs.org/ws/-/ws-8.18.0.tgz} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - yaml@1.10.3: - resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==, tarball: https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz} - engines: {node: '>= 6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, tarball: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz} - engines: {node: '>=10'} - - yocto-queue@1.2.2: - resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==, tarball: https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz} - engines: {node: '>=12.20'} - - youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==, tarball: https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz} - - youch@4.1.0-beta.10: - resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==, tarball: https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz} - - zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==, tarball: https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz} - -snapshots: - - '@atcute/atproto@3.1.10': - dependencies: - '@atcute/lexicons': 1.2.9 - - '@atcute/bluesky-richtext-segmenter@3.0.0': {} - - '@atcute/bluesky@3.3.0': - dependencies: - '@atcute/atproto': 3.1.10 - '@atcute/lexicons': 1.2.9 - - '@atcute/car@5.1.1': - dependencies: - '@atcute/cbor': 2.3.2 - '@atcute/cid': 2.4.1 - '@atcute/uint8array': 1.1.1 - '@atcute/varint': 2.0.0 - - '@atcute/cbor@2.3.2': - dependencies: - '@atcute/cid': 2.4.1 - '@atcute/multibase': 1.2.0 - '@atcute/uint8array': 1.1.1 - - '@atcute/cid@2.4.1': - dependencies: - '@atcute/multibase': 1.2.0 - '@atcute/uint8array': 1.1.1 - - '@atcute/client@4.2.1': - dependencies: - '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 - - '@atcute/crypto@2.4.1': - dependencies: - '@atcute/multibase': 1.2.0 - '@atcute/uint8array': 1.1.1 - '@noble/secp256k1': 3.0.0 - - '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4)': - dependencies: - '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 - '@atcute/util-fetch': 1.0.5 - '@badrap/valita': 0.4.6 - - '@atcute/identity@1.1.4': - dependencies: - '@atcute/lexicons': 1.2.9 - '@badrap/valita': 0.4.6 - - '@atcute/jetstream@1.1.2': - dependencies: - '@atcute/lexicons': 1.2.9 - '@badrap/valita': 0.4.6 - '@mary-ext/event-iterator': 1.0.0 - '@mary-ext/simple-event-emitter': 1.0.1 - partysocket: 1.1.16 - type-fest: 4.41.0 - yocto-queue: 1.2.2 - transitivePeerDependencies: - - react - - '@atcute/lex-cli@2.5.3': - dependencies: - '@atcute/identity': 1.1.4 - '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) - '@atcute/lexicon-doc': 2.1.2 - '@atcute/lexicon-resolver': 0.1.6(@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4))(@atcute/identity@1.1.4) - '@atcute/lexicons': 1.2.9 - '@badrap/valita': 0.4.6 - '@optique/core': 0.6.11 - '@optique/run': 0.6.11 - picocolors: 1.1.1 - prettier: 3.8.1 - - '@atcute/lexicon-doc@2.1.2': - dependencies: - '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 - '@atcute/uint8array': 1.1.1 - '@atcute/util-text': 1.2.0 - '@badrap/valita': 0.4.6 - - '@atcute/lexicon-resolver@0.1.6(@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4))(@atcute/identity@1.1.4)': - dependencies: - '@atcute/crypto': 2.4.1 - '@atcute/identity': 1.1.4 - '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) - '@atcute/lexicon-doc': 2.1.2 - '@atcute/lexicons': 1.2.9 - '@atcute/repo': 0.1.3 - '@atcute/util-fetch': 1.0.5 - '@badrap/valita': 0.4.6 - - '@atcute/lexicons@1.2.9': - dependencies: - '@atcute/uint8array': 1.1.1 - '@atcute/util-text': 1.2.0 - '@standard-schema/spec': 1.1.0 - esm-env: 1.2.2 - - '@atcute/mst@1.0.0': - dependencies: - '@atcute/cbor': 2.3.2 - '@atcute/cid': 2.4.1 - '@atcute/uint8array': 1.1.1 - - '@atcute/multibase@1.2.0': - dependencies: - '@atcute/uint8array': 1.1.1 - - '@atcute/oauth-crypto@0.1.0': - dependencies: - '@atcute/multibase': 1.2.0 - '@atcute/uint8array': 1.1.1 - '@badrap/valita': 0.4.6 - nanoid: 5.1.7 - - '@atcute/oauth-keyset@0.1.0': - dependencies: - '@atcute/oauth-crypto': 0.1.0 - - '@atcute/oauth-node-client@1.1.0': - dependencies: - '@atcute/client': 4.2.1 - '@atcute/identity': 1.1.4 - '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) - '@atcute/lexicons': 1.2.9 - '@atcute/oauth-crypto': 0.1.0 - '@atcute/oauth-keyset': 0.1.0 - '@atcute/oauth-types': 0.1.1 - '@atcute/util-fetch': 1.0.5 - '@badrap/valita': 0.4.6 - nanoid: 5.1.7 - - '@atcute/oauth-types@0.1.1': - dependencies: - '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 - '@atcute/oauth-keyset': 0.1.0 - '@badrap/valita': 0.4.6 - - '@atcute/repo@0.1.3': - dependencies: - '@atcute/car': 5.1.1 - '@atcute/cbor': 2.3.2 - '@atcute/cid': 2.4.1 - '@atcute/crypto': 2.4.1 - '@atcute/lexicons': 1.2.9 - '@atcute/mst': 1.0.0 - '@atcute/uint8array': 1.1.1 - - '@atcute/tid@1.1.2': - dependencies: - '@atcute/time-ms': 1.3.2 - - '@atcute/time-ms@1.3.2': {} - - '@atcute/uint8array@1.1.1': {} - - '@atcute/util-fetch@1.0.5': - dependencies: - '@badrap/valita': 0.4.6 - - '@atcute/util-text@1.2.0': - dependencies: - unicode-segmenter: 0.14.5 - - '@atcute/varint@2.0.0': {} - - '@badrap/valita@0.4.6': {} - - '@cloudflare/kv-asset-handler@0.4.2': {} - - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1)': - dependencies: - unenv: 2.0.0-rc.24 - optionalDependencies: - workerd: 1.20260317.1 - - '@cloudflare/workerd-darwin-64@1.20260317.1': - optional: true - - '@cloudflare/workerd-darwin-arm64@1.20260317.1': - optional: true - - '@cloudflare/workerd-linux-64@1.20260317.1': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20260317.1': - optional: true - - '@cloudflare/workerd-windows-64@1.20260317.1': - optional: true - - '@cloudflare/workers-types@4.20260317.1': {} - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@emnapi/core@1.9.1': - dependencies: - '@emnapi/wasi-threads': 1.2.0 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.9.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.2.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@esbuild/aix-ppc64@0.27.3': - optional: true - - '@esbuild/aix-ppc64@0.27.4': - optional: true - - '@esbuild/android-arm64@0.27.3': - optional: true - - '@esbuild/android-arm64@0.27.4': - optional: true - - '@esbuild/android-arm@0.27.3': - optional: true - - '@esbuild/android-arm@0.27.4': - optional: true - - '@esbuild/android-x64@0.27.3': - optional: true - - '@esbuild/android-x64@0.27.4': - optional: true - - '@esbuild/darwin-arm64@0.27.3': - optional: true - - '@esbuild/darwin-arm64@0.27.4': - optional: true - - '@esbuild/darwin-x64@0.27.3': - optional: true - - '@esbuild/darwin-x64@0.27.4': - optional: true - - '@esbuild/freebsd-arm64@0.27.3': - optional: true - - '@esbuild/freebsd-arm64@0.27.4': - optional: true - - '@esbuild/freebsd-x64@0.27.3': - optional: true - - '@esbuild/freebsd-x64@0.27.4': - optional: true - - '@esbuild/linux-arm64@0.27.3': - optional: true - - '@esbuild/linux-arm64@0.27.4': - optional: true - - '@esbuild/linux-arm@0.27.3': - optional: true - - '@esbuild/linux-arm@0.27.4': - optional: true - - '@esbuild/linux-ia32@0.27.3': - optional: true - - '@esbuild/linux-ia32@0.27.4': - optional: true - - '@esbuild/linux-loong64@0.27.3': - optional: true - - '@esbuild/linux-loong64@0.27.4': - optional: true - - '@esbuild/linux-mips64el@0.27.3': - optional: true - - '@esbuild/linux-mips64el@0.27.4': - optional: true - - '@esbuild/linux-ppc64@0.27.3': - optional: true - - '@esbuild/linux-ppc64@0.27.4': - optional: true - - '@esbuild/linux-riscv64@0.27.3': - optional: true - - '@esbuild/linux-riscv64@0.27.4': - optional: true - - '@esbuild/linux-s390x@0.27.3': - optional: true - - '@esbuild/linux-s390x@0.27.4': - optional: true - - '@esbuild/linux-x64@0.27.3': - optional: true - - '@esbuild/linux-x64@0.27.4': - optional: true - - '@esbuild/netbsd-arm64@0.27.3': - optional: true - - '@esbuild/netbsd-arm64@0.27.4': - optional: true - - '@esbuild/netbsd-x64@0.27.3': - optional: true - - '@esbuild/netbsd-x64@0.27.4': - optional: true - - '@esbuild/openbsd-arm64@0.27.3': - optional: true - - '@esbuild/openbsd-arm64@0.27.4': - optional: true - - '@esbuild/openbsd-x64@0.27.3': - optional: true - - '@esbuild/openbsd-x64@0.27.4': - optional: true - - '@esbuild/openharmony-arm64@0.27.3': - optional: true - - '@esbuild/openharmony-arm64@0.27.4': - optional: true - - '@esbuild/sunos-x64@0.27.3': - optional: true - - '@esbuild/sunos-x64@0.27.4': - optional: true - - '@esbuild/win32-arm64@0.27.3': - optional: true - - '@esbuild/win32-arm64@0.27.4': - optional: true - - '@esbuild/win32-ia32@0.27.3': - optional: true - - '@esbuild/win32-ia32@0.27.4': - optional: true - - '@esbuild/win32-x64@0.27.3': - optional: true - - '@esbuild/win32-x64@0.27.4': - optional: true - - '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.6.1))': - dependencies: - eslint: 10.1.0(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/compat@2.0.3(eslint@10.1.0(jiti@2.6.1))': - dependencies: - '@eslint/core': 1.1.1 - optionalDependencies: - eslint: 10.1.0(jiti@2.6.1) - - '@eslint/config-array@0.23.3': - dependencies: - '@eslint/object-schema': 3.0.3 - debug: 4.4.3 - minimatch: 10.2.4 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.5.3': - dependencies: - '@eslint/core': 1.1.1 - - '@eslint/core@1.1.1': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/js@10.0.1(eslint@10.1.0(jiti@2.6.1))': - optionalDependencies: - eslint: 10.1.0(jiti@2.6.1) - - '@eslint/object-schema@3.0.3': {} - - '@eslint/plugin-kit@0.6.1': - dependencies: - '@eslint/core': 1.1.1 - levn: 0.4.1 - - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 - - '@floating-ui/dom@1.7.6': - dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 - - '@floating-ui/utils@0.2.11': {} - - '@foxui/core@0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2)': - dependencies: - '@number-flow/svelte': 0.4.0(svelte@5.55.0) - bits-ui: 2.16.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - clsx: 2.1.1 - dompurify: 3.3.3 - mode-watcher: 1.1.0(svelte@5.55.0) - svelte: 5.55.0 - svelte-sonner: 1.1.0(svelte@5.55.0) - tailwind-merge: 3.5.0 - tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.2) - tailwindcss: 4.2.2 - web-haptics: 0.0.6(svelte@5.55.0) - transitivePeerDependencies: - - '@internationalized/date' - - '@sveltejs/kit' - - react - - react-dom - - vue - - '@foxui/social@0.8.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(highlight.js@11.11.1)(svelte@5.55.0)(tailwindcss@4.2.2)': - dependencies: - '@atcute/bluesky': 3.3.0 - '@atcute/bluesky-richtext-segmenter': 3.0.0 - '@foxui/core': 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2) - '@foxui/text': 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(highlight.js@11.11.1)(svelte@5.55.0)(tailwindcss@4.2.2) - '@foxui/time': 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2) - '@use-gesture/vanilla': 10.3.1 - bits-ui: 2.16.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - emoji-picker-element: 1.29.1 - hls.js: 1.6.15 - is-emoji-supported: 0.0.5 - plyr: 3.8.4 - svelte: 5.55.0 - tailwindcss: 4.2.2 - transitivePeerDependencies: - - '@internationalized/date' - - '@sveltejs/kit' - - '@tiptap/extension-code-block' - - '@tiptap/extensions' - - highlight.js - - react - - react-dom - - vue - - '@foxui/text@0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(highlight.js@11.11.1)(svelte@5.55.0)(tailwindcss@4.2.2)': - dependencies: - '@floating-ui/dom': 1.7.6 - '@foxui/core': 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2) - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-bubble-menu': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-code-block-lowlight': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(highlight.js@11.11.1)(lowlight@3.3.0) - '@tiptap/extension-document': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-dropcursor': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-floating-menu': 3.21.0(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-history': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-image': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-link': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-paragraph': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-placeholder': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-strike': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-text': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-typography': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-underline': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/markdown': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - '@tiptap/starter-kit': 3.21.0 - '@tiptap/suggestion': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - bits-ui: 2.16.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - lowlight: 3.3.0 - state: link:@tiptap/pm/state - svelte: 5.55.0 - svelte-tiptap: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/extension-bubble-menu@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/extension-floating-menu@3.21.0(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(svelte@5.55.0) - tailwindcss: 4.2.2 - transitivePeerDependencies: - - '@internationalized/date' - - '@sveltejs/kit' - - '@tiptap/extension-code-block' - - '@tiptap/extensions' - - highlight.js - - react - - react-dom - - vue - - '@foxui/time@0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2)': - dependencies: - '@foxui/core': 0.8.2(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(tailwindcss@4.2.2) - '@number-flow/svelte': 0.4.0(svelte@5.55.0) - bits-ui: 2.16.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - svelte: 5.55.0 - tailwindcss: 4.2.2 - transitivePeerDependencies: - - '@internationalized/date' - - '@sveltejs/kit' - - react - - react-dom - - vue - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.4.3': {} - - '@img/colour@1.1.0': {} - - '@img/sharp-darwin-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 - optional: true - - '@img/sharp-darwin-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.4': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-s390x@1.2.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - optional: true - - '@img/sharp-linux-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 - optional: true - - '@img/sharp-linux-arm@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 - optional: true - - '@img/sharp-linux-ppc64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 - optional: true - - '@img/sharp-linux-riscv64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 - optional: true - - '@img/sharp-linux-s390x@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 - optional: true - - '@img/sharp-linux-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - optional: true - - '@img/sharp-wasm32@0.34.5': - dependencies: - '@emnapi/runtime': 1.9.1 - optional: true - - '@img/sharp-win32-arm64@0.34.5': - optional: true - - '@img/sharp-win32-ia32@0.34.5': - optional: true - - '@img/sharp-win32-x64@0.34.5': - optional: true - - '@internationalized/date@3.10.1': - dependencies: - '@swc/helpers': 0.5.20 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@mary-ext/event-iterator@1.0.0': - dependencies: - yocto-queue: 1.2.2 - - '@mary-ext/simple-event-emitter@1.0.1': {} - - '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': - dependencies: - '@emnapi/core': 1.9.1 - '@emnapi/runtime': 1.9.1 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@noble/secp256k1@3.0.0': {} - - '@number-flow/svelte@0.4.0(svelte@5.55.0)': - dependencies: - esm-env: 1.2.2 - number-flow: 0.6.0 - svelte: 5.55.0 - - '@optique/core@0.6.11': {} - - '@optique/run@0.6.11': - dependencies: - '@optique/core': 0.6.11 - - '@oxc-project/types@0.122.0': {} - - '@polka/url@1.0.0-next.29': {} - - '@poppinss/colors@4.1.6': - dependencies: - kleur: 4.1.5 - - '@poppinss/dumper@0.6.5': - dependencies: - '@poppinss/colors': 4.1.6 - '@sindresorhus/is': 7.2.0 - supports-color: 10.2.2 - - '@poppinss/exception@1.2.3': {} - - '@remirror/core-constants@3.0.0': {} - - '@rolldown/binding-android-arm64@1.0.0-rc.12': - optional: true - - '@rolldown/binding-darwin-arm64@1.0.0-rc.12': - optional: true - - '@rolldown/binding-darwin-x64@1.0.0-rc.12': - optional: true - - '@rolldown/binding-freebsd-x64@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': - optional: true - - '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': - optional: true - - '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': - optional: true - - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': - dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - optional: true - - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': - optional: true - - '@rolldown/pluginutils@1.0.0-rc.12': {} - - '@sindresorhus/is@7.2.0': {} - - '@speed-highlight/core@1.2.15': {} - - '@standard-schema/spec@1.1.0': {} - - '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': - dependencies: - acorn: 8.16.0 - - '@sveltejs/adapter-cloudflare@7.2.8(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(wrangler@4.78.0(@cloudflare/workers-types@4.20260317.1))': - dependencies: - '@cloudflare/workers-types': 4.20260317.1 - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - worktop: 0.8.0-next.18 - wrangler: 4.78.0(@cloudflare/workers-types@4.20260317.1) - - '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0))': - dependencies: - '@standard-schema/spec': 1.1.0 - '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - '@types/cookie': 0.6.0 - acorn: 8.16.0 - cookie: 0.6.0 - devalue: 5.6.4 - esm-env: 1.2.2 - kleur: 4.1.5 - magic-string: 0.30.21 - mrmime: 2.0.1 - set-cookie-parser: 3.1.0 - sirv: 3.0.2 - svelte: 5.55.0 - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0) - optionalDependencies: - typescript: 6.0.2 - - '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0))': - dependencies: - deepmerge: 4.3.1 - magic-string: 0.30.21 - obug: 2.1.1 - svelte: 5.55.0 - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0) - vitefu: 1.1.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - - '@swc/helpers@0.5.20': - dependencies: - tslib: 2.8.1 - - '@tailwindcss/forms@0.5.11(tailwindcss@4.2.2)': - dependencies: - mini-svg-data-uri: 1.4.4 - tailwindcss: 4.2.2 - - '@tailwindcss/node@4.2.2': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.1 - jiti: 2.6.1 - lightningcss: 1.32.0 - magic-string: 0.30.21 - source-map-js: 1.2.1 - tailwindcss: 4.2.2 - - '@tailwindcss/oxide-android-arm64@4.2.2': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.2.2': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.2.2': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - optional: true - - '@tailwindcss/oxide@4.2.2': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-x64': 4.2.2 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 - - '@tailwindcss/vite@4.2.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0))': - dependencies: - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - tailwindcss: 4.2.2 - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0) - - '@tiptap/core@3.21.0(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/pm': 3.21.0 - - '@tiptap/extension-blockquote@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-bold@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-bubble-menu@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@floating-ui/dom': 1.7.6 - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/extension-bullet-list@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-code-block-lowlight@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(highlight.js@11.11.1)(lowlight@3.3.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-code-block': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - highlight.js: 11.11.1 - lowlight: 3.3.0 - - '@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/extension-code@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-document@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-dropcursor@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-floating-menu@3.21.0(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@floating-ui/dom': 1.7.6 - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/extension-gapcursor@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-hard-break@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-heading@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-history@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-horizontal-rule@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/extension-image@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-italic@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-link@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - linkifyjs: 4.3.2 - - '@tiptap/extension-list-item@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-list-keymap@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/extension-ordered-list@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-paragraph@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-placeholder@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - - '@tiptap/extension-strike@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-text@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-typography@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extension-underline@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - - '@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/markdown@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - marked: 17.0.5 - - '@tiptap/pm@3.21.0': - dependencies: - prosemirror-changeset: 2.4.0 - prosemirror-collab: 1.3.1 - prosemirror-commands: 1.7.1 - prosemirror-dropcursor: 1.8.2 - prosemirror-gapcursor: 1.4.1 - prosemirror-history: 1.5.0 - prosemirror-inputrules: 1.5.1 - prosemirror-keymap: 1.2.3 - prosemirror-markdown: 1.13.4 - prosemirror-menu: 1.3.0 - prosemirror-model: 1.25.4 - prosemirror-schema-basic: 1.2.4 - prosemirror-schema-list: 1.5.1 - prosemirror-state: 1.4.4 - prosemirror-tables: 1.8.5 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.7) - prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.7 - - '@tiptap/starter-kit@3.21.0': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-blockquote': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-bold': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-bullet-list': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-code': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-code-block': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-document': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-dropcursor': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-gapcursor': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-hard-break': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-heading': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-horizontal-rule': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-italic': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-link': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-list-item': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-list-keymap': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-ordered-list': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) - '@tiptap/extension-paragraph': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-strike': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-text': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-underline': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tiptap/suggestion@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': - dependencies: - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - - '@tybys/wasm-util@0.10.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@types/cookie@0.6.0': {} - - '@types/esrecurse@4.3.1': {} - - '@types/estree@1.0.8': {} - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/json-schema@7.0.15': {} - - '@types/linkify-it@5.0.0': {} - - '@types/markdown-it@14.1.2': - dependencies: - '@types/linkify-it': 5.0.0 - '@types/mdurl': 2.0.0 - - '@types/mdurl@2.0.0': {} - - '@types/node@25.0.10': - dependencies: - undici-types: 7.16.0 - optional: true - - '@types/trusted-types@2.0.7': {} - - '@types/unist@3.0.3': {} - - '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/type-utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.57.2 - eslint: 10.1.0(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.57.2 - debug: 4.4.3 - eslint: 10.1.0(jiti@2.6.1) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.57.2(typescript@6.0.2)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@6.0.2) - '@typescript-eslint/types': 8.57.2 - debug: 4.4.3 - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.57.2': - dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 - - '@typescript-eslint/tsconfig-utils@8.57.2(typescript@6.0.2)': - dependencies: - typescript: 6.0.2 - - '@typescript-eslint/type-utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2)': - dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - debug: 4.4.3 - eslint: 10.1.0(jiti@2.6.1) - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.57.2': {} - - '@typescript-eslint/typescript-estree@8.57.2(typescript@6.0.2)': - dependencies: - '@typescript-eslint/project-service': 8.57.2(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@6.0.2) - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 - debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@6.0.2) - eslint: 10.1.0(jiti@2.6.1) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.57.2': - dependencies: - '@typescript-eslint/types': 8.57.2 - eslint-visitor-keys: 5.0.1 - - '@use-gesture/core@10.3.1': {} - - '@use-gesture/vanilla@10.3.1': - dependencies: - '@use-gesture/core': 10.3.1 - - acorn-jsx@5.3.2(acorn@8.16.0): - dependencies: - acorn: 8.16.0 - - acorn@8.16.0: {} - - ajv@6.14.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - argparse@2.0.1: {} - - aria-query@5.3.1: {} - - axobject-query@4.1.0: {} - - balanced-match@4.0.4: {} - - bits-ui@2.16.4(@internationalized/date@3.10.1)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0): - dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/dom': 1.7.6 - '@internationalized/date': 3.10.1 - esm-env: 1.2.2 - runed: 0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - svelte: 5.55.0 - svelte-toolbelt: 0.10.6(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - tabbable: 6.4.0 - transitivePeerDependencies: - - '@sveltejs/kit' - - blake3-wasm@2.1.5: {} - - brace-expansion@5.0.5: - dependencies: - balanced-match: 4.0.4 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - clsx@2.1.1: {} - - contrail@https://codeload.github.com/flo-bit/contrail/tar.gz/ee24d4faa5d5e1515fa71398bca035b191880dbf(@atcute/identity@1.1.4): - dependencies: - '@atcute/atproto': 3.1.10 - '@atcute/client': 4.2.1 - '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) - '@atcute/jetstream': 1.1.2 - '@atcute/lexicons': 1.2.9 - hono: 4.12.9 - transitivePeerDependencies: - - '@atcute/identity' - - react - - cookie@0.6.0: {} - - cookie@1.1.1: {} - - core-js@3.49.0: {} - - crelt@1.0.6: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - custom-event-polyfill@1.0.7: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} - - dequal@2.0.3: {} - - detect-libc@2.1.2: {} - - devalue@5.6.4: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - dompurify@3.3.3: - optionalDependencies: - '@types/trusted-types': 2.0.7 - - emoji-picker-element@1.29.1: {} - - enhanced-resolve@5.20.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.2 - - entities@4.5.0: {} - - error-stack-parser-es@1.0.5: {} - - esbuild@0.27.3: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 - - esbuild@0.27.4: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.4 - '@esbuild/android-arm': 0.27.4 - '@esbuild/android-arm64': 0.27.4 - '@esbuild/android-x64': 0.27.4 - '@esbuild/darwin-arm64': 0.27.4 - '@esbuild/darwin-x64': 0.27.4 - '@esbuild/freebsd-arm64': 0.27.4 - '@esbuild/freebsd-x64': 0.27.4 - '@esbuild/linux-arm': 0.27.4 - '@esbuild/linux-arm64': 0.27.4 - '@esbuild/linux-ia32': 0.27.4 - '@esbuild/linux-loong64': 0.27.4 - '@esbuild/linux-mips64el': 0.27.4 - '@esbuild/linux-ppc64': 0.27.4 - '@esbuild/linux-riscv64': 0.27.4 - '@esbuild/linux-s390x': 0.27.4 - '@esbuild/linux-x64': 0.27.4 - '@esbuild/netbsd-arm64': 0.27.4 - '@esbuild/netbsd-x64': 0.27.4 - '@esbuild/openbsd-arm64': 0.27.4 - '@esbuild/openbsd-x64': 0.27.4 - '@esbuild/openharmony-arm64': 0.27.4 - '@esbuild/sunos-x64': 0.27.4 - '@esbuild/win32-arm64': 0.27.4 - '@esbuild/win32-ia32': 0.27.4 - '@esbuild/win32-x64': 0.27.4 - - escape-string-regexp@4.0.0: {} - - eslint-config-prettier@10.1.8(eslint@10.1.0(jiti@2.6.1)): - dependencies: - eslint: 10.1.0(jiti@2.6.1) - - eslint-plugin-svelte@3.16.0(eslint@10.1.0(jiti@2.6.1))(svelte@5.55.0): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 10.1.0(jiti@2.6.1) - esutils: 2.0.3 - globals: 16.5.0 - known-css-properties: 0.37.0 - postcss: 8.5.8 - postcss-load-config: 3.1.4(postcss@8.5.8) - postcss-safe-parser: 7.0.1(postcss@8.5.8) - semver: 7.7.4 - svelte-eslint-parser: 1.6.0(svelte@5.55.0) - optionalDependencies: - svelte: 5.55.0 - transitivePeerDependencies: - - ts-node - - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@9.1.2: - dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.8 - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint-visitor-keys@5.0.1: {} - - eslint@10.1.0(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.3 - '@eslint/config-helpers': 0.5.3 - '@eslint/core': 1.1.1 - '@eslint/plugin-kit': 0.6.1 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.14.0 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.4 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - esm-env@1.2.2: {} - - espree@10.4.0: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 4.2.1 - - espree@11.2.0: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 5.0.1 - - esquery@1.7.0: - dependencies: - estraverse: 5.3.0 - - esrap@2.2.4: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@typescript-eslint/types': 8.57.2 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - event-target-polyfill@0.0.4: {} - - fast-deep-equal@3.1.3: {} - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fdir@6.5.0(picomatch@4.0.4): - optionalDependencies: - picomatch: 4.0.4 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.4.2 - keyv: 4.5.4 - - flatted@3.4.2: {} - - fsevents@2.3.3: - optional: true - - get-tsconfig@4.13.7: - dependencies: - resolve-pkg-maps: 1.0.0 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - globals@16.5.0: {} - - globals@17.4.0: {} - - graceful-fs@4.2.11: {} - - highlight.js@11.11.1: {} - - hls.js@1.6.15: {} - - hono@4.12.9: {} - - ignore@5.3.2: {} - - ignore@7.0.5: {} - - imurmurhash@0.1.4: {} - - inline-style-parser@0.2.7: {} - - is-emoji-supported@0.0.5: {} - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-reference@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - isexe@2.0.0: {} - - jiti@2.6.1: {} - - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kleur@4.1.5: {} - - known-css-properties@0.37.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lightningcss-android-arm64@1.32.0: - optional: true - - lightningcss-darwin-arm64@1.32.0: - optional: true - - lightningcss-darwin-x64@1.32.0: - optional: true - - lightningcss-freebsd-x64@1.32.0: - optional: true - - lightningcss-linux-arm-gnueabihf@1.32.0: - optional: true - - lightningcss-linux-arm64-gnu@1.32.0: - optional: true - - lightningcss-linux-arm64-musl@1.32.0: - optional: true - - lightningcss-linux-x64-gnu@1.32.0: - optional: true - - lightningcss-linux-x64-musl@1.32.0: - optional: true - - lightningcss-win32-arm64-msvc@1.32.0: - optional: true - - lightningcss-win32-x64-msvc@1.32.0: - optional: true - - lightningcss@1.32.0: - dependencies: - detect-libc: 2.1.2 - optionalDependencies: - lightningcss-android-arm64: 1.32.0 - lightningcss-darwin-arm64: 1.32.0 - lightningcss-darwin-x64: 1.32.0 - lightningcss-freebsd-x64: 1.32.0 - lightningcss-linux-arm-gnueabihf: 1.32.0 - lightningcss-linux-arm64-gnu: 1.32.0 - lightningcss-linux-arm64-musl: 1.32.0 - lightningcss-linux-x64-gnu: 1.32.0 - lightningcss-linux-x64-musl: 1.32.0 - lightningcss-win32-arm64-msvc: 1.32.0 - lightningcss-win32-x64-msvc: 1.32.0 - - lilconfig@2.1.0: {} - - linkify-it@5.0.0: - dependencies: - uc.micro: 2.1.0 - - linkifyjs@4.3.2: {} - - loadjs@4.3.0: {} - - locate-character@3.0.0: {} - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lowlight@3.3.0: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - highlight.js: 11.11.1 - - lz-string@1.5.0: {} - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - markdown-it@14.1.1: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - - marked@17.0.5: {} - - mdurl@2.0.0: {} - - mini-svg-data-uri@1.4.4: {} - - miniflare@4.20260317.3: - dependencies: - '@cspotcode/source-map-support': 0.8.1 - sharp: 0.34.5 - undici: 7.24.4 - workerd: 1.20260317.1 - ws: 8.18.0 - youch: 4.1.0-beta.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - minimatch@10.2.4: - dependencies: - brace-expansion: 5.0.5 - - mode-watcher@1.1.0(svelte@5.55.0): - dependencies: - runed: 0.25.0(svelte@5.55.0) - svelte: 5.55.0 - svelte-toolbelt: 0.7.1(svelte@5.55.0) - - mri@1.2.0: {} - - mrmime@2.0.1: {} - - ms@2.1.3: {} - - nanoid@3.3.11: {} - - nanoid@5.1.7: {} - - natural-compare@1.4.0: {} - - number-flow@0.6.0: - dependencies: - esm-env: 1.2.2 - - obug@2.1.1: {} - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - orderedmap@2.1.1: {} - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - partysocket@1.1.16: - dependencies: - event-target-polyfill: 0.0.4 - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-to-regexp@6.3.0: {} - - pathe@2.0.3: {} - - picocolors@1.1.1: {} - - picomatch@4.0.4: {} - - plyr@3.8.4: - dependencies: - core-js: 3.49.0 - custom-event-polyfill: 1.0.7 - loadjs: 4.3.0 - rangetouch: 2.0.1 - url-polyfill: 1.1.14 - - postcss-load-config@3.1.4(postcss@8.5.8): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.3 - optionalDependencies: - postcss: 8.5.8 - - postcss-safe-parser@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-scss@4.0.9(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-selector-parser@7.1.1: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss@8.5.8: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prelude-ls@1.2.1: {} - - prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.0): - dependencies: - prettier: 3.8.1 - svelte: 5.55.0 - - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.0))(prettier@3.8.1): - dependencies: - prettier: 3.8.1 - optionalDependencies: - prettier-plugin-svelte: 3.5.1(prettier@3.8.1)(svelte@5.55.0) - - prettier@3.8.1: {} - - prosemirror-changeset@2.4.0: - dependencies: - prosemirror-transform: 1.11.0 - - prosemirror-collab@1.3.1: - dependencies: - prosemirror-state: 1.4.4 - - prosemirror-commands@1.7.1: - dependencies: - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - - prosemirror-dropcursor@1.8.2: - dependencies: - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.7 - - prosemirror-gapcursor@1.4.1: - dependencies: - prosemirror-keymap: 1.2.3 - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-view: 1.41.7 - - prosemirror-history@1.5.0: - dependencies: - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.7 - rope-sequence: 1.3.4 - - prosemirror-inputrules@1.5.1: - dependencies: - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - - prosemirror-keymap@1.2.3: - dependencies: - prosemirror-state: 1.4.4 - w3c-keyname: 2.2.8 - - prosemirror-markdown@1.13.4: - dependencies: - '@types/markdown-it': 14.1.2 - markdown-it: 14.1.1 - prosemirror-model: 1.25.4 - - prosemirror-menu@1.3.0: - dependencies: - crelt: 1.0.6 - prosemirror-commands: 1.7.1 - prosemirror-history: 1.5.0 - prosemirror-state: 1.4.4 - - prosemirror-model@1.25.4: - dependencies: - orderedmap: 2.1.1 - - prosemirror-schema-basic@1.2.4: - dependencies: - prosemirror-model: 1.25.4 - - prosemirror-schema-list@1.5.1: - dependencies: - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - - prosemirror-state@1.4.4: - dependencies: - prosemirror-model: 1.25.4 - prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.7 - - prosemirror-tables@1.8.5: - dependencies: - prosemirror-keymap: 1.2.3 - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.7 - - prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.7): - dependencies: - '@remirror/core-constants': 3.0.0 - escape-string-regexp: 4.0.0 - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-view: 1.41.7 - - prosemirror-transform@1.11.0: - dependencies: - prosemirror-model: 1.25.4 - - prosemirror-view@1.41.7: - dependencies: - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - - punycode.js@2.3.1: {} - - punycode@2.3.1: {} - - rangetouch@2.0.1: {} - - readdirp@4.1.2: {} - - regexparam@3.0.0: {} - - resolve-pkg-maps@1.0.0: {} - - rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): - dependencies: - '@oxc-project/types': 0.122.0 - '@rolldown/pluginutils': 1.0.0-rc.12 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.12 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.12 - '@rolldown/binding-darwin-x64': 1.0.0-rc.12 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.12 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.12 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.12 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.12 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.12 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - rope-sequence@1.3.4: {} - - runed@0.23.4(svelte@5.55.0): - dependencies: - esm-env: 1.2.2 - svelte: 5.55.0 - - runed@0.25.0(svelte@5.55.0): - dependencies: - esm-env: 1.2.2 - svelte: 5.55.0 - - runed@0.28.0(svelte@5.55.0): - dependencies: - esm-env: 1.2.2 - svelte: 5.55.0 - - runed@0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0): - dependencies: - dequal: 2.0.3 - esm-env: 1.2.2 - lz-string: 1.5.0 - svelte: 5.55.0 - optionalDependencies: - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)) - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - semver@7.7.4: {} - - set-cookie-parser@3.1.0: {} - - sharp@0.34.5: - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.7.4 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - sirv@3.0.2: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - - source-map-js@1.2.1: {} - - style-to-object@1.0.14: - dependencies: - inline-style-parser: 0.2.7 - - supports-color@10.2.2: {} - - svelte-check@4.4.5(picomatch@4.0.4)(svelte@5.55.0)(typescript@6.0.2): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.4) - picocolors: 1.1.1 - sade: 1.8.1 - svelte: 5.55.0 - typescript: 6.0.2 - transitivePeerDependencies: - - picomatch - - svelte-eslint-parser@1.6.0(svelte@5.55.0): - dependencies: - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - postcss: 8.5.8 - postcss-scss: 4.0.9(postcss@8.5.8) - postcss-selector-parser: 7.1.1 - semver: 7.7.4 - optionalDependencies: - svelte: 5.55.0 - - svelte-sonner@1.1.0(svelte@5.55.0): - dependencies: - runed: 0.28.0(svelte@5.55.0) - svelte: 5.55.0 - - svelte-tiptap@3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/extension-bubble-menu@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/extension-floating-menu@3.21.0(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(svelte@5.55.0): - dependencies: - '@floating-ui/dom': 1.7.6 - '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-bubble-menu': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-floating-menu': 3.21.0(@floating-ui/dom@1.7.6)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/pm': 3.21.0 - svelte: 5.55.0 - - svelte-toolbelt@0.10.6(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0): - dependencies: - clsx: 2.1.1 - runed: 0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0) - style-to-object: 1.0.14 - svelte: 5.55.0 - transitivePeerDependencies: - - '@sveltejs/kit' - - svelte-toolbelt@0.7.1(svelte@5.55.0): - dependencies: - clsx: 2.1.1 - runed: 0.23.4(svelte@5.55.0) - style-to-object: 1.0.14 - svelte: 5.55.0 - - svelte@5.55.0: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@types/estree': 1.0.8 - '@types/trusted-types': 2.0.7 - acorn: 8.16.0 - aria-query: 5.3.1 - axobject-query: 4.1.0 - clsx: 2.1.1 - devalue: 5.6.4 - esm-env: 1.2.2 - esrap: 2.2.4 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.21 - zimmerframe: 1.1.4 - - tabbable@6.4.0: {} - - tailwind-merge@3.5.0: {} - - tailwind-variants@3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.2): - dependencies: - tailwindcss: 4.2.2 - optionalDependencies: - tailwind-merge: 3.5.0 - - tailwindcss@4.2.2: {} - - tapable@2.3.2: {} - - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - - totalist@3.0.1: {} - - ts-api-utils@2.5.0(typescript@6.0.2): - dependencies: - typescript: 6.0.2 - - tslib@2.8.1: {} - - tsx@4.21.0: - dependencies: - esbuild: 0.27.4 - get-tsconfig: 4.13.7 - optionalDependencies: - fsevents: 2.3.3 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@4.41.0: {} - - typescript-eslint@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2): - dependencies: - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.57.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@6.0.2) - eslint: 10.1.0(jiti@2.6.1) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - typescript@6.0.2: {} - - uc.micro@2.1.0: {} - - undici-types@7.16.0: - optional: true - - undici@7.24.4: {} - - unenv@2.0.0-rc.24: - dependencies: - pathe: 2.0.3 - - unicode-segmenter@0.14.5: {} - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - url-polyfill@1.1.14: {} - - util-deprecate@1.0.2: {} - - valibot@1.3.1(typescript@6.0.2): - optionalDependencies: - typescript: 6.0.2 - - vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0): - dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.8 - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 25.0.10 - esbuild: 0.27.4 - fsevents: 2.3.3 - jiti: 2.6.1 - tsx: 4.21.0 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - vitefu@1.1.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)): - optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0) - - w3c-keyname@2.2.8: {} - - web-haptics@0.0.6(svelte@5.55.0): - optionalDependencies: - svelte: 5.55.0 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - workerd@1.20260317.1: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260317.1 - '@cloudflare/workerd-darwin-arm64': 1.20260317.1 - '@cloudflare/workerd-linux-64': 1.20260317.1 - '@cloudflare/workerd-linux-arm64': 1.20260317.1 - '@cloudflare/workerd-windows-64': 1.20260317.1 - - worktop@0.8.0-next.18: - dependencies: - mrmime: 2.0.1 - regexparam: 3.0.0 - - wrangler@4.78.0(@cloudflare/workers-types@4.20260317.1): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1) - blake3-wasm: 2.1.5 - esbuild: 0.27.3 - miniflare: 4.20260317.3 - path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.24 - workerd: 1.20260317.1 - optionalDependencies: - '@cloudflare/workers-types': 4.20260317.1 - fsevents: 2.3.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - ws@8.18.0: {} - - yaml@1.10.3: {} - - yocto-queue@0.1.0: {} - - yocto-queue@1.2.2: {} - - youch-core@0.3.3: - dependencies: - '@poppinss/exception': 1.2.3 - error-stack-parser-es: 1.0.5 - - youch@4.1.0-beta.10: - dependencies: - '@poppinss/colors': 4.1.6 - '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.15 - cookie: 1.1.1 - youch-core: 0.3.3 - - zimmerframe@1.1.4: {} diff --git a/package.json b/package.json index 2b915bd..1abdd07 100644 --- a/package.json +++ b/package.json @@ -1,108 +1,20 @@ { - "name": "@atmo-dev/contrail", - "version": "0.1.1", - "description": "Index AT Protocol records with typed XRPC endpoints. Cloudflare Workers + D1, SvelteKit, Node.js.", + "name": "contrail-monorepo", + "private": true, + "version": "0.0.0", "type": "module", - "sideEffects": false, - "files": [ - "dist", - "lexicon-templates/**/*.json" - ], - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./server": { - "types": "./dist/server.d.ts", - "import": "./dist/server.js" - }, - "./sqlite": { - "types": "./dist/adapters/sqlite.d.ts", - "import": "./dist/adapters/sqlite.js" - }, - "./postgres": { - "types": "./dist/adapters/postgres.d.ts", - "import": "./dist/adapters/postgres.js" - }, - "./generate": { - "types": "./dist/generate.d.ts", - "import": "./dist/generate.js" - }, - "./publish": { - "types": "./dist/publish.d.ts", - "import": "./dist/publish.js" - }, - "./sync": { - "types": "./dist/sync/index.d.ts", - "import": "./dist/sync/index.js" - }, - "./sync/cache-idb": { - "types": "./dist/sync/cache-idb.d.ts", - "import": "./dist/sync/cache-idb.js" - }, - "./lexicon-templates/*.json": "./lexicon-templates/*.json" - }, - "repository": { - "type": "git", - "url": "https://github.com/flo-bit/contrail.git" - }, - "keywords": [ - "atproto", - "bluesky", - "cloudflare", - "d1", - "indexer", - "xrpc" - ], "scripts": { - "build": "tsup", - "release": "changeset publish", - "dev": "wrangler dev --test-scheduled", - "dev:auto": "tsx scripts/dev.ts", - "deploy": "wrangler deploy", - "clean": "tsx scripts/clean.ts", - "generate": "tsx app/generate.ts", - "generate:pull": "tsx app/generate.ts && lex-cli pull && tsx app/generate.ts && lex-cli pull && lex-cli generate", - "publish-lexicons": "tsx scripts/publish-lexicons.ts", - "typecheck": "tsc --noEmit", - "ingest": "curl -s http://localhost:8787/__scheduled?cron=*/1+*+*+*+*", - "sync": "tsx app/sync.ts", - "test": "vitest run", - "test:watch": "vitest" - }, - "dependencies": { - "@atcute/atproto": "^3.1.10", - "@atcute/cid": "^2.4.1", - "@atcute/client": "^4.2.1", - "@atcute/identity": "^1.1.4", - "@atcute/identity-resolver": "^1.2.2", - "@atcute/jetstream": "^1.0.2", - "@atcute/lexicons": "^1.2.9", - "@atcute/xrpc-server": "^0.1.12", - "hono": "^4.12.8" + "build": "turbo run build", + "test": "turbo run test", + "typecheck": "turbo run typecheck", + "dev": "turbo run dev", + "clean": "turbo run clean", + "release": "turbo run build && changeset publish" }, "devDependencies": { - "@atcute/lex-cli": "^2.5.3", - "@atcute/lexicon-doc": "^2.1.2", "@changesets/cli": "^2.29.4", - "@cloudflare/workers-types": "^4.20250124.0", - "@types/node": "^25.5.0", - "@types/pg": "^8.20.0", - "pg": "^8.20.0", - "tsup": "^8.5.0", - "tsx": "^4.21.0", - "typescript": "^5.7.3", - "vitest": "^4.1.0", - "wrangler": "^4.63.0" - }, - "peerDependencies": { - "pg": "^8.0.0" - }, - "peerDependenciesMeta": { - "pg": { - "optional": true - } + "turbo": "^2.3.3", + "typescript": "^5.7.3" }, - "license": "MIT" + "packageManager": "pnpm@10.30.1" } diff --git a/CHANGELOG.md b/packages/contrail/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to packages/contrail/CHANGELOG.md diff --git a/PERMISSIONED_DATA.md b/packages/contrail/PERMISSIONED_DATA.md similarity index 100% rename from PERMISSIONED_DATA.md rename to packages/contrail/PERMISSIONED_DATA.md diff --git a/packages/contrail/README.md b/packages/contrail/README.md new file mode 100644 index 0000000..4e95bd6 --- /dev/null +++ b/packages/contrail/README.md @@ -0,0 +1,444 @@ +# Contrail + +> [!WARNING] +> Work in progress! Pre-alpha, expect breaking changes. + +A library for indexing AT Protocol records. Define collections — get automatic Jetstream ingestion, PDS backfill, user discovery, typed XRPC endpoints, and (opt-in) permissioned spaces for private records. Works with Cloudflare Workers + D1, SvelteKit, Node.js, or any JavaScript runtime. + +## Install + +```bash +npm install @atmo-dev/contrail +``` + +## Usage + +```ts +import { Contrail } from "@atmo-dev/contrail"; + +const contrail = new Contrail({ + namespace: "com.example", + db, // any Database-compatible instance (D1, SQLite, etc.) + collections: { + event: { // short name → URL path + table suffix + collection: "community.lexicon.calendar.event", // full NSID of the record type + queryable: { + mode: {}, // string → equality filter (?mode=online) + name: {}, // string → equality filter (?name=...) + startsAt: { type: "range" }, // range → min/max filters (?startsAtMin=...&startsAtMax=...) + endsAt: { type: "range" }, + }, + searchable: ["name", "description"], + relations: { + rsvps: { + collection: "rsvp", // short name of the child collection + groupBy: "status", + count: true, + groups: { + interested: "community.lexicon.calendar.rsvp#interested", + going: "community.lexicon.calendar.rsvp#going", + notgoing: "community.lexicon.calendar.rsvp#notgoing", + }, + }, + }, + }, + rsvp: { + collection: "community.lexicon.calendar.rsvp", + queryable: { + status: {}, + "subject.uri": {}, + }, + references: { + event: { + collection: "event", // short name of the referenced collection + field: "subject.uri", + }, + }, + }, + }, +}); + +await contrail.init(); +``` + +### Query records + +```ts +const { records, cursor } = await contrail.query( + "event", // short name you declared in `collections` + { + filters: { mode: "in-person" }, + sort: { countType: "rsvp", direction: "desc" }, + limit: 20, + } +); +``` + +### Ingest from Jetstream + +```ts +// Run one ingestion cycle (catches up to present, then stops) +await contrail.ingest(); +``` + +### Persistent ingestion + +```ts +// Long-lived Jetstream connection with automatic batching and reconnection +const controller = new AbortController(); +await contrail.runPersistent({ + batchSize: 50, // flush every N events (default: 50) + flushIntervalMs: 5000, // or every N ms (default: 5000) + signal: controller.signal, +}); +``` + +Call `controller.abort()` for graceful shutdown — the current batch is flushed and the cursor is saved. + +### Discover users and backfill + +```ts +// Find users from relays +await contrail.discover(); + +// Backfill their records from PDS +await contrail.backfill({ concurrency: 100 }); + +// Or both in one call +await contrail.sync({ concurrency: 100 }); +``` + +### Notify of immediate updates + +```ts +// After writing to a user's PDS, tell Contrail to fetch it now +await contrail.notify("at://did:plc:abc/community.lexicon.calendar.rsvp/123"); + +// Batch up to 25 URIs +await contrail.notify([uri1, uri2, uri3]); +``` + +### HTTP handler (XRPC endpoints) + +Mount the full XRPC API in any framework: + +```ts +import { createHandler } from "@atmo-dev/contrail/server"; + +const handle = createHandler(contrail); +// handle: (Request, db?) => Promise +``` + +**SvelteKit:** + +```ts +// src/routes/xrpc/[...path]/+server.ts +export const GET = ({ request }) => handle(request); +export const POST = ({ request }) => handle(request); +``` + +**Cloudflare Worker:** + +```ts +export default { + async fetch(request, env) { + return handle(request, env.DB); + }, +}; +``` + +### SQLite adapter (Node.js / local dev) + +```ts +import { createSqliteDatabase } from "@atmo-dev/contrail/sqlite"; + +const db = createSqliteDatabase("data.db"); +const contrail = new Contrail({ ...config, db }); +``` + +> **Note:** The SQLite adapter uses Node's built-in `node:sqlite` (Node 22+). Full-text search (`searchable`) is not supported with this adapter because `node:sqlite` doesn't include the FTS5 extension. Search works on Cloudflare D1 and PostgreSQL. + +### PostgreSQL adapter (Node.js / server) + +```ts +import { createPostgresDatabase } from "@atmo-dev/contrail/postgres"; +import pg from "pg"; + +const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL }); +const db = createPostgresDatabase(pool); +const contrail = new Contrail({ ...config, db }); +``` + +PostgreSQL uses JSONB for record storage, tsvector generated columns for full-text search (instead of FTS5), and `BIGINT` for timestamp columns. + +## Examples + +### PostgreSQL (Node.js) + +See [`examples/postgres/`](examples/postgres/) for a complete example with Docker Compose, persistent Jetstream ingestion, user discovery/backfill, and an HTTP API server. + +### Cloudflare Workers + +This repo includes a working example that indexes AT Protocol calendar events and RSVPs on Cloudflare Workers + D1. + +### Setup + +```bash +pnpm install +pnpm generate:pull # pull lexicons from network, auto-detect fields, generate types +``` + +### Dev + +```bash +pnpm sync # discover users and backfill records from PDS +pnpm dev:auto # start wrangler dev with auto-ingestion +``` + +### Production + +```bash +npx wrangler d1 create contrail +# Add database_id to wrangler.jsonc +pnpm deploy +pnpm sync # discover + backfill against prod D1 +``` + +Ingestion runs automatically via cron (`*/1 * * * *`). Schema is auto-initialized. + +## Config + +### Collection options + +| Option | Default | Description | +|--------|---------|-------------| +| `queryable` | `{}` | Fields exposed as query filters. `{}` = string equality, `{ type: "range" }` = min/max | +| `discover` | `true` | Find users via relays. `false` = only track known DIDs | +| `relations` | `{}` | Many-to-one relationships with materialized counts | +| `relations.*.field` | `"subject.uri"` | Field in the related record to match against | +| `relations.*.match` | `"uri"` | Match against parent's `"uri"` or `"did"` | +| `relations.*.groupBy` | — | Split counts by this field's value | +| `relations.*.groups` | — | Group value mappings (e.g. `{ going: "collection#going" }`) | +| `relations.*.count` | `true` | Enable materialized count columns on the parent | +| `references` | `{}` | Forward references to other collections for hydration | +| `references.*.collection` | — | Short name of the target collection (key in `collections`) | +| `references.*.field` | — | Field containing the target record's AT URI | +| `queries` | `{}` | Custom query handlers (raw Response) | +| `pipelineQueries` | `{}` | Custom query handlers that go through the standard filter/sort/hydration pipeline | +| `searchable` | disabled | Full-text search fields. SQLite uses FTS5 virtual tables; PostgreSQL uses tsvector generated columns with GIN indexes. Provide `string[]` to enable, omit to disable | +| `collection` | — | Full NSID of the record type this short-name entry indexes (required) | +| `methods` | `["listRecords", "getRecord"]` | XRPC methods to emit for this collection | +| `allowInSpaces` | `true` | When spaces are enabled, emit a parallel `spaces_records_` table | + +### Top-level options + +| Option | Default | Description | +|--------|---------|-------------| +| `namespace` | — | Your reverse-domain namespace (e.g. `"com.example"`) | +| `collections` | — | Collection configurations | +| `profiles` | `["app.bsky.actor.profile"]` | Profile collection NSIDs | +| `relays` | Bluesky relays | Relay URLs for user discovery | +| `jetstreams` | Bluesky Jetstream | Jetstream URLs for real-time ingestion | +| `feeds` | — | Personalized feed configurations | +| `notify` | off | Expose `notifyOfUpdate`. `true` = open, string = `Authorization: Bearer ` required | +| `spaces` | — | Permissioned-spaces configuration. See [PERMISSIONED_DATA.md](./PERMISSIONED_DATA.md) | +| `logger` | `console` | Logger instance (`{ log, warn, error }`) | + +### Profiles + +`profiles` is a top-level config array of collection NSIDs that contain profile records (rkey `self`). Defaults to `["app.bsky.actor.profile"]`. These are auto-added to `collections` with `{ discover: false }`. Use `?profiles=true` on any endpoint to include a `profiles` map in the response, keyed by DID, with handle and profile record data. + +## XRPC API + +When using `createHandler`, all endpoints live under the deployment's own namespace at `/xrpc/{namespace}.{...}`: + +| Endpoint | Description | +|----------|-------------| +| `{namespace}.{short}.listRecords` | List/filter records in a collection (keyed by its short name) | +| `{namespace}.{short}.getRecord` | Get single record by URI | +| `{namespace}.getProfile` | Get a user's profile by DID or handle | +| `{namespace}.notifyOfUpdate` | Notify of a record change for immediate indexing | +| `{namespace}.getCursor` | Current cursor position | +| `{namespace}.getOverview` | All collections summary | +| `{namespace}.permissionSet` | OAuth permission-set bundling every method above (auto-generated) | +| `{namespace}.space.*` | Spaces admin, invite, member, record XRPCs (when `spaces` is enabled) | + +### Query parameters + +**Filtering:** + +| Param | Example | Description | +|-------|---------|-------------| +| `actor` | `?actor=did:plc:...` or `?actor=alice.bsky.social` | Filter by DID or handle (triggers on-demand backfill) | +| `profiles` | `?profiles=true` | Include profile + identity info keyed by DID | +| `search` | `?search=meetup` | Full-text search across searchable fields (FTS5, ranked) | +| `{field}` | `?status=going` | Equality filter on queryable string field | +| `{field}Min` | `?startsAtMin=2026-03-16` | Range minimum (datetime/integer fields) | +| `{field}Max` | `?endsAtMax=2026-04-01` | Range maximum (datetime/integer fields) | +| `{rel}CountMin` | `?rsvpsCountMin=10` | Minimum total relation count | +| `{rel}{Group}CountMin` | `?rsvpsGoingCountMin=10` | Minimum relation count for a specific groupBy value | +| `hydrate{Rel}` | `?hydrateRsvps=10` | Embed latest N related records (per group if grouped) | +| `hydrate{Ref}` | `?hydrateEvent=true` | Embed the referenced record | +| `sort` | `?sort=startsAt` | Sort by a queryable field or count (see below) | +| `order` | `?order=asc` | Sort direction: `asc` or `desc` (default depends on field type) | +| `limit` | `?limit=25` | Page size (1-200, default 50) | +| `cursor` | `?cursor=...` | Pagination cursor | + +**Sorting** — `sort` accepts any queryable field param name or a count field: + +``` +?sort=startsAt # by date (default: desc for range fields) +?sort=name&order=asc # by name ascending +?sort=rsvpsCount # by total RSVP count (default: desc) +?sort=rsvpsGoingCount&order=asc # by going count ascending +``` + +**Search** uses SQLite FTS5 or PostgreSQL tsvector for ranked full-text search. To enable, set `searchable: ["field1", "field2"]` on a collection. Supports FTS5 syntax including prefix (`meetup*`), phrases (`"rust meetup"`), and boolean (`rust OR typescript`). Combinable with all other filters. + +``` +?search=meetup # basic search +?search=meetup&mode=online # search + filter +?search=rust*&sort=startsAt&order=asc # search + sort override +``` + +**Hydration** embeds related or referenced records inline: + +``` +?hydrateRsvps=5 # latest 5 RSVPs per group (going, interested, etc.) +?hydrateEvent=true # embed the referenced event record +?hydrateRsvps=5&hydrateEvent=true # combine both +``` + +### Examples (events) + +``` +# Upcoming events with 10+ going RSVPs, with RSVP records and profiles +/xrpc/com.example.event.listRecords?startsAtMin=2026-03-16&rsvpsGoingCountMin=10&hydrateRsvps=5&profiles=true + +# Events for a specific user (by handle) +/xrpc/com.example.event.listRecords?actor=alice.bsky.social&profiles=true + +# Single event with counts, RSVPs, and profiles +/xrpc/com.example.event.getRecord?uri=at://did:plc:.../community.lexicon.calendar.event/...&hydrateRsvps=10&profiles=true + +# Search for events by name/description +/xrpc/com.example.event.listRecords?search=meetup&profiles=true + +# RSVPs for a specific event, with the referenced event embedded +/xrpc/com.example.rsvp.listRecords?subjectUri=at://did:plc:.../community.lexicon.calendar.event/...&hydrateEvent=true&profiles=true +``` + +## Notify of Updates + +By default, Contrail ingests from Jetstream every minute (in the Worker example). If your app writes to a user's PDS and needs the change reflected immediately, use `contrail.notify()` or call the XRPC endpoint: + +```ts +// Programmatic +await contrail.notify(uri); + +// Or via HTTP +await fetch("https://your-contrail.workers.dev/xrpc/com.example.notifyOfUpdate", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ uri }), +}); +``` + +Contrail fetches the record from the user's PDS and figures out what to do: + +| PDS returns | Already indexed? | Action | +|---|---|---| +| Record (new CID) | No | **Create** — indexes it, recounts relations | +| Record (new CID) | Yes | **Update** — upserts the record, recounts relations | +| Record (same CID) | Yes | **Skip** — nothing changed | +| 404 | Yes | **Delete** — removes it, recounts relations | +| 404 | No | **No-op** | + +When Jetstream later delivers the same event, the duplicate is detected by CID and skipped. + +## Permissioned Data + +Contrail ships an opt-in permissioned-spaces subsystem: an auth-gated store for records that can't live on public PDSes — private events, invite-only groups, members-only chat. Set `config.spaces` and contrail exposes the space XRPCs at `{namespace}.space.*` alongside your public indexer: + +```ts +const contrail = new Contrail({ + namespace: "com.example", + collections: { /* ... */ }, + spaces: { + type: "com.example.event.space", // NSID classifying the kind of space + serviceDid: "did:web:example.com", // your deployment's DID + // `resolver` is optional — defaults to a composite did:plc + did:web resolver. + }, +}); +``` + +Each collection you declare also gets a parallel `spaces_records_` table (opt out per-collection via `allowInSpaces: false`). Auth uses atproto service-auth JWTs via `@atcute/xrpc-server`. Access is a simple `read` / `write` permission per member — the space owner is implicit write. Invites are first-class (generated token, hashed-at-rest, expiry + max-uses + revocation). + +**Unified `listRecords`.** The per-collection `listRecords` endpoint accepts three call shapes: + +| Call | Returns | +| --- | --- | +| No auth, no `spaceUri` | Public records only | +| `?spaceUri=…` + service-auth JWT | Records from that one space (ACL-gated) | +| Service-auth JWT, no `spaceUri` | Public records **unioned** with records from every space the caller is a member of | + +The union path runs the public and per-space queries in parallel and merges with a shared keyset cursor, so filters, sorts (`time`, record-field, count), hydration, and references all work across sources. Records from a space carry a `space: ` field in the response. + +Full design, migration story, and known limits: [PERMISSIONED_DATA.md](./PERMISSIONED_DATA.md). + +## Typesafe Client Usage + +You can get fully typed XRPC queries for any Contrail instance using [`@atcute/lex-cli`](https://github.com/mary-ext/atcute). The lexicon files are committed to the repo, so you can pull them directly via the git source. + +### Setup + +```bash +npm install @atcute/client @atcute/lexicons @atcute/lex-cli +``` + +Create a `lex.config.js` pointing at the Contrail instance's repo: + +```js +import { defineLexiconConfig } from "@atcute/lex-cli"; + +export default defineLexiconConfig({ + outdir: "src/lexicon-types/", + imports: ["@atcute/atproto"], + files: ["lexicons/**/*.json"], + pull: { + outdir: "lexicons/", + sources: [ + { + type: "git", + remote: "https://github.com/USER/REPO.git", // the Contrail instance repo + pattern: ["lexicons-generated/**/*.json", "lexicons-pulled/**/*.json", "lexicons/**/*.json"], + }, + ], + }, +}); +``` + +Then pull and generate: + +```bash +npx lex-cli pull && npx lex-cli generate +``` + +### Usage + +Import the generated types (side-effect import registers them with `@atcute/client`), then query with full type safety: + +```ts +import "./lexicon-types/index.js"; // registers ambient types +import { Client } from "@atcute/client"; + +const rpc = new Client({ handler: simpleFetchHandler({ service: /* your contrail url */ }) }); + +const response = await rpc.get("com.example.rsvp.listRecords", { + params: { status: "going", limit: 10 }, // typed params +}); + +if (response.ok) { + console.log(response.data.records); // typed +} +``` diff --git a/packages/contrail/package.json b/packages/contrail/package.json new file mode 100644 index 0000000..5fec7a6 --- /dev/null +++ b/packages/contrail/package.json @@ -0,0 +1,77 @@ +{ + "name": "@atmo-dev/contrail", + "version": "0.1.1", + "description": "Index AT Protocol records with typed XRPC endpoints. Cloudflare Workers + D1, SvelteKit, Node.js.", + "type": "module", + "sideEffects": false, + "files": [ + "dist" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./server": { + "types": "./dist/server.d.ts", + "import": "./dist/server.js" + }, + "./sqlite": { + "types": "./dist/adapters/sqlite.d.ts", + "import": "./dist/adapters/sqlite.js" + }, + "./postgres": { + "types": "./dist/adapters/postgres.d.ts", + "import": "./dist/adapters/postgres.js" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/flo-bit/contrail.git", + "directory": "packages/contrail" + }, + "keywords": [ + "atproto", + "bluesky", + "cloudflare", + "d1", + "indexer", + "xrpc" + ], + "scripts": { + "build": "tsup", + "clean": "rm -rf dist", + "typecheck": "tsc --noEmit", + "test": "vitest run", + "test:watch": "vitest" + }, + "dependencies": { + "@atcute/atproto": "^3.1.10", + "@atcute/cid": "^2.4.1", + "@atcute/client": "^4.2.1", + "@atcute/identity": "^1.1.4", + "@atcute/identity-resolver": "^1.2.2", + "@atcute/jetstream": "^1.0.2", + "@atcute/lexicons": "^1.2.9", + "@atcute/xrpc-server": "^0.1.12", + "hono": "^4.12.8" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20250124.0", + "@types/node": "^25.5.0", + "@types/pg": "^8.20.0", + "pg": "^8.20.0", + "tsup": "^8.5.0", + "typescript": "^5.7.3", + "vitest": "^4.1.0" + }, + "peerDependencies": { + "pg": "^8.0.0" + }, + "peerDependenciesMeta": { + "pg": { + "optional": true + } + }, + "license": "MIT" +} diff --git a/src/adapters/postgres.ts b/packages/contrail/src/adapters/postgres.ts similarity index 100% rename from src/adapters/postgres.ts rename to packages/contrail/src/adapters/postgres.ts diff --git a/src/adapters/sqlite.ts b/packages/contrail/src/adapters/sqlite.ts similarity index 100% rename from src/adapters/sqlite.ts rename to packages/contrail/src/adapters/sqlite.ts diff --git a/src/contrail.ts b/packages/contrail/src/contrail.ts similarity index 100% rename from src/contrail.ts rename to packages/contrail/src/contrail.ts diff --git a/src/core/backfill.ts b/packages/contrail/src/core/backfill.ts similarity index 100% rename from src/core/backfill.ts rename to packages/contrail/src/core/backfill.ts diff --git a/src/core/client.ts b/packages/contrail/src/core/client.ts similarity index 100% rename from src/core/client.ts rename to packages/contrail/src/core/client.ts diff --git a/src/core/community/acl.ts b/packages/contrail/src/core/community/acl.ts similarity index 100% rename from src/core/community/acl.ts rename to packages/contrail/src/core/community/acl.ts diff --git a/src/core/community/adapter.ts b/packages/contrail/src/core/community/adapter.ts similarity index 100% rename from src/core/community/adapter.ts rename to packages/contrail/src/core/community/adapter.ts diff --git a/src/core/community/credentials.ts b/packages/contrail/src/core/community/credentials.ts similarity index 100% rename from src/core/community/credentials.ts rename to packages/contrail/src/core/community/credentials.ts diff --git a/src/core/community/index.ts b/packages/contrail/src/core/community/index.ts similarity index 100% rename from src/core/community/index.ts rename to packages/contrail/src/core/community/index.ts diff --git a/src/core/community/pds.ts b/packages/contrail/src/core/community/pds.ts similarity index 100% rename from src/core/community/pds.ts rename to packages/contrail/src/core/community/pds.ts diff --git a/src/core/community/plc.ts b/packages/contrail/src/core/community/plc.ts similarity index 100% rename from src/core/community/plc.ts rename to packages/contrail/src/core/community/plc.ts diff --git a/src/core/community/reconcile.ts b/packages/contrail/src/core/community/reconcile.ts similarity index 100% rename from src/core/community/reconcile.ts rename to packages/contrail/src/core/community/reconcile.ts diff --git a/src/core/community/router.ts b/packages/contrail/src/core/community/router.ts similarity index 100% rename from src/core/community/router.ts rename to packages/contrail/src/core/community/router.ts diff --git a/src/core/community/schema.ts b/packages/contrail/src/core/community/schema.ts similarity index 100% rename from src/core/community/schema.ts rename to packages/contrail/src/core/community/schema.ts diff --git a/src/core/community/types.ts b/packages/contrail/src/core/community/types.ts similarity index 100% rename from src/core/community/types.ts rename to packages/contrail/src/core/community/types.ts diff --git a/src/core/db/index.ts b/packages/contrail/src/core/db/index.ts similarity index 100% rename from src/core/db/index.ts rename to packages/contrail/src/core/db/index.ts diff --git a/src/core/db/records.ts b/packages/contrail/src/core/db/records.ts similarity index 100% rename from src/core/db/records.ts rename to packages/contrail/src/core/db/records.ts diff --git a/src/core/db/schema.ts b/packages/contrail/src/core/db/schema.ts similarity index 100% rename from src/core/db/schema.ts rename to packages/contrail/src/core/db/schema.ts diff --git a/src/core/dialect.ts b/packages/contrail/src/core/dialect.ts similarity index 100% rename from src/core/dialect.ts rename to packages/contrail/src/core/dialect.ts diff --git a/src/core/identity.ts b/packages/contrail/src/core/identity.ts similarity index 100% rename from src/core/identity.ts rename to packages/contrail/src/core/identity.ts diff --git a/src/core/invite/index.ts b/packages/contrail/src/core/invite/index.ts similarity index 100% rename from src/core/invite/index.ts rename to packages/contrail/src/core/invite/index.ts diff --git a/src/core/invite/router.ts b/packages/contrail/src/core/invite/router.ts similarity index 100% rename from src/core/invite/router.ts rename to packages/contrail/src/core/invite/router.ts diff --git a/src/core/invite/token.ts b/packages/contrail/src/core/invite/token.ts similarity index 100% rename from src/core/invite/token.ts rename to packages/contrail/src/core/invite/token.ts diff --git a/src/core/jetstream.ts b/packages/contrail/src/core/jetstream.ts similarity index 100% rename from src/core/jetstream.ts rename to packages/contrail/src/core/jetstream.ts diff --git a/src/core/persistent.ts b/packages/contrail/src/core/persistent.ts similarity index 100% rename from src/core/persistent.ts rename to packages/contrail/src/core/persistent.ts diff --git a/src/core/realtime/durable-object.ts b/packages/contrail/src/core/realtime/durable-object.ts similarity index 100% rename from src/core/realtime/durable-object.ts rename to packages/contrail/src/core/realtime/durable-object.ts diff --git a/src/core/realtime/in-memory.ts b/packages/contrail/src/core/realtime/in-memory.ts similarity index 100% rename from src/core/realtime/in-memory.ts rename to packages/contrail/src/core/realtime/in-memory.ts diff --git a/src/core/realtime/index.ts b/packages/contrail/src/core/realtime/index.ts similarity index 100% rename from src/core/realtime/index.ts rename to packages/contrail/src/core/realtime/index.ts diff --git a/src/core/realtime/merge.ts b/packages/contrail/src/core/realtime/merge.ts similarity index 100% rename from src/core/realtime/merge.ts rename to packages/contrail/src/core/realtime/merge.ts diff --git a/src/core/realtime/publishing-adapter.ts b/packages/contrail/src/core/realtime/publishing-adapter.ts similarity index 100% rename from src/core/realtime/publishing-adapter.ts rename to packages/contrail/src/core/realtime/publishing-adapter.ts diff --git a/src/core/realtime/query-filter.ts b/packages/contrail/src/core/realtime/query-filter.ts similarity index 100% rename from src/core/realtime/query-filter.ts rename to packages/contrail/src/core/realtime/query-filter.ts diff --git a/src/core/realtime/resolve.ts b/packages/contrail/src/core/realtime/resolve.ts similarity index 100% rename from src/core/realtime/resolve.ts rename to packages/contrail/src/core/realtime/resolve.ts diff --git a/src/core/realtime/router.ts b/packages/contrail/src/core/realtime/router.ts similarity index 100% rename from src/core/realtime/router.ts rename to packages/contrail/src/core/realtime/router.ts diff --git a/src/core/realtime/sse.ts b/packages/contrail/src/core/realtime/sse.ts similarity index 100% rename from src/core/realtime/sse.ts rename to packages/contrail/src/core/realtime/sse.ts diff --git a/src/core/realtime/ticket.ts b/packages/contrail/src/core/realtime/ticket.ts similarity index 100% rename from src/core/realtime/ticket.ts rename to packages/contrail/src/core/realtime/ticket.ts diff --git a/src/core/realtime/types.ts b/packages/contrail/src/core/realtime/types.ts similarity index 100% rename from src/core/realtime/types.ts rename to packages/contrail/src/core/realtime/types.ts diff --git a/src/core/realtime/websocket.ts b/packages/contrail/src/core/realtime/websocket.ts similarity index 100% rename from src/core/realtime/websocket.ts rename to packages/contrail/src/core/realtime/websocket.ts diff --git a/src/core/router/admin.ts b/packages/contrail/src/core/router/admin.ts similarity index 100% rename from src/core/router/admin.ts rename to packages/contrail/src/core/router/admin.ts diff --git a/src/core/router/collection.ts b/packages/contrail/src/core/router/collection.ts similarity index 100% rename from src/core/router/collection.ts rename to packages/contrail/src/core/router/collection.ts diff --git a/src/core/router/feed.ts b/packages/contrail/src/core/router/feed.ts similarity index 100% rename from src/core/router/feed.ts rename to packages/contrail/src/core/router/feed.ts diff --git a/src/core/router/helpers.ts b/packages/contrail/src/core/router/helpers.ts similarity index 100% rename from src/core/router/helpers.ts rename to packages/contrail/src/core/router/helpers.ts diff --git a/src/core/router/hydrate.ts b/packages/contrail/src/core/router/hydrate.ts similarity index 100% rename from src/core/router/hydrate.ts rename to packages/contrail/src/core/router/hydrate.ts diff --git a/src/core/router/index.ts b/packages/contrail/src/core/router/index.ts similarity index 100% rename from src/core/router/index.ts rename to packages/contrail/src/core/router/index.ts diff --git a/src/core/router/notify.ts b/packages/contrail/src/core/router/notify.ts similarity index 100% rename from src/core/router/notify.ts rename to packages/contrail/src/core/router/notify.ts diff --git a/src/core/router/profiles.ts b/packages/contrail/src/core/router/profiles.ts similarity index 100% rename from src/core/router/profiles.ts rename to packages/contrail/src/core/router/profiles.ts diff --git a/src/core/search.ts b/packages/contrail/src/core/search.ts similarity index 100% rename from src/core/search.ts rename to packages/contrail/src/core/search.ts diff --git a/src/core/spaces/acl.ts b/packages/contrail/src/core/spaces/acl.ts similarity index 100% rename from src/core/spaces/acl.ts rename to packages/contrail/src/core/spaces/acl.ts diff --git a/src/core/spaces/adapter.ts b/packages/contrail/src/core/spaces/adapter.ts similarity index 100% rename from src/core/spaces/adapter.ts rename to packages/contrail/src/core/spaces/adapter.ts diff --git a/src/core/spaces/auth.ts b/packages/contrail/src/core/spaces/auth.ts similarity index 100% rename from src/core/spaces/auth.ts rename to packages/contrail/src/core/spaces/auth.ts diff --git a/src/core/spaces/blob-adapter.ts b/packages/contrail/src/core/spaces/blob-adapter.ts similarity index 100% rename from src/core/spaces/blob-adapter.ts rename to packages/contrail/src/core/spaces/blob-adapter.ts diff --git a/src/core/spaces/blob-gc.ts b/packages/contrail/src/core/spaces/blob-gc.ts similarity index 100% rename from src/core/spaces/blob-gc.ts rename to packages/contrail/src/core/spaces/blob-gc.ts diff --git a/src/core/spaces/blob-refs.ts b/packages/contrail/src/core/spaces/blob-refs.ts similarity index 100% rename from src/core/spaces/blob-refs.ts rename to packages/contrail/src/core/spaces/blob-refs.ts diff --git a/src/core/spaces/in-process.ts b/packages/contrail/src/core/spaces/in-process.ts similarity index 100% rename from src/core/spaces/in-process.ts rename to packages/contrail/src/core/spaces/in-process.ts diff --git a/src/core/spaces/router.ts b/packages/contrail/src/core/spaces/router.ts similarity index 100% rename from src/core/spaces/router.ts rename to packages/contrail/src/core/spaces/router.ts diff --git a/src/core/spaces/schema.ts b/packages/contrail/src/core/spaces/schema.ts similarity index 100% rename from src/core/spaces/schema.ts rename to packages/contrail/src/core/spaces/schema.ts diff --git a/src/core/spaces/tid.ts b/packages/contrail/src/core/spaces/tid.ts similarity index 100% rename from src/core/spaces/tid.ts rename to packages/contrail/src/core/spaces/tid.ts diff --git a/src/core/spaces/types.ts b/packages/contrail/src/core/spaces/types.ts similarity index 100% rename from src/core/spaces/types.ts rename to packages/contrail/src/core/spaces/types.ts diff --git a/src/core/spaces/uri.ts b/packages/contrail/src/core/spaces/uri.ts similarity index 100% rename from src/core/spaces/uri.ts rename to packages/contrail/src/core/spaces/uri.ts diff --git a/src/core/types.ts b/packages/contrail/src/core/types.ts similarity index 100% rename from src/core/types.ts rename to packages/contrail/src/core/types.ts diff --git a/src/index.ts b/packages/contrail/src/index.ts similarity index 100% rename from src/index.ts rename to packages/contrail/src/index.ts diff --git a/src/server.ts b/packages/contrail/src/server.ts similarity index 100% rename from src/server.ts rename to packages/contrail/src/server.ts diff --git a/tests/community-delegation.test.ts b/packages/contrail/tests/community-delegation.test.ts similarity index 100% rename from tests/community-delegation.test.ts rename to packages/contrail/tests/community-delegation.test.ts diff --git a/tests/community-e2e.test.ts b/packages/contrail/tests/community-e2e.test.ts similarity index 100% rename from tests/community-e2e.test.ts rename to packages/contrail/tests/community-e2e.test.ts diff --git a/tests/community-mint.test.ts b/packages/contrail/tests/community-mint.test.ts similarity index 100% rename from tests/community-mint.test.ts rename to packages/contrail/tests/community-mint.test.ts diff --git a/tests/community-publishing.test.ts b/packages/contrail/tests/community-publishing.test.ts similarity index 100% rename from tests/community-publishing.test.ts rename to packages/contrail/tests/community-publishing.test.ts diff --git a/tests/contrail-entry.test.ts b/packages/contrail/tests/contrail-entry.test.ts similarity index 100% rename from tests/contrail-entry.test.ts rename to packages/contrail/tests/contrail-entry.test.ts diff --git a/tests/dialect.test.ts b/packages/contrail/tests/dialect.test.ts similarity index 100% rename from tests/dialect.test.ts rename to packages/contrail/tests/dialect.test.ts diff --git a/tests/helpers.test.ts b/packages/contrail/tests/helpers.test.ts similarity index 100% rename from tests/helpers.test.ts rename to packages/contrail/tests/helpers.test.ts diff --git a/tests/helpers.ts b/packages/contrail/tests/helpers.ts similarity index 100% rename from tests/helpers.ts rename to packages/contrail/tests/helpers.ts diff --git a/tests/hydrate.test.ts b/packages/contrail/tests/hydrate.test.ts similarity index 100% rename from tests/hydrate.test.ts rename to packages/contrail/tests/hydrate.test.ts diff --git a/tests/invite-unified.test.ts b/packages/contrail/tests/invite-unified.test.ts similarity index 100% rename from tests/invite-unified.test.ts rename to packages/contrail/tests/invite-unified.test.ts diff --git a/tests/notify.test.ts b/packages/contrail/tests/notify.test.ts similarity index 100% rename from tests/notify.test.ts rename to packages/contrail/tests/notify.test.ts diff --git a/tests/persistent.test.ts b/packages/contrail/tests/persistent.test.ts similarity index 100% rename from tests/persistent.test.ts rename to packages/contrail/tests/persistent.test.ts diff --git a/tests/postgres-e2e.test.ts b/packages/contrail/tests/postgres-e2e.test.ts similarity index 100% rename from tests/postgres-e2e.test.ts rename to packages/contrail/tests/postgres-e2e.test.ts diff --git a/tests/postgres.test.ts b/packages/contrail/tests/postgres.test.ts similarity index 100% rename from tests/postgres.test.ts rename to packages/contrail/tests/postgres.test.ts diff --git a/tests/realtime-durable-object.test.ts b/packages/contrail/tests/realtime-durable-object.test.ts similarity index 100% rename from tests/realtime-durable-object.test.ts rename to packages/contrail/tests/realtime-durable-object.test.ts diff --git a/tests/realtime-e2e.test.ts b/packages/contrail/tests/realtime-e2e.test.ts similarity index 100% rename from tests/realtime-e2e.test.ts rename to packages/contrail/tests/realtime-e2e.test.ts diff --git a/tests/realtime-foundations.test.ts b/packages/contrail/tests/realtime-foundations.test.ts similarity index 100% rename from tests/realtime-foundations.test.ts rename to packages/contrail/tests/realtime-foundations.test.ts diff --git a/tests/realtime-public.test.ts b/packages/contrail/tests/realtime-public.test.ts similarity index 100% rename from tests/realtime-public.test.ts rename to packages/contrail/tests/realtime-public.test.ts diff --git a/tests/records.test.ts b/packages/contrail/tests/records.test.ts similarity index 100% rename from tests/records.test.ts rename to packages/contrail/tests/records.test.ts diff --git a/tests/schema.test.ts b/packages/contrail/tests/schema.test.ts similarity index 100% rename from tests/schema.test.ts rename to packages/contrail/tests/schema.test.ts diff --git a/tests/search.test.ts b/packages/contrail/tests/search.test.ts similarity index 100% rename from tests/search.test.ts rename to packages/contrail/tests/search.test.ts diff --git a/tests/spaces-acl.test.ts b/packages/contrail/tests/spaces-acl.test.ts similarity index 100% rename from tests/spaces-acl.test.ts rename to packages/contrail/tests/spaces-acl.test.ts diff --git a/tests/spaces-blobs.test.ts b/packages/contrail/tests/spaces-blobs.test.ts similarity index 100% rename from tests/spaces-blobs.test.ts rename to packages/contrail/tests/spaces-blobs.test.ts diff --git a/tests/spaces-e2e.test.ts b/packages/contrail/tests/spaces-e2e.test.ts similarity index 100% rename from tests/spaces-e2e.test.ts rename to packages/contrail/tests/spaces-e2e.test.ts diff --git a/tests/spaces-invites.test.ts b/packages/contrail/tests/spaces-invites.test.ts similarity index 100% rename from tests/spaces-invites.test.ts rename to packages/contrail/tests/spaces-invites.test.ts diff --git a/tests/types.test.ts b/packages/contrail/tests/types.test.ts similarity index 100% rename from tests/types.test.ts rename to packages/contrail/tests/types.test.ts diff --git a/packages/contrail/tsconfig.build.json b/packages/contrail/tsconfig.build.json new file mode 100644 index 0000000..62b4219 --- /dev/null +++ b/packages/contrail/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types", "node"] + }, + "include": ["src"] +} diff --git a/packages/contrail/tsconfig.json b/packages/contrail/tsconfig.json new file mode 100644 index 0000000..80adad9 --- /dev/null +++ b/packages/contrail/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"] + }, + "include": ["src"], + "exclude": ["src/adapters/sqlite.ts"] +} diff --git a/tsup.config.ts b/packages/contrail/tsup.config.ts similarity index 76% rename from tsup.config.ts rename to packages/contrail/tsup.config.ts index 1bbaa88..e1ce7fa 100644 --- a/tsup.config.ts +++ b/packages/contrail/tsup.config.ts @@ -4,10 +4,6 @@ export default defineConfig({ entry: [ "src/index.ts", "src/server.ts", - "src/generate.ts", - "src/publish.ts", - "src/sync/index.ts", - "src/sync/cache-idb.ts", "src/adapters/sqlite.ts", "src/adapters/postgres.ts", ], diff --git a/vitest.config.ts b/packages/contrail/vitest.config.ts similarity index 100% rename from vitest.config.ts rename to packages/contrail/vitest.config.ts diff --git a/packages/lexicons/README.md b/packages/lexicons/README.md new file mode 100644 index 0000000..84776a1 --- /dev/null +++ b/packages/lexicons/README.md @@ -0,0 +1,39 @@ +# @atmo-dev/contrail-lexicons + +Generate atproto lexicon JSON from a [contrail](https://www.npmjs.com/package/@atmo-dev/contrail) config, and (optionally) drive the full `@atcute/lex-cli` pull + type-generation pipeline from a single command. + +## Install + +```bash +pnpm add -D @atmo-dev/contrail-lexicons @atcute/lex-cli +``` + +`@atcute/lex-cli` is a peer dep — you pin the version. + +## CLI + +```bash +contrail-lex generate # emit lexicon JSON from your Contrail config +contrail-lex pull # wraps `lex-cli pull` +contrail-lex types # wraps `lex-cli generate` +contrail-lex all # generate → pull → generate → pull → types +contrail-lex all --no-types # skip the final type-generation step +``` + +The CLI auto-detects your Contrail config at `contrail.config.ts`, `app/config.ts`, or `src/lib/contrail/config.ts` (first match wins). Override with `--config `. + +For anything the `all` subcommand doesn't cover — custom output dirs, extra pull sources, multiple `lex.config.js` files — call `lex-cli` directly. This package doesn't hide or replace it. + +## Programmatic API + +```ts +import { generateLexicons } from "@atmo-dev/contrail-lexicons"; + +const generated = generateLexicons({ + config, + rootDir: process.cwd(), + outputDir: "lexicons-generated", +}); +``` + +See also: `extractXrpcMethods`, `listXrpcMethods`, `publishLexicons`. diff --git a/lexicon-templates/community/adopt.json b/packages/lexicons/lexicon-templates/community/adopt.json similarity index 100% rename from lexicon-templates/community/adopt.json rename to packages/lexicons/lexicon-templates/community/adopt.json diff --git a/lexicon-templates/community/defs.json b/packages/lexicons/lexicon-templates/community/defs.json similarity index 100% rename from lexicon-templates/community/defs.json rename to packages/lexicons/lexicon-templates/community/defs.json diff --git a/lexicon-templates/community/delete.json b/packages/lexicons/lexicon-templates/community/delete.json similarity index 100% rename from lexicon-templates/community/delete.json rename to packages/lexicons/lexicon-templates/community/delete.json diff --git a/lexicon-templates/community/deleteRecord.json b/packages/lexicons/lexicon-templates/community/deleteRecord.json similarity index 100% rename from lexicon-templates/community/deleteRecord.json rename to packages/lexicons/lexicon-templates/community/deleteRecord.json diff --git a/lexicon-templates/community/getHealth.json b/packages/lexicons/lexicon-templates/community/getHealth.json similarity index 100% rename from lexicon-templates/community/getHealth.json rename to packages/lexicons/lexicon-templates/community/getHealth.json diff --git a/lexicon-templates/community/list.json b/packages/lexicons/lexicon-templates/community/list.json similarity index 100% rename from lexicon-templates/community/list.json rename to packages/lexicons/lexicon-templates/community/list.json diff --git a/lexicon-templates/community/mint.json b/packages/lexicons/lexicon-templates/community/mint.json similarity index 100% rename from lexicon-templates/community/mint.json rename to packages/lexicons/lexicon-templates/community/mint.json diff --git a/lexicon-templates/community/putRecord.json b/packages/lexicons/lexicon-templates/community/putRecord.json similarity index 100% rename from lexicon-templates/community/putRecord.json rename to packages/lexicons/lexicon-templates/community/putRecord.json diff --git a/lexicon-templates/community/reauth.json b/packages/lexicons/lexicon-templates/community/reauth.json similarity index 100% rename from lexicon-templates/community/reauth.json rename to packages/lexicons/lexicon-templates/community/reauth.json diff --git a/lexicon-templates/community/space/create.json b/packages/lexicons/lexicon-templates/community/space/create.json similarity index 100% rename from lexicon-templates/community/space/create.json rename to packages/lexicons/lexicon-templates/community/space/create.json diff --git a/lexicon-templates/community/space/delete.json b/packages/lexicons/lexicon-templates/community/space/delete.json similarity index 100% rename from lexicon-templates/community/space/delete.json rename to packages/lexicons/lexicon-templates/community/space/delete.json diff --git a/lexicon-templates/community/space/deleteRecord.json b/packages/lexicons/lexicon-templates/community/space/deleteRecord.json similarity index 100% rename from lexicon-templates/community/space/deleteRecord.json rename to packages/lexicons/lexicon-templates/community/space/deleteRecord.json diff --git a/lexicon-templates/community/space/grant.json b/packages/lexicons/lexicon-templates/community/space/grant.json similarity index 100% rename from lexicon-templates/community/space/grant.json rename to packages/lexicons/lexicon-templates/community/space/grant.json diff --git a/lexicon-templates/community/space/listMembers.json b/packages/lexicons/lexicon-templates/community/space/listMembers.json similarity index 100% rename from lexicon-templates/community/space/listMembers.json rename to packages/lexicons/lexicon-templates/community/space/listMembers.json diff --git a/lexicon-templates/community/space/putRecord.json b/packages/lexicons/lexicon-templates/community/space/putRecord.json similarity index 100% rename from lexicon-templates/community/space/putRecord.json rename to packages/lexicons/lexicon-templates/community/space/putRecord.json diff --git a/lexicon-templates/community/space/resync.json b/packages/lexicons/lexicon-templates/community/space/resync.json similarity index 100% rename from lexicon-templates/community/space/resync.json rename to packages/lexicons/lexicon-templates/community/space/resync.json diff --git a/lexicon-templates/community/space/revoke.json b/packages/lexicons/lexicon-templates/community/space/revoke.json similarity index 100% rename from lexicon-templates/community/space/revoke.json rename to packages/lexicons/lexicon-templates/community/space/revoke.json diff --git a/lexicon-templates/community/space/setAccessLevel.json b/packages/lexicons/lexicon-templates/community/space/setAccessLevel.json similarity index 100% rename from lexicon-templates/community/space/setAccessLevel.json rename to packages/lexicons/lexicon-templates/community/space/setAccessLevel.json diff --git a/lexicon-templates/invite/create.json b/packages/lexicons/lexicon-templates/invite/create.json similarity index 100% rename from lexicon-templates/invite/create.json rename to packages/lexicons/lexicon-templates/invite/create.json diff --git a/lexicon-templates/invite/defs.json b/packages/lexicons/lexicon-templates/invite/defs.json similarity index 100% rename from lexicon-templates/invite/defs.json rename to packages/lexicons/lexicon-templates/invite/defs.json diff --git a/lexicon-templates/invite/list.json b/packages/lexicons/lexicon-templates/invite/list.json similarity index 100% rename from lexicon-templates/invite/list.json rename to packages/lexicons/lexicon-templates/invite/list.json diff --git a/lexicon-templates/invite/redeem.json b/packages/lexicons/lexicon-templates/invite/redeem.json similarity index 100% rename from lexicon-templates/invite/redeem.json rename to packages/lexicons/lexicon-templates/invite/redeem.json diff --git a/lexicon-templates/invite/revoke.json b/packages/lexicons/lexicon-templates/invite/revoke.json similarity index 100% rename from lexicon-templates/invite/revoke.json rename to packages/lexicons/lexicon-templates/invite/revoke.json diff --git a/lexicon-templates/realtime/subscribe.json b/packages/lexicons/lexicon-templates/realtime/subscribe.json similarity index 100% rename from lexicon-templates/realtime/subscribe.json rename to packages/lexicons/lexicon-templates/realtime/subscribe.json diff --git a/lexicon-templates/realtime/ticket.json b/packages/lexicons/lexicon-templates/realtime/ticket.json similarity index 100% rename from lexicon-templates/realtime/ticket.json rename to packages/lexicons/lexicon-templates/realtime/ticket.json diff --git a/lexicon-templates/spaces/addMember.json b/packages/lexicons/lexicon-templates/spaces/addMember.json similarity index 100% rename from lexicon-templates/spaces/addMember.json rename to packages/lexicons/lexicon-templates/spaces/addMember.json diff --git a/lexicon-templates/spaces/createSpace.json b/packages/lexicons/lexicon-templates/spaces/createSpace.json similarity index 100% rename from lexicon-templates/spaces/createSpace.json rename to packages/lexicons/lexicon-templates/spaces/createSpace.json diff --git a/lexicon-templates/spaces/defs.json b/packages/lexicons/lexicon-templates/spaces/defs.json similarity index 100% rename from lexicon-templates/spaces/defs.json rename to packages/lexicons/lexicon-templates/spaces/defs.json diff --git a/lexicon-templates/spaces/deleteRecord.json b/packages/lexicons/lexicon-templates/spaces/deleteRecord.json similarity index 100% rename from lexicon-templates/spaces/deleteRecord.json rename to packages/lexicons/lexicon-templates/spaces/deleteRecord.json diff --git a/lexicon-templates/spaces/ext/whoami.json b/packages/lexicons/lexicon-templates/spaces/ext/whoami.json similarity index 100% rename from lexicon-templates/spaces/ext/whoami.json rename to packages/lexicons/lexicon-templates/spaces/ext/whoami.json diff --git a/lexicon-templates/spaces/getBlob.json b/packages/lexicons/lexicon-templates/spaces/getBlob.json similarity index 100% rename from lexicon-templates/spaces/getBlob.json rename to packages/lexicons/lexicon-templates/spaces/getBlob.json diff --git a/lexicon-templates/spaces/getRecord.json b/packages/lexicons/lexicon-templates/spaces/getRecord.json similarity index 100% rename from lexicon-templates/spaces/getRecord.json rename to packages/lexicons/lexicon-templates/spaces/getRecord.json diff --git a/lexicon-templates/spaces/getSpace.json b/packages/lexicons/lexicon-templates/spaces/getSpace.json similarity index 100% rename from lexicon-templates/spaces/getSpace.json rename to packages/lexicons/lexicon-templates/spaces/getSpace.json diff --git a/lexicon-templates/spaces/leaveSpace.json b/packages/lexicons/lexicon-templates/spaces/leaveSpace.json similarity index 100% rename from lexicon-templates/spaces/leaveSpace.json rename to packages/lexicons/lexicon-templates/spaces/leaveSpace.json diff --git a/lexicon-templates/spaces/listBlobs.json b/packages/lexicons/lexicon-templates/spaces/listBlobs.json similarity index 100% rename from lexicon-templates/spaces/listBlobs.json rename to packages/lexicons/lexicon-templates/spaces/listBlobs.json diff --git a/lexicon-templates/spaces/listMembers.json b/packages/lexicons/lexicon-templates/spaces/listMembers.json similarity index 100% rename from lexicon-templates/spaces/listMembers.json rename to packages/lexicons/lexicon-templates/spaces/listMembers.json diff --git a/lexicon-templates/spaces/listRecords.json b/packages/lexicons/lexicon-templates/spaces/listRecords.json similarity index 100% rename from lexicon-templates/spaces/listRecords.json rename to packages/lexicons/lexicon-templates/spaces/listRecords.json diff --git a/lexicon-templates/spaces/listSpaces.json b/packages/lexicons/lexicon-templates/spaces/listSpaces.json similarity index 100% rename from lexicon-templates/spaces/listSpaces.json rename to packages/lexicons/lexicon-templates/spaces/listSpaces.json diff --git a/lexicon-templates/spaces/putRecord.json b/packages/lexicons/lexicon-templates/spaces/putRecord.json similarity index 100% rename from lexicon-templates/spaces/putRecord.json rename to packages/lexicons/lexicon-templates/spaces/putRecord.json diff --git a/lexicon-templates/spaces/removeMember.json b/packages/lexicons/lexicon-templates/spaces/removeMember.json similarity index 100% rename from lexicon-templates/spaces/removeMember.json rename to packages/lexicons/lexicon-templates/spaces/removeMember.json diff --git a/lexicon-templates/spaces/uploadBlob.json b/packages/lexicons/lexicon-templates/spaces/uploadBlob.json similarity index 100% rename from lexicon-templates/spaces/uploadBlob.json rename to packages/lexicons/lexicon-templates/spaces/uploadBlob.json diff --git a/packages/lexicons/package.json b/packages/lexicons/package.json new file mode 100644 index 0000000..2225f69 --- /dev/null +++ b/packages/lexicons/package.json @@ -0,0 +1,59 @@ +{ + "name": "@atmo-dev/contrail-lexicons", + "version": "0.1.1", + "description": "Generate atproto lexicon JSON (and optionally TypeScript types via @atcute/lex-cli) from a Contrail config.", + "type": "module", + "files": [ + "dist", + "lexicon-templates/**/*.json" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./generate": { + "types": "./dist/generate.d.ts", + "import": "./dist/generate.js" + }, + "./publish": { + "types": "./dist/publish.d.ts", + "import": "./dist/publish.js" + }, + "./lexicon-templates/*.json": "./lexicon-templates/*.json" + }, + "bin": { + "contrail-lex": "./dist/cli.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/flo-bit/contrail.git", + "directory": "packages/lexicons" + }, + "keywords": [ + "atproto", + "contrail", + "lexicon", + "codegen" + ], + "scripts": { + "build": "tsup", + "clean": "rm -rf dist", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@atcute/lex-cli": "^2.5.3" + }, + "devDependencies": { + "@atmo-dev/contrail": "workspace:*", + "@types/node": "^25.5.0", + "tsup": "^8.5.0", + "typescript": "^5.7.3", + "vitest": "^4.1.0" + }, + "peerDependencies": { + "@atmo-dev/contrail": "workspace:*" + }, + "license": "MIT" +} diff --git a/packages/lexicons/src/cli.ts b/packages/lexicons/src/cli.ts new file mode 100644 index 0000000..fb29109 --- /dev/null +++ b/packages/lexicons/src/cli.ts @@ -0,0 +1,172 @@ +#!/usr/bin/env node +/** + * contrail-lex — CLI for generating lexicons from a Contrail config and + * (optionally) typegenning them via @atcute/lex-cli. + * + * Usage from a consumer project: + * + * contrail-lex generate [--config ] # lexicon JSON only + * contrail-lex pull # wraps `lex-cli pull` + * contrail-lex types # wraps `lex-cli generate` + * contrail-lex all [--no-types] [--config ...] # generate → pull → types + * + * Looks for a user config via --config , else ./contrail.config.ts, + * ./app/config.ts, ./src/lib/contrail/config.ts (first match wins). The + * config file must default-export or named-export `config: ContrailConfig`. + */ +import { spawnSync } from "node:child_process"; +import { existsSync } from "node:fs"; +import { resolve, join } from "node:path"; +import { pathToFileURL } from "node:url"; +import { generateLexicons } from "./generate.js"; + +type Subcommand = "generate" | "pull" | "types" | "all" | "help"; + +const USAGE = `contrail-lex [options] + +Subcommands: + generate Emit lexicon JSON from Contrail config + pull Pull external lexicons (wraps \`lex-cli pull\`) + types Generate TS types from lexicon JSON (wraps \`lex-cli generate\`) + all generate → pull → generate → pull → types (full pipeline) + help Print this message + +Options: + --config Path to Contrail config file (TS or JS, default export + or named \`config\`). Default: auto-detect. + --root Project root (where lexicons/ and node_modules/ live). + Default: CWD. + --no-types In \`all\`, skip the final type-generation step. +`; + +function parseArgs(argv: string[]): { + cmd: Subcommand; + config?: string; + root: string; + withTypes: boolean; +} { + const args = argv.slice(2); + const cmd = (args.shift() ?? "help") as Subcommand; + let config: string | undefined; + let root = process.cwd(); + let withTypes = true; + for (let i = 0; i < args.length; i++) { + const a = args[i]; + if (a === "--config") config = args[++i]; + else if (a === "--root") root = args[++i]; + else if (a === "--no-types") withTypes = false; + else if (a === "-h" || a === "--help") return { cmd: "help", root, withTypes: true }; + } + return { cmd, config, root, withTypes }; +} + +function findConfigFile(root: string, explicit?: string): string | null { + if (explicit) { + const p = resolve(root, explicit); + return existsSync(p) ? p : null; + } + const candidates = [ + "contrail.config.ts", + "contrail.config.js", + "app/config.ts", + "src/lib/contrail/config.ts", + ]; + for (const c of candidates) { + const p = join(root, c); + if (existsSync(p)) return p; + } + return null; +} + +async function loadConfig(path: string): Promise { + // TS files are loaded via `tsx` if available; otherwise fall back to the + // Node loader (works for .js). We use dynamic import. + if (path.endsWith(".ts") || path.endsWith(".mts")) { + // `tsx` registers a hook when invoked via `tsx `. If this CLI is + // run through tsx (e.g. `npx tsx contrail-lex ...`), the import below + // will just work. Otherwise we spawn a tsx child below — but dynamic + // import is the preferred path for a programmatic config load. + const mod = await import(pathToFileURL(path).href); + return mod.config ?? mod.default; + } + const mod = await import(pathToFileURL(path).href); + return mod.config ?? mod.default; +} + +function runLexCli(args: string[], cwd: string): number { + const result = spawnSync("npx", ["lex-cli", ...args], { + cwd, + stdio: "inherit", + shell: process.platform === "win32", + }); + return result.status ?? 1; +} + +async function cmdGenerate(configPath: string, root: string): Promise { + const config = await loadConfig(configPath); + if (!config || typeof config !== "object") { + throw new Error(`Config at ${configPath} did not export a \`config\` object`); + } + generateLexicons({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + config: config as any, + rootDir: root, + outputDir: join(root, "lexicons-generated"), + writeRuntimeFiles: true, + }); +} + +async function main(): Promise { + const { cmd, config, root, withTypes } = parseArgs(process.argv); + + if (cmd === "help") { + process.stdout.write(USAGE); + return 0; + } + + if (cmd === "pull") return runLexCli(["pull"], root); + if (cmd === "types") return runLexCli(["generate"], root); + + const configPath = findConfigFile(root, config); + if (!configPath) { + console.error( + "Could not find a Contrail config. Pass --config or place one at\n" + + " contrail.config.ts | app/config.ts | src/lib/contrail/config.ts" + ); + return 1; + } + + if (cmd === "generate") { + await cmdGenerate(configPath, root); + return 0; + } + + if (cmd === "all") { + // Two-pass generate + pull is deliberate: the first `generate` emits any + // record-type placeholders that `lex-cli pull` resolves, and the second + // pass picks up the pulled data. Mirrors the historical `generate:pull` + // script shape. + await cmdGenerate(configPath, root); + let rc = runLexCli(["pull"], root); + if (rc !== 0) return rc; + await cmdGenerate(configPath, root); + rc = runLexCli(["pull"], root); + if (rc !== 0) return rc; + if (withTypes) { + rc = runLexCli(["generate"], root); + if (rc !== 0) return rc; + } + return 0; + } + + console.error(USAGE); + return 1; +} + +main().then( + (code) => process.exit(code), + (err) => { + console.error(err); + process.exit(1); + } +); diff --git a/src/generate.ts b/packages/lexicons/src/generate.ts similarity index 98% rename from src/generate.ts rename to packages/lexicons/src/generate.ts index bf9ed21..276798d 100644 --- a/src/generate.ts +++ b/packages/lexicons/src/generate.ts @@ -7,7 +7,7 @@ import { writeFileSync, mkdirSync, rmSync, existsSync, readFileSync, readdirSync } from "fs"; import { join } from "path"; -import type { ContrailConfig } from "./core/types"; +import type { ContrailConfig } from "@atmo-dev/contrail"; /** Return the sorted list of XRPC method NSIDs (queries + procedures) in a * generated lexicon set — the same list that ends up in `.permissionSet`'s @@ -68,9 +68,16 @@ function findTemplatesDir( rootDir: string, module: "spaces" | "community" | "realtime" | "invite" ): string | null { + // Templates are shipped with @atmo-dev/contrail-lexicons. Look in the + // user project's node_modules first, then fall back to the package's own + // directory (for development in this monorepo, where the templates live + // next to this file). const candidates = [ join(rootDir, "lexicon-templates", module), - join(rootDir, "node_modules/@atmo-dev/contrail/lexicon-templates", module), + join(rootDir, "node_modules/@atmo-dev/contrail-lexicons/lexicon-templates", module), + // When running from the package's own dist/ (ESM), __dirname is unavailable; + // rely on import.meta.url. + new URL(`../lexicon-templates/${module}`, import.meta.url).pathname, ]; for (const p of candidates) { if (existsSync(p)) return p; diff --git a/packages/lexicons/src/index.ts b/packages/lexicons/src/index.ts new file mode 100644 index 0000000..18dd5b6 --- /dev/null +++ b/packages/lexicons/src/index.ts @@ -0,0 +1,9 @@ +export { + generateLexicons, + extractXrpcMethods, + listXrpcMethods, +} from "./generate.js"; +export type { GenerateOptions } from "./generate.js"; + +export { publishLexicons, nsidAuthority, nsidRootDomain } from "./publish.js"; +export type { PublishOptions, Session } from "./publish.js"; diff --git a/src/publish.ts b/packages/lexicons/src/publish.ts similarity index 100% rename from src/publish.ts rename to packages/lexicons/src/publish.ts diff --git a/tests/generate.test.ts b/packages/lexicons/tests/generate.test.ts similarity index 99% rename from tests/generate.test.ts rename to packages/lexicons/tests/generate.test.ts index 2a3456b..28460ff 100644 --- a/tests/generate.test.ts +++ b/packages/lexicons/tests/generate.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect, beforeAll } from "vitest"; import { join } from "path"; import { generateLexicons, extractXrpcMethods, listXrpcMethods } from "../src/generate"; -import type { ContrailConfig } from "../src/core/types"; +import type { ContrailConfig } from "@atmo-dev/contrail"; const ROOT_DIR = join(__dirname, ".."); diff --git a/packages/lexicons/tsconfig.build.json b/packages/lexicons/tsconfig.build.json new file mode 100644 index 0000000..374bac5 --- /dev/null +++ b/packages/lexicons/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["node"] + }, + "include": ["src"] +} diff --git a/packages/lexicons/tsconfig.json b/packages/lexicons/tsconfig.json new file mode 100644 index 0000000..822a105 --- /dev/null +++ b/packages/lexicons/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["node"] + }, + "include": ["src", "tests"] +} diff --git a/packages/lexicons/tsup.config.ts b/packages/lexicons/tsup.config.ts new file mode 100644 index 0000000..b478313 --- /dev/null +++ b/packages/lexicons/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: [ + "src/index.ts", + "src/generate.ts", + "src/publish.ts", + "src/cli.ts", + ], + format: ["esm"], + dts: true, + sourcemap: true, + clean: true, + tsconfig: "tsconfig.build.json", +}); diff --git a/packages/lexicons/vitest.config.ts b/packages/lexicons/vitest.config.ts new file mode 100644 index 0000000..19384e8 --- /dev/null +++ b/packages/lexicons/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + include: ["tests/**/*.test.ts"], + }, +}); diff --git a/packages/sync/README.md b/packages/sync/README.md new file mode 100644 index 0000000..42c66fc --- /dev/null +++ b/packages/sync/README.md @@ -0,0 +1,28 @@ +# @atmo-dev/contrail-sync + +Client-side reactive watch-store over [contrail](https://www.npmjs.com/package/@atmo-dev/contrail)'s `watchRecords` endpoints. + +- SSE (default) or WebSocket transports. WS handshake produces a watch-scoped ticket so Cloudflare Durable Objects can hibernate idle connections. +- Optimistic updates (`addOptimistic` / `markFailed` / `removeOptimistic`). +- Automatic reconciliation across reconnects: stale records stay visible until a fresh snapshot arrives, then entries the server didn't re-send are evicted. +- Optional persistent cache (IndexedDB adapter included) for instant first paint. + +```ts +import { createWatchStore } from "@atmo-dev/contrail-sync"; +import { createIndexedDBCache } from "@atmo-dev/contrail-sync/cache-idb"; + +const store = createWatchStore({ + url: "/xrpc/com.example.message.watchRecords?roomUri=at://...", + transport: "ws", + mintTicket: async () => (await fetch("/api/ticket")).then((r) => r.text()), + cache: createIndexedDBCache(), +}); + +store.subscribe(({ records, status }) => { + // re-render +}); + +store.start(); +``` + +Framework-agnostic: wrap the subscribable store in your framework's reactive primitives (Svelte `$state`, React `useSyncExternalStore`, Vue `ref`, etc). diff --git a/packages/sync/package.json b/packages/sync/package.json new file mode 100644 index 0000000..f952514 --- /dev/null +++ b/packages/sync/package.json @@ -0,0 +1,42 @@ +{ + "name": "@atmo-dev/contrail-sync", + "version": "0.1.1", + "description": "Client-side reactive watch-store over contrail's watchRecords endpoints. SSE + WebSocket transports, optimistic updates, optional IndexedDB cache.", + "type": "module", + "sideEffects": false, + "files": [ + "dist" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./cache-idb": { + "types": "./dist/cache-idb.d.ts", + "import": "./dist/cache-idb.js" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/flo-bit/contrail.git", + "directory": "packages/sync" + }, + "keywords": [ + "atproto", + "contrail", + "sync", + "realtime", + "watch" + ], + "scripts": { + "build": "tsup", + "clean": "rm -rf dist", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "tsup": "^8.5.0", + "typescript": "^5.7.3" + }, + "license": "MIT" +} diff --git a/src/sync/cache-idb.ts b/packages/sync/src/cache-idb.ts similarity index 100% rename from src/sync/cache-idb.ts rename to packages/sync/src/cache-idb.ts diff --git a/src/sync/index.ts b/packages/sync/src/index.ts similarity index 100% rename from src/sync/index.ts rename to packages/sync/src/index.ts diff --git a/packages/sync/tsconfig.build.json b/packages/sync/tsconfig.build.json new file mode 100644 index 0000000..6092abf --- /dev/null +++ b/packages/sync/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2022", "DOM"] + }, + "include": ["src"] +} diff --git a/packages/sync/tsconfig.json b/packages/sync/tsconfig.json new file mode 100644 index 0000000..6092abf --- /dev/null +++ b/packages/sync/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2022", "DOM"] + }, + "include": ["src"] +} diff --git a/packages/sync/tsup.config.ts b/packages/sync/tsup.config.ts new file mode 100644 index 0000000..ebf5058 --- /dev/null +++ b/packages/sync/tsup.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts", "src/cache-idb.ts"], + format: ["esm"], + dts: true, + sourcemap: true, + clean: true, + tsconfig: "tsconfig.build.json", +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76e350c..89a1941 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,96 +7,258 @@ settings: importers: .: + devDependencies: + '@changesets/cli': + specifier: ^2.29.4 + version: 2.31.0(@types/node@25.6.0) + turbo: + specifier: ^2.3.3 + version: 2.9.6 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + apps/cloudflare-workers: dependencies: + '@atmo-dev/contrail': + specifier: workspace:* + version: link:../../packages/contrail + devDependencies: + '@atcute/lex-cli': + specifier: ^2.5.3 + version: 2.8.1 + '@atcute/lexicon-doc': + specifier: ^2.1.2 + version: 2.2.0 + '@atmo-dev/contrail-lexicons': + specifier: workspace:* + version: link:../../packages/lexicons + '@cloudflare/workers-types': + specifier: ^4.20250124.0 + version: 4.20260424.1 + tsx: + specifier: ^4.21.0 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + wrangler: + specifier: ^4.63.0 + version: 4.84.1(@cloudflare/workers-types@4.20260424.1) + + apps/group-chat: + dependencies: + '@atcute/jetstream': + specifier: ^1.1.2 + version: 1.1.2 + '@atmo-dev/contrail': + specifier: workspace:* + version: link:../../packages/contrail + '@atmo-dev/contrail-lexicons': + specifier: workspace:* + version: link:../../packages/lexicons + '@atmo-dev/contrail-sync': + specifier: workspace:* + version: link:../../packages/sync + '@foxui/core': + specifier: ^0.9.1 + version: 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@foxui/social': + specifier: ^0.8.10 + version: 0.8.10(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@foxui/time': + specifier: ^0.8.5 + version: 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + valibot: + specifier: ^1.3.1 + version: 1.3.1(typescript@6.0.3) + devDependencies: '@atcute/atproto': specifier: ^3.1.10 - version: 3.1.10 - '@atcute/cid': - specifier: ^2.4.1 - version: 2.4.1 + version: 3.1.11 + '@atcute/bluesky': + specifier: ^3.3.0 + version: 3.3.3 '@atcute/client': specifier: ^4.2.1 version: 4.2.1 - '@atcute/identity': - specifier: ^1.1.4 - version: 1.1.4 '@atcute/identity-resolver': specifier: ^1.2.2 version: 1.2.2(@atcute/identity@1.1.4) - '@atcute/jetstream': - specifier: ^1.0.2 - version: 1.1.2 + '@atcute/lex-cli': + specifier: ^2.5.3 + version: 2.8.1 + '@atcute/lexicon-doc': + specifier: ^2.1.2 + version: 2.2.0 '@atcute/lexicons': specifier: ^1.2.9 - version: 1.2.9 - '@atcute/xrpc-server': - specifier: ^0.1.12 - version: 0.1.12 - hono: - specifier: ^4.12.8 - version: 4.12.8 + version: 1.3.0 + '@atcute/oauth-node-client': + specifier: ^1.1.0 + version: 1.1.0 + '@atcute/tid': + specifier: ^1.1.2 + version: 1.1.2 + '@cloudflare/workers-types': + specifier: ^4.20260317.1 + version: 4.20260424.1 + '@eslint/compat': + specifier: ^2.0.3 + version: 2.0.5(eslint@10.2.1(jiti@2.6.1)) + '@eslint/js': + specifier: ^10.0.1 + version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) + '@sveltejs/adapter-cloudflare': + specifier: ^7.2.8 + version: 7.2.8(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(wrangler@4.84.1(@cloudflare/workers-types@4.20260424.1)) + '@sveltejs/kit': + specifier: ^2.55.0 + version: 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) + '@sveltejs/vite-plugin-svelte': + specifier: ^7.0.0 + version: 7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) + '@tailwindcss/forms': + specifier: ^0.5.11 + version: 0.5.11(tailwindcss@4.2.4) + '@tailwindcss/vite': + specifier: ^4.2.2 + version: 4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) + bits-ui: + specifier: ^2.16.4 + version: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + eslint: + specifier: ^10.1.0 + version: 10.2.1(jiti@2.6.1) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-svelte: + specifier: ^3.16.0 + version: 3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + globals: + specifier: ^17.4.0 + version: 17.5.0 + prettier: + specifier: ^3.8.1 + version: 3.8.3 + prettier-plugin-svelte: + specifier: ^3.5.1 + version: 3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + prettier-plugin-tailwindcss: + specifier: ^0.7.2 + version: 0.7.3(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)))(prettier@3.8.3) + svelte: + specifier: ^5.55.0 + version: 5.55.5(@typescript-eslint/types@8.59.0) + svelte-check: + specifier: ^4.4.5 + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3) + tailwindcss: + specifier: ^4.2.2 + version: 4.2.4 + tsx: + specifier: ^4.21.0 + version: 4.21.0 + typescript: + specifier: ^6.0.2 + version: 6.0.3 + typescript-eslint: + specifier: ^8.57.2 + version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + vite: + specifier: ^8.0.3 + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) + wrangler: + specifier: ^4.78.0 + version: 4.84.1(@cloudflare/workers-types@4.20260424.1) + + apps/postgres: + dependencies: + '@atmo-dev/contrail': + specifier: workspace:* + version: link:../../packages/contrail + pg: + specifier: ^8.20.0 + version: 8.20.0 devDependencies: + '@types/pg': + specifier: ^8.20.0 + version: 8.20.0 + tsx: + specifier: ^4.21.0 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + apps/rsvp-atmo: + dependencies: + '@atmo-dev/contrail': + specifier: workspace:* + version: link:../../packages/contrail + devDependencies: + '@atcute/atproto': + specifier: ^3.1.10 + version: 3.1.11 + '@atcute/client': + specifier: ^4.2.1 + version: 4.2.1 '@atcute/lex-cli': specifier: ^2.5.3 - version: 2.5.3 + version: 2.8.1 '@atcute/lexicon-doc': specifier: ^2.1.2 - version: 2.1.2 - '@changesets/cli': - specifier: ^2.29.4 - version: 2.30.0(@types/node@25.5.0) + version: 2.2.0 + '@atcute/lexicons': + specifier: ^1.2.9 + version: 1.3.0 + '@atmo-dev/contrail-lexicons': + specifier: workspace:* + version: link:../../packages/lexicons '@cloudflare/workers-types': specifier: ^4.20250124.0 - version: 4.20260205.0 + version: 4.20260424.1 '@types/node': specifier: ^25.5.0 - version: 25.5.0 - '@types/pg': - specifier: ^8.20.0 - version: 8.20.0 - pg: - specifier: ^8.20.0 - version: 8.20.0 - tsup: - specifier: ^8.5.0 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3) + version: 25.6.0 tsx: specifier: ^4.21.0 version: 4.21.0 typescript: specifier: ^5.7.3 version: 5.9.3 - vitest: - specifier: ^4.1.0 - version: 4.1.0(@types/node@25.5.0)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0)) wrangler: specifier: ^4.63.0 - version: 4.63.0(@cloudflare/workers-types@4.20260205.0) + version: 4.84.1(@cloudflare/workers-types@4.20260424.1) - examples/sveltekit-group-chat: + apps/sveltekit-cloudflare-workers: dependencies: '@atcute/jetstream': specifier: ^1.1.2 version: 1.1.2 '@atmo-dev/contrail': specifier: workspace:* - version: link:../.. + version: link:../../packages/contrail + '@atmo-dev/contrail-lexicons': + specifier: workspace:* + version: link:../../packages/lexicons '@foxui/core': specifier: ^0.9.1 - version: 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + version: 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) '@foxui/social': specifier: ^0.8.10 - version: 0.8.10(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + version: 0.8.10(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) '@foxui/time': specifier: ^0.8.5 - version: 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + version: 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) valibot: specifier: ^1.3.1 version: 1.3.1(typescript@6.0.3) devDependencies: '@atcute/atproto': specifier: ^3.1.10 - version: 3.1.10 + version: 3.1.11 '@atcute/bluesky': specifier: ^3.3.0 version: 3.3.3 @@ -108,10 +270,10 @@ importers: version: 1.2.2(@atcute/identity@1.1.4) '@atcute/lex-cli': specifier: ^2.5.3 - version: 2.5.3 + version: 2.8.1 '@atcute/lexicon-doc': specifier: ^2.1.2 - version: 2.1.2 + version: 2.2.0 '@atcute/lexicons': specifier: ^1.2.9 version: 1.3.0 @@ -123,7 +285,7 @@ importers: version: 1.1.2 '@cloudflare/workers-types': specifier: ^4.20260317.1 - version: 4.20260422.1 + version: 4.20260424.1 '@eslint/compat': specifier: ^2.0.3 version: 2.0.5(eslint@10.2.1(jiti@2.6.1)) @@ -132,22 +294,22 @@ importers: version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) '@sveltejs/adapter-cloudflare': specifier: ^7.2.8 - version: 7.2.8(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(wrangler@4.84.1(@cloudflare/workers-types@4.20260422.1)) + version: 7.2.8(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(wrangler@4.84.1(@cloudflare/workers-types@4.20260424.1)) '@sveltejs/kit': specifier: ^2.55.0 - version: 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + version: 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) '@sveltejs/vite-plugin-svelte': specifier: ^7.0.0 - version: 7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + version: 7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) '@tailwindcss/forms': specifier: ^0.5.11 version: 0.5.11(tailwindcss@4.2.4) '@tailwindcss/vite': specifier: ^4.2.2 - version: 4.2.4(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + version: 4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) bits-ui: specifier: ^2.16.4 - version: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + version: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) eslint: specifier: ^10.1.0 version: 10.2.1(jiti@2.6.1) @@ -156,25 +318,25 @@ importers: version: 10.1.8(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-svelte: specifier: ^3.16.0 - version: 3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + version: 3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) globals: specifier: ^17.4.0 version: 17.5.0 prettier: specifier: ^3.8.1 - version: 3.8.1 + version: 3.8.3 prettier-plugin-svelte: specifier: ^3.5.1 - version: 3.5.1(prettier@3.8.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + version: 3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)) prettier-plugin-tailwindcss: specifier: ^0.7.2 - version: 0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0)))(prettier@3.8.1) + version: 0.7.3(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)))(prettier@3.8.3) svelte: specifier: ^5.55.0 - version: 5.55.4(@typescript-eslint/types@8.59.0) + version: 5.55.5(@typescript-eslint/types@8.59.0) svelte-check: specifier: ^4.4.5 - version: 4.4.6(picomatch@4.0.4)(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3) tailwindcss: specifier: ^4.2.2 version: 4.2.4 @@ -189,15 +351,95 @@ importers: version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) vite: specifier: ^8.0.3 - version: 8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) wrangler: specifier: ^4.78.0 - version: 4.84.1(@cloudflare/workers-types@4.20260422.1) + version: 4.84.1(@cloudflare/workers-types@4.20260424.1) -packages: + packages/contrail: + dependencies: + '@atcute/atproto': + specifier: ^3.1.10 + version: 3.1.11 + '@atcute/cid': + specifier: ^2.4.1 + version: 2.4.1 + '@atcute/client': + specifier: ^4.2.1 + version: 4.2.1 + '@atcute/identity': + specifier: ^1.1.4 + version: 1.1.4 + '@atcute/identity-resolver': + specifier: ^1.2.2 + version: 1.2.2(@atcute/identity@1.1.4) + '@atcute/jetstream': + specifier: ^1.0.2 + version: 1.1.2 + '@atcute/lexicons': + specifier: ^1.2.9 + version: 1.3.0 + '@atcute/xrpc-server': + specifier: ^0.1.12 + version: 0.1.12 + hono: + specifier: ^4.12.8 + version: 4.12.15 + devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20250124.0 + version: 4.20260424.1 + '@types/node': + specifier: ^25.5.0 + version: 25.6.0 + '@types/pg': + specifier: ^8.20.0 + version: 8.20.0 + pg: + specifier: ^8.20.0 + version: 8.20.0 + tsup: + specifier: ^8.5.0 + version: 8.5.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(typescript@5.9.3)(yaml@1.10.3) + typescript: + specifier: ^5.7.3 + version: 5.9.3 + vitest: + specifier: ^4.1.0 + version: 4.1.5(@types/node@25.6.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) + + packages/lexicons: + dependencies: + '@atcute/lex-cli': + specifier: ^2.5.3 + version: 2.8.1 + devDependencies: + '@atmo-dev/contrail': + specifier: workspace:* + version: link:../contrail + '@types/node': + specifier: ^25.5.0 + version: 25.6.0 + tsup: + specifier: ^8.5.0 + version: 8.5.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(typescript@5.9.3)(yaml@1.10.3) + typescript: + specifier: ^5.7.3 + version: 5.9.3 + vitest: + specifier: ^4.1.0 + version: 4.1.5(@types/node@25.6.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) - '@atcute/atproto@3.1.10': - resolution: {integrity: sha512-+GKZpOc0PJcdWMQEkTfg/rSNDAAHxmAUGBl60g2az15etqJn5WaUPNGFE2sB7hKpwi5Ue2h/L0OacINcE/JDDQ==} + packages/sync: + devDependencies: + tsup: + specifier: ^8.5.0 + version: 8.5.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(typescript@5.9.3)(yaml@1.10.3) + typescript: + specifier: ^5.7.3 + version: 5.9.3 + +packages: '@atcute/atproto@3.1.11': resolution: {integrity: sha512-yh+ASvA+iHHQij6UeHEKp2+rwvFvQR8A6/5Dk/xvqDslIikWEFx9VlprNwm/clQIPl2bLuQg+LHS8uY9o5nFTA==} @@ -234,12 +476,12 @@ packages: '@atcute/jetstream@1.1.2': resolution: {integrity: sha512-u6p/h2xppp7LE6W/9xErAJ6frfN60s8adZuCKtfAaaBBiiYbb1CfpzN8Uc+2qtJZNorqGvuuDb5572Jmh7yHBQ==} - '@atcute/lex-cli@2.5.3': - resolution: {integrity: sha512-829rvezMOfRkJQRKvupNT8TWT/YYffJ2QsB80D9aPjkXSogrETZA7xZcPaMZBXg+mJaVbLO9S4ThPQmlF0L4UQ==} + '@atcute/lex-cli@2.8.1': + resolution: {integrity: sha512-ab+NpnwvW7gXMjZYYqK3zqhcAPOEYnAaNAXHp28gmL3M33zHgz4IjNQpDnRAjTitCpaJ3KoA3KXlnXNjsV6USg==} hasBin: true - '@atcute/lexicon-doc@2.1.2': - resolution: {integrity: sha512-jTLcOka7b8BIn2SnIZm2m7l6unlJ0gpgW1MnRpSqNbly/AvyRUR/GREduh/QmjT4SGasDm8vdhrM0kOSPFpDLQ==} + '@atcute/lexicon-doc@2.2.0': + resolution: {integrity: sha512-6l4lDlL6KPLDGknRh6HlfGbv98haUgQ0DFaAr1yA4vA95b8YYZUZ4/370ENpiq+d6Lv0tdDAMvOon2mynrp3pQ==} '@atcute/lexicon-resolver@0.1.6': resolution: {integrity: sha512-wJC/ChmpP7k+ywpOd07CMvioXjIGaFpF3bDwXLi/086LYjSWHOvtW6pyC+mqP5wLhjyH2hn4wmi77Buew1l1aw==} @@ -247,9 +489,6 @@ packages: '@atcute/identity': ^1.1.0 '@atcute/identity-resolver': ^1.1.3 - '@atcute/lexicons@1.2.9': - resolution: {integrity: sha512-/RRHm2Cw9o8Mcsrq0eo8fjS9okKYLGfuFwrQ0YoP/6sdSDsXshaTLJsvLlcUcaDaSJ1YFOuHIo3zr2Om2F/16g==} - '@atcute/lexicons@1.3.0': resolution: {integrity: sha512-Eq5y+9onnCXNVUlNiMf31beSXHKqptB7lUo/68YbhlmxdaR7ooywHmahya9goP5AsmlYEA1z+dRPXIDAa9O7cg==} @@ -271,8 +510,8 @@ packages: '@atcute/oauth-types@0.1.1': resolution: {integrity: sha512-u+3KMjse3Uc/9hDyilu1QVN7IpcnjVXgRzhddzBB8Uh6wePHNVBDdi9wQvFTVVA3zmxtMJVptXRyLLg6Ou9bqg==} - '@atcute/repo@0.1.3': - resolution: {integrity: sha512-kN4gkrkQgJwI5xkVQ9zSdI8ULR47uH48EdJdjMvKAWsSDu8zKYd8ZQ6n778qa6o3WYEq02v9QVf7pzeU+3fYVA==} + '@atcute/repo@0.1.4': + resolution: {integrity: sha512-uzbGJkE+1A8UFviosJrtw7HW87u8nCCH1V3yOQ79FPrRhS67EvEHF6GTg4aMkP21ze/pRtttJ1k9pFfDmyTlTg==} '@atcute/tid@1.1.2': resolution: {integrity: sha512-bmPuOX/TOfcm/vsK9vM98spjkcx2wgd9S2PeK5oLgEr8IbNRPq7iMCAPzOL1nu5XAW3LlkOYQEbYRcw5vcQ37w==} @@ -286,11 +525,8 @@ packages: '@atcute/util-fetch@1.0.5': resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==} - '@atcute/util-text@1.1.1': - resolution: {integrity: sha512-JH0SxzUQJAmbOBTYyhxQbkkI6M33YpjlVLEcbP5GYt43xgFArzV0FJVmEpvIj0kjsmphHB45b6IitdvxPdec9w==} - - '@atcute/util-text@1.2.0': - resolution: {integrity: sha512-b8WSh+Z7K601eUFFmTFj8QPKDO8Ic0VDDj63sdKzpkm+ySQKsYT5nXekViGqFVKbyKj1V5FyvZvgXad6/aI4QQ==} + '@atcute/util-text@1.3.1': + resolution: {integrity: sha512-MRgJXkx67znuBXuoAYCJkBZyd3OApL7zZlNf5kXhuoCXcdiu1nblRDycYTADSkym4epBSQWxh26kmI9sewaq6A==} '@atcute/varint@2.0.0': resolution: {integrity: sha512-CEY/oVK/nVpL4e5y3sdenLETDL6/Xu5xsE/0TupK+f0Yv8jcD60t2gD8SHROWSvUwYLdkjczLCSA7YrtnjCzWw==} @@ -306,30 +542,30 @@ packages: resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==} engines: {node: '>= 18'} - '@changesets/apply-release-plan@7.1.0': - resolution: {integrity: sha512-yq8ML3YS7koKQ/9bk1PqO0HMzApIFNwjlwCnwFEXMzNe8NpzeeYYKCmnhWJGkN8g7E51MnWaSbqRcTcdIxUgnQ==} + '@changesets/apply-release-plan@7.1.1': + resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} - '@changesets/assemble-release-plan@6.0.9': - resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} + '@changesets/assemble-release-plan@6.0.10': + resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - '@changesets/cli@2.30.0': - resolution: {integrity: sha512-5D3Nk2JPqMI1wK25pEymeWRSlSMdo5QOGlyfrKg0AOufrUcjEE3RQgaCpHoBiM31CSNrtSgdJ0U6zL1rLDDfBA==} + '@changesets/cli@2.31.0': + resolution: {integrity: sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==} hasBin: true - '@changesets/config@3.1.3': - resolution: {integrity: sha512-vnXjcey8YgBn2L1OPWd3ORs0bGC4LoYcK/ubpgvzNVr53JXV5GiTVj7fWdMRsoKUH7hhhMAQnsJUqLr21EncNw==} + '@changesets/config@3.1.4': + resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.3': - resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + '@changesets/get-dependents-graph@2.1.4': + resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} - '@changesets/get-release-plan@4.0.15': - resolution: {integrity: sha512-Q04ZaRPuEVZtA+auOYgFaVQQSA98dXiVe/yFaZfY7hoSmQICHGvP0TF4u3EDNHWmmCS4ekA/XSpKlSM2PyTS2g==} + '@changesets/get-release-plan@4.0.16': + resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -365,15 +601,6 @@ packages: resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} engines: {node: '>=18.0.0'} - '@cloudflare/unenv-preset@2.12.0': - resolution: {integrity: sha512-NK4vN+2Z/GbfGS4BamtbbVk1rcu5RmqaYGiyHJQrA09AoxdZPHDF3W/EhgI0YSK8p3vRo/VNCtbSJFPON7FWMQ==} - peerDependencies: - unenv: 2.0.0-rc.24 - workerd: ^1.20260115.0 - peerDependenciesMeta: - workerd: - optional: true - '@cloudflare/unenv-preset@2.16.0': resolution: {integrity: sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==} peerDependencies: @@ -383,105 +610,63 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260205.0': - resolution: {integrity: sha512-ToOItqcirmWPwR+PtT+Q4bdjTn/63ZxhJKEfW4FNn7FxMTS1Tw5dml0T0mieOZbCpcvY8BdvPKFCSlJuI8IVHQ==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - '@cloudflare/workerd-darwin-64@1.20260421.1': resolution: {integrity: sha512-DLU5ZTZ1VHeZZnj0PuVJEMHKGisfLe2XShyImP5P/PPj/m/t7CLEJmPiI7FMxvT7ynArkckJl7m+Z5x7u4Kkdw==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260205.0': - resolution: {integrity: sha512-402ZqLz+LrG0NDXp7Hn7IZbI0DyhjNfjAlVenb0K3yod9KCuux0u3NksNBvqJx0mIGHvVR4K05h+jfT5BTHqGA==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260421.1': resolution: {integrity: sha512-Trotq3xRAkIcpC505WoxM8+kIH4JIvOJCNuRatyHcz9uF5S+ukgiVUFUlM+GIjw1uCM/Bda2St+vSniX1RZdpw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260205.0': - resolution: {integrity: sha512-rz9jBzazIA18RHY+osa19hvsPfr0LZI1AJzIjC6UqkKKphcTpHBEQ25Xt8cIA34ivMIqeENpYnnmpDFesLkfcQ==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - '@cloudflare/workerd-linux-64@1.20260421.1': resolution: {integrity: sha512-938QjUv0z+QqK6BAvgwX/lCIZ2b224ZXoXtGTbhyNVMhB+mt4Dj24cj9qca4ekNXjVM7uTKp1yOHZO97fVSacw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260205.0': - resolution: {integrity: sha512-jr6cKpMM/DBEbL+ATJ9rYue758CKp0SfA/nXt5vR32iINVJrb396ye9iat2y9Moa/PgPKnTrFgmT6urUmG3IUg==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260421.1': resolution: {integrity: sha512-YI4+mLfwnJcKJ+iPyxzx+tp2Jy4o29BxBPSQGZxl/AZyvZ9eTKsmNZmtjEiT4i3O/M0tdO/B/d9ESDHbRCs2rQ==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260205.0': - resolution: {integrity: sha512-SMPW5jCZYOG7XFIglSlsgN8ivcl0pCrSAYxCwxtWvZ88whhcDB/aISNtiQiDZujPH8tIo2hE5dEkxW7tGEwc3A==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - '@cloudflare/workerd-windows-64@1.20260421.1': resolution: {integrity: sha512-q1SFgwlNH9lFmw74vh7EJbJtduo92Nx51mNOfd3/u6pux6AldcwRviYzKEEv3FEbtv6OBB7J8D5f8vtZj7Z6Sg==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260205.0': - resolution: {integrity: sha512-LTnpvcodmiuMwxmbrO2Fd0+Avbm2UVLLJxT8J2pRWPfoM44gmbIecXwOPZmDAMeadKWrBsQ+B0sloQAhUu5fpA==} - - '@cloudflare/workers-types@4.20260422.1': - resolution: {integrity: sha512-kI4baXLJloST4J/PxAfhz3azy4TPC7L2wcX6nusOzSNJJD/L5CSsivSJobgkYaMG5yspzRFQUQlCdPza0nTHbQ==} + '@cloudflare/workers-types@4.20260424.1': + resolution: {integrity: sha512-0DLJ9yEk1KKzPbqop80Gw/P1wkKKzawmipULiJWdBXIBCoMvE0OVWms3IrL/Q/G7tfmPop9yF4XlZ69k9JLYng==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@esbuild/aix-ppc64@0.27.0': - resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.0': - resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} - cpu: [arm64] - os: [android] + cpu: [ppc64] + os: [aix] '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} @@ -489,10 +674,10 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.0': - resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} - cpu: [arm] + cpu: [arm64] os: [android] '@esbuild/android-arm@0.27.3': @@ -501,10 +686,10 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.0': - resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm] os: [android] '@esbuild/android-x64@0.27.3': @@ -513,11 +698,11 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.0': - resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] + cpu: [x64] + os: [android] '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} @@ -525,10 +710,10 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.0': - resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.27.3': @@ -537,11 +722,11 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.0': - resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] + cpu: [x64] + os: [darwin] '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} @@ -549,10 +734,10 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.0': - resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.27.3': @@ -561,11 +746,11 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.0': - resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} - cpu: [arm64] - os: [linux] + cpu: [x64] + os: [freebsd] '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} @@ -573,10 +758,10 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.0': - resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} - cpu: [arm] + cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.27.3': @@ -585,10 +770,10 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.0': - resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} - cpu: [ia32] + cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.27.3': @@ -597,10 +782,10 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.0': - resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} - cpu: [loong64] + cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.27.3': @@ -609,10 +794,10 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.0': - resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} - cpu: [mips64el] + cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.27.3': @@ -621,10 +806,10 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.0': - resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} - cpu: [ppc64] + cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.27.3': @@ -633,10 +818,10 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.0': - resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} - cpu: [riscv64] + cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.27.3': @@ -645,10 +830,10 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.0': - resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} - cpu: [s390x] + cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.27.3': @@ -657,10 +842,10 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.0': - resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} - cpu: [x64] + cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.27.3': @@ -669,11 +854,11 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.0': - resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] + cpu: [x64] + os: [linux] '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} @@ -681,10 +866,10 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.0': - resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.27.3': @@ -693,11 +878,11 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.0': - resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] + cpu: [x64] + os: [netbsd] '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} @@ -705,10 +890,10 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.0': - resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.27.3': @@ -717,11 +902,11 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.0': - resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] + cpu: [x64] + os: [openbsd] '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} @@ -729,11 +914,11 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.0': - resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} - cpu: [x64] - os: [sunos] + cpu: [arm64] + os: [openharmony] '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} @@ -741,11 +926,11 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.0': - resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [sunos] '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} @@ -753,10 +938,10 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.0': - resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} - cpu: [ia32] + cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.27.3': @@ -765,10 +950,10 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.0': - resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} - cpu: [x64] + cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.27.3': @@ -777,6 +962,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -884,8 +1075,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@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.34.5': @@ -1057,8 +1248,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@lucide/svelte@1.8.0': - resolution: {integrity: sha512-+zYQUKqEOVP5lxbGmxL1OVgGMQtRK91eIJ0bR+3Cr1ts4oQEsQfxyzzd5X47psJlblAuGFrl2xm4YuATjR9oaA==} + '@lucide/svelte@1.9.0': + resolution: {integrity: sha512-+5RmY0tqeuGGbiI2BnyDp1Ft/EP7AKReStHeFEKJ0mPcW1w51Tm41R2GvUfz0sGLJhmRhVAe2zKaTfqrcpJqqg==} peerDependencies: svelte: ^5 @@ -1071,17 +1262,17 @@ packages: '@mary-ext/event-iterator@1.0.0': resolution: {integrity: sha512-l6gCPsWJ8aRCe/s7/oCmero70kDHgIK5m4uJvYgwEYTqVxoBOIXbKr5tnkLqUHEg6mNduB4IWvms3h70Hp9ADQ==} - '@mary-ext/simple-event-emitter@1.0.0': - resolution: {integrity: sha512-meA/zJZKIN1RVBNEYIbjufkUrW7/tRjHH60FjolpG1ixJKo76TB208qefQLNdOVDA7uIG0CGEDuhmMirtHKLAg==} + '@mary-ext/simple-event-emitter@1.0.1': + resolution: {integrity: sha512-9+VvZisxZ/gSg+JJH7hmXaA8Qj42Qjz3O58RSB+INYc8iLA0icATZxHB9vKbj59ojDGZjO3hCKzMXocx3L0H8w==} - '@napi-rs/wasm-runtime@1.1.3': - resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@noble/secp256k1@3.0.0': - resolution: {integrity: sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg==} + '@noble/secp256k1@3.1.0': + resolution: {integrity: sha512-+F7iS7tUMaNGXcc9X3PjmjvuQnXEuSjCRNzVVA2xAcKXgCaP0dHYz4SFyt4FKNHef7sOP//xihowcySSS7PK9g==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1100,16 +1291,16 @@ packages: peerDependencies: svelte: ^4 || ^5 - '@optique/core@0.6.11': - resolution: {integrity: sha512-GVLFihzBA1j78NFlkU5N1Lu0jRqET0k6Z66WK8VQKG/a3cxmCInVGSKMIdQG8i6pgC8wD5OizF6Y3QMztmhAxg==} + '@optique/core@1.0.2': + resolution: {integrity: sha512-znsqMmjAdeOgSJzdJlpZpgAscojwQmeQYXzYnuEKllz5VCj6WyEkdzU4QuvJQtWQY3ve2taXwudEBRur0VHBOQ==} engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} - '@optique/run@0.6.11': - resolution: {integrity: sha512-tsXBEygGSzNpFK2gjsRlXBn7FiScUeLFWIZNpoAZ8iG85Km0/3K9xgqlQAXoQ+uEZBe4XplnzyCDvmEgbyNT8w==} + '@optique/run@1.0.2': + resolution: {integrity: sha512-0Wc+zC8SLGV8zXQX+pk+o0c6wE/ddx/36CHZ0toTh5lApsjruUuGhqbxvljerAAG5un1xQbOLxzksBVC6UPgSg==} engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} - '@oxc-project/types@0.124.0': - resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@oxc-project/types@0.127.0': + resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -1123,220 +1314,220 @@ packages: '@poppinss/exception@1.2.3': resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - '@rolldown/binding-android-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} + '@rolldown/binding-android-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.15': - resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} + '@rolldown/binding-darwin-x64@1.0.0-rc.17': + resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': - resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': + resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': - resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': + resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': - resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} - engines: {node: '>=14.0.0'} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': + resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.15': - resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + '@rolldown/pluginutils@1.0.0-rc.17': + resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==} - '@rollup/rollup-android-arm-eabi@4.60.1': - resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} + '@rollup/rollup-android-arm-eabi@4.60.2': + resolution: {integrity: sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.1': - resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} + '@rollup/rollup-android-arm64@4.60.2': + resolution: {integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.60.1': - resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} + '@rollup/rollup-darwin-arm64@4.60.2': + resolution: {integrity: sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.1': - resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} + '@rollup/rollup-darwin-x64@4.60.2': + resolution: {integrity: sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.1': - resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} + '@rollup/rollup-freebsd-arm64@4.60.2': + resolution: {integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.1': - resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} + '@rollup/rollup-freebsd-x64@4.60.2': + resolution: {integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': - resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': + resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.60.1': - resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} + '@rollup/rollup-linux-arm-musleabihf@4.60.2': + resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.60.1': - resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} + '@rollup/rollup-linux-arm64-gnu@4.60.2': + resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.60.1': - resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} + '@rollup/rollup-linux-arm64-musl@4.60.2': + resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.60.1': - resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} + '@rollup/rollup-linux-loong64-gnu@4.60.2': + resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loong64-musl@4.60.1': - resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} + '@rollup/rollup-linux-loong64-musl@4.60.2': + resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.60.1': - resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} + '@rollup/rollup-linux-ppc64-gnu@4.60.2': + resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-ppc64-musl@4.60.1': - resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} + '@rollup/rollup-linux-ppc64-musl@4.60.2': + resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.60.1': - resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} + '@rollup/rollup-linux-riscv64-gnu@4.60.2': + resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.60.1': - resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} + '@rollup/rollup-linux-riscv64-musl@4.60.2': + resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.60.1': - resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} + '@rollup/rollup-linux-s390x-gnu@4.60.2': + resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.60.1': - resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} + '@rollup/rollup-linux-x64-gnu@4.60.2': + resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.60.1': - resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} + '@rollup/rollup-linux-x64-musl@4.60.2': + resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] - '@rollup/rollup-openbsd-x64@4.60.1': - resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} + '@rollup/rollup-openbsd-x64@4.60.2': + resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.1': - resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} + '@rollup/rollup-openharmony-arm64@4.60.2': + resolution: {integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.60.1': - resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} + '@rollup/rollup-win32-arm64-msvc@4.60.2': + resolution: {integrity: sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.1': - resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} + '@rollup/rollup-win32-ia32-msvc@4.60.2': + resolution: {integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.1': - resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} + '@rollup/rollup-win32-x64-gnu@4.60.2': + resolution: {integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.1': - resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} + '@rollup/rollup-win32-x64-msvc@4.60.2': + resolution: {integrity: sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==} cpu: [x64] os: [win32] @@ -1344,8 +1535,8 @@ packages: resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} engines: {node: '>=18'} - '@speed-highlight/core@1.2.14': - resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} + '@speed-highlight/core@1.2.15': + resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -1361,8 +1552,8 @@ packages: '@sveltejs/kit': ^2.0.0 wrangler: ^4.0.0 - '@sveltejs/kit@2.57.1': - resolution: {integrity: sha512-VRdSbB96cI1EnRh09CqmnQqP/YJvET5buj8S6k7CxaJqBJD4bw4fRKDjcarAj/eX9k2eHifQfDH8NtOh+ZxxPw==} + '@sveltejs/kit@2.58.0': + resolution: {integrity: sha512-kT9GCN8yJTkCK1W+Gi/bvGooWAM7y7WXP+yd+rf6QOIjyoK1ERPrMwSufXJUNu2pMWIqruhFvmz+LbOqsEmKmA==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -1662,6 +1853,36 @@ packages: '@tiptap/core': 3.22.4 '@tiptap/pm': 3.22.4 + '@turbo/darwin-64@2.9.6': + resolution: {integrity: sha512-X/56SnVXIQZBLKwniGTwEQTGmtE5brSACnKMBWpY3YafuxVYefrC2acamfjgxP7BG5w3I+6jf0UrLoSzgPcSJg==} + cpu: [x64] + os: [darwin] + + '@turbo/darwin-arm64@2.9.6': + resolution: {integrity: sha512-aalBeSl4agT/QtYGDyf/XLajedWzUC9Vg/pm/YO6QQ93vkQ91Vz5uK1ta5RbVRDozQSz4njxUNqRNmOXDzW+qw==} + cpu: [arm64] + os: [darwin] + + '@turbo/linux-64@2.9.6': + resolution: {integrity: sha512-YKi05jnNHaD7vevgYwahpzGwbsNNTwzU2c7VZdmdFm7+cGDP4oREUWSsainiMfRqjRuolQxBwRn8wf1jmu+YZA==} + cpu: [x64] + os: [linux] + + '@turbo/linux-arm64@2.9.6': + resolution: {integrity: sha512-02o/ZS69cOYEDczXvOB2xmyrtzjQ2hVFtWZK1iqxXUfzMmTjZK4UumrfNnjckSg+gqeBfnPRHa0NstA173Ik3g==} + cpu: [arm64] + os: [linux] + + '@turbo/windows-64@2.9.6': + resolution: {integrity: sha512-wVdQjvnBI15wB6JrA+43CtUtagjIMmX6XYO758oZHAsCNSxqRlJtdyujih0D8OCnwCRWiGWGI63zAxR0hO6s9g==} + cpu: [x64] + os: [win32] + + '@turbo/windows-arm64@2.9.6': + resolution: {integrity: sha512-1XUUyWW0W6FTSqGEhU8RHVqb2wP1SPkr7hIvBlMEwH9jr+sJQK5kqeosLJ/QaUv4ecSAd1ZhIrLoW7qslAzT4A==} + cpu: [arm64] + os: [win32] + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -1689,8 +1910,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@25.5.0': - resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} '@types/pg@8.20.0': resolution: {integrity: sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==} @@ -1766,34 +1987,34 @@ packages: '@use-gesture/vanilla@10.3.1': resolution: {integrity: sha512-lT4scGLu59ovA3zmtUonukAGcA0AdOOh+iwNDS05Bsu7Lq9aZToDHhI6D8Q2qvsVraovtsLLYwPrWdG/noMAKw==} - '@vitest/expect@4.1.0': - resolution: {integrity: sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==} + '@vitest/expect@4.1.5': + resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} - '@vitest/mocker@4.1.0': - resolution: {integrity: sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==} + '@vitest/mocker@4.1.5': + resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.1.0': - resolution: {integrity: sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==} + '@vitest/pretty-format@4.1.5': + resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} - '@vitest/runner@4.1.0': - resolution: {integrity: sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==} + '@vitest/runner@4.1.5': + resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} - '@vitest/snapshot@4.1.0': - resolution: {integrity: sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==} + '@vitest/snapshot@4.1.5': + resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} - '@vitest/spy@4.1.0': - resolution: {integrity: sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==} + '@vitest/spy@4.1.5': + resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} - '@vitest/utils@4.1.0': - resolution: {integrity: sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==} + '@vitest/utils@4.1.5': + resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -1805,8 +2026,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -1973,8 +2194,8 @@ packages: emoji-picker-element@1.29.1: resolution: {integrity: sha512-TOiHzu9Dqib3x4MwcAi3wi3RdyT4SoeB4b15AvH1ks4SBwTl7DeebhZ0d3x6dNi4XfNU7IGRZ7NBQllj0RqwrQ==} - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + enhanced-resolve@5.21.0: + resolution: {integrity: sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -1987,13 +2208,13 @@ packages: es-module-lexer@2.0.0: resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} - esbuild@0.27.0: - resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -2164,8 +2385,8 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -2197,8 +2418,8 @@ packages: hls.js@1.6.16: resolution: {integrity: sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==} - hono@4.12.8: - resolution: {integrity: sha512-VJCEvtrezO1IAR+kqEYnxUOoStaQPGrCmX3j4wDTNOcD1uRPFpGlwQUIW8niPuvHXaTUxeOUl5MMDGrl+tmO9A==} + hono@4.12.15: + resolution: {integrity: sha512-qM0jDhFEaCBb4TxoW7f53Qrpv9RBiayUHo0S52JudprkhvpjIrGoU1mnnr29Fvd1U335ZFPZQY1wlkqgfGXyLg==} engines: {node: '>=16.9.0'} human-id@4.1.3: @@ -2427,11 +2648,6 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true - miniflare@4.20260205.0: - resolution: {integrity: sha512-jG1TknEDeFqcq/z5gsOm1rKeg4cNG7ruWxEuiPxl3pnQumavxo8kFpeQC6XKVpAhh2PI9ODGyIYlgd77sTHl5g==} - engines: {node: '>=18.0.0'} - hasBin: true - miniflare@4.20260421.0: resolution: {integrity: sha512-7ZkNQ7brgQ2hh5ha9iQCDUjxBkLvuiG2VdDns9esRL8O8lXg+MoP6E0dO1rtp+ZY2I+vV1tPWr6td5IojkewLw==} engines: {node: '>=18.0.0'} @@ -2468,8 +2684,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.7: - resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} + nanoid@5.1.9: + resolution: {integrity: sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==} engines: {node: ^18 || >=20} hasBin: true @@ -2527,8 +2743,13 @@ packages: package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - partysocket@1.1.11: - resolution: {integrity: sha512-P0EtOQiAwvLriqLgdThcSaREfz3bP77LkLSdmXq680BosPKvGSoGTh/d0g3S+UNmaqcw89Ad7JXHHKyRx3xU9Q==} + partysocket@1.1.18: + resolution: {integrity: sha512-SyuvH9VavWOSa14v6dYdp3yfSUDII4BQB1+TkGOFBkjfZKjnDBiba4fhdhwBlqGBkqw4ea3gTA1DYhSffX24Wg==} + peerDependencies: + react: '>=17' + peerDependenciesMeta: + react: + optional: true path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -2589,10 +2810,6 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -2657,8 +2874,8 @@ packages: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + postcss@8.5.10: + resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -2687,8 +2904,8 @@ packages: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - prettier-plugin-tailwindcss@0.7.2: - resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==} + prettier-plugin-tailwindcss@0.7.3: + resolution: {integrity: sha512-lckXaWWdo2ZVXoMoUO3WIBiz9hVY+YBEh1gYyMFfrWP9WZW/wpFXQKizHx7WrFQFMkcG0bGShdpp531X1n+qpg==} engines: {node: '>=20.19'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -2747,8 +2964,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + prettier@3.8.3: + resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} engines: {node: '>=14'} hasBin: true @@ -2824,13 +3041,13 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown@1.0.0-rc.15: - resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} + rolldown@1.0.0-rc.17: + resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.60.1: - resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} + rollup@4.60.2: + resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2927,8 +3144,8 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@4.0.0: - resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} + std-env@4.1.0: + resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -2994,8 +3211,8 @@ packages: peerDependencies: svelte: ^5.0.0 - svelte@5.55.4: - resolution: {integrity: sha512-q8DFohk6vUswSng95IZb9nzWJnbINZsK7OiM1snAa3qCjJBL0ZQpvMyAaVXjUukdM75J/m8UE8xwqat8Ors/zQ==} + svelte@5.55.5: + resolution: {integrity: sha512-2uCs/LZ9us+AktdzYJM8OcxQ8qnPS1kpaO7syGT/MgO+6Qr1Ybl+TqPq+97u7PHqmmMlye5ZkoyXONy5mjjAbw==} engines: {node: '>=18'} tabbable@6.4.0: @@ -3038,12 +3255,12 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.4: - resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} tinyrainbow@3.1.0: @@ -3098,6 +3315,10 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + turbo@2.9.6: + resolution: {integrity: sha512-+v2QJey7ZUeUiuigkU+uFfklvNUyPI2VO2vBpMYJA+a1hKFLFiKtUYlRHdb3P9CrAvMzi0upbjI4WT+zKtqkBg==} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3126,12 +3347,8 @@ packages: ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - - undici@7.18.2: - resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} - engines: {node: '>=20.18.1'} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} undici@7.24.8: resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} @@ -3164,8 +3381,8 @@ packages: typescript: optional: true - vite@8.0.8: - resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} + vite@8.0.10: + resolution: {integrity: sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3215,21 +3432,23 @@ packages: vite: optional: true - vitest@4.1.0: - resolution: {integrity: sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==} + vitest@4.1.5: + resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.0 - '@vitest/browser-preview': 4.1.0 - '@vitest/browser-webdriverio': 4.1.0 - '@vitest/ui': 4.1.0 + '@vitest/browser-playwright': 4.1.5 + '@vitest/browser-preview': 4.1.5 + '@vitest/browser-webdriverio': 4.1.5 + '@vitest/coverage-istanbul': 4.1.5 + '@vitest/coverage-v8': 4.1.5 + '@vitest/ui': 4.1.5 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -3243,6 +3462,10 @@ packages: optional: true '@vitest/browser-webdriverio': optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true '@vitest/ui': optional: true happy-dom: @@ -3284,11 +3507,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260205.0: - resolution: {integrity: sha512-CcMH5clHwrH8VlY7yWS9C/G/C8g9czIz1yU3akMSP9Z3CkEMFSoC3GGdj5G7Alw/PHEeez1+1IrlYger4pwu+w==} - engines: {node: '>=16'} - hasBin: true - workerd@1.20260421.1: resolution: {integrity: sha512-zTYD+xFR4d7TUCxsyl7FTPth9a8CDgk8pM7xUWbJxo0SGUx+2e5C7Q5LrramBZwmuAErtzXmOjlQ15PtkPAhZA==} engines: {node: '>=16'} @@ -3298,16 +3516,6 @@ packages: resolution: {integrity: sha512-+TvsA6VAVoMC3XDKR5MoC/qlLqDixEfOBysDEKnPIPou/NvoPWCAuXHXMsswwlvmEuvX56lQjvELLyLuzTKvRw==} engines: {node: '>=12'} - wrangler@4.63.0: - resolution: {integrity: sha512-+R04jF7Eb8K3KRMSgoXpcIdLb8GC62eoSGusYh1pyrSMm/10E0hbKkd7phMJO4HxXc6R7mOHC5SSoX9eof30Uw==} - engines: {node: '>=20.0.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20260205.0 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - wrangler@4.84.1: resolution: {integrity: sha512-Xe1S/Bik7pNdtdJ+asHsEZC2dX9k3WxYn2BbxFtOrrLVxN/LKi750zsrjX41jSAk00M/O1l7jzyQV4sQqw8ftg==} engines: {node: '>=20.3.0'} @@ -3357,10 +3565,6 @@ packages: snapshots: - '@atcute/atproto@3.1.10': - dependencies: - '@atcute/lexicons': 1.2.9 - '@atcute/atproto@3.1.11': dependencies: '@atcute/lexicons': 1.3.0 @@ -3393,55 +3597,57 @@ snapshots: '@atcute/client@4.2.1': dependencies: '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 + '@atcute/lexicons': 1.3.0 '@atcute/crypto@2.4.1': dependencies: '@atcute/multibase': 1.2.0 '@atcute/uint8array': 1.1.1 - '@noble/secp256k1': 3.0.0 + '@noble/secp256k1': 3.1.0 '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4)': dependencies: '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 + '@atcute/lexicons': 1.3.0 '@atcute/util-fetch': 1.0.5 '@badrap/valita': 0.4.6 '@atcute/identity@1.1.4': dependencies: - '@atcute/lexicons': 1.2.9 + '@atcute/lexicons': 1.3.0 '@badrap/valita': 0.4.6 '@atcute/jetstream@1.1.2': dependencies: - '@atcute/lexicons': 1.2.9 + '@atcute/lexicons': 1.3.0 '@badrap/valita': 0.4.6 '@mary-ext/event-iterator': 1.0.0 - '@mary-ext/simple-event-emitter': 1.0.0 - partysocket: 1.1.11 + '@mary-ext/simple-event-emitter': 1.0.1 + partysocket: 1.1.18 type-fest: 4.41.0 yocto-queue: 1.2.2 + transitivePeerDependencies: + - react - '@atcute/lex-cli@2.5.3': + '@atcute/lex-cli@2.8.1': dependencies: '@atcute/identity': 1.1.4 '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) - '@atcute/lexicon-doc': 2.1.2 + '@atcute/lexicon-doc': 2.2.0 '@atcute/lexicon-resolver': 0.1.6(@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4))(@atcute/identity@1.1.4) - '@atcute/lexicons': 1.2.9 + '@atcute/lexicons': 1.3.0 '@badrap/valita': 0.4.6 - '@optique/core': 0.6.11 - '@optique/run': 0.6.11 + '@optique/core': 1.0.2 + '@optique/run': 1.0.2 picocolors: 1.1.1 - prettier: 3.8.1 + prettier: 3.8.3 - '@atcute/lexicon-doc@2.1.2': + '@atcute/lexicon-doc@2.2.0': dependencies: '@atcute/identity': 1.1.4 - '@atcute/lexicons': 1.2.9 + '@atcute/lexicons': 1.3.0 '@atcute/uint8array': 1.1.1 - '@atcute/util-text': 1.1.1 + '@atcute/util-text': 1.3.1 '@badrap/valita': 0.4.6 '@atcute/lexicon-resolver@0.1.6(@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4))(@atcute/identity@1.1.4)': @@ -3449,23 +3655,16 @@ snapshots: '@atcute/crypto': 2.4.1 '@atcute/identity': 1.1.4 '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) - '@atcute/lexicon-doc': 2.1.2 + '@atcute/lexicon-doc': 2.2.0 '@atcute/lexicons': 1.3.0 - '@atcute/repo': 0.1.3 + '@atcute/repo': 0.1.4 '@atcute/util-fetch': 1.0.5 '@badrap/valita': 0.4.6 - '@atcute/lexicons@1.2.9': - dependencies: - '@atcute/uint8array': 1.1.1 - '@atcute/util-text': 1.1.1 - '@standard-schema/spec': 1.1.0 - esm-env: 1.2.2 - '@atcute/lexicons@1.3.0': dependencies: '@atcute/uint8array': 1.1.1 - '@atcute/util-text': 1.2.0 + '@atcute/util-text': 1.3.1 '@standard-schema/spec': 1.1.0 esm-env: 1.2.2 @@ -3484,7 +3683,7 @@ snapshots: '@atcute/multibase': 1.2.0 '@atcute/uint8array': 1.1.1 '@badrap/valita': 0.4.6 - nanoid: 5.1.7 + nanoid: 5.1.9 '@atcute/oauth-keyset@0.1.0': dependencies: @@ -3501,7 +3700,7 @@ snapshots: '@atcute/oauth-types': 0.1.1 '@atcute/util-fetch': 1.0.5 '@badrap/valita': 0.4.6 - nanoid: 5.1.7 + nanoid: 5.1.9 '@atcute/oauth-types@0.1.1': dependencies: @@ -3510,7 +3709,7 @@ snapshots: '@atcute/oauth-keyset': 0.1.0 '@badrap/valita': 0.4.6 - '@atcute/repo@0.1.3': + '@atcute/repo@0.1.4': dependencies: '@atcute/car': 5.1.1 '@atcute/cbor': 2.3.2 @@ -3532,11 +3731,7 @@ snapshots: dependencies: '@badrap/valita': 0.4.6 - '@atcute/util-text@1.1.1': - dependencies: - unicode-segmenter: 0.14.5 - - '@atcute/util-text@1.2.0': + '@atcute/util-text@1.3.1': dependencies: unicode-segmenter: 0.14.5 @@ -3552,15 +3747,15 @@ snapshots: '@atcute/multibase': 1.2.0 '@atcute/uint8array': 1.1.1 '@badrap/valita': 0.4.6 - nanoid: 5.1.7 + nanoid: 5.1.9 '@babel/runtime@7.29.2': {} '@badrap/valita@0.4.6': {} - '@changesets/apply-release-plan@7.1.0': + '@changesets/apply-release-plan@7.1.1': dependencies: - '@changesets/config': 3.1.3 + '@changesets/config': 3.1.4 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.4 '@changesets/should-skip-package': 0.1.2 @@ -3574,10 +3769,10 @@ snapshots: resolve-from: 5.0.0 semver: 7.7.4 - '@changesets/assemble-release-plan@6.0.9': + '@changesets/assemble-release-plan@6.0.10': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-dependents-graph': 2.1.4 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 @@ -3587,15 +3782,15 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.30.0(@types/node@25.5.0)': + '@changesets/cli@2.31.0(@types/node@25.6.0)': dependencies: - '@changesets/apply-release-plan': 7.1.0 - '@changesets/assemble-release-plan': 6.0.9 + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.3 + '@changesets/config': 3.1.4 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.15 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 @@ -3603,7 +3798,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@25.5.0) + '@inquirer/external-editor': 1.0.3(@types/node@25.6.0) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 enquirer: 2.4.1 @@ -3618,10 +3813,10 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@changesets/config@3.1.3': + '@changesets/config@3.1.4': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-dependents-graph': 2.1.4 '@changesets/logger': 0.1.1 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 @@ -3633,17 +3828,17 @@ snapshots: dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.3': + '@changesets/get-dependents-graph@2.1.4': dependencies: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 semver: 7.7.4 - '@changesets/get-release-plan@4.0.15': + '@changesets/get-release-plan@4.0.16': dependencies: - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.3 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 '@changesets/pre': 2.0.2 '@changesets/read': 0.6.7 '@changesets/types': 6.1.0 @@ -3703,68 +3898,40 @@ snapshots: '@cloudflare/kv-asset-handler@0.4.2': {} - '@cloudflare/unenv-preset@2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260205.0)': - dependencies: - unenv: 2.0.0-rc.24 - optionalDependencies: - workerd: 1.20260205.0 - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260421.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: workerd: 1.20260421.1 - '@cloudflare/workerd-darwin-64@1.20260205.0': - optional: true - '@cloudflare/workerd-darwin-64@1.20260421.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260205.0': - optional: true - '@cloudflare/workerd-darwin-arm64@1.20260421.1': optional: true - '@cloudflare/workerd-linux-64@1.20260205.0': - optional: true - '@cloudflare/workerd-linux-64@1.20260421.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260205.0': - optional: true - '@cloudflare/workerd-linux-arm64@1.20260421.1': optional: true - '@cloudflare/workerd-windows-64@1.20260205.0': - optional: true - '@cloudflare/workerd-windows-64@1.20260421.1': optional: true - '@cloudflare/workers-types@4.20260205.0': {} - - '@cloudflare/workers-types@4.20260422.1': {} + '@cloudflare/workers-types@4.20260424.1': {} '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.9.2': + '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.8.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.9.2': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true @@ -3774,162 +3941,162 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.27.0': - optional: true - '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/android-arm64@0.27.0': + '@esbuild/aix-ppc64@0.27.7': optional: true '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm@0.27.0': + '@esbuild/android-arm64@0.27.7': optional: true '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-x64@0.27.0': + '@esbuild/android-arm@0.27.7': optional: true '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.27.0': + '@esbuild/android-x64@0.27.7': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-x64@0.27.0': + '@esbuild/darwin-arm64@0.27.7': optional: true '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.27.0': + '@esbuild/darwin-x64@0.27.7': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.27.0': + '@esbuild/freebsd-arm64@0.27.7': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/linux-arm64@0.27.0': + '@esbuild/freebsd-x64@0.27.7': optional: true '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm@0.27.0': + '@esbuild/linux-arm64@0.27.7': optional: true '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-ia32@0.27.0': + '@esbuild/linux-arm@0.27.7': optional: true '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-loong64@0.27.0': + '@esbuild/linux-ia32@0.27.7': optional: true '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-mips64el@0.27.0': + '@esbuild/linux-loong64@0.27.7': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-ppc64@0.27.0': + '@esbuild/linux-mips64el@0.27.7': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.27.0': + '@esbuild/linux-ppc64@0.27.7': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-s390x@0.27.0': + '@esbuild/linux-riscv64@0.27.7': optional: true '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-x64@0.27.0': + '@esbuild/linux-s390x@0.27.7': optional: true '@esbuild/linux-x64@0.27.3': optional: true - '@esbuild/netbsd-arm64@0.27.0': + '@esbuild/linux-x64@0.27.7': optional: true '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.27.0': + '@esbuild/netbsd-arm64@0.27.7': optional: true '@esbuild/netbsd-x64@0.27.3': optional: true - '@esbuild/openbsd-arm64@0.27.0': + '@esbuild/netbsd-x64@0.27.7': optional: true '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.27.0': + '@esbuild/openbsd-arm64@0.27.7': optional: true '@esbuild/openbsd-x64@0.27.3': optional: true - '@esbuild/openharmony-arm64@0.27.0': + '@esbuild/openbsd-x64@0.27.7': optional: true '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/sunos-x64@0.27.0': + '@esbuild/openharmony-arm64@0.27.7': optional: true '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/win32-arm64@0.27.0': + '@esbuild/sunos-x64@0.27.7': optional: true '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-ia32@0.27.0': + '@esbuild/win32-arm64@0.27.7': optional: true '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-x64@0.27.0': + '@esbuild/win32-ia32@0.27.7': optional: true '@esbuild/win32-x64@0.27.3': optional: true + '@esbuild/win32-x64@0.27.7': + optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))': dependencies: eslint: 10.2.1(jiti@2.6.1) @@ -3985,23 +4152,23 @@ snapshots: '@fontsource-variable/geist@5.2.8': {} - '@foxui/core@0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': + '@foxui/core@0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': dependencies: '@fontsource-variable/geist': 5.2.8 '@fontsource-variable/geist-mono': 5.2.7 - '@jis3r/icons': 2.7.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - '@lucide/svelte': 1.8.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - '@number-flow/svelte': 0.4.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + '@jis3r/icons': 2.7.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + '@lucide/svelte': 1.9.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + '@number-flow/svelte': 0.4.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) clsx: 2.1.1 dompurify: 3.4.1 - mode-watcher: 1.1.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - svelte: 5.55.4(@typescript-eslint/types@8.59.0) - svelte-sonner: 1.1.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + mode-watcher: 1.1.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) + svelte-sonner: 1.1.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) tailwind-merge: 3.5.0 tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.4) tailwindcss: 4.2.4 - web-haptics: 0.0.6(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + web-haptics: 0.0.6(svelte@5.55.5(@typescript-eslint/types@8.59.0)) transitivePeerDependencies: - '@internationalized/date' - '@sveltejs/kit' @@ -4009,20 +4176,20 @@ snapshots: - react-dom - vue - '@foxui/social@0.8.10(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': + '@foxui/social@0.8.10(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': dependencies: '@atcute/bluesky': 3.3.3 '@atcute/bluesky-richtext-segmenter': 3.0.0 - '@foxui/core': 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) - '@foxui/text': 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) - '@foxui/time': 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@foxui/core': 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@foxui/text': 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@foxui/time': 0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) '@use-gesture/vanilla': 10.3.1 - bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) emoji-picker-element: 1.29.1 hls.js: 1.6.16 is-emoji-supported: 0.0.5 plyr: 3.8.4 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) tailwindcss: 4.2.4 transitivePeerDependencies: - '@internationalized/date' @@ -4034,10 +4201,10 @@ snapshots: - react-dom - vue - '@foxui/text@0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': + '@foxui/text@0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extensions@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(highlight.js@11.11.1)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': dependencies: '@floating-ui/dom': 1.7.6 - '@foxui/core': 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@foxui/core': 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) '@tiptap/core': 3.22.4(@tiptap/pm@3.22.4) '@tiptap/extension-bubble-menu': 3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4) '@tiptap/extension-code-block-lowlight': 3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/extension-code-block@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4)(highlight.js@11.11.1)(lowlight@3.3.0) @@ -4057,11 +4224,11 @@ snapshots: '@tiptap/pm': 3.22.4 '@tiptap/starter-kit': 3.22.4 '@tiptap/suggestion': 3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4) - bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) lowlight: 3.3.0 state: link:@tiptap/pm/state - svelte: 5.55.4(@typescript-eslint/types@8.59.0) - svelte-tiptap: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/extension-bubble-menu@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extension-floating-menu@3.22.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4)(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) + svelte-tiptap: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/extension-bubble-menu@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extension-floating-menu@3.22.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4)(svelte@5.55.5(@typescript-eslint/types@8.59.0)) tailwindcss: 4.2.4 transitivePeerDependencies: - '@internationalized/date' @@ -4073,12 +4240,12 @@ snapshots: - react-dom - vue - '@foxui/time@0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': + '@foxui/time@0.8.5(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4)': dependencies: - '@foxui/core': 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) - '@number-flow/svelte': 0.4.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + '@foxui/core': 0.9.1(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(tailwindcss@4.2.4) + '@number-flow/svelte': 0.4.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) tailwindcss: 4.2.4 transitivePeerDependencies: - '@internationalized/date' @@ -4103,7 +4270,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@img/colour@1.0.0': {} + '@img/colour@1.1.0': {} '@img/sharp-darwin-arm64@0.34.5': optionalDependencies: @@ -4187,7 +4354,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.10.0 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -4199,20 +4366,20 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@inquirer/external-editor@1.0.3(@types/node@25.5.0)': + '@inquirer/external-editor@1.0.3(@types/node@25.6.0)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 '@internationalized/date@3.12.1': dependencies: '@swc/helpers': 0.5.21 - '@jis3r/icons@2.7.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))': + '@jis3r/icons@2.7.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))': dependencies: - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -4238,9 +4405,9 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lucide/svelte@1.8.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))': + '@lucide/svelte@1.9.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))': dependencies: - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) '@manypkg/find-root@1.1.0': dependencies: @@ -4262,16 +4429,16 @@ snapshots: dependencies: yocto-queue: 1.2.2 - '@mary-ext/simple-event-emitter@1.0.0': {} + '@mary-ext/simple-event-emitter@1.0.1': {} - '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true - '@noble/secp256k1@3.0.0': {} + '@noble/secp256k1@3.1.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -4285,19 +4452,19 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@number-flow/svelte@0.4.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))': + '@number-flow/svelte@0.4.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))': dependencies: esm-env: 1.2.2 number-flow: 0.6.0 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - '@optique/core@0.6.11': {} + '@optique/core@1.0.2': {} - '@optique/run@0.6.11': + '@optique/run@1.0.2': dependencies: - '@optique/core': 0.6.11 + '@optique/core': 1.0.2 - '@oxc-project/types@0.124.0': {} + '@oxc-project/types@0.127.0': {} '@polka/url@1.0.0-next.29': {} @@ -4313,135 +4480,135 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@rolldown/binding-android-arm64@1.0.0-rc.15': + '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.15': + '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/pluginutils@1.0.0-rc.15': {} + '@rolldown/pluginutils@1.0.0-rc.17': {} - '@rollup/rollup-android-arm-eabi@4.60.1': + '@rollup/rollup-android-arm-eabi@4.60.2': optional: true - '@rollup/rollup-android-arm64@4.60.1': + '@rollup/rollup-android-arm64@4.60.2': optional: true - '@rollup/rollup-darwin-arm64@4.60.1': + '@rollup/rollup-darwin-arm64@4.60.2': optional: true - '@rollup/rollup-darwin-x64@4.60.1': + '@rollup/rollup-darwin-x64@4.60.2': optional: true - '@rollup/rollup-freebsd-arm64@4.60.1': + '@rollup/rollup-freebsd-arm64@4.60.2': optional: true - '@rollup/rollup-freebsd-x64@4.60.1': + '@rollup/rollup-freebsd-x64@4.60.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.1': + '@rollup/rollup-linux-arm-musleabihf@4.60.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.1': + '@rollup/rollup-linux-arm64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.60.1': + '@rollup/rollup-linux-arm64-musl@4.60.2': optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.1': + '@rollup/rollup-linux-loong64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-loong64-musl@4.60.1': + '@rollup/rollup-linux-loong64-musl@4.60.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.1': + '@rollup/rollup-linux-ppc64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.1': + '@rollup/rollup-linux-ppc64-musl@4.60.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.1': + '@rollup/rollup-linux-riscv64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.1': + '@rollup/rollup-linux-riscv64-musl@4.60.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.1': + '@rollup/rollup-linux-s390x-gnu@4.60.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.60.1': + '@rollup/rollup-linux-x64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-x64-musl@4.60.1': + '@rollup/rollup-linux-x64-musl@4.60.2': optional: true - '@rollup/rollup-openbsd-x64@4.60.1': + '@rollup/rollup-openbsd-x64@4.60.2': optional: true - '@rollup/rollup-openharmony-arm64@4.60.1': + '@rollup/rollup-openharmony-arm64@4.60.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.1': + '@rollup/rollup-win32-arm64-msvc@4.60.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.1': + '@rollup/rollup-win32-ia32-msvc@4.60.2': optional: true - '@rollup/rollup-win32-x64-gnu@4.60.1': + '@rollup/rollup-win32-x64-gnu@4.60.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.60.1': + '@rollup/rollup-win32-x64-msvc@4.60.2': optional: true '@sindresorhus/is@7.2.0': {} - '@speed-highlight/core@1.2.14': {} + '@speed-highlight/core@1.2.15': {} '@standard-schema/spec@1.1.0': {} @@ -4449,18 +4616,18 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-cloudflare@7.2.8(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(wrangler@4.84.1(@cloudflare/workers-types@4.20260422.1))': + '@sveltejs/adapter-cloudflare@7.2.8(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(wrangler@4.84.1(@cloudflare/workers-types@4.20260424.1))': dependencies: - '@cloudflare/workers-types': 4.20260422.1 - '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + '@cloudflare/workers-types': 4.20260424.1 + '@sveltejs/kit': 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) worktop: 0.8.0-next.18 - wrangler: 4.84.1(@cloudflare/workers-types@4.20260422.1) + wrangler: 4.84.1(@cloudflare/workers-types@4.20260424.1) - '@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0))': + '@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -4471,19 +4638,19 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) - vite: 8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) optionalDependencies: typescript: 6.0.3 - '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0))': + '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) - vite: 8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0) - vitefu: 1.1.3(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) + vitefu: 1.1.3(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) '@swc/helpers@0.5.21': dependencies: @@ -4497,7 +4664,7 @@ snapshots: '@tailwindcss/node@4.2.4': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.1 + enhanced-resolve: 5.21.0 jiti: 2.6.1 lightningcss: 1.32.0 magic-string: 0.30.21 @@ -4555,12 +4722,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.2.4 '@tailwindcss/oxide-win32-x64-msvc': 4.2.4 - '@tailwindcss/vite@4.2.4(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0))': + '@tailwindcss/vite@4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3))': dependencies: '@tailwindcss/node': 4.2.4 '@tailwindcss/oxide': 4.2.4 tailwindcss: 4.2.4 - vite: 8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) '@tiptap/core@3.22.4(@tiptap/pm@3.22.4)': dependencies: @@ -4749,6 +4916,24 @@ snapshots: '@tiptap/core': 3.22.4(@tiptap/pm@3.22.4) '@tiptap/pm': 3.22.4 + '@turbo/darwin-64@2.9.6': + optional: true + + '@turbo/darwin-arm64@2.9.6': + optional: true + + '@turbo/linux-64@2.9.6': + optional: true + + '@turbo/linux-arm64@2.9.6': + optional: true + + '@turbo/windows-64@2.9.6': + optional: true + + '@turbo/windows-arm64@2.9.6': + optional: true + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -4775,13 +4960,13 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@25.5.0': + '@types/node@25.6.0': dependencies: - undici-types: 7.18.2 + undici-types: 7.19.2 '@types/pg@8.20.0': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 pg-protocol: 1.13.0 pg-types: 2.2.0 @@ -4858,7 +5043,7 @@ snapshots: debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -4886,44 +5071,44 @@ snapshots: dependencies: '@use-gesture/core': 10.3.1 - '@vitest/expect@4.1.0': + '@vitest/expect@4.1.5': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.0(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0))': + '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3))': dependencies: - '@vitest/spy': 4.1.0 + '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) - '@vitest/pretty-format@4.1.0': + '@vitest/pretty-format@4.1.5': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.0': + '@vitest/runner@4.1.5': dependencies: - '@vitest/utils': 4.1.0 + '@vitest/utils': 4.1.5 pathe: 2.0.3 - '@vitest/snapshot@4.1.0': + '@vitest/snapshot@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/pretty-format': 4.1.5 + '@vitest/utils': 4.1.5 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.0': {} + '@vitest/spy@4.1.5': {} - '@vitest/utils@4.1.0': + '@vitest/utils@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.0 + '@vitest/pretty-format': 4.1.5 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -4933,7 +5118,7 @@ snapshots: acorn@8.16.0: {} - ajv@6.14.0: + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -4966,15 +5151,15 @@ snapshots: dependencies: is-windows: 1.0.2 - bits-ui@2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + bits-ui@2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: '@floating-ui/core': 1.7.5 '@floating-ui/dom': 1.7.6 '@internationalized/date': 3.12.1 esm-env: 1.2.2 - runed: 0.35.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - svelte: 5.55.4(@typescript-eslint/types@8.59.0) - svelte-toolbelt: 0.10.6(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + runed: 0.35.1(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) + svelte-toolbelt: 0.10.6(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) tabbable: 6.4.0 transitivePeerDependencies: - '@sveltejs/kit' @@ -4989,9 +5174,9 @@ snapshots: dependencies: fill-range: 7.1.1 - bundle-require@5.1.0(esbuild@0.27.0): + bundle-require@5.1.0(esbuild@0.27.7): dependencies: - esbuild: 0.27.0 + esbuild: 0.27.7 load-tsconfig: 0.2.5 cac@6.7.14: {} @@ -5060,7 +5245,7 @@ snapshots: emoji-picker-element@1.29.1: {} - enhanced-resolve@5.20.1: + enhanced-resolve@5.21.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -5074,35 +5259,6 @@ snapshots: es-module-lexer@2.0.0: {} - esbuild@0.27.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.0 - '@esbuild/android-arm': 0.27.0 - '@esbuild/android-arm64': 0.27.0 - '@esbuild/android-x64': 0.27.0 - '@esbuild/darwin-arm64': 0.27.0 - '@esbuild/darwin-x64': 0.27.0 - '@esbuild/freebsd-arm64': 0.27.0 - '@esbuild/freebsd-x64': 0.27.0 - '@esbuild/linux-arm': 0.27.0 - '@esbuild/linux-arm64': 0.27.0 - '@esbuild/linux-ia32': 0.27.0 - '@esbuild/linux-loong64': 0.27.0 - '@esbuild/linux-mips64el': 0.27.0 - '@esbuild/linux-ppc64': 0.27.0 - '@esbuild/linux-riscv64': 0.27.0 - '@esbuild/linux-s390x': 0.27.0 - '@esbuild/linux-x64': 0.27.0 - '@esbuild/netbsd-arm64': 0.27.0 - '@esbuild/netbsd-x64': 0.27.0 - '@esbuild/openbsd-arm64': 0.27.0 - '@esbuild/openbsd-x64': 0.27.0 - '@esbuild/openharmony-arm64': 0.27.0 - '@esbuild/sunos-x64': 0.27.0 - '@esbuild/win32-arm64': 0.27.0 - '@esbuild/win32-ia32': 0.27.0 - '@esbuild/win32-x64': 0.27.0 - esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -5132,13 +5288,42 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + escape-string-regexp@4.0.0: {} eslint-config-prettier@10.1.8(eslint@10.2.1(jiti@2.6.1)): dependencies: eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-svelte@3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + eslint-plugin-svelte@3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -5146,13 +5331,13 @@ snapshots: esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 - postcss: 8.5.8 - postcss-load-config: 3.1.4(postcss@8.5.8) - postcss-safe-parser: 7.0.1(postcss@8.5.8) + postcss: 8.5.10 + postcss-load-config: 3.1.4(postcss@8.5.10) + postcss-safe-parser: 7.0.1(postcss@8.5.10) semver: 7.7.4 - svelte-eslint-parser: 1.6.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + svelte-eslint-parser: 1.6.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) optionalDependencies: - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) transitivePeerDependencies: - ts-node @@ -5186,7 +5371,7 @@ snapshots: '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.14.0 + ajv: 6.15.0 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 @@ -5299,7 +5484,7 @@ snapshots: dependencies: magic-string: 0.30.21 mlly: 1.8.2 - rollup: 4.60.1 + rollup: 4.60.2 flat-cache@4.0.1: dependencies: @@ -5323,7 +5508,7 @@ snapshots: fsevents@2.3.3: optional: true - get-tsconfig@4.13.6: + get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -5354,7 +5539,7 @@ snapshots: hls.js@1.6.16: {} - hono@4.12.8: {} + hono@4.12.15: {} human-id@4.1.3: {} @@ -5524,18 +5709,6 @@ snapshots: mini-svg-data-uri@1.4.4: {} - miniflare@4.20260205.0: - dependencies: - '@cspotcode/source-map-support': 0.8.1 - sharp: 0.34.5 - undici: 7.18.2 - workerd: 1.20260205.0 - ws: 8.18.0 - youch: 4.1.0-beta.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - miniflare@4.20260421.0: dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -5559,11 +5732,11 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.3 - mode-watcher@1.1.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + mode-watcher@1.1.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: - runed: 0.25.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - svelte: 5.55.4(@typescript-eslint/types@8.59.0) - svelte-toolbelt: 0.7.1(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + runed: 0.25.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) + svelte-toolbelt: 0.7.1(svelte@5.55.5(@typescript-eslint/types@8.59.0)) mri@1.2.0: {} @@ -5579,7 +5752,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.7: {} + nanoid@5.1.9: {} natural-compare@1.4.0: {} @@ -5632,7 +5805,7 @@ snapshots: dependencies: quansync: 0.2.11 - partysocket@1.1.11: + partysocket@1.1.18: dependencies: event-target-polyfill: 0.0.4 @@ -5685,8 +5858,6 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.3: {} - picomatch@4.0.4: {} pify@4.0.1: {} @@ -5707,35 +5878,36 @@ snapshots: rangetouch: 2.0.1 url-polyfill: 1.1.14 - postcss-load-config@3.1.4(postcss@8.5.8): + postcss-load-config@3.1.4(postcss@8.5.10): dependencies: lilconfig: 2.1.0 yaml: 1.10.3 optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.10 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(yaml@1.10.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.8 + postcss: 8.5.10 tsx: 4.21.0 + yaml: 1.10.3 - postcss-safe-parser@7.0.1(postcss@8.5.8): + postcss-safe-parser@7.0.1(postcss@8.5.10): dependencies: - postcss: 8.5.8 + postcss: 8.5.10 - postcss-scss@4.0.9(postcss@8.5.8): + postcss-scss@4.0.9(postcss@8.5.10): dependencies: - postcss: 8.5.8 + postcss: 8.5.10 postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.8: + postcss@8.5.10: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -5753,20 +5925,20 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: - prettier: 3.8.1 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + prettier: 3.8.3 + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0)))(prettier@3.8.1): + prettier-plugin-tailwindcss@0.7.3(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)))(prettier@3.8.3): dependencies: - prettier: 3.8.1 + prettier: 3.8.3 optionalDependencies: - prettier-plugin-svelte: 3.5.1(prettier@3.8.1)(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + prettier-plugin-svelte: 3.5.1(prettier@3.8.3)(svelte@5.55.5(@typescript-eslint/types@8.59.0)) prettier@2.8.8: {} - prettier@3.8.1: {} + prettier@3.8.3: {} prosemirror-changeset@2.4.1: dependencies: @@ -5862,56 +6034,56 @@ snapshots: reusify@1.1.0: {} - rolldown@1.0.0-rc.15: + rolldown@1.0.0-rc.17: dependencies: - '@oxc-project/types': 0.124.0 - '@rolldown/pluginutils': 1.0.0-rc.15 + '@oxc-project/types': 0.127.0 + '@rolldown/pluginutils': 1.0.0-rc.17 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-x64': 1.0.0-rc.15 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 - - rollup@4.60.1: + '@rolldown/binding-android-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-x64': 1.0.0-rc.17 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.17 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.17 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.17 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.17 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 + + rollup@4.60.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.1 - '@rollup/rollup-android-arm64': 4.60.1 - '@rollup/rollup-darwin-arm64': 4.60.1 - '@rollup/rollup-darwin-x64': 4.60.1 - '@rollup/rollup-freebsd-arm64': 4.60.1 - '@rollup/rollup-freebsd-x64': 4.60.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 - '@rollup/rollup-linux-arm-musleabihf': 4.60.1 - '@rollup/rollup-linux-arm64-gnu': 4.60.1 - '@rollup/rollup-linux-arm64-musl': 4.60.1 - '@rollup/rollup-linux-loong64-gnu': 4.60.1 - '@rollup/rollup-linux-loong64-musl': 4.60.1 - '@rollup/rollup-linux-ppc64-gnu': 4.60.1 - '@rollup/rollup-linux-ppc64-musl': 4.60.1 - '@rollup/rollup-linux-riscv64-gnu': 4.60.1 - '@rollup/rollup-linux-riscv64-musl': 4.60.1 - '@rollup/rollup-linux-s390x-gnu': 4.60.1 - '@rollup/rollup-linux-x64-gnu': 4.60.1 - '@rollup/rollup-linux-x64-musl': 4.60.1 - '@rollup/rollup-openbsd-x64': 4.60.1 - '@rollup/rollup-openharmony-arm64': 4.60.1 - '@rollup/rollup-win32-arm64-msvc': 4.60.1 - '@rollup/rollup-win32-ia32-msvc': 4.60.1 - '@rollup/rollup-win32-x64-gnu': 4.60.1 - '@rollup/rollup-win32-x64-msvc': 4.60.1 + '@rollup/rollup-android-arm-eabi': 4.60.2 + '@rollup/rollup-android-arm64': 4.60.2 + '@rollup/rollup-darwin-arm64': 4.60.2 + '@rollup/rollup-darwin-x64': 4.60.2 + '@rollup/rollup-freebsd-arm64': 4.60.2 + '@rollup/rollup-freebsd-x64': 4.60.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.2 + '@rollup/rollup-linux-arm-musleabihf': 4.60.2 + '@rollup/rollup-linux-arm64-gnu': 4.60.2 + '@rollup/rollup-linux-arm64-musl': 4.60.2 + '@rollup/rollup-linux-loong64-gnu': 4.60.2 + '@rollup/rollup-linux-loong64-musl': 4.60.2 + '@rollup/rollup-linux-ppc64-gnu': 4.60.2 + '@rollup/rollup-linux-ppc64-musl': 4.60.2 + '@rollup/rollup-linux-riscv64-gnu': 4.60.2 + '@rollup/rollup-linux-riscv64-musl': 4.60.2 + '@rollup/rollup-linux-s390x-gnu': 4.60.2 + '@rollup/rollup-linux-x64-gnu': 4.60.2 + '@rollup/rollup-linux-x64-musl': 4.60.2 + '@rollup/rollup-openbsd-x64': 4.60.2 + '@rollup/rollup-openharmony-arm64': 4.60.2 + '@rollup/rollup-win32-arm64-msvc': 4.60.2 + '@rollup/rollup-win32-ia32-msvc': 4.60.2 + '@rollup/rollup-win32-x64-gnu': 4.60.2 + '@rollup/rollup-win32-x64-msvc': 4.60.2 fsevents: 2.3.3 rope-sequence@1.3.4: {} @@ -5920,29 +6092,29 @@ snapshots: dependencies: queue-microtask: 1.2.3 - runed@0.23.4(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + runed@0.23.4(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: esm-env: 1.2.2 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - runed@0.25.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + runed@0.25.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: esm-env: 1.2.2 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - runed@0.28.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + runed@0.28.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: esm-env: 1.2.2 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - runed@0.35.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + runed@0.35.1(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: dequal: 2.0.3 esm-env: 1.2.2 lz-string: 1.5.0 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) optionalDependencies: - '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)) + '@sveltejs/kit': 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) sade@1.8.1: dependencies: @@ -5956,7 +6128,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: @@ -6018,7 +6190,7 @@ snapshots: stackback@0.0.2: {} - std-env@4.0.0: {} + std-env@4.1.0: {} strip-ansi@6.0.1: dependencies: @@ -6037,66 +6209,66 @@ snapshots: lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-interface-checker: 0.1.13 supports-color@10.2.2: {} - svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3): + svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) typescript: 6.0.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.6.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + svelte-eslint-parser@1.6.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - postcss: 8.5.8 - postcss-scss: 4.0.9(postcss@8.5.8) + postcss: 8.5.10 + postcss-scss: 4.0.9(postcss@8.5.10) postcss-selector-parser: 7.1.1 semver: 7.7.4 optionalDependencies: - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - svelte-sonner@1.1.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + svelte-sonner@1.1.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: - runed: 0.28.0(svelte@5.55.4(@typescript-eslint/types@8.59.0)) - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + runed: 0.28.0(svelte@5.55.5(@typescript-eslint/types@8.59.0)) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - svelte-tiptap@3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/extension-bubble-menu@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extension-floating-menu@3.22.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4)(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + svelte-tiptap@3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/extension-bubble-menu@3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/extension-floating-menu@3.22.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4)(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: '@floating-ui/dom': 1.7.6 '@tiptap/core': 3.22.4(@tiptap/pm@3.22.4) '@tiptap/extension-bubble-menu': 3.22.4(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4) '@tiptap/extension-floating-menu': 3.22.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.4(@tiptap/pm@3.22.4))(@tiptap/pm@3.22.4) '@tiptap/pm': 3.22.4 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - svelte-toolbelt@0.10.6(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + svelte-toolbelt@0.10.6(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: clsx: 2.1.1 - runed: 0.35.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.4(@typescript-eslint/types@8.59.0))(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + runed: 0.35.1(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5(@typescript-eslint/types@8.59.0))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0))(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)))(svelte@5.55.5(@typescript-eslint/types@8.59.0)) style-to-object: 1.0.14 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) transitivePeerDependencies: - '@sveltejs/kit' - svelte-toolbelt@0.7.1(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + svelte-toolbelt@0.7.1(svelte@5.55.5(@typescript-eslint/types@8.59.0)): dependencies: clsx: 2.1.1 - runed: 0.23.4(svelte@5.55.4(@typescript-eslint/types@8.59.0)) + runed: 0.23.4(svelte@5.55.5(@typescript-eslint/types@8.59.0)) style-to-object: 1.0.14 - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) - svelte@5.55.4(@typescript-eslint/types@8.59.0): + svelte@5.55.5(@typescript-eslint/types@8.59.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -6145,9 +6317,9 @@ snapshots: tinyexec@0.3.2: {} - tinyexec@1.0.4: {} + tinyexec@1.1.1: {} - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 @@ -6170,27 +6342,27 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3): + tsup@8.5.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(typescript@5.9.3)(yaml@1.10.3): dependencies: - bundle-require: 5.1.0(esbuild@0.27.0) + bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.3 - esbuild: 0.27.0 + esbuild: 0.27.7 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(yaml@1.10.3) resolve-from: 5.0.0 - rollup: 4.60.1 + rollup: 4.60.2 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.10 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -6200,11 +6372,20 @@ snapshots: tsx@4.21.0: dependencies: - esbuild: 0.27.0 - get-tsconfig: 4.13.6 + esbuild: 0.27.7 + get-tsconfig: 4.14.0 optionalDependencies: fsevents: 2.3.3 + turbo@2.9.6: + optionalDependencies: + '@turbo/darwin-64': 2.9.6 + '@turbo/darwin-arm64': 2.9.6 + '@turbo/linux-64': 2.9.6 + '@turbo/linux-arm64': 2.9.6 + '@turbo/windows-64': 2.9.6 + '@turbo/windows-arm64': 2.9.6 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -6228,9 +6409,7 @@ snapshots: ufo@1.6.3: {} - undici-types@7.18.2: {} - - undici@7.18.2: {} + undici-types@7.19.2: {} undici@7.24.8: {} @@ -6254,70 +6433,57 @@ snapshots: optionalDependencies: typescript: 6.0.3 - vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0): + vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.8 - rolldown: 1.0.0-rc.15 - tinyglobby: 0.2.15 + postcss: 8.5.10 + rolldown: 1.0.0-rc.17 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.0 - esbuild: 0.27.0 - fsevents: 2.3.3 - jiti: 2.6.1 - tsx: 4.21.0 - - vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0): - dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.8 - rolldown: 1.0.0-rc.15 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 25.5.0 - esbuild: 0.27.3 + '@types/node': 25.6.0 + esbuild: 0.27.7 fsevents: 2.3.3 jiti: 2.6.1 tsx: 4.21.0 + yaml: 1.10.3 - vitefu@1.1.3(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)): + vitefu@1.1.3(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)): optionalDependencies: - vite: 8.0.8(@types/node@25.5.0)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) - vitest@4.1.0(@types/node@25.5.0)(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0)): + vitest@4.1.5(@types/node@25.6.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)): dependencies: - '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0)) - '@vitest/pretty-format': 4.1.0 - '@vitest/runner': 4.1.0 - '@vitest/snapshot': 4.1.0 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/expect': 4.1.5 + '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3)) + '@vitest/pretty-format': 4.1.5 + '@vitest/runner': 4.1.5 + '@vitest/snapshot': 4.1.5 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 4.0.0 + picomatch: 4.0.4 + std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 8.0.8(@types/node@25.5.0)(esbuild@0.27.0)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@1.10.3) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 transitivePeerDependencies: - msw w3c-keyname@2.2.8: {} - web-haptics@0.0.6(svelte@5.55.4(@typescript-eslint/types@8.59.0)): + web-haptics@0.0.6(svelte@5.55.5(@typescript-eslint/types@8.59.0)): optionalDependencies: - svelte: 5.55.4(@typescript-eslint/types@8.59.0) + svelte: 5.55.5(@typescript-eslint/types@8.59.0) which@2.0.2: dependencies: @@ -6330,14 +6496,6 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260205.0: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260205.0 - '@cloudflare/workerd-darwin-arm64': 1.20260205.0 - '@cloudflare/workerd-linux-64': 1.20260205.0 - '@cloudflare/workerd-linux-arm64': 1.20260205.0 - '@cloudflare/workerd-windows-64': 1.20260205.0 - workerd@1.20260421.1: optionalDependencies: '@cloudflare/workerd-darwin-64': 1.20260421.1 @@ -6351,24 +6509,7 @@ snapshots: mrmime: 2.0.1 regexparam: 3.0.0 - wrangler@4.63.0(@cloudflare/workers-types@4.20260205.0): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260205.0) - blake3-wasm: 2.1.5 - esbuild: 0.27.0 - miniflare: 4.20260205.0 - path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.24 - workerd: 1.20260205.0 - optionalDependencies: - '@cloudflare/workers-types': 4.20260205.0 - fsevents: 2.3.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - wrangler@4.84.1(@cloudflare/workers-types@4.20260422.1): + wrangler@4.84.1(@cloudflare/workers-types@4.20260424.1): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260421.1) @@ -6379,7 +6520,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260421.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260422.1 + '@cloudflare/workers-types': 4.20260424.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -6404,7 +6545,7 @@ snapshots: dependencies: '@poppinss/colors': 4.1.6 '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.14 + '@speed-highlight/core': 1.2.15 cookie: 1.1.1 youch-core: 0.3.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b92d403..ad4305c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,10 @@ packages: - - "examples/sveltekit-group-chat" + - "packages/*" + - "apps/*" -ignoredBuiltDependencies: +onlyBuiltDependencies: - esbuild - sharp - workerd + - "@tailwindcss/oxide" + - "@sveltejs/kit" diff --git a/tsconfig.build.json b/tsconfig.base.json similarity index 72% rename from tsconfig.build.json rename to tsconfig.base.json index 3e4282c..b989f00 100644 --- a/tsconfig.build.json +++ b/tsconfig.base.json @@ -4,13 +4,12 @@ "module": "ES2022", "moduleResolution": "bundler", "lib": ["ES2022"], - "types": ["@cloudflare/workers-types", "node"], "strict": true, "noEmit": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "resolveJsonModule": true, - "isolatedModules": true - }, - "include": ["src"] + "isolatedModules": true, + "esModuleInterop": true + } } diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 2c00c47..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "ES2022", - "moduleResolution": "bundler", - "lib": ["ES2022"], - "types": ["@cloudflare/workers-types"], - "strict": true, - "noEmit": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "isolatedModules": true - }, - "include": ["src", "app"], - "exclude": ["src/adapters/sqlite.ts", "src/generate.ts"] -} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..94b9292 --- /dev/null +++ b/turbo.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://turbo.build/schema.json", + "ui": "stream", + "tasks": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "typecheck": { + "dependsOn": ["^build"] + }, + "test": { + "dependsOn": ["^build"], + "outputs": [] + }, + "dev": { + "cache": false, + "persistent": true, + "dependsOn": ["^build"] + }, + "clean": { + "cache": false + } + } +}