diff --git a/.gitignore b/.gitignore index 634a57be8..7021fe7e7 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ drizzle/migrations .tanstack-start/build .nitro/* .netlify/* +.wrangler/* /build/ /api/ diff --git a/README.md b/README.md index d747b14ef..f168f491e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # TanStack.com -The home of the TanStack ecosystem. Built with [TanStack Router](https://tanstack.com/router) and deployed automagically with [Netlify](https://netlify.com/). +The home of the TanStack ecosystem. Built with [TanStack Router](https://tanstack.com/router) and deployed on [Cloudflare Workers](https://workers.cloudflare.com/). Follow @TanStack diff --git a/docs/cloudflare-workers-migration.md b/docs/cloudflare-workers-migration.md new file mode 100644 index 000000000..c8df74cea --- /dev/null +++ b/docs/cloudflare-workers-migration.md @@ -0,0 +1,87 @@ +# Cloudflare Workers Migration Report + +TanStack.com is configured as a Cloudflare Workers deployment for this branch. Netlify is no longer part of this site's hosting configuration, but Netlify remains available in builder/deploy-provider UX for users who choose it. + +## Files Changed + +- `package.json`, `pnpm-lock.yaml`: Cloudflare build/preview/deploy scripts, `@cloudflare/vite-plugin`, `wrangler`, and removal of Netlify hosting packages. +- `vite.config.ts`: Cloudflare Vite plugin, Worker build constants, opt-in image transformation flag, and server builder-generation disabled for Worker size. +- `wrangler.jsonc`: Worker name/account, assets binding, `nodejs_compat`, CPU limit, cron triggers, and production `SITE_URL`. +- `src/server.ts`, `src/server/scheduled.server.ts`: Worker `fetch` and `scheduled` entrypoints, replacing former Netlify scheduled functions. +- `src/server/runtime/host.server.ts`, `src/utils/hosting-cache.server.ts`: host cache purge adapter using Cloudflare cache-tag purge. +- `src/components/OptimizedImage.tsx`, `src/utils/optimizedImage.ts`: host-neutral optimized image helper with Cloudflare image transformations behind an explicit build flag. +- `src/routes/api/builder/*`, `src/components/builder/*`: builder deploy/download path uses browser-generated files; direct server-generation endpoints return explicit 501 on Workers. +- `src/routes/*`, `src/utils/*`, `src/server/*`: CDN cache headers moved from Netlify-specific headers to portable `CDN-Cache-Control` / `Cache-Tag`. +- Removed hosting-only Netlify files: `netlify.toml`, `netlify/functions/*`, `scripts/run-built-server.mjs`. + +## Commands Used + +```bash +pnpm install --lockfile-only +pnpm run test:tsc +pnpm run build:cloudflare +pnpm test +pnpm run deploy:cloudflare +pnpm run preview:cloudflare -- --host 127.0.0.1 --port 3001 +``` + +Additional checks used `curl` and Playwright with system Chrome against the Workers preview URL. + +## Worker + +- Account: `8da95258a9c70b54c3e2b374a0079106` +- Worker: `tanstack-com` +- URL: `https://tanstack-com.thetanstack.workers.dev` +- Current version: `ee22ac5c-2681-4b55-acbc-d11ee0adacfc` +- Upload size: `14872.99 KiB` raw, `4804.71 KiB` gzip +- Startup time: `27 ms` +- Note: the secret-bearing `tanstack-com-staging` Worker was renamed to `tanstack-com`, and the older empty `tanstack-com` Worker was removed. + +## Passed + +- `pnpm run build:cloudflare` passed. +- `pnpm run test:tsc` passed. +- `pnpm test` passed with 10 existing oxlint warnings. +- Cloudflare deploy passed. +- Local Cloudflare preview started and returned 200 for `/` and `/builder`. +- `/` returned 200 HTML on the Worker. +- `/start/latest` returned 200 HTML on the Worker. +- Browser SPA navigation from `/` to `/start/latest` did not reproduce the `npm-recent-downloads ... data is undefined` error. +- `/builder` returned 200 HTML with COOP/COEP headers and loaded the client builder/integration surface. +- Primary homepage images loaded in browser on the Worker. +- `/api/og/query.png?title=Query&description=Smoke` returned a valid 1200x630 PNG. +- `/_a/gtag.js` returned Google's JavaScript. +- `/_a/g/collect` returned 204. +- `/auth/github/start?returnTo=/account` redirected to GitHub with secure state/return cookies. +- `/.well-known/oauth-authorization-server` returned OAuth metadata. +- `/api/mcp/` returned the expected unauthenticated JSON-RPC auth error instead of a runtime failure. +- `POST /api/application-starter/resolve` returned a Start recipe. + +## Failed Or Not Proven + +- Direct server-side builder generation endpoints return 501 on Workers: + - `/api/builder/features` + - `/api/builder/compile` + - `/api/builder/compile-attributed` + - `/api/builder/download` + - `/api/builder/validate` + - `/api/builder/feature-artifacts` +- Full GitHub OAuth callback/account login was not completed. +- End-to-end GitHub repository deploy was not completed with a logged-in account. +- Cron trigger behavior was deployed but not manually invoked. + +## Builder Generation Note + +The released `@tanstack/create@0.68.3` `edge` import is Worker-runtime compatible, but it still statically imports the generated create manifest. That manifest made the Worker upload `11222.23 KiB` gzip, over the paid 10 MiB Worker script limit. + +The deployable compromise in this branch keeps dynamic generation in the browser for the builder UI, downloads, and GitHub deploy handoff, and excludes server-side create generation from the Worker bundle. After that change, the Worker upload is `4804.51 KiB` gzip. + +## Image Transformation Note + +Cloudflare image transformations are disabled by default because `/cdn-cgi/image/*` returned 404 on the Worker preview URL before custom-domain image resizing was proven. Set `TANSTACK_IMAGE_TRANSFORMATIONS=true` during build only after Image Resizing works on the routed `tanstack.com` zone. + +## Readiness + +Core marketing SSR, docs/start navigation, security headers, static assets, analytics proxying, GitHub auth start, MCP auth rejection, application-starter API, scheduled Worker registration, Cloudflare preview, deploy, and dynamic OG image generation are working on Cloudflare Workers. + +Production migration is close, but not fully safe until logged-in OAuth/account flows, cron jobs, and an authenticated builder GitHub deploy are verified. The biggest remaining product parity decision is whether direct server-side builder generation APIs must be supported on the Worker; supporting them requires a smaller create manifest/runtime from `@tanstack/create` or a separate generation service. diff --git a/docs/perf/lighthouse-shim-vs-react-2026-04-20.md b/docs/perf/lighthouse-shim-vs-react-2026-04-20.md deleted file mode 100644 index fa6508ba1..000000000 --- a/docs/perf/lighthouse-shim-vs-react-2026-04-20.md +++ /dev/null @@ -1,85 +0,0 @@ -# Lighthouse: @tanstack/dom-vite shim vs. real React - -**Date:** 2026-04-20 -**tanstack.com commit at time of measurement:** `fb806bb` (shim build with `@tanstack/dom-vite@0.1.0-alpha.5`, pulling `@tanstack/react-dom@0.1.0-alpha.4` — includes the RSC deferred-hydration adoption fix landed the same day). -**React baseline build:** same source tree with `tanstackDom()` plugin removed from `vite.config.ts` and `serverVariantAliases` dropped — i.e. stock `react@19.2.3` / `react-dom@19.2.3`. - -## TL;DR - -- **Performance score: parity** (±2 across pages / form factors, within run-to-run noise). -- **FCP: consistent shim win** everywhere — ~4% on home, ~11–17% on docs / blog. Smaller main-thread parse cost lets first paint land sooner. -- **LCP: shim regresses on RSC-heavy pages, desktop** — the LCP element on docs / blog pages lives in the Flight-streamed subtree, and the shim's `use(pendingPromise)` + deferred-resume adds latency vs. React's battle-tested RSC client. Mobile is mostly parity (network-bound anyway). -- **TBT / CLS: effectively zero on both** after the same-day RSC hydration fix — no duplicate DOM, no layout shift from appending. -- **Bundle (raw JS): −4.7%** on tanstack.com (-980 KB of 21 MB total client JS). Modest because router / store / app code dominates; shim only replaces React's share. - -## Methodology - -1. `pnpm build` for each variant. -2. `PORT=4000 pnpm start:prod` to serve from `dist/server/server.js` on `http://localhost:4000`. -3. **5 trials × 3 URLs × 2 form factors = 30 Lighthouse runs per variant** using `npx lighthouse` v13 with `--only-categories=performance` and headless Chrome. -4. Mobile runs use Lighthouse's default emulation (slow 4G + 4× CPU slowdown). Desktop uses `--preset=desktop` (no throttling). -5. Medians reported below. - -## Medians - -### Performance score - -| URL | form | React | Shim | Δ | -| --------------------------------------------------- | :-----: | ----: | ---: | --: | -| `/` | desktop | 99 | 99 | 0 | -| `/` | mobile | 87 | 88 | +1 | -| `/query/latest/docs/framework/react/guides/queries` | desktop | 96 | 96 | 0 | -| `/query/latest/docs/framework/react/guides/queries` | mobile | 64 | 66 | +2 | -| `/blog/react-server-components` | desktop | 98 | 96 | −2 | -| `/blog/react-server-components` | mobile | 70 | 71 | +1 | - -### Web Vitals - -| URL | form | FCP (R → S) | LCP (R → S) | TBT (R → S) | CLS (R → S) | TTI (R → S) | -| ------------------------------- | :-----: | :------------------: | :------------------: | :----------------: | :---------: | :-----------: | -| `/` | desktop | 0.61s → 0.59s (−4%) | 0.84s → 0.91s (+8%) | 0ms → 0ms | 0 → 0 | 0.84s → 0.92s | -| `/` | mobile | 2.34s → 2.31s | 3.71s → 3.60s (−3%) | 19ms → 20ms | 0 → 0 | 5.54s → 5.55s | -| `/query/.../queries` | desktop | 1.05s → 0.92s (−13%) | 1.05s → 1.24s (+18%) | 0ms → 0ms | 0 → 0 | 1.05s → 1.24s | -| `/query/.../queries` | mobile | 4.66s → 4.13s (−11%) | 6.62s → 6.39s (−3%) | 17ms → 19ms | 0 → 0 | 8.36s → 8.41s | -| `/blog/react-server-components` | desktop | 0.90s → 0.74s (−17%) | 0.90s → 1.29s (+43%) | 0ms → 0ms | 0 → 0 | 0.90s → 1.29s | -| `/blog/react-server-components` | mobile | 3.73s → 3.21s (−14%) | 5.32s → 6.23s (+17%) | 34ms → 21ms (−37%) | 0 → 0 | 6.24s → 6.57s | - -### Bundle size (uncompressed total client JS) - -| Build | Total client JS | Notes | -| ---------- | --------------: | ---------------------------------------------------------------------------------------------------- | -| Real React | 21,052 KB | Dedicated `react-*.js` chunk = 176 KB (`manualChunks` splits `node_modules/react{,-dom}/`) | -| Shim | 20,072 KB | No dedicated react chunk; shim code inlines into `app-shell` (+16 KB there). Net **−980 KB (−4.7%)** | - -## Caveats - -- **Lab data only.** Chrome origin-level CWV (CrUX) needs ~28 days of real traffic before aggregates stabilize. Since the shim only went live on `2026-04-20`, field data won't be comparable for a month. -- **`pnpm start:prod` serves from Node locally — no CDN.** Absolute TTFB numbers are dev-machine noise (5ms–1s range depending on cold-cache loader work); anchor on client-side metrics. -- **Per-page LCP percentages can look dramatic when the absolute value is small.** Blog desktop LCP `0.90s → 1.29s` is +390 ms — real, but a sub-second LCP regression in both states is still a Core Web Vitals "Good" rating (<2.5s). -- **Single-node prod server — no edge, no warm cache.** Mobile Lighthouse runs with 4× CPU throttling are inherently high-variance. - -## Reproduce - -```bash -# React baseline -# 1) temporarily remove tanstackDom() plugin + serverVariantAliases in vite.config.ts -pnpm build -PORT=4000 pnpm start:prod & -# run 5 trials × 3 URLs × 2 form factors, save JSON to ./react/ - -# Shim -# 2) restore tanstackDom() plugin + serverVariantAliases -pnpm build -PORT=4000 pnpm start:prod & -# re-run, save JSON to ./shim/ - -# Aggregate medians + delta (parse JSON, compute median of numericValues per audit key) -``` - -See the shim side for the runner + aggregator scripts used (`/tmp/lh-compare/run.sh`, `/tmp/lh-compare/aggregate.mjs` at measurement time). - -## Related shim work shipped with this comparison - -- `@tanstack/react-dom@0.1.0-alpha.4`: `renderFunction`'s deferred-hydration branch now mirrors `renderLazy`'s ancestor-Suspense guard (`_awaitingLazyHydration`). Fixes duplicate-markup on RSC pages. Regression test: `tests/rsc-hydration-adopt.test.tsx`. -- `@tanstack/react-dom-server@0.1.0-alpha.4`: shell-chunk batching in `streamHtml` (reduces Node stream overhead ~3–4% on SSR bench). -- `@tanstack/dom-vite@0.1.0-alpha.5`: dep bump to pick up react-dom@alpha.4. diff --git a/docs/performance-plan-home-library-docs.md b/docs/performance-plan-home-library-docs.md deleted file mode 100644 index 32b505bd2..000000000 --- a/docs/performance-plan-home-library-docs.md +++ /dev/null @@ -1,216 +0,0 @@ -# Homepage, Library Landing, and Docs Performance Plan - -## Goal - -Make the homepage, library landing pages, and docs materially faster, lighter, and cheaper to render without regressing content quality or navigation UX. - -## Current Baseline - -- Homepage route chunk: `dist/client/assets/index-Bq0A5jmY.js` at `564.79 kB / 172.14 kB gzip` -- Shared shell chunk: `dist/client/assets/app-shell-BikUtTEO.js` at `349.55 kB / 110.08 kB gzip` -- Search modal chunk: `dist/client/assets/SearchModal-Bl-tUxqr.js` at `195.54 kB / 54.27 kB gzip` -- Docs shell chunk: `dist/client/assets/DocsLayout-Bga1-HA9.js` at `17.61 kB / 6.05 kB gzip` -- Markdown chrome chunk: `dist/client/assets/MarkdownContent-ia2V1dk8.js` at `19.37 kB / 6.39 kB gzip` -- Global CSS: `dist/client/assets/app-CBMELhsb.css` at `319.24 kB / 40.48 kB gzip` - -## Main Problems - -- Homepage ships too much in one route chunk. -- Library landing pages pay docs-shell and docs-config cost before the user asks for docs. -- Docs still do too much work per request even with GitHub content caching. -- Hidden docs UI still mounts and runs effects/queries. -- Anonymous docs users still trigger auth-related client queries for framework preference. -- Some "lazy" controls are effectively eager. - -## Success Targets - -- Cut the homepage route chunk hard enough that it is no longer one of the top client payloads. -- Remove docs-config and docs-layout from the critical path for landing pages. -- Turn docs page rendering into mostly cached work. -- Avoid client queries on first paint for content that can be rendered server-side. -- Reduce hidden-work JS on docs mobile and desktop layouts. - -## Workstreams - -### 1. Homepage route diet - -Targets: - -- `src/routes/index.tsx` -- `src/components/OpenSourceStats.tsx` -- `src/components/ShowcaseSection.tsx` -- `src/components/PartnersGrid.tsx` -- `src/components/MaintainerCard.tsx` - -Changes: - -- Break below-the-fold homepage sections into viewport-triggered lazy boundaries. -- Move recent posts off client `useQuery` and into route loader or server-rendered data. -- Stop client-fetching OSS stats on initial paint. Render a server snapshot first. -- Keep `DeferredApplicationStarter` deferred by visibility or interaction, not just idle timeout. -- Avoid eagerly importing large static datasets into the first route chunk where possible. -- Stop rendering both light and dark hero image variants eagerly. - -Expected win: - -- Lower homepage JS, lower hydration cost, lower first-load network. - -### 2. Dedicated library landing shell - -Targets: - -- `src/routes/-library-landing.tsx` -- `src/components/DocsLayout.tsx` -- landing components under `src/components/landing/` - -Changes: - -- Introduce a dedicated `LibraryLandingLayout`. -- Remove `DocsLayout` from landing pages. -- Stop fetching docs `config.json` in the landing-page critical path unless a landing section actually needs it. -- Keep framework/version/docs navigation lightweight on landing pages and hand off to docs only when needed. - -Expected win: - -- Better landing-page TTFB, less landing-page JS, less docs chrome on non-docs surfaces. - -### 3. Docs render caching - -Targets: - -- `src/utils/docs.functions.ts` -- `src/utils/github-content-cache.server.ts` -- `src/utils/markdown/renderRsc.tsx` -- `src/utils/markdown/processor.rsc.tsx` -- `src/components/markdown/renderCodeBlock.server.tsx` - -Changes: - -- Cache rendered docs artifacts, not just raw GitHub files. -- Persist `title`, `description`, `headings`, and rendered output keyed by repo, ref, docs root, and path. -- Reuse existing docs artifact cache infra instead of adding a second caching path. -- Make docs requests mostly cache hits unless the source changed. - -Expected win: - -- Better docs TTFB, less server CPU, fewer repeated markdown and Shiki passes. - -### 4. Docs layout mount discipline - -Targets: - -- `src/components/DocsLayout.tsx` -- `src/components/RightRail.tsx` -- `src/components/RecentPostsWidget.tsx` - -Changes: - -- Do not mount mobile docs menu on desktop. -- Do not mount desktop docs menu on mobile. -- Do not mount right rail when hidden by breakpoint. -- Gate animated partner strip work by actual viewport and reduced-motion preference. -- Ensure hidden rails do not issue queries or observers. - -Expected win: - -- Lower docs runtime cost, especially on mobile. - -### 5. Remove anonymous auth work from docs and landing - -Targets: - -- `src/components/FrameworkSelect.tsx` -- `src/hooks/useCurrentUser.ts` -- `src/components/SearchModal.tsx` -- `src/components/NavbarAuthControls.tsx` - -Changes: - -- Make framework preference local-first for anonymous users. -- Only sync framework preference to server when user state is already known. -- Avoid triggering `getCurrentUser` on docs and landing pages just to resolve a preference. -- Audit other shell components for accidental auth fetches during anonymous browsing. - -Expected win: - -- Fewer unnecessary client requests, cleaner anonymous docs navigation. - -### 6. Shared shell cleanup - -Targets: - -- `src/routes/__root.tsx` -- `src/router.tsx` -- `src/components/Navbar.tsx` -- `src/components/markdown/MarkdownContent.tsx` - -Changes: - -- Verify why some intended dynamic imports are not splitting effectively. -- Trim eager shell work around Sentry boot where possible. -- Fix `MarkdownContent` so `CopyPageDropdown` only loads on real interaction. -- Review navbar asset duplication and avoid eager light/dark image duplication where possible. - -Expected win: - -- Smaller app shell, less global cost paid by every route. - -## Suggested Implementation Order - -1. Fix obviously accidental eager work. -2. Make docs layout mount only what is visible. -3. Remove anonymous auth fetches from docs and landing flows. -4. Add dedicated library landing shell and remove docs-config from landing critical path. -5. Move homepage content and stats to server-first data flows and split below-the-fold sections. -6. Add rendered docs artifact caching. -7. Rebuild and compare chunks, request timings, and interaction cost. - -## PR Breakdown - -### PR 1 - -- Fix `MarkdownContent` eager copy-dropdown load -- Stop hidden docs rails and menus from mounting -- Gate mobile partner strip animation correctly - -### PR 2 - -- Remove anonymous auth fetches from framework selection and related docs shell code - -### PR 3 - -- Add `LibraryLandingLayout` -- Remove `DocsLayout` and docs config dependency from landing critical path - -### PR 4 - -- Split homepage below the fold -- Server-render recent posts and stats -- Tighten app-starter deferral - -### PR 5 - -- Cache rendered docs artifacts -- Measure docs TTFB and server CPU improvement - -### PR 6 - -- Shared shell follow-up: Sentry boot, navbar assets, remaining bundle outliers - -## Verification - -- Run `pnpm build` after each major phase. -- Track homepage, a representative library landing page, and a representative docs page. -- Compare: -- route chunk size -- app shell size -- docs TTFB -- number of client requests on first load -- whether anonymous docs visits trigger user/auth requests -- smoke-check desktop and mobile docs navigation - -## Notes - -- `LazyLandingCommunitySection` and `LazySponsorSection` already use the right pattern. Reuse that pattern more aggressively. -- `StackBlitzEmbed` is already `loading="lazy"`, but a poster-plus-click model may still be worth it for landing pages. -- Do not spend time micro-optimizing heading observers or tiny docs chunks before fixing the homepage and landing-page architecture. diff --git a/docs/ssr-rsc-migration-findings.md b/docs/ssr-rsc-migration-findings.md new file mode 100644 index 000000000..3ba8013cf --- /dev/null +++ b/docs/ssr-rsc-migration-findings.md @@ -0,0 +1,149 @@ +# SSR + Hydrate vs RSC findings + +Date: 2026-06-20 + +Scope: local production builds of tanstack.com, with Redact enabled for both variants. The RSC baseline came from the current HEAD before the SSR migration work. The SSR variant is this worktree after removing RSC rendering and adding targeted `Hydrate` timing for below-fold media-heavy sections. + +## Current conclusion + +SSR + normal hydration + targeted `Hydrate` timing is the stronger direction for tanstack.com. + +RSC reduced some client-side rendering responsibility, but it did so by sending rendered payloads, Flight data, extra server-function surfaces, and a lot of architecture-specific indirection. Once SSR is paired with simple visible hydration gates for below-fold media/query-heavy sections, it matches or beats the RSC baseline on first-load production measurements and is smaller during long sessions for docs, examples, and blog navigation. + +The important correction from the first SSR pass: plain SSR without timing gates can eagerly schedule too much below-fold media. Lighthouse exposed this immediately on home and Query landing. Adding `Hydrate` around home social proof, home community, landing community, and sponsor pack sections fixed that without bringing back the RSC pipeline. + +## Architecture delta + +- RSC disabled in `vite.config.ts`; `@vitejs/plugin-rsc` removed. +- Redact is always enabled for this matrix. +- Markdown/docs/blog now move raw markdown/source data through normal server functions, then render locally with `@tanstack/markdown` and `@tanstack/highlight`. +- Deleted RSC markdown/code rendering files, RSC landing-code-example server function, and RSC heading context. +- Landing code examples are static route/component data, not rendered RSC payloads. +- Targeted `Hydrate` timing remains only as byte scheduling for below-fold sections. + +Code size/complexity: + +| Metric | Result | +| ---------------------------- | -----------------------------------------------: | +| Source diff | 113 files, +920 / -3946 | +| Current SSR client dist | 92,258.3 KB | +| RSC baseline client dist | 92,687.6 KB | +| Remaining RSC references | none | +| Remaining `use client` files | `CopyPageDropdown.tsx`, `CopyMarkdownButton.tsx` | + +## Markdown and Highlight package story + +The original reason RSC helped tanstack.com was real: our docs/blog path was making the browser pay for markdown rendering and Shiki. The earlier performance work measured about 1.1 MiB of script transfer on a docs page, with about 358 KiB clearly tied to syntax highlighting alone: Shiki, its WASM/runtime pieces, themes, and language chunks. The RSC migration solved that by moving markdown and code rendering back to the server, and the RSC launch post recorded the client JS graph dropping about 153 KB gzip on docs/blog pages and about 40 KB gzip on docs example pages. + +This SSR pass keeps the same underlying bet, but changes the implementation. Instead of using RSC as the mechanism that hides the markdown/highlight cost from the client, we made the markdown/highlight cost small enough to ship normally, then moved only raw markdown/source data through Start server functions. That is the real byte story: with the custom markdown/highlight libraries in place, SSR is a net negative on first-load gzip across the measured content pages, `Hydrate` fixes the byte scheduling problem for below-fold sections, and long sessions compound the win because each navigation reuses the renderer already sitting in the client bundle instead of transferring rendered Flight output again. + +Current packages in this worktree: + +| Package | npm unpacked size | Files | Notes | +| -------------------------------- | ----------------: | ----: | ---------------------------------------------------------------------- | +| `@tanstack/highlight@0.0.2` | 80.6 KiB | 62 | tiny tokenizer/highlighter, class-based output, isolated theme exports | +| `@tanstack/markdown@0.0.4` | 79.2 KiB | 44 | parser/rendering path for the markdown subset tanstack.com needs | +| Combined TanStack packages | 159.8 KiB | 106 | no runtime dependencies, React is a peer for markdown | +| Shiki 4.0.2 direct package graph | 10.49 MiB | 1,725 | `shiki` plus direct `@shikijs/*` packages and `vscode-textmate` | + +That package-size comparison is npm unpacked size, not browser transfer. The browser transfer fact we already have is the old 358 KiB docs-page script cost tied to Shiki. The package fact is still useful for the post because it shows how much general-purpose machinery we stopped depending on: the Shiki package graph is about 67x larger than the two new TanStack packages combined before app bundling even starts. + +The current highlight integration is also simpler than the old Shiki path: + +- one highlighted HTML tree, not duplicated light/dark markup, +- no inline token styles, +- theme CSS generated from `createThemeCss`, +- light mode uses `githubLightTheme`, +- dark mode uses `auroraXTheme`, +- docs smoke test found 20 `pre.th-code` blocks, 381 token spans, 0 `pre.shiki` blocks, and 0 inline token styles. + +The blog angle should be framed carefully: AI helped make it practical to write purpose-built packages quickly, but the win is not "AI wrote magic." The win is that we replaced a broad markdown plus Shiki stack with small libraries designed around the exact rendering contract we need, then measured whether that was enough to remove the RSC pipeline without giving back the performance. So far, the answer is yes for the tested pages, with one important caveat: these packages are young enough that conformance matters. We found a tight-list regression in `@tanstack/markdown` where Related Resources rendered as `
  • ...

  • `, fixed that link-list case in `@tanstack/markdown@0.0.4`, and found an image-sizing regression in the site wrapper around markdown images. The future post should include that part too, because the cost of going tiny is owning the test suite. + +Remaining markdown package issue: `@tanstack/markdown@0.0.4` still marks some tight lists as loose when the list is followed by another block. Minimal repro: + +````md +Call server functions from: + +- **Route loaders** - Perfect for data fetching +- **Components** - Use with `useServerFn()` hook + +```tsx +const x = 1 +``` +```` + +Expected: direct `
  • Route loaders ...
  • ` items. Current output: `
  • Route loaders ...

  • `. This is not a tanstack.com CSS issue, and the temporary `li > p` styling workaround was removed. + +## First-load HTML + JS/CSS + +Production servers, local Node, `.env.local` copied from the main checkout. This table counts HTML plus scheduled local JS/CSS assets. It excludes images/fonts because those are better captured by Lighthouse byte weight. + +| Page | RSC total gzip | SSR + Hydrate total gzip | Delta | RSC HTML gzip | SSR HTML gzip | Asset gzip delta | +| ---------------------------------------------------- | -------------: | -----------------------: | -------: | ------------: | ------------: | ---------------: | +| `/` | 589.3 KB | 586.7 KB | -2.6 KB | 88.2 KB | 36.1 KB | +49.5 KB | +| `/query/latest` | 609.5 KB | 592.6 KB | -16.9 KB | 106.9 KB | 47.9 KB | +42.2 KB | +| `/form/latest` | 593.7 KB | 579.9 KB | -13.8 KB | 95.0 KB | 39.0 KB | +42.2 KB | +| `/router/latest` | 593.5 KB | 594.3 KB | +0.8 KB | 89.7 KB | 36.0 KB | +54.6 KB | +| `/router/latest/docs/overview` | 582.7 KB | 568.8 KB | -13.8 KB | 91.4 KB | 37.7 KB | +39.9 KB | +| `/router/latest/docs/framework/react/examples/basic` | 601.2 KB | 585.9 KB | -15.3 KB | 97.1 KB | 37.5 KB | +44.3 KB | +| `/blog/tanstack-table-v9-typescript-performance` | 596.2 KB | 585.4 KB | -10.8 KB | 106.7 KB | 45.3 KB | +50.6 KB | + +Interpretation: SSR cuts roughly 52-61 KB gzip from HTML on every tested page. It adds 40-55 KB gzip of JS/CSS because the client now owns markdown/code rendering. Net first-load gzip is better on every tested page except Router landing, where it is effectively flat. + +## Long-session navigation payloads + +These are direct `_serverFn` payloads with Start's real Seroval encoding. This is the cleanest test of the theory that long sessions should favor SSR because the client already has the shared rendering logic. + +| Payload | RSC gzip | SSR gzip | Delta | +| ---------------------------- | -------: | -------: | ------: | +| Home recent posts | 0.7 KB | 0.7 KB | 0.0 KB | +| Router docs config | 2.2 KB | 2.2 KB | 0.0 KB | +| Query landing code example | 4.6 KB | 0.0 KB | -4.6 KB | +| Router docs overview content | 5.2 KB | 3.7 KB | -1.5 KB | +| Router example directory | 0.6 KB | 0.6 KB | 0.0 KB | +| Router example initial file | 5.6 KB | 1.5 KB | -4.1 KB | +| Heavy blog post content | 15.0 KB | 9.4 KB | -5.6 KB | + +The RSC payloads contain `contentRsc` and rendered code markers. The SSR payloads contain raw markdown/source data only. Shared config and normal JSON data are identical between variants. + +## Lighthouse desktop + +Lighthouse 13.4.0, local Chrome, desktop preset, production servers. Treat these as directional local lab numbers, not final PSI numbers. + +| Page | RSC score | SSR + Hydrate score | RSC FCP | SSR FCP | RSC LCP | SSR LCP | RSC CLS | SSR CLS | RSC byte weight | SSR byte weight | +| ------------------------------------------------ | --------: | ------------------: | ------: | ------: | ------: | ------: | ------: | ------: | --------------: | --------------: | +| `/` | 67 | 72 | 2245 ms | 2288 ms | 3305 ms | 2728 ms | 0.000 | 0.000 | 6493.3 KB | 3253.9 KB | +| `/query/latest` | 72 | 73 | 2442 ms | 2362 ms | 2562 ms | 2462 ms | 0.000 | 0.000 | 3190.4 KB | 2625.3 KB | +| `/router/latest/docs/overview` | 75 | 75 | 2202 ms | 2202 ms | 2422 ms | 2382 ms | 0.000 | 0.000 | 3493.3 KB | 2642.5 KB | +| `/blog/tanstack-table-v9-typescript-performance` | 70 | 75 | 2321 ms | 2202 ms | 2421 ms | 2342 ms | 0.116 | 0.000 | 4197.5 KB | 2776.2 KB | + +The pre-Hydrate SSR pass was misleading: home was 18,670.7 KB byte weight and Query was 11,562.6 KB because recent blog headers, partner assets, sponsor data, and GitHub avatars were eagerly scheduled. The current SSR + Hydrate pass removes that regression. + +## Hydration/navigation smoke + +Production SSR server on a clean port: + +- Loaded `/router/latest`. +- Clicked the real `/router/latest/docs/overview` link in the browser. +- URL and title updated to the docs overview page. +- Clean server log showed no document `GET /router/latest/docs/overview`; it showed only server-function requests for route data. +- Browser console warnings/errors were empty. + +That does not replace a full navigation test suite, but it specifically checks the earlier concern that hydration mismatches were causing client navigations to degrade into hard navigations. + +## Caveats + +- These are local production numbers, not hosted PageSpeed Insights results. +- The RSC baseline temp checkout needed the same `.env.local` as this worktree; without it, library/docs routes fell into fallback paths and measurements were invalid. +- Local Lighthouse includes image optimization behavior from the local Netlify image shim, so byte-weight direction is useful but production CDN numbers still need confirmation. +- Hydrate boundaries should stay targeted. They are useful for byte scheduling below the fold, not as a replacement for fixing hydration mismatches or CLS. + +## Decision + +Keep moving toward the simple SSR architecture: + +- no RSC build pipeline, +- raw markdown/source over server functions, +- tiny fast markdown/highlight libraries on the client path, +- targeted `Hydrate` timing for below-fold media/query work, +- deploy-preview PSI/Lighthouse before merging. diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index a65be1e3f..000000000 --- a/netlify.toml +++ /dev/null @@ -1,65 +0,0 @@ -[build.environment] -NODE_OPTIONS = "--max-old-space-size=4096" - -[build] -command = "vite build --logLevel warn && cp src/instrument.server.mjs dist/server" -publish = "dist/client" - -[functions] -directory = "netlify/functions" -# OG image rendering goes through @takumi-rs/wasm (forced via the `module` -# option in src/server/og/generate.server.ts) instead of @takumi-rs/core's -# native napi binding — Netlify's function bundler dropped the platform- -# specific .node optional dep no matter how we configured it, and WASM -# sidesteps the whole binary-resolution dance. The .wasm asset isn't part -# of the JS import graph, so include it explicitly. -included_files = [ - "public/fonts/Inter-Regular.ttf", - "public/fonts/Inter-ExtraBold.ttf", - "public/fonts/Inter-Black.ttf", - "public/images/logos/splash-dark.png", - "node_modules/.pnpm/@takumi-rs+wasm@*/node_modules/@takumi-rs/wasm/pkg/takumi_wasm_bg.wasm", -] - -[[headers]] -for = "/*" -[headers.values] -X-Frame-Options = "DENY" -X-Content-Type-Options = "nosniff" -X-XSS-Protection = "1; mode=block" -Referrer-Policy = "strict-origin-when-cross-origin" -Permissions-Policy = "camera=(), microphone=(), geolocation=()" - -[[headers]] -for = "/*" -[headers.values] -Strict-Transport-Security = "max-age=31536000; includeSubDomains" - -# WebContainer requires SharedArrayBuffer which needs COOP/COEP headers -# Only apply to /builder to avoid breaking external resources on other pages -[[headers]] -for = "/builder" -[headers.values] -Cross-Origin-Opener-Policy = "same-origin" -Cross-Origin-Embedder-Policy = "require-corp" - -[[headers]] -for = "/builder/*" -[headers.values] -Cross-Origin-Opener-Policy = "same-origin" -Cross-Origin-Embedder-Policy = "require-corp" - -# Reverse-proxy Google Analytics through our own origin so requests are -# first-party (escapes hostname-based ad blockers, longer-lived cookies, -# cleaner CSP). gtag.js is told to use this prefix as its transport_url. -[[redirects]] -from = "/_a/gtag.js" -to = "https://www.googletagmanager.com/gtag/js?id=G-JMT1Z50SPS" -status = 200 -force = true - -[[redirects]] -from = "/_a/g/collect" -to = "https://www.google-analytics.com/g/collect" -status = 200 -force = true diff --git a/netlify/functions/prune-content-cache-background.ts b/netlify/functions/prune-content-cache-background.ts deleted file mode 100644 index 84898038c..000000000 --- a/netlify/functions/prune-content-cache-background.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { Config } from '@netlify/functions' -import { pruneStaleCacheRows } from '~/utils/github-content-cache.server' - -/** - * Netlify Scheduled Function - Prune stale GitHub content cache rows - * - * Deletes rows in `github_content_cache` and `docs_artifact_cache` whose - * `updatedAt` is older than the configured TTL. Anything that's still being - * read regularly is touched on refresh and stays put; the rest (old gitRefs, - * deleted paths, abandoned branches) gets reclaimed. - * - * Scheduled: Daily at 09:00 UTC. - */ -const handler = async (req: Request) => { - const { next_run } = await req.json() - - const startTime = Date.now() - console.log('[prune-content-cache] Starting prune...') - - try { - const result = await pruneStaleCacheRows() - const duration = Date.now() - startTime - - console.log( - `[prune-content-cache] ✓ Completed in ${duration}ms - deleted ${result.githubContentDeleted} content rows (${result.githubContentNegativesDeleted} negatives), ${result.docsArtifactDeleted} artifact rows (cutoff: ${result.cutoff.toISOString()}, negativeCutoff: ${result.negativeCutoff.toISOString()})`, - ) - console.log('[prune-content-cache] Next invocation at:', next_run) - } catch (error) { - const duration = Date.now() - startTime - const errorMessage = error instanceof Error ? error.message : String(error) - const errorStack = error instanceof Error ? error.stack : undefined - - console.error( - `[prune-content-cache] ✗ Failed after ${duration}ms:`, - errorMessage, - ) - if (errorStack) { - console.error('[prune-content-cache] Stack:', errorStack) - } - } -} - -export default handler - -export const config: Config = { - schedule: '0 9 * * *', // Daily at 09:00 UTC -} diff --git a/netlify/functions/refresh-github-stats-background.ts b/netlify/functions/refresh-github-stats-background.ts deleted file mode 100644 index 42b065d4e..000000000 --- a/netlify/functions/refresh-github-stats-background.ts +++ /dev/null @@ -1,56 +0,0 @@ -import type { Config } from '@netlify/functions' -import { refreshGitHubOrgStats } from '~/utils/stats.functions' - -/** - * Netlify Scheduled Function - Refresh GitHub stats cache - * - * This function refreshes pre-aggregated GitHub stats for the TanStack organization: - * - Organization-level: stars, contributors, dependents, repositories - * - Per-library: stars, contributors, dependents for each library repo - * - * Scheduled: Runs automatically every 6 hours - * - * Performance Impact: - * - Refresh time: ~1-2 minutes for org + all library repos - * - After refresh: ~100-200ms per request (served from cache) - */ -const handler = async (req: Request) => { - const { next_run } = await req.json() - - console.log('[refresh-github-stats] Starting GitHub stats refresh...') - - const startTime = Date.now() - - try { - const org = 'tanstack' - - const { orgStats, libraryResults, libraryErrors } = - await refreshGitHubOrgStats(org) - - const duration = Date.now() - startTime - console.log( - `[refresh-github-stats] ✓ Completed in ${duration}ms - GitHub Org: ${orgStats.starCount.toLocaleString()} stars, Libraries: ${ - libraryResults.length - } refreshed, ${libraryErrors.length} failed`, - ) - console.log('[refresh-github-stats] Next invocation at:', next_run) - } catch (error) { - const duration = Date.now() - startTime - const errorMessage = error instanceof Error ? error.message : String(error) - const errorStack = error instanceof Error ? error.stack : undefined - - console.error( - `[refresh-github-stats] ✗ Failed after ${duration}ms:`, - errorMessage, - ) - if (errorStack) { - console.error('[refresh-github-stats] Stack:', errorStack) - } - } -} - -export default handler - -export const config: Config = { - schedule: '0 */6 * * *', // Every 6 hours -} diff --git a/netlify/functions/refresh-npm-stats-background.ts b/netlify/functions/refresh-npm-stats-background.ts deleted file mode 100644 index 144d04e2d..000000000 --- a/netlify/functions/refresh-npm-stats-background.ts +++ /dev/null @@ -1,58 +0,0 @@ -import type { Config } from '@netlify/functions' -import { refreshNpmOrgStats } from '~/utils/stats.functions' - -/** - * Netlify Scheduled Function - Refresh NPM stats cache - * - * This function refreshes pre-aggregated NPM stats for the TanStack organization: - * - Total downloads across all packages (including legacy packages) - * - Per-package download counts and rates - * - * Scheduled: Runs automatically every 6 hours - * Concurrency: 8 packages at a time, 500ms delay between packages - * - * Performance Impact: - * - Refresh time: ~10-20 minutes for 203 packages (199 scoped + 4 legacy) - * - After refresh: ~100-200ms per request (served from cache) - */ -const handler = async (req: Request) => { - const { next_run } = await req.json() - - console.log('[refresh-npm-stats] Starting NPM stats refresh...') - - const startTime = Date.now() - - try { - const org = 'tanstack' - - // Refresh NPM org stats (fetches all packages, aggregates, and caches) - console.log('[refresh-npm-stats] Refreshing NPM org stats...') - const npmStats = await refreshNpmOrgStats(org) - - const duration = Date.now() - startTime - console.log( - `[refresh-npm-stats] ✓ Completed in ${duration}ms - NPM: ${npmStats.totalDownloads.toLocaleString()} downloads (${ - Object.keys(npmStats.packageStats || {}).length - } packages)`, - ) - console.log('[refresh-npm-stats] Next invocation at:', next_run) - } catch (error) { - const duration = Date.now() - startTime - const errorMessage = error instanceof Error ? error.message : String(error) - const errorStack = error instanceof Error ? error.stack : undefined - - console.error( - `[refresh-npm-stats] ✗ Failed after ${duration}ms:`, - errorMessage, - ) - if (errorStack) { - console.error('[refresh-npm-stats] Stack:', errorStack) - } - } -} - -export default handler - -export const config: Config = { - schedule: '0 */6 * * *', // Every 6 hours -} diff --git a/netlify/functions/sync-intent-discover-background.ts b/netlify/functions/sync-intent-discover-background.ts deleted file mode 100644 index 0e9ecf2c7..000000000 --- a/netlify/functions/sync-intent-discover-background.ts +++ /dev/null @@ -1,217 +0,0 @@ -import type { Config } from '@netlify/functions' -import { - searchIntentPackages, - fetchPackument, - isIntentCompatible, - selectVersionsToSync, - extractSkillsFromTarball, -} from '~/utils/intent.server' -import { - upsertIntentPackage, - getKnownVersions, - enqueuePackageVersion, - markPackageVerified, -} from '~/utils/intent-db.server' - -/** - * Netlify Scheduled Function - Discover Intent-compatible npm packages - * - * Phase 1 of 2. Fast: no tarball downloads (except brief header peeks for GitHub path). - * - * Two discovery paths: - * 1. NPM keyword search — instant, finds packages that published with tanstack-intent keyword - * 2. GitHub code search — finds repos that depend on @tanstack/intent but may not have the keyword yet - * - * Both paths enqueue new versions for tarball processing (syncStatus = 'pending'). - * Actual skill extraction happens in sync-intent-process-background. - * - * Scheduled: Every 6 hours - */ -const handler = async (req: Request) => { - const { next_run } = await req.json() - const startTime = Date.now() - - console.log('[intent-discover] Starting discovery (NPM + GitHub)...') - - let versionsEnqueued = 0 - const errors: Array = [] - - // --------------------------------------------------------------------------- - // Path 1: NPM keyword search - // --------------------------------------------------------------------------- - try { - console.log( - '[intent-discover] Searching NPM for keywords:tanstack-intent...', - ) - const searchResults = await searchIntentPackages() - console.log( - `[intent-discover] NPM found ${searchResults.objects.length} candidates`, - ) - - for (const { package: pkg } of searchResults.objects) { - try { - await upsertIntentPackage({ name: pkg.name, verified: false }) - - const packument = await fetchPackument(pkg.name) - const latestVersion = packument['dist-tags'].latest - if (!latestVersion) continue - - const latestMeta = packument.versions[latestVersion] - if (!latestMeta || !isIntentCompatible(latestMeta)) continue - - await markPackageVerified(pkg.name) - - const knownVersions = await getKnownVersions(pkg.name) - const toEnqueue = selectVersionsToSync(packument, knownVersions) - for (const { version, tarball, publishedAt } of toEnqueue) { - await enqueuePackageVersion({ - packageName: pkg.name, - version, - tarballUrl: tarball, - publishedAt, - }) - versionsEnqueued++ - } - console.log( - `[intent-discover] NPM: ${pkg.name} - enqueued ${toEnqueue.length}`, - ) - } catch (e) { - const msg = `npm/${pkg.name}: ${e instanceof Error ? e.message : String(e)}` - console.error(`[intent-discover] ${msg}`) - errors.push(msg) - } - } - } catch (e) { - console.error( - '[intent-discover] NPM path failed:', - e instanceof Error ? e.message : String(e), - ) - } - - // --------------------------------------------------------------------------- - // Path 2: GitHub code search for @tanstack/intent dependents - // --------------------------------------------------------------------------- - const githubToken = process.env.GITHUB_AUTH_TOKEN - if (githubToken) { - try { - console.log( - '[intent-discover] Searching GitHub for @tanstack/intent dependents...', - ) - const ghHeaders = { - Authorization: `Bearer ${githubToken}`, - Accept: 'application/vnd.github.v3+json', - } - - const searchRes = await fetch( - 'https://api.github.com/search/code?q=%22%40tanstack%2Fintent%22+filename%3Apackage.json&per_page=100', - { headers: ghHeaders }, - ) - if (!searchRes.ok) throw new Error(`GitHub search ${searchRes.status}`) - - const searchData = (await searchRes.json()) as { - items: Array<{ path: string; repository: { full_name: string } }> - } - - // Deduplicate repo+path pairs - const seen = new Set() - const candidates = searchData.items.filter((item) => { - const key = `${item.repository.full_name}|${item.path}` - if (seen.has(key)) return false - seen.add(key) - return true - }) - - console.log( - `[intent-discover] GitHub found ${candidates.length} package.json files`, - ) - - for (const { repo, path } of candidates.map((i) => ({ - repo: i.repository.full_name, - path: i.path, - }))) { - try { - const contentRes = await fetch( - `https://api.github.com/repos/${repo}/contents/${path}`, - { headers: ghHeaders }, - ) - if (!contentRes.ok) continue - - const contentData = (await contentRes.json()) as { content?: string } - if (!contentData.content) continue - - const pkgJson = JSON.parse( - Buffer.from(contentData.content, 'base64').toString('utf-8'), - ) as { name?: string; private?: boolean } - - const pkgName = pkgJson.name - if (!pkgName || pkgJson.private) continue - - // Check NPM - const npmRes = await fetch( - `https://registry.npmjs.org/${encodeURIComponent(pkgName)}/latest`, - ) - if (!npmRes.ok) continue - - const npmMeta = (await npmRes.json()) as { - version?: string - dist?: { tarball?: string } - } - if (!npmMeta.version || !npmMeta.dist?.tarball) continue - - // Peek at tarball for skills - const skills = await extractSkillsFromTarball(npmMeta.dist.tarball) - if (skills.length === 0) continue - - await upsertIntentPackage({ name: pkgName, verified: true }) - await markPackageVerified(pkgName) - - const packument = await fetchPackument(pkgName) - const knownVersions = await getKnownVersions(pkgName) - const toEnqueue = selectVersionsToSync(packument, knownVersions) - - for (const { version, tarball, publishedAt } of toEnqueue) { - await enqueuePackageVersion({ - packageName: pkgName, - version, - tarballUrl: tarball, - publishedAt, - }) - versionsEnqueued++ - } - if (toEnqueue.length > 0) { - console.log( - `[intent-discover] GitHub: ${pkgName} - enqueued ${toEnqueue.length}`, - ) - } - } catch (e) { - const msg = `github/${repo}: ${e instanceof Error ? e.message : String(e)}` - console.error(`[intent-discover] ${msg}`) - errors.push(msg) - } - } - } catch (e) { - console.error( - '[intent-discover] GitHub path failed:', - e instanceof Error ? e.message : String(e), - ) - } - } else { - console.warn( - '[intent-discover] GITHUB_AUTH_TOKEN not set, skipping GitHub path', - ) - } - - const duration = Date.now() - startTime - console.log( - `[intent-discover] Done in ${duration}ms - enqueued: ${versionsEnqueued}, errors: ${errors.length}`, - ) - if (errors.length > 0) - console.warn(`[intent-discover] Errors:\n ${errors.join('\n ')}`) - console.log('[intent-discover] Next invocation at:', next_run) -} - -export default handler - -export const config: Config = { - schedule: '0 */6 * * *', // Every 6 hours -} diff --git a/netlify/functions/sync-intent-process-background.ts b/netlify/functions/sync-intent-process-background.ts deleted file mode 100644 index 4d7fe72cf..000000000 --- a/netlify/functions/sync-intent-process-background.ts +++ /dev/null @@ -1,117 +0,0 @@ -import type { Config } from '@netlify/functions' -import { extractSkillsFromTarball } from '~/utils/intent.server' -import { - getPendingVersions, - replaceSkillsForVersion, - markVersionSynced, - markVersionFailed, -} from '~/utils/intent-db.server' - -// Hard budget: stop processing with this much time remaining before the -// 15-minute Netlify background function limit. Each tarball can take 1-5s, -// so 3 minutes of headroom is sufficient. -const BUDGET_MS = 12 * 60 * 1000 // 12 minutes - -/** - * Netlify Scheduled Function - Process pending Intent skill extractions - * - * Phase 2 of 2. Drains the pending version queue populated by - * sync-intent-discover-background. Runs more frequently so new packages - * appear in the registry quickly. - * - * Durability: each version is atomically marked 'synced' or 'failed' in the - * DB immediately after processing. A timeout or crash loses at most the - * single in-flight version (which stays 'pending' and is retried next run). - * Failed versions are retried every cycle until they succeed. - * - * Scheduled: Every 15 minutes - */ -const handler = async (req: Request) => { - const { next_run } = await req.json() - const startTime = Date.now() - const deadline = startTime + BUDGET_MS - - console.log('[intent-process] Starting queue drain...') - - let processed = 0 - let failed = 0 - let skipped = 0 - - try { - // Fetch enough pending items to keep us busy, but not so many we hold - // a huge result set in memory. We'll loop until time runs out. - const BATCH_SIZE = 50 - - while (Date.now() < deadline) { - const remaining = deadline - Date.now() - const pending = await getPendingVersions(BATCH_SIZE) - - if (pending.length === 0) { - console.log('[intent-process] Queue empty, nothing to do') - break - } - - console.log( - `[intent-process] ${pending.length} pending version(s), ${Math.round(remaining / 1000)}s remaining`, - ) - - for (const item of pending) { - // Check budget before each item, not just at batch boundaries - if (Date.now() >= deadline) { - skipped += pending.length - pending.indexOf(item) - console.log( - `[intent-process] Budget exhausted, stopping. ${skipped} item(s) deferred to next run.`, - ) - break - } - - if (!item.tarballUrl) { - await markVersionFailed(item.id, 'No tarball URL recorded') - failed++ - continue - } - - try { - const skills = await extractSkillsFromTarball(item.tarballUrl) - await replaceSkillsForVersion(item.id, skills) - await markVersionSynced(item.id, skills.length) - processed++ - console.log( - `[intent-process] ✓ ${item.packageName}@${item.version} - ${skills.length} skill(s)`, - ) - } catch (err) { - const reason = err instanceof Error ? err.message : String(err) - await markVersionFailed(item.id, reason) - failed++ - console.error( - `[intent-process] ✗ ${item.packageName}@${item.version}: ${reason}`, - ) - } - } - - // If we got fewer items than the batch size, the queue is drained - if (pending.length < BATCH_SIZE) break - } - - const duration = Date.now() - startTime - console.log( - `[intent-process] Done in ${duration}ms - processed: ${processed}, failed: ${failed}, deferred: ${skipped}`, - ) - console.log('[intent-process] Next invocation at:', next_run) - } catch (error) { - const duration = Date.now() - startTime - console.error( - `[intent-process] Fatal error after ${duration}ms:`, - error instanceof Error ? error.message : String(error), - ) - if (error instanceof Error && error.stack) { - console.error('[intent-process] Stack:', error.stack) - } - } -} - -export default handler - -export const config: Config = { - schedule: '*/15 * * * *', // Every 15 minutes -} diff --git a/package.json b/package.json index f5deece08..e7091819b 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,13 @@ "dev": "pnpm run with-env vite dev", "with-env": "dotenv -e .env.local", "dev:frontend": "pnpm run with-env vite dev", + "dev:cloudflare": "pnpm run with-env -- sh -c 'DISABLE_REDACT=true vite dev'", "build": "vite build --logLevel warn", - "start": "vite start", - "start:prod": "pnpm run with-env node scripts/run-built-server.mjs", + "build:cloudflare": "pnpm run build", + "preview": "vite preview", + "preview:cloudflare": "pnpm run preview", + "deploy:cloudflare": "SITE_URL=https://tanstack.com VITE_SITE_URL=https://tanstack.com pnpm run build:cloudflare && wrangler deploy --name tanstack-com --var SITE_URL:https://tanstack.com", + "cf:typegen": "wrangler types", "content:build": "node scripts/build-content-collections.mjs", "lint": "oxlint --type-aware --disable-nested-config", "format": "oxfmt --write", @@ -33,8 +37,6 @@ "@floating-ui/react": "^0.27.19", "@kapaai/react-sdk": "^0.9.10", "@modelcontextprotocol/sdk": "^1.29.0", - "@netlify/functions": "^5.1.5", - "@netlify/vite-plugin-tanstack-start": "^1.3.2", "@observablehq/plot": "^0.6.17", "@octokit/graphql": "^9.0.3", "@radix-ui/react-dialog": "^1.1.15", @@ -52,11 +54,14 @@ "@takumi-rs/core": "^1.1.2", "@takumi-rs/helpers": "^1.1.2", "@takumi-rs/image-response": "^1.1.2", + "@takumi-rs/wasm": "1.3.0", "@tanstack/ai": "^0.20.1", "@tanstack/ai-anthropic": "^0.10.1", "@tanstack/ai-client": "^0.11.3", "@tanstack/ai-openai": "^0.9.5", - "@tanstack/create": "^0.68.0", + "@tanstack/create": "^0.68.3", + "@tanstack/highlight": "^0.0.2", + "@tanstack/markdown": "^0.0.4", "@tanstack/pacer": "^0.21.1", "@tanstack/react-hotkeys": "^0.10.0", "@tanstack/react-pacer": "^0.22.1", @@ -71,7 +76,6 @@ "@uploadthing/react": "^7.3.3", "@visx/hierarchy": "^3.12.0", "@vitejs/plugin-react": "^6.0.1", - "@vitejs/plugin-rsc": "^0.5.24", "@webcontainer/api": "^1.6.1", "@xstate/react": "^6.1.0", "algoliasearch": "^5.50.0", @@ -83,8 +87,6 @@ "drizzle-orm": "^0.45.2", "encoding-sniffer": "^0.2.1", "gray-matter": "^4.0.3", - "hast-util-is-element": "^3.0.0", - "hast-util-to-string": "^3.0.1", "iconv-lite": "^0.7.2", "jszip": "^3.10.1", "lru-cache": "^11.2.7", @@ -100,36 +102,25 @@ "react-dom": "19.2.3", "react-easy-crop": "^5.5.7", "react-instantsearch": "^7.29.0", - "rehype-autolink-headings": "^7.1.0", - "rehype-callouts": "^2.1.2", - "rehype-parse": "^9.0.1", - "rehype-raw": "^7.0.0", - "rehype-react": "^8.0.0", - "rehype-slug": "^6.0.0", - "remark-gfm": "^4.0.1", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.2", "remove-markdown": "^0.6.3", "resend": "^6.10.0", - "shiki": "^4.0.2", "streamdown": "^2.5.0", "tailwind-merge": "^3.5.0", "tar-stream": "^3.1.8", "three": "^0.183.2", "troika-three-text": "^0.52.4", - "unified": "^11.0.5", - "unist-util-visit": "^5.1.0", "uploadthing": "^7.7.4", "valibot": "^1.3.1", "vite-bundle-analyzer": "^1.3.6", "xstate": "^5.30.0", + "yaml": "^2.9.0", "zod": "^4.3.6", "zustand": "^5.0.12" }, "devDependencies": { + "@cloudflare/vite-plugin": "^1.42.0", "@content-collections/core": "^0.14.3", "@content-collections/vite": "^0.2.9", - "@shikijs/transformers": "^4.0.2", "@tanstack/devtools-vite": "^0.7.0", "@tanstack/react-devtools": "^0.10.5", "@tanstack/react-query-devtools": "^5.100.11", @@ -154,7 +145,8 @@ "tailwindcss": "^4.2.2", "tsx": "^4.21.0", "typescript": "^6.0.2", - "vite": "^8.0.13" + "vite": "^8.0.13", + "wrangler": "^4.102.0" }, "engines": { "node": ">=22.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f3c87947..0cb0ca44c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,6 +15,7 @@ overrides: minimatch@3.1.5>brace-expansion: 1.1.12 minimatch@5.1.9>brace-expansion: 2.0.3 minimatch@10.2.5>brace-expansion: 5.0.5 + npm-run-path@6.0.0>unicorn-magic: 0.4.0 importers: @@ -32,12 +33,6 @@ importers: '@modelcontextprotocol/sdk': specifier: ^1.29.0 version: 1.29.0(zod@4.3.6) - '@netlify/functions': - specifier: ^5.1.5 - version: 5.1.5 - '@netlify/vite-plugin-tanstack-start': - specifier: ^1.3.2 - version: 1.3.4(@tanstack/react-start@1.168.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(rollup@4.53.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) '@observablehq/plot': specifier: ^0.6.17 version: 0.6.17 @@ -73,13 +68,13 @@ importers: version: 10.47.0(react@19.2.3)(rollup@4.53.3) '@shopify/hydrogen-react': specifier: ^2026.4.0 - version: 2026.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.183.2)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 2026.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.183.2)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tailwindcss/typography': specifier: ^0.5.19 version: 0.5.19(tailwindcss@4.2.2) '@tailwindcss/vite': specifier: ^4.2.2 - version: 4.3.0(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.3.0(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@takumi-rs/core': specifier: ^1.1.2 version: 1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -89,6 +84,9 @@ importers: '@takumi-rs/image-response': specifier: ^1.1.2 version: 1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@takumi-rs/wasm': + specifier: 1.3.0 + version: 1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/ai': specifier: ^0.20.1 version: 0.20.1(@opentelemetry/api@1.9.1) @@ -100,10 +98,16 @@ importers: version: 0.11.3(@opentelemetry/api@1.9.1) '@tanstack/ai-openai': specifier: ^0.9.5 - version: 0.9.5(@tanstack/ai-client@0.11.3(@opentelemetry/api@1.9.1))(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.20.0)(zod@4.3.6) + version: 0.9.5(@tanstack/ai-client@0.11.3(@opentelemetry/api@1.9.1))(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.21.0)(zod@4.3.6) '@tanstack/create': - specifier: ^0.68.0 - version: 0.68.0(tslib@2.8.1) + specifier: ^0.68.3 + version: 0.68.3(tslib@2.8.1) + '@tanstack/highlight': + specifier: ^0.0.2 + version: 0.0.2 + '@tanstack/markdown': + specifier: ^0.0.4 + version: 0.0.4(react@19.2.3) '@tanstack/pacer': specifier: ^0.21.1 version: 0.21.1 @@ -127,7 +131,7 @@ importers: version: 1.167.0(@tanstack/query-core@5.100.11)(@tanstack/react-query@5.100.11(react@19.2.3))(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.171.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-start': specifier: 1.168.10 - version: 1.168.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 1.168.10(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/react-start-client': specifier: 1.168.2 version: 1.168.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -139,16 +143,13 @@ importers: version: 7.4.3 '@uploadthing/react': specifier: ^7.3.3 - version: 7.3.3(react@19.2.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)) + version: 7.3.3(react@19.2.3)(uploadthing@7.7.4(express@5.2.1)(tailwindcss@4.2.2)) '@visx/hierarchy': specifier: ^3.12.0 version: 3.12.0(react@19.2.3) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - '@vitejs/plugin-rsc': - specifier: ^0.5.24 - version: 0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 6.0.1(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@webcontainer/api': specifier: ^1.6.1 version: 1.6.1 @@ -175,19 +176,13 @@ importers: version: 4.4.0 drizzle-orm: specifier: ^0.45.2 - version: 0.45.2(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(postgres@3.4.8) + version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(postgres@3.4.8) encoding-sniffer: specifier: ^0.2.1 version: 0.2.1 gray-matter: specifier: ^4.0.3 version: 4.0.3 - hast-util-is-element: - specifier: ^3.0.0 - version: 3.0.0 - hast-util-to-string: - specifier: ^3.0.1 - version: 3.0.1 iconv-lite: specifier: ^0.7.2 version: 0.7.2 @@ -233,42 +228,12 @@ importers: react-instantsearch: specifier: ^7.29.0 version: 7.29.0(algoliasearch@5.50.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - rehype-autolink-headings: - specifier: ^7.1.0 - version: 7.1.0 - rehype-callouts: - specifier: ^2.1.2 - version: 2.1.2 - rehype-parse: - specifier: ^9.0.1 - version: 9.0.1 - rehype-raw: - specifier: ^7.0.0 - version: 7.0.0 - rehype-react: - specifier: ^8.0.0 - version: 8.0.0 - rehype-slug: - specifier: ^6.0.0 - version: 6.0.0 - remark-gfm: - specifier: ^4.0.1 - version: 4.0.1 - remark-parse: - specifier: ^11.0.0 - version: 11.0.0 - remark-rehype: - specifier: ^11.1.2 - version: 11.1.2 remove-markdown: specifier: ^0.6.3 version: 0.6.3 resend: specifier: ^6.10.0 version: 6.10.0 - shiki: - specifier: ^4.0.2 - version: 4.0.2 streamdown: specifier: ^2.5.0 version: 2.5.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -284,15 +249,9 @@ importers: troika-three-text: specifier: ^0.52.4 version: 0.52.4(three@0.183.2) - unified: - specifier: ^11.0.5 - version: 11.0.5 - unist-util-visit: - specifier: ^5.1.0 - version: 5.1.0 uploadthing: specifier: ^7.7.4 - version: 7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2) + version: 7.7.4(express@5.2.1)(tailwindcss@4.2.2) valibot: specifier: ^1.3.1 version: 1.3.1(typescript@6.0.2) @@ -302,6 +261,9 @@ importers: xstate: specifier: ^5.30.0 version: 5.30.0 + yaml: + specifier: ^2.9.0 + version: 2.9.0 zod: specifier: ^4.3.6 version: 4.3.6 @@ -309,18 +271,18 @@ importers: specifier: ^5.0.12 version: 5.0.12(@types/react@19.2.14)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) devDependencies: + '@cloudflare/vite-plugin': + specifier: ^1.42.0 + version: 1.42.1(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))(workerd@1.20260617.1)(wrangler@4.103.0) '@content-collections/core': specifier: ^0.14.3 version: 0.14.3(typescript@6.0.2) '@content-collections/vite': specifier: ^0.2.9 - version: 0.2.9(@content-collections/core@0.14.3(typescript@6.0.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - '@shikijs/transformers': - specifier: ^4.0.2 - version: 4.0.2 + version: 0.2.9(@content-collections/core@0.14.3(typescript@6.0.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/devtools-vite': specifier: ^0.7.0 - version: 0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/react-devtools': specifier: ^0.10.5 version: 0.10.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.12) @@ -329,7 +291,7 @@ importers: version: 5.100.11(@tanstack/react-query@5.100.11(react@19.2.3))(react@19.2.3) '@tanstack/redact': specifier: ^0.0.17 - version: 0.0.17(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 0.0.17(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@types/hast': specifier: ^3.0.4 version: 3.0.4 @@ -392,7 +354,10 @@ importers: version: 6.0.2 vite: specifier: ^8.0.13 - version: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + version: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + wrangler: + specifier: ^4.102.0 + version: 4.103.0 packages: @@ -579,9 +544,55 @@ packages: '@chevrotain/utils@11.1.2': resolution: {integrity: sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA==} - '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + '@cloudflare/kv-asset-handler@0.5.0': + resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} + engines: {node: '>=22.0.0'} + + '@cloudflare/unenv-preset@2.16.1': + resolution: {integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==} + peerDependencies: + unenv: 2.0.0-rc.24 + workerd: '>1.20260305.0 <2.0.0-0' + peerDependenciesMeta: + workerd: + optional: true + + '@cloudflare/vite-plugin@1.42.1': + resolution: {integrity: sha512-G7JZL7lIOcNK4mOM/uYSh3c5tNC8mdNWTmM9I/9OIruzkenWIkHqmYR/Z1XiLMNUITXcYkbf71RD19rIb4Fx/w==} + hasBin: true + peerDependencies: + vite: ^6.1.0 || ^7.0.0 || ^8.0.0 + wrangler: ^4.103.0 + + '@cloudflare/workerd-darwin-64@1.20260617.1': + resolution: {integrity: sha512-jWwmgEVVWbsHNrLSNXzwjJaH90VzRxq1cWkQFUidxyeUPnMxemeNE8I9qFAfrpzGgE11e9sKDcE3ettJW08swQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + + '@cloudflare/workerd-darwin-arm64@1.20260617.1': + resolution: {integrity: sha512-LHH7b565g9znfCUOkwbec6FG2rmRbsgCy6aJiU9KN662mNheWl5sw/iKleiFSiljPKQQP3HkjnC/NSkdgi/aSA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + + '@cloudflare/workerd-linux-64@1.20260617.1': + resolution: {integrity: sha512-FMnaAKXe4Cfd8TQurCVd9fs2XQVBFRCsP+Id/SRdUv89MlwYu9zXfoyx6BxM+brPTIUK38SHbo8iaxiwzLi9JQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + + '@cloudflare/workerd-linux-arm64@1.20260617.1': + resolution: {integrity: sha512-MRoifFYcqbxxIIQy7PqO5tFY/qPFSnjXzakWl0sO93l+HLyG35jRAgOi6jfqa4kBxc7gKKtH861DcewjxUfkjA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + + '@cloudflare/workerd-windows-64@1.20260617.1': + resolution: {integrity: sha512-rgBV9wQrv0OSKgCTTbhFUFY3sLGNANZ88aqaLvtmEn2gmbFVb1J4PDGochVUdB7NSEp4D/ghHva6/8SZmbONpw==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] '@content-collections/core@0.14.3': resolution: {integrity: sha512-nbgfRswxudlKDBEO2AXVGGfsFMlenV2iVjNDddQGWD0qk3lBDkTRJy0AqdBvBOccB8/cj95nJyXEVocRRNyUcA==} @@ -599,12 +610,9 @@ packages: '@content-collections/core': ^0.x vite: ^5 || ^6 || ^7 - '@dabh/diagnostics@2.0.8': - resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} - - '@dependents/detective-less@5.0.1': - resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==} - engines: {node: '>=18'} + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} '@dimforge/rapier3d-compat@0.12.0': resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==} @@ -617,25 +625,15 @@ packages: peerDependencies: effect: ^3.17.7 - '@electric-sql/pglite@0.3.16': - resolution: {integrity: sha512-mZkZfOd9OqTMHsK+1cje8OSzfAQcpD7JmILXTl5ahdempjUDdmg4euf1biDex5/LfQIDJ3gvCu6qDgdnDxfJmA==} - '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.9.1': - resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} - '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@envelop/instrumentation@1.0.0': - resolution: {integrity: sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==} - engines: {node: '>=18.0.0'} - '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} deprecated: 'Merged into tsx: https://tsx.is' @@ -650,14 +648,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.27.4': + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.4': - resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -674,14 +672,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.27.4': + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.4': - resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -698,14 +696,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.27.4': + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.4': - resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -722,14 +720,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.27.4': + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.4': - resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -746,14 +744,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.27.4': + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.4': - resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -770,14 +768,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.27.4': + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.4': - resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -794,14 +792,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.27.4': + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.4': - resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -818,14 +816,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.27.4': + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.4': - resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -842,14 +840,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.27.4': + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.4': - resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -866,14 +864,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.27.4': + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.4': - resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -890,14 +888,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.27.4': + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.4': - resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -914,14 +912,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.27.4': + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.4': - resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -938,14 +936,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.27.4': + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.4': - resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -962,14 +960,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.27.4': + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.4': - resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -986,14 +984,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.27.4': + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.4': - resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -1010,14 +1008,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.27.4': + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.4': - resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -1034,14 +1032,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.27.4': + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.4': - resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -1052,14 +1050,14 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.27.4': + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.4': - resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -1076,14 +1074,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.27.4': + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.4': - resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -1094,14 +1092,14 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.27.4': + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.4': - resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -1118,14 +1116,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.27.4': + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.4': - resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -1136,14 +1134,14 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.27.4': + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.4': - resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -1160,14 +1158,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.27.4': + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.4': - resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1184,14 +1182,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.27.4': + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.4': - resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1208,14 +1206,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.27.4': + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.4': - resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1232,24 +1230,18 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.27.4': + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.4': - resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@fastify/accept-negotiator@2.0.1': - resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==} - - '@fastify/busboy@3.2.0': - resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} - '@fastify/otel@0.18.0': resolution: {integrity: sha512-3TASCATfw+ctICSb4ymrv7iCm0qJ0N9CarB+CZ7zIJ7KqNbwI5JjyDL1/sxoC0ccTO1Zyd1iQ+oqncPg5FJXaA==} peerDependencies: @@ -1306,13 +1298,6 @@ packages: peerDependencies: hono: ^4 - '@humanwhocodes/momoa@2.0.4': - resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} - engines: {node: '>=10.10.0'} - - '@iarna/toml@2.2.5': - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -1472,13 +1457,6 @@ packages: cpu: [x64] os: [win32] - '@import-maps/resolve@2.0.0': - resolution: {integrity: sha512-RwzRTpmrrS6Q1ZhQExwuxJGK1Wqhv4stt+OF2JzS+uawewpwNyU7EJL1WpBex7aDiiGLs4FsXGkfUBdYuX7xiQ==} - - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1495,6 +1473,9 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} @@ -1627,11 +1608,6 @@ packages: '@lit/reactive-element@2.1.2': resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} - '@mapbox/node-pre-gyp@2.0.3': - resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} - engines: {node: '>=18'} - hasBin: true - '@mediapipe/tasks-vision@0.10.17': resolution: {integrity: sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==} @@ -1695,153 +1671,6 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@netlify/ai@0.4.1': - resolution: {integrity: sha512-ETLtV/9taYrcGhszwO+BLFgFJJ2MCnJp8BwxfwV6Z/+z3SsaUG4ExC8x4xzNCdB2GPWxXrXkvR2LFNsPFSLcRA==} - engines: {node: '>=20.6.1'} - - '@netlify/api@14.0.18': - resolution: {integrity: sha512-4STtNybPXALobjTHEIU48Huv9Si1sNxgHbtYslNBPvQu9/aTpxhRHDZuUOkE/QuhHSbaCNCWJSYFGIRxpCdXxg==} - engines: {node: '>=18.14.0'} - - '@netlify/binary-info@1.0.0': - resolution: {integrity: sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==} - - '@netlify/blobs@10.7.4': - resolution: {integrity: sha512-03lXstB4xxDKeYs2RTTZrUGRC0ea2nVZvkdGlw2A42AdK7KA6N0ocVmkIn9x91oqFsqK3dWJTAv2bzaLjsehXg==} - engines: {node: ^14.16.0 || >=16.0.0} - - '@netlify/cache@3.4.4': - resolution: {integrity: sha512-CL9WZjbxe9/Gkcpfkl6h1F0BkBxUg9b4HHleGjmo0rs/PDUJ2NDQVKtEospllH2+KDUdB6EsPhiJN+v9Jcdv1g==} - engines: {node: '>=20.6.1'} - - '@netlify/config@24.4.4': - resolution: {integrity: sha512-EEg9G5NeWOAibnCBn5/k7HLDg6UoDnHlBW5BsWYTNwmKIjFyUEHsFhPIINfJ90ToPPzlStBRkDyaO7/fRrHPNg==} - engines: {node: '>=18.14.0'} - hasBin: true - - '@netlify/database-dev@0.8.0': - resolution: {integrity: sha512-q53dx7QgLMMN3vKRFvX/guDOPXscYaF4qtHoG0JYZorC0vcJagw6s3nV8cNob9sCjA3Tj/BNf7MnWwOSF0E1Cw==} - engines: {node: '>=20.6.1'} - - '@netlify/dev-utils@4.4.3': - resolution: {integrity: sha512-VkMD8YACshR6pHgoub6nikkI+SQVdhjVvLsOK2ZSpN2wMlDHdsD8uRjESfzv/yYfq5jlsGskfx1cf1FUurWt9A==} - engines: {node: ^18.14.0 || >=20} - - '@netlify/dev@4.17.0': - resolution: {integrity: sha512-DumVB+3VdIXXGWKrQVM4ouwahhtajtfC1IU8bDt472P3+zDoceai3FYrTfBq4LbWq6ojZXGqf8XWsJHO6rd/0A==} - engines: {node: '>=20.6.1'} - - '@netlify/edge-bundler@14.9.19': - resolution: {integrity: sha512-1jO1vPGM5N6swK+6/p4LkiKDSP0eqRhuhs5BkCvVa7HSyXpeNuOAqk7uhICh8fy2naol0VOWCW9NC1LI4YhrFA==} - engines: {node: '>=18.14.0'} - - '@netlify/edge-functions-bootstrap@2.16.0': - resolution: {integrity: sha512-v8QQihSbBHj3JxtJsHoepXALpNumD9M7egHoc8z62FYl5it34dWczkaJoFFopEyhiBVKi4K/n0ZYpdzwfujd6g==} - - '@netlify/edge-functions-dev@1.0.16': - resolution: {integrity: sha512-QQGUNPRvynKg4NJ7iiR0mYcsdA/QwIdUB/Fb4SGhhqBPicTcW4V5bEZ/JaMvEBMd2ZY8EKuWQ63Ryl4TVHI+QQ==} - engines: {node: '>=20.6.1'} - - '@netlify/edge-functions@3.0.6': - resolution: {integrity: sha512-xkVcTcpAuQKAY5GXKOjPTIct5Mz53NPHXOasggA+LTAxDDV4ohqSM8BIaXh1SgbcniHZyFhBqhc5hxZ+fFz5bQ==} - engines: {node: '>=18.0.0'} - - '@netlify/functions-dev@1.2.5': - resolution: {integrity: sha512-IRskgi6cexUkFtU0Da/OiiUyvyKOzxNsf16HN9iRIGGZUQ4AcyXwJPqVsquP9jHluY3Ck8bDsnxXnpOsaT4ENg==} - engines: {node: '>=20.6.1'} - - '@netlify/functions@5.1.5': - resolution: {integrity: sha512-mhTl6x3TWoRwNgz8HZ9zvSR9OHB/hDEA6VinBmWY5ubgycKNCerf6XyFaFnujH2Ygx3c32yg6QOOr1v9y8euug==} - engines: {node: '>=18.0.0'} - - '@netlify/functions@5.2.0': - resolution: {integrity: sha512-Pj93qeQd1tkQ5xm9gWJZmBf/1riLYqYHc0OzFukrJomrj82Ott53Rr/Q88H1ms5cF+P5QXRKWmA2JSxSybKfjA==} - engines: {node: '>=18.0.0'} - - '@netlify/headers-parser@9.0.3': - resolution: {integrity: sha512-KNzC9RaKDwJVS44iTK6JxNA6LeXH0PUw0pLktWpmMVI/0FR98bvxaHcAisjHqbThAjxL9QjL1UZh0KzHCkxpNQ==} - engines: {node: '>=18.14.0'} - - '@netlify/headers@2.1.8': - resolution: {integrity: sha512-OhHT8nq84tSvXWaOMCLgcaGKnUccbIYg7/Ink4NyVHNwJ7L2fFGb6Mi4lPWluHhncYJE9p0eK7JMiKKj49Q0Qw==} - engines: {node: '>=20.6.1'} - - '@netlify/images@1.3.7': - resolution: {integrity: sha512-qWKCbtYQbyHtzVjLcaAxZsxrd8qpIVnLWwvn2635E8zQSO7L0wb2oPTUhMEOOIxIurWuY3JSRGevpve6ifataQ==} - engines: {node: '>=20.6.1'} - - '@netlify/open-api@2.52.0': - resolution: {integrity: sha512-QkWQu0vz3uBcxjSslA0N6Njo0x1ndkhEIVEmdwcmxfufX8wA0d9WjiU2sWuHYw11Mrf5pkMUQHvZy+6V4A9TYQ==} - engines: {node: '>=14.8.0'} - - '@netlify/otel@5.1.5': - resolution: {integrity: sha512-RORbePN1ghdHp4pIkG3ccFMqmx5hwMfSyLGKp7bKVf1F5rSe1QjrCBp5xihEWI3xuh3fAqQroTlNYnoOud8RTQ==} - engines: {node: ^18.14.0 || >=20.6.1} - - '@netlify/redirect-parser@15.0.4': - resolution: {integrity: sha512-UYHRCO4HZI6WMpf8RheaCWnGafeJeFTsp/5yK887fyGqohDmFbc26NuFUvRl7J6sNu+di/1lLmRXP+yJ1X9TDA==} - engines: {node: '>=18.14.0'} - - '@netlify/redirects@3.1.10': - resolution: {integrity: sha512-q4PbtkeNDxKqfOemsrG5F/vkpNfLwjVQpx69+sS2Qg/PYOOneayKJOlCKhVc6QQUtDuhFV6WZ8JHielYMj1pVw==} - engines: {node: '>=20.6.1'} - - '@netlify/runtime-utils@2.3.0': - resolution: {integrity: sha512-cW8weDvsKV7zfia2m5EcBy6KILGoPD+eYZ3qWNGnIo05DGF28goPES0xKSDkNYgAF/2rRSIhie2qcBhbGVgSRg==} - engines: {node: ^18.14.0 || >=20} - - '@netlify/runtime@4.1.20': - resolution: {integrity: sha512-maPRSTG+q9rTkeP+hj5X8PN6OkUShp1E62+GBtZrVRVrkTYLiF3mz2JGUw32lCbw2OqqvlUab85N4OMPSdP5HA==} - engines: {node: '>=20.6.1'} - - '@netlify/serverless-functions-api@2.14.0': - resolution: {integrity: sha512-6UwJ9Fm8NU9LPBa5zV5Gv20JgSEPOOwZ7oUbNYbB7SUnNTmIBccafgZF3+xXqSpI3hxXn4/l5xxCO+Pc2KURZA==} - engines: {node: '>=18.0.0'} - - '@netlify/static@3.1.7': - resolution: {integrity: sha512-7gfDmUJKIFiVvqoqAoN7wkZkQx8KgVw5+ancu4v+QFU/hLt+gWqNH+ngxaCKCA0hmDE4oD1xNbClxlh9bNOetw==} - engines: {node: '>=20.6.1'} - - '@netlify/types@2.6.0': - resolution: {integrity: sha512-yD20EizHJDQxajJ66Vo8RTwLwR2jMNVxufPG8MHd2AScX8jW4z0VPnnJHArq2GYPFTFZRHmiAhDrXr5m8zof6w==} - engines: {node: ^18.14.0 || >=20} - - '@netlify/vite-plugin-tanstack-start@1.3.4': - resolution: {integrity: sha512-MjYTiVTkD2J1dPMU6eKAMWPZvfOJZm5aM7065YWQVOJHidsKvSYg5fuI4h1vYZmQVUJwOhJFG+6rv4F9S3ZZWQ==} - engines: {node: ^22.12.0 || >=24.0.0} - peerDependencies: - '@tanstack/react-start': '>=1.132.0' - '@tanstack/solid-start': '>=1.132.0' - vite: '>=7.0.0' - peerDependenciesMeta: - '@tanstack/react-start': - optional: true - '@tanstack/solid-start': - optional: true - - '@netlify/vite-plugin@2.11.4': - resolution: {integrity: sha512-Q1hbuL6f4hghao17Dk3dGIE20oBzvxACdCxox2FKYHR0gypcq7aJW+uoueTkcZuB1ZE7K5xSAQjmKRjOiaCV1g==} - engines: {node: ^20.6.1 || >=22} - peerDependencies: - vite: ^5 || ^6 || ^7 || ^8 - - '@netlify/zip-it-and-ship-it@14.5.3': - resolution: {integrity: sha512-7CCFbfEs11WZmY2ddXR85q6O6dHr8aWA/fcdw+7ftwtIaajQKWGDduZT5lI+u7i60wVymt8CEu2Et/hKOhFtzQ==} - engines: {node: '>=18.14.0'} - hasBin: true - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@observablehq/plot@0.6.17': resolution: {integrity: sha512-/qaXP/7mc4MUS0s4cPPFASDRjtsWp85/TbfsciqDgU1HwYixbSbbytNuInD8AcTYC3xaxACgVX06agdfQy9W+g==} engines: {node: '>=12'} @@ -1884,10 +1713,6 @@ packages: resolution: {integrity: sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==} engines: {node: '>=20.0'} - '@opentelemetry/api-logs@0.203.0': - resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.207.0': resolution: {integrity: sha512-lAb0jQRVyleQQGiuuvCOTDVspc14nx6XJjP4FspJ1sNARo3Regq4ZZbrc3rN4b1TYSuUCvgH+UXUPug4SLOqEQ==} engines: {node: '>=8.0.0'} @@ -1900,32 +1725,16 @@ packages: resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.1': resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@opentelemetry/context-async-hooks@1.30.1': - resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/context-async-hooks@2.6.1': resolution: {integrity: sha512-XHzhwRNkBpeP8Fs/qjGrAf9r9PRv67wkJQ/7ZPaBQQ68DYlTBBx5MF9LvPx7mhuXcDessKK2b+DcxqwpgkcivQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@1.30.1': - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.6.1': resolution: {integrity: sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2064,12 +1873,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation@0.203.0': - resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.207.0': resolution: {integrity: sha512-y6eeli9+TLKnznrR8AZlQMSJT7wILpXH+6EYq5Vf/4Ao+huI7EedxQHwRgVUOMLFbe7VFDvHJrX9/f4lcwnJsA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2088,56 +1891,22 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/propagator-b3@1.30.1': - resolution: {integrity: sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-jaeger@1.30.1': - resolution: {integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/redis-common@0.38.2': resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==} engines: {node: ^18.19.0 || >=20.6.0} - '@opentelemetry/resources@1.30.1': - resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/resources@2.6.1': resolution: {integrity: sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@1.30.1': - resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.6.1': resolution: {integrity: sha512-r86ut4T1e8vNwB35CqCcKd45yzqH6/6Wzvpk2/cZB8PsPLlZFTvrh8yfOS3CYZYcUmAx4hHTZJ8AO8Dj8nrdhw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-node@1.30.1': - resolution: {integrity: sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/semantic-conventions@1.28.0': - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} - engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.40.0': resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} engines: {node: '>=14'} @@ -2555,104 +2324,19 @@ packages: cpu: [x64] os: [win32] - '@parcel/watcher-android-arm64@2.5.6': - resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] + '@poppinss/colors@4.1.6': + resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} - '@parcel/watcher-darwin-arm64@2.5.6': - resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] + '@poppinss/dumper@0.6.5': + resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} - '@parcel/watcher-darwin-x64@2.5.6': - resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] + '@poppinss/exception@1.2.3': + resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - '@parcel/watcher-freebsd-x64@2.5.6': - resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.6': - resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm-musl@2.5.6': - resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [musl] - - '@parcel/watcher-linux-arm64-glibc@2.5.6': - resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm64-musl@2.5.6': - resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@parcel/watcher-linux-x64-glibc@2.5.6': - resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-x64-musl@2.5.6': - resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@parcel/watcher-wasm@2.5.6': - resolution: {integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - - '@parcel/watcher-win32-arm64@2.5.6': - resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.6': - resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.6': - resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.6': - resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} - engines: {node: '>= 10.0.0'} - - '@prisma/instrumentation@7.6.0': - resolution: {integrity: sha512-ZPW2gRiwpPzEfgeZgaekhqXrbW+Y2RJKHVqUmlhZhKzRNCcvR6DykzylDrynpArKKRQtLxoZy36fK7U0p3pdgQ==} - peerDependencies: - '@opentelemetry/api': ^1.8 + '@prisma/instrumentation@7.6.0': + resolution: {integrity: sha512-ZPW2gRiwpPzEfgeZgaekhqXrbW+Y2RJKHVqUmlhZhKzRNCcvR6DykzylDrynpArKKRQtLxoZy36fK7U0p3pdgQ==} + peerDependencies: + '@opentelemetry/api': ^1.8 '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} @@ -3125,24 +2809,12 @@ packages: cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.15': - resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} - '@rolldown/pluginutils@1.0.0-rc.7': resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==} '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/rollup-android-arm-eabi@4.53.3': resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==} cpu: [arm] @@ -3415,41 +3087,6 @@ packages: resolution: {integrity: sha512-i6NWUDi2SDikfSUeMJvJTRdwEKYSfTd+mvBO2Ja51S1YK+hnickBuDfD+RvPerIXLuyRu3GamgNPbNqgCGUg/Q==} engines: {node: '>= 18'} - '@shikijs/core@4.0.2': - resolution: {integrity: sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==} - engines: {node: '>=20'} - - '@shikijs/engine-javascript@4.0.2': - resolution: {integrity: sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==} - engines: {node: '>=20'} - - '@shikijs/engine-oniguruma@4.0.2': - resolution: {integrity: sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==} - engines: {node: '>=20'} - - '@shikijs/langs@4.0.2': - resolution: {integrity: sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==} - engines: {node: '>=20'} - - '@shikijs/primitive@4.0.2': - resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==} - engines: {node: '>=20'} - - '@shikijs/themes@4.0.2': - resolution: {integrity: sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==} - engines: {node: '>=20'} - - '@shikijs/transformers@4.0.2': - resolution: {integrity: sha512-1+L0gf9v+SdDXs08vjaLb3mBFa8U7u37cwcBQIv/HCocLwX69Tt6LpUCjtB+UUTvQxI7BnjZKhN/wMjhHBcJGg==} - engines: {node: '>=20'} - - '@shikijs/types@4.0.2': - resolution: {integrity: sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==} - engines: {node: '>=20'} - - '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@shopify/hydrogen-react@2026.4.0': resolution: {integrity: sha512-RXtMkkZAJFv43BcNR2CNIkVbUqT28nU9uzJ05lewkX9yq2C7Vmf5AC2jLov+tevMYFqTPOQRiZYuxtym4UnKSA==} peerDependencies: @@ -3457,13 +3094,14 @@ packages: react-dom: ^18.3.1 || ~19.0.3 || ~19.1.4 || ^19.2.3 vite: ^5.1.0 || ^6.2.1 + '@sindresorhus/is@7.2.0': + resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} + engines: {node: '>=18'} + '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@so-ric/colorspace@1.1.6': - resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} - '@solid-primitives/event-listener@2.4.5': resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} peerDependencies: @@ -3494,6 +3132,9 @@ packages: peerDependencies: solid-js: ^1.6.12 + '@speed-highlight/core@1.2.17': + resolution: {integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==} + '@stablelib/base64@1.0.1': resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} @@ -3503,11 +3144,6 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@sveltejs/acorn-typescript@1.0.9': - resolution: {integrity: sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==} - peerDependencies: - acorn: ^8.9.0 - '@swc/helpers@0.5.18': resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} @@ -3716,8 +3352,8 @@ packages: '@opentelemetry/api': optional: true - '@tanstack/create@0.68.0': - resolution: {integrity: sha512-QQBnDj9p6gEo0TSqCDEUAfAhv5GKChd60yuk6XXjxgH4vgwLCuWeb6U9lOQ61tUk4Wmk2n49zabHtplz05GcKQ==} + '@tanstack/create@0.68.3': + resolution: {integrity: sha512-BBOmj+dEtRCOLqQzjEvivBJl1ZN5KgV6kcHoijhMVgn5oq1xX7BixBiNUJ3sgPzHWFriI/pkgTlbnEtBezvsWA==} engines: {node: '>=20'} '@tanstack/devtools-client@0.0.6': @@ -3753,6 +3389,9 @@ packages: peerDependencies: solid-js: '>=1.9.7' + '@tanstack/highlight@0.0.2': + resolution: {integrity: sha512-zxC5bJwG8BOJkAEzPHhW8djKbIsNca7CBA27CBs5LVDgoecw3Kaqf4E6YyOHpyuJAwVPwe9SMmyBTbQ/F0Ycjw==} + '@tanstack/history@1.162.0': resolution: {integrity: sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==} engines: {node: '>=20.19'} @@ -3761,6 +3400,14 @@ packages: resolution: {integrity: sha512-vqH7X9nb0MTJ/O08++dB5bP9jgj4+BIPOUu/U+6myG86lDsirZSVSobpq5UQpE7nBuk62i8eIYeOhd+OMl/UrA==} engines: {node: '>=18'} + '@tanstack/markdown@0.0.4': + resolution: {integrity: sha512-RBuVsbhelscwmUq1l1AF6/w/ZETl43L00DO2wgFGRCZHGb4qdFEtwM7A1mD5Wges6V5PfJU9O7A6rBIDF7Euqw==} + peerDependencies: + react: '>=18' + peerDependenciesMeta: + react: + optional: true + '@tanstack/openai-base@0.3.4': resolution: {integrity: sha512-AhNGgbpuMFVQB9zDuSPA5+x4twjc1Q3ql28T9XVZvGldTwOFYJbAmQ0pnQXcbumM+3Cgius2PylDJ6AxK72YTQ==} peerDependencies: @@ -4150,9 +3797,6 @@ packages: '@types/node@25.5.0': resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/offscreencanvas@2019.7.3': resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} @@ -4184,9 +3828,6 @@ packages: '@types/remove-markdown@0.3.4': resolution: {integrity: sha512-i753EH/p02bw7bLlpfS/4CV1rdikbGiLabWyVsAvsFid3cA5RNU1frG7JycgY+NSnFwtoGlElvZVceCytecTDA==} - '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - '@types/stats.js@0.17.4': resolution: {integrity: sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==} @@ -4199,9 +3840,6 @@ packages: '@types/three@0.183.1': resolution: {integrity: sha512-f2Pu5Hrepfgavttdye3PsH5RWyY/AvdZQwIVhrc4uNtvF7nOWJacQKcoVJn0S4f0yYbmAE6AR+ve7xDcuYtMGw==} - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -4214,35 +3852,6 @@ packages: '@types/webxr@0.5.24': resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==} - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - - '@typescript-eslint/project-service@8.58.0': - resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/tsconfig-utils@8.58.0': - resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/types@8.58.0': - resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.58.0': - resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/visitor-keys@8.58.0': - resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} deprecated: Potential CWE-502 - Update to 1.3.1 or higher @@ -4274,11 +3883,6 @@ packages: peerDependencies: react: '>= 16.8.0' - '@vercel/nft@0.29.4': - resolution: {integrity: sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==} - engines: {node: '>=18'} - hasBin: true - '@visx/group@3.12.0': resolution: {integrity: sha512-Dye8iS1alVXPv7nj/7M37gJe6sSKqJLH7x6sEWAsRQ9clI0kFvjbKcKgF+U3aAVQr0NCohheFV+DtR8trfK/Ag==} peerDependencies: @@ -4302,58 +3906,12 @@ packages: babel-plugin-react-compiler: optional: true - '@vitejs/plugin-rsc@0.5.24': - resolution: {integrity: sha512-FQ7o1Zf1GUB8L5qlIuV2mvIv/KahG2qUYW2gMpxyIN3zF7voDsfvA/t8w/TLjYC0T6p3JwMnK3N+YzMGf/m75A==} - peerDependencies: - react: '*' - react-dom: '*' - react-server-dom-webpack: '*' - vite: '*' - peerDependenciesMeta: - react-server-dom-webpack: - optional: true - - '@vue/compiler-core@3.5.31': - resolution: {integrity: sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==} - - '@vue/compiler-dom@3.5.31': - resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} - - '@vue/compiler-sfc@3.5.31': - resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} - - '@vue/compiler-ssr@3.5.31': - resolution: {integrity: sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==} - - '@vue/shared@3.5.31': - resolution: {integrity: sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==} - '@webcontainer/api@1.6.1': resolution: {integrity: sha512-2RS2KiIw32BY1Icf6M1DvqSmcon9XICZCDgS29QJb2NmF12ZY2V5Ia+949hMKB3Wno+P/Y8W+sPP59PZeXSELg==} '@webgpu/types@0.1.69': resolution: {integrity: sha512-RPmm6kgRbI8e98zSD3RVACvnuktIja5+yLgDAkTmxLr90BEwdTXRQWNLF3ETTTyH/8mKhznZuN5AveXYFEsMGQ==} - '@whatwg-node/disposablestack@0.0.6': - resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/fetch@0.10.13': - resolution: {integrity: sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/node-fetch@0.8.5': - resolution: {integrity: sha512-4xzCl/zphPqlp9tASLVeUhB5+WJHbuWGYpfoC2q1qh5dw0AqZBW7L27V5roxYWijPxj4sspRAAoOH3d2ztaHUQ==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/promise-helpers@1.3.2': - resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} - engines: {node: '>=16.0.0'} - - '@whatwg-node/server@0.10.18': - resolution: {integrity: sha512-kMwLlxUbduttIgaPdSkmEarFpP+mSY8FEm+QWMBRJwxOHWkri+cxd8KZHO9EMrB9vgUuz+5WEaCawaL5wGVoXg==} - engines: {node: '>=18.0.0'} - '@xstate/fsm@2.0.0': resolution: {integrity: sha512-p/zcvBMoU2ap5byMefLkR+AM+Eh99CU/SDEQeccgKlmFNOMDwphaRGqdk+emvel/SaGZ7Rf9sDvzAplLzLdEVQ==} @@ -4369,14 +3927,6 @@ packages: abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} @@ -4395,15 +3945,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - - ajv-errors@3.0.0: - resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==} - peerDependencies: - ajv: ^8.0.1 - ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -4440,18 +3981,6 @@ packages: resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} engines: {node: '>=14'} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} - - archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -4463,18 +3992,10 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - ast-module-types@6.0.1: - resolution: {integrity: sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==} - engines: {node: '>=18'} - ast-v8-to-istanbul@0.3.12: resolution: {integrity: sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g==} @@ -4482,9 +4003,6 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -4562,20 +4080,14 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - better-ajv-errors@1.2.0: - resolution: {integrity: sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - ajv: 4.11.8 - 8 - bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} binary-search-bounds@2.0.5: resolution: {integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==} - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + blake3-wasm@2.1.5: + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} @@ -4594,10 +4106,6 @@ packages: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - browserslist@4.28.2: resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -4608,16 +4116,6 @@ packages: engines: {node: '>= 0.4.0'} hasBin: true - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -4640,9 +4138,6 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - callsite@1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} @@ -4706,33 +4201,15 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cjs-module-lexer@2.2.0: resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -4750,46 +4227,15 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-convert@3.1.3: - resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} - engines: {node: '>=14.6'} - color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-name@2.1.0: - resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} - engines: {node: '>=12.20'} - - color-string@2.1.4: - resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} - engines: {node: '>=18'} - - color@5.0.3: - resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} - engines: {node: '>=18'} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -4798,23 +4244,12 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - - compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} - content-disposition@1.0.1: resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} @@ -4829,9 +4264,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - cookie-es@3.1.1: resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} @@ -4847,10 +4279,6 @@ packages: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} - copy-file@11.1.0: - resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==} - engines: {node: '>=18'} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4864,19 +4292,6 @@ packages: cose-base@2.2.0: resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} - - cron-parser@4.9.0: - resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} - engines: {node: '>=12.0.0'} - cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -4886,20 +4301,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crossws@0.3.5: - resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@3.2.1: - resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.2.2: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} @@ -4909,13 +4313,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssfilter@0.0.10: - resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -5078,10 +4475,6 @@ packages: dagre-d3-es@7.0.14: resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -5106,24 +4499,9 @@ packages: supports-color: optional: true - decache@4.6.2: - resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==} - decode-named-character-reference@1.3.0: resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} - dedent@1.7.2: - resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -5132,9 +4510,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - delaunator@5.1.0: resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} @@ -5146,9 +4521,6 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - detect-gpu@5.0.70: resolution: {integrity: sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==} @@ -5159,52 +4531,6 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - detective-amd@6.0.1: - resolution: {integrity: sha512-TtyZ3OhwUoEEIhTFoc1C9IyJIud3y+xYkSRjmvCt65+ycQuc3VcBrPRTMWoO/AnuCyOB8T5gky+xf7Igxtjd3g==} - engines: {node: '>=18'} - hasBin: true - - detective-cjs@6.1.0: - resolution: {integrity: sha512-Qt3S4IddVNDb+71lm+jmt5NznIsgcKlibTnrw9Zr91rT9vRwKp+73+ImqLTNrQj4YuOxnzrC7GwIAVwF7136XQ==} - engines: {node: '>=18'} - - detective-es6@5.0.1: - resolution: {integrity: sha512-XusTPuewnSUdoxRSx8OOI6xIA/uld/wMQwYsouvFN2LAg7HgP06NF1lHRV3x6BZxyL2Kkoih4ewcq8hcbGtwew==} - engines: {node: '>=18'} - - detective-postcss@7.0.1: - resolution: {integrity: sha512-bEOVpHU9picRZux5XnwGsmCN4+8oZo7vSW0O0/Enq/TO5R2pIAP2279NsszpJR7ocnQt4WXU0+nnh/0JuK4KHQ==} - engines: {node: ^14.0.0 || >=16.0.0} - peerDependencies: - postcss: ^8.4.47 - - detective-sass@6.0.1: - resolution: {integrity: sha512-jSGPO8QDy7K7pztUmGC6aiHkexBQT4GIH+mBAL9ZyBmnUIOFbkfZnO8wPRRJFP/QP83irObgsZHCoDHZ173tRw==} - engines: {node: '>=18'} - - detective-scss@5.0.1: - resolution: {integrity: sha512-MAyPYRgS6DCiS6n6AoSBJXLGVOydsr9huwXORUlJ37K3YLyiN0vYHpzs3AdJOgHobBfispokoqrEon9rbmKacg==} - engines: {node: '>=18'} - - detective-stylus@5.0.1: - resolution: {integrity: sha512-Dgn0bUqdGbE3oZJ+WCKf8Dmu7VWLcmRJGc6RCzBgG31DLIyai9WAoEhYRgIHpt/BCRMrnXLbGWGPQuBUrnF0TA==} - engines: {node: '>=18'} - - detective-typescript@14.0.0: - resolution: {integrity: sha512-pgN43/80MmWVSEi5LUuiVvO/0a9ss5V7fwVfrJ4QzAQRd3cwqU1SfWGXJFcNKUqoD5cS+uIovhw5t/0rSeC5Mw==} - engines: {node: '>=18'} - peerDependencies: - typescript: ^5.4.4 - - detective-vue2@2.2.0: - resolution: {integrity: sha512-sVg/t6O2z1zna8a/UIV6xL5KUa2cMTQbdTIIvqNM0NIPswp52fe43Nwmbahzj3ww4D844u/vC2PYfiGLvD3zFA==} - engines: {node: '>=18'} - peerDependencies: - typescript: ^5.4.4 - - dettle@1.0.5: - resolution: {integrity: sha512-ZVyjhAJ7sCe1PNXEGveObOH9AC8QvMga3HJIghHawtG7mE4K5pW9nz/vDGAr/U7a3LWgdOzEE7ac9MURnyfaTA==} - devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -5232,10 +4558,6 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - dot-prop@9.0.0: - resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} - engines: {node: '>=18'} - dotenv-cli@11.0.0: resolution: {integrity: sha512-r5pA8idbk7GFWuHEU7trSTflWcdBpQEK+Aw17UrSHjS6CReuhrrPcyC3zcQBPQvhArRHnBo/h6eLH1fkCvNlww==} hasBin: true @@ -5358,9 +4680,6 @@ packages: duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -5378,13 +4697,6 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - empathic@2.0.0: - resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} - engines: {node: '>=14'} - - enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -5392,9 +4704,6 @@ packages: encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.21.5: resolution: {integrity: sha512-mLCNbrQli11K1ySUmuNt4ZUB3OpGIDq4q2vTBTf5cL2lpsRjI9QKqSD0ndjW8FyvcW/Jj46gMe9syyHAsvMa/A==} engines: {node: '>=10.13.0'} @@ -5411,13 +4720,12 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} - env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + es-abstract@1.24.1: resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} @@ -5430,12 +4738,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -5444,10 +4746,6 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} @@ -5462,13 +4760,13 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.27.4: + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.4: - resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} hasBin: true @@ -5487,52 +4785,24 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - events-universal@1.0.1: resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - eventsource-parser@3.0.6: resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} engines: {node: '>=18.0.0'} @@ -5541,10 +4811,6 @@ packages: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - execa@9.6.1: resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} engines: {node: ^18.19.0 || >=20.5.0} @@ -5569,11 +4835,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - fast-check@3.23.2: resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} engines: {node: '>=8.0.0'} @@ -5587,25 +4848,12 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-sha256@1.3.0: resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==} fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -5615,13 +4863,6 @@ packages: picomatch: optional: true - fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - fetchdts@0.1.7: resolution: {integrity: sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA==} @@ -5639,20 +4880,9 @@ packages: resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} engines: {node: '>= 12'} - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - filter-obj@6.1.0: - resolution: {integrity: sha512-xdMtCAODmPloU9qtmPcdBV9Kd27NtMse+4ayThxqIHUES5Z2S6bGpap5PpdmNM56ub7y3i1eyr+vJJIIgWGKmA==} - engines: {node: '>=18'} - finalhandler@2.1.1: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} @@ -5660,29 +4890,14 @@ packages: find-my-way-ts@0.1.6: resolution: {integrity: sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==} - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} - - fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - forwarded-parse@2.1.2: resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} @@ -5717,10 +4932,6 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - get-amd-module-type@6.0.1: - resolution: {integrity: sha512-MtjsmYiCXcYDDrGqtNbeIYdAl85n+5mSv2r3FbzER/YV3ZILw4HNNIw34HuV5pyl0jzs6GFYU1VHVEefhgcNHQ==} - engines: {node: '>=18'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -5733,25 +4944,10 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} - get-port-please@3.2.0: - resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} - - get-port@7.2.0: - resolution: {integrity: sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==} - engines: {node: '>=16'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - get-stream@9.0.1: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} @@ -5763,13 +4959,6 @@ packages: get-tsconfig@4.13.7: resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - glob-to-regex.js@1.2.0: resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} engines: {node: '>=10.0'} @@ -5788,11 +4977,6 @@ packages: glsl-noise@0.0.0: resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==} - gonzales-pe@4.3.0: - resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} - engines: {node: '>=0.6.0'} - hasBin: true - goober@2.1.18: resolution: {integrity: sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==} peerDependencies: @@ -5817,9 +5001,6 @@ packages: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} - h3@1.15.10: - resolution: {integrity: sha512-YzJeWSkDZxAhvmp8dexjRK5hxziRO7I9m0N53WhvYL5NiWfkUkzssVzY9jvGu0HBoLFW6+duYmNSn6MaZBCCtg==} - h3@2.0.1-rc.20: resolution: {integrity: sha512-28ljodXuUp0fZovdiSRq4G9OgrxCztrJe5VdYzXAB7ueRvI7pIUqLU14Xi3XqdYJ/khXjfpUOOD2EQa6CmBgsg==} engines: {node: '>=20.11.1'} @@ -5864,18 +5045,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} @@ -5885,18 +5057,12 @@ packages: hast-util-sanitize@5.0.2: resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} - hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} hast-util-to-parse5@8.0.1: resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} - hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -5917,10 +5083,6 @@ packages: hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} - htm@3.1.1: resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==} @@ -5937,22 +5099,10 @@ packages: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} - http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - human-signals@8.0.1: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} @@ -5981,20 +5131,9 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-meta@0.2.2: - resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} - - image-size@2.0.2: - resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} - engines: {node: '>=16.x'} - hasBin: true - immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - import-in-the-middle@1.15.0: - resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} - import-in-the-middle@2.0.6: resolution: {integrity: sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==} @@ -6002,18 +5141,6 @@ packages: resolution: {integrity: sha512-OnGy+eYT7wVejH2XWgLRgbmzujhhVIATQH0ztIeRilwHBjTeG3pD+XnH3PKX0r9gJ0BuJmJ68q/oh9qgXnNDQg==} engines: {node: '>=18'} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - - index-to-position@1.2.0: - resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} - engines: {node: '>=18'} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6050,13 +5177,6 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipx@3.1.1: - resolution: {integrity: sha512-7Xnt54Dco7uYkfdAw0r2vCly3z0rSaVhEXMzPvl3FndsTVm5p26j+PO+gyinkYmcsEUvX2Rh7OGK7KzYWRu6BA==} - hasBin: true - - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -6106,19 +5226,10 @@ packages: engines: {node: '>=8'} hasBin: true - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} @@ -6131,18 +5242,9 @@ packages: resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -6151,26 +5253,10 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-network-error@1.3.1: - resolution: {integrity: sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==} - engines: {node: '>=16'} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -6193,14 +5279,6 @@ packages: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-stream@4.0.1: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} @@ -6221,13 +5299,6 @@ packages: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-url-superb@4.0.0: - resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==} - engines: {node: '>=10'} - - is-url@1.2.4: - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -6244,14 +5315,6 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - is-wsl@3.1.1: - resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} - engines: {node: '>=16'} - - is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -6285,24 +5348,15 @@ packages: jose@6.2.2: resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} - jpeg-js@0.4.4: - resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} - js-cookie@3.0.8: resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==} - js-image-generator@1.0.4: - resolution: {integrity: sha512-ckb7kyVojGAnArouVR+5lBIuwU1fcrn7E/YYSd0FK7oIngAkMmRvHASLro9Zt5SQdWToaI66NybG+OGxPw/HlQ==} - js-tokens@10.0.0: resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@3.14.2: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true @@ -6333,31 +5387,9 @@ packages: engines: {node: '>=6'} hasBin: true - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - - jsonwebtoken@9.0.3: - resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} - engines: {node: '>=12', npm: '>=6'} - jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - junk@4.0.1: - resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} - engines: {node: '>=12.20'} - - jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} - - jws@4.0.1: - resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} - - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} - katex@0.16.44: resolution: {integrity: sha512-EkxoDTk8ufHqHlf9QxGwcxeLkWRR3iOuYfRpfORgYfqc8s13bgb+YtRY59NK5ZpRaCwq1kqA6a5lpX8C/eLphQ==} hasBin: true @@ -6369,13 +5401,9 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - - lambda-local@2.2.0: - resolution: {integrity: sha512-bPcgpIXbHnVGfI/omZIlgucDqlf4LrsunwoKue5JdZeGybt8L6KyJz2Zu19ffuZwIwLj2NAI2ZyaqNT6/cetcg==} - engines: {node: '>=8'} - hasBin: true + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} langium@4.2.1: resolution: {integrity: sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ==} @@ -6390,14 +5418,6 @@ packages: layout-base@2.0.1: resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} @@ -6475,10 +5495,6 @@ packages: resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} - listhen@1.9.0: - resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} - hasBin: true - lit-element@4.2.2: resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} @@ -6496,41 +5512,12 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash-es@4.17.23: resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash@4.17.23: resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} - logform@2.7.0: - resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} - engines: {node: '>= 12.0.0'} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -6538,9 +5525,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.7: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} @@ -6553,10 +5537,6 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - luxon@3.7.2: - resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} - engines: {node: '>=12'} - maath@0.10.8: resolution: {integrity: sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==} peerDependencies: @@ -6566,10 +5546,6 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - map-obj@5.0.2: - resolution: {integrity: sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -6644,12 +5620,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.27.1: - resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - media-typer@1.1.0: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} @@ -6667,17 +5637,6 @@ packages: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} - merge-options@3.0.4: - resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} - engines: {node: '>=10'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - mermaid@11.14.0: resolution: {integrity: sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==} @@ -6773,10 +5732,6 @@ packages: micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - mime-db@1.54.0: resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} @@ -6785,9 +5740,10 @@ packages: resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} engines: {node: '>=18'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + miniflare@4.20260617.1: + resolution: {integrity: sha512-Go3/gzStm99QHptsSgU+q1S+xDfLoRgwjJNY80kaTVi0ENhTyqKq+sc4xZiWBSbM7uUcJwmzm8+QFKtcYLJ9nw==} + engines: {node: '>=22.0.0'} + hasBin: true minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} @@ -6807,10 +5763,6 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} - mkdirp@0.3.0: resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) @@ -6822,11 +5774,6 @@ packages: mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} - module-definition@6.0.1: - resolution: {integrity: sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==} - engines: {node: '>=18'} - hasBin: true - module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} @@ -6843,11 +5790,6 @@ packages: multipasta@0.2.7: resolution: {integrity: sha512-KPA58d68KgGil15oDqXjkUBEBYc00XvbPj5/X+dyzeo/lWm9Nc25pQRlf1D+gv4OpK7NM0J1odrbu9JNNGvynA==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - nanoid@3.3.12: resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -6857,24 +5799,6 @@ packages: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} - netlify-redirector@0.5.0: - resolution: {integrity: sha512-4zdzIP+6muqPCuE8avnrgDJ6KW/2+UpHTRcTbMXCIRxiRmyrX+IZ4WSJGZdHPWF3WmQpXpy603XxecZ9iygN7w==} - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} - engines: {node: '>= 0.4'} - - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -6884,60 +5808,20 @@ packages: encoding: optional: true - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - node-forge@1.4.0: - resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} - engines: {node: '>= 6.13.0'} - node-gyp-build-optional-packages@5.2.2: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - node-mock-http@1.0.4: - resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} - node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} - node-source-walk@7.0.1: - resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==} - engines: {node: '>=18'} - - node-stream-zip@1.15.0: - resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} - engines: {node: '>=0.12.0'} - nopt@1.0.10: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} hasBin: true - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} - engines: {node: ^16.14.0 || >=18.0.0} - - normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - normalize-wheel@1.0.1: resolution: {integrity: sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==} @@ -6946,10 +5830,6 @@ packages: engines: {node: '>= 4'} hasBin: true - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm-run-path@6.0.0: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} @@ -6973,16 +5853,6 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - ofetch@1.5.1: - resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - - omit.js@2.0.2: - resolution: {integrity: sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==} - on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -6990,19 +5860,6 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - oniguruma-parser@0.12.1: - resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} - - oniguruma-to-es@4.3.5: - resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==} - open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -7046,18 +5903,10 @@ packages: oxlint-tsgolint: optional: true - p-event@6.0.1: - resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} - engines: {node: '>=16.17'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@6.2.0: resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} engines: {node: '>=18'} @@ -7066,26 +5915,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} - engines: {node: '>=18'} - - p-retry@6.2.1: - resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} - engines: {node: '>=16.17'} - - p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} - engines: {node: '>=14.16'} - - p-wait-for@5.0.2: - resolution: {integrity: sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==} - engines: {node: '>=12'} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -7102,18 +5931,10 @@ packages: resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} engines: {node: '>=14'} - parse-imports@2.2.1: - resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} - engines: {node: '>= 18'} - parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} - parse-json@8.3.0: - resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} - engines: {node: '>=18'} - parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -7141,10 +5962,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -7160,6 +5977,9 @@ packages: resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} engines: {node: 18 || 20 || >=22} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-to-regexp@8.4.1: resolution: {integrity: sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==} @@ -7167,22 +5987,9 @@ packages: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} - path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - - pg-gateway@0.3.0-beta.4: - resolution: {integrity: sha512-CTjsM7Z+0Nx2/dyZ6r8zRsc3f9FScoD5UAOlfUx1Fdv/JOIWvRbF7gou6l6vP+uypXQVoYPgw8xZDXgMGvBa4Q==} - pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} @@ -7197,17 +6004,10 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} - engines: {node: '>=8.6'} - picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - picoquery@2.5.0: - resolution: {integrity: sha512-j1kgOFxtaCyoFCkpoYG2Oj3OdGakadO7HZ7o5CqyRazlmBekKhbDoUnNnXASE07xSY4nDImWZkrZv7toSxMi/g==} - pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -7245,20 +6045,10 @@ packages: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} - postcss-values-parser@6.0.2: - resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==} - engines: {node: '>=10'} - peerDependencies: - postcss: ^8.2.9 - postcss@8.5.15: resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} - engines: {node: ^10 || ^12 || >=14} - postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -7285,11 +6075,6 @@ packages: preact@10.29.0: resolution: {integrity: sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==} - precinct@12.2.0: - resolution: {integrity: sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w==} - engines: {node: '>=18'} - hasBin: true - prettier@3.8.1: resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} engines: {node: '>=14'} @@ -7302,10 +6087,6 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -7326,9 +6107,6 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} @@ -7336,15 +6114,6 @@ packages: resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quote-unquote@1.0.0: - resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} - - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -7429,32 +6198,13 @@ packages: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} - read-package-up@11.0.0: - resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} - engines: {node: '>=18'} - read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} - read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -7467,15 +6217,6 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regex-recursion@6.0.2: - resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} - - regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - - regex@6.1.0: - resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -7484,31 +6225,15 @@ packages: resolution: {integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==} engines: {node: '>=8'} - rehype-autolink-headings@7.1.0: - resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} - - rehype-callouts@2.1.2: - resolution: {integrity: sha512-ZZWZ6EknUHiSzr4pQ88C7db3su4DElfJRmphZJbXpDdwW3urTwlYZpHckoC9pjEvBmUEEiJAM0uuc2uxyLdTfg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - rehype-harden@1.1.8: resolution: {integrity: sha512-Qn7vR1xrf6fZCrkm9TDWi/AB4ylrHy+jqsNm1EHOAmbARYA6gsnVJBq/sdBh6kmT4NEZxH5vgIjrscefJAOXcw==} - rehype-parse@9.0.1: - resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - rehype-react@8.0.0: - resolution: {integrity: sha512-vzo0YxYbB2HE+36+9HWXVdxNoNDubx63r5LBzpxBGVWM8s9mdnMdbmuJBAX6TTyuGdZjZix6qU3GcSuKCIWivw==} - rehype-sanitize@6.0.0: resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==} - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} @@ -7530,9 +6255,6 @@ packages: remove-markdown@0.6.3: resolution: {integrity: sha512-Qvp2p0Q1irE7AaJO7QemJe04HdObHylJrG+q4hszvPlYp7q4EvfINpEIaIEFdB+3XTDp1h6fiyT60ae00gmRow==} - remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -7541,17 +6263,10 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - require-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} - engines: {node: '>=8.6.0'} - require-in-the-middle@8.0.1: resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} - require-package-name@2.0.1: - resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} - resend@6.10.0: resolution: {integrity: sha512-i7CwZpYj4Oho1RxsTpLcCUkO08+HiL4NXrm6jLJ2WzJ89UGI8eROSieLONJA3hnUrf1OYnCyfq5F6POnHUMv1Q==} engines: {node: '>=20'} @@ -7561,10 +6276,6 @@ packages: '@react-email/render': optional: true - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -7573,24 +6284,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} - engines: {node: '>= 0.4'} - hasBin: true - - resolve@2.0.0-next.6: - resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} - engines: {node: '>= 0.4'} - hasBin: true - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -7624,9 +6317,6 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} @@ -7637,9 +6327,6 @@ packages: safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -7648,17 +6335,9 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.6.0: - resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} - engines: {node: '>=11.0.0'} - scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -7738,10 +6417,6 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - shiki@4.0.2: - resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==} - engines: {node: '>=20'} - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -7762,9 +6437,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - slashes@3.0.12: - resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} - solid-js@1.9.12: resolution: {integrity: sha512-QzKaSJq2/iDrWR1As6MHZQ8fQkdOBf8GReYb7L5iKwMGceg7HxDcaOHk0at66tNgn9U2U7dXo8ZZpLIAmGMzgw==} @@ -7819,9 +6491,6 @@ packages: engines: {node: '>=20.16.0'} hasBin: true - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - standardwebhooks@1.0.0: resolution: {integrity: sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg==} @@ -7838,9 +6507,6 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -7877,9 +6543,6 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -7895,17 +6558,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strip-final-newline@4.0.0: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} - strip-literal@3.1.0: - resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -7915,6 +6571,10 @@ packages: stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -7932,18 +6592,9 @@ packages: peerDependencies: react: '>=17.0' - svgo@4.0.1: - resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} - engines: {node: '>=16'} - hasBin: true - svix@1.88.0: resolution: {integrity: sha512-vm/JrrUd3bVyBE+3L33TIyVSs8gS5fYx7lrISvKlDJXTYX1ACH4REX8P1tHxsSKoZi/rvifM1t0XRc5Vc45THw==} - system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - tabbable@6.4.0: resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} @@ -7966,10 +6617,6 @@ packages: tar-stream@3.1.8: resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} - tar@7.5.13: - resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} - engines: {node: '>=18'} - teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} @@ -7980,9 +6627,6 @@ packages: text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - thingies@2.6.0: resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} @@ -8025,27 +6669,10 @@ packages: resolution: {integrity: sha512-kCwffuaH8ntKtygnWe1b4BJKWiCUH30n5KfoTr6IchcXOwR7chAOFJxFrH3vjANafUYrIA4a7SDL+nn7SiR4Sw==} hasBin: true - tmp-promise@3.0.3: - resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} - - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} - engines: {node: '>=14.14'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - - tomlify-j0.4@3.0.0: - resolution: {integrity: sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==} - tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -8058,10 +6685,6 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} - troika-three-text@0.52.4: resolution: {integrity: sha512-V50EwcYGruV5rUZ9F4aNsrytGdKcXKALjEtQXIOBfhVoZU9VAqZNIoGQ3TMiooVqFAbR1w15T+f+8gkzoFzawg==} peerDependencies: @@ -8081,12 +6704,6 @@ packages: ts-algebra@2.0.0: resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} - ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -8102,9 +6719,6 @@ packages: tunnel-rat@0.1.2: resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} - turbo-stream@3.2.0: - resolution: {integrity: sha512-EK+bZ9UVrVh7JLslVFOV0GEMsociOqVOvEMTAd4ixMyffN5YNIEdLZWXUx5PJqDbTxSIBWw04HS9gCY4frYQDQ==} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -8129,11 +6743,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@6.0.2: resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} engines: {node: '>=14.17'} @@ -8142,17 +6751,10 @@ packages: ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - ulid@3.0.2: - resolution: {integrity: sha512-yu26mwteFYzBAot7KVMqFGCVpsF6g8wXfJzQUHvu1no3+rRRSFcSV2nKeYvNPLD2J4b08jYBDhHUjeH0ygIl9w==} - hasBin: true - unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} @@ -8160,13 +6762,16 @@ packages: resolution: {integrity: sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==} engines: {node: '>=20.18.1'} - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} + engines: {node: '>=20.18.1'} - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} - engines: {node: '>=18'} + unenv@2.0.0-rc.24: + resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} + + unicorn-magic@0.4.0: + resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} + engines: {node: '>=20'} unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -8189,10 +6794,6 @@ packages: universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} - unixify@1.0.0: - resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} - engines: {node: '>=0.10.0'} - unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -8201,75 +6802,9 @@ packages: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} - unstorage@1.17.5: - resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6 || ^7 || ^8 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1 || ^2 || ^3 - aws4fetch: ^1.0.20 - db0: '>=0.2.1' - idb-keyval: ^6.2.1 - ioredis: ^5.4.2 - uploadthing: ^7.4.4 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@deno/kv': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/blob': - optional: true - '@vercel/functions': - optional: true - '@vercel/kv': - optional: true - aws4fetch: - optional: true - db0: - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - uploadthing: - optional: true - - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} - hasBin: true + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -8294,15 +6829,6 @@ packages: tailwindcss: optional: true - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - - urlpattern-polyfill@10.1.0: - resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} - - urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -8352,10 +6878,6 @@ packages: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} - hasBin: true - valibot@1.3.1: resolution: {integrity: sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==} peerDependencies: @@ -8367,10 +6889,6 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -8462,10 +6980,6 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - webgl-constants@1.1.1: resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} @@ -8511,18 +7025,25 @@ packages: engines: {node: '>= 8'} hasBin: true - winston-transport@4.9.0: - resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} - engines: {node: '>= 12.0.0'} - - winston@3.19.0: - resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} - engines: {node: '>= 12.0.0'} + workerd@1.20260617.1: + resolution: {integrity: sha512-Re5pl6pdowt3ZmWUzGlOuB7jbRIIPetgKalmo4cYmucQnVhpo7/3e4MfpekbhLi2EhZZz5EY9NWRu8zFzuEZew==} + engines: {node: '>=16'} + hasBin: true worktop@0.7.3: resolution: {integrity: sha512-WBHP1hk8pLP7ahAw13fugDWcO0SUAOiCD6DHT/bfLWoCIA/PL9u7GKdudT2nGZ8EGR1APbGCAI6ZzKG1+X+PnQ==} engines: {node: '>=12'} + wrangler@4.103.0: + resolution: {integrity: sha512-3Lv1P5t2xcSEkSTKtG+Lz+3JFryuU7YPLkaCUj7gNe+CJsjZJLtUwqsh1x595QBxkIbCE0GAvDx2DCJUU4+oqw==} + engines: {node: '>=22.0.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20260617.1 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8530,10 +7051,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@8.20.0: resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} engines: {node: '>=10.0.0'} @@ -8546,15 +7063,22 @@ packages: utf-8-validate: optional: true + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + 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 + xmlbuilder2@4.0.3: resolution: {integrity: sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==} engines: {node: '>=20.0'} - xss@1.0.15: - resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} - engines: {node: '>= 0.10.0'} - hasBin: true - xstate@5.30.0: resolution: {integrity: sha512-mIzIuMjtYVkqXq9dUzYQoag7b/dF1CBS/yhliuPLfR0FwKPC18HiUivb/crcqY2gknhR8gJEhnppLg6ubQ0gGw==} @@ -8569,34 +7093,24 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - yaml@2.8.3: resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -8609,9 +7123,11 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} - zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + + youch@4.1.0-beta.10: + resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} zod-to-json-schema@3.24.6: resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} @@ -8895,7 +7411,41 @@ snapshots: '@chevrotain/utils@11.1.2': {} - '@colors/colors@1.6.0': {} + '@cloudflare/kv-asset-handler@0.5.0': {} + + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260617.1)': + dependencies: + unenv: 2.0.0-rc.24 + optionalDependencies: + workerd: 1.20260617.1 + + '@cloudflare/vite-plugin@1.42.1(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))(workerd@1.20260617.1)(wrangler@4.103.0)': + dependencies: + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260617.1) + miniflare: 4.20260617.1 + unenv: 2.0.0-rc.24 + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + wrangler: 4.103.0 + ws: 8.21.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - workerd + + '@cloudflare/workerd-darwin-64@1.20260617.1': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20260617.1': + optional: true + + '@cloudflare/workerd-linux-64@1.20260617.1': + optional: true + + '@cloudflare/workerd-linux-arm64@1.20260617.1': + optional: true + + '@cloudflare/workerd-windows-64@1.20260617.1': + optional: true '@content-collections/core@0.14.3(typescript@6.0.2)': dependencies: @@ -8916,22 +7466,15 @@ snapshots: dependencies: '@content-collections/core': 0.14.3(typescript@6.0.2) - '@content-collections/vite@0.2.9(@content-collections/core@0.14.3(typescript@6.0.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@content-collections/vite@0.2.9(@content-collections/core@0.14.3(typescript@6.0.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@content-collections/core': 0.14.3(typescript@6.0.2) '@content-collections/integrations': 0.5.0(@content-collections/core@0.14.3(typescript@6.0.2)) - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) - '@dabh/diagnostics@2.0.8': + '@cspotcode/source-map-support@0.8.1': dependencies: - '@so-ric/colorspace': 1.1.6 - enabled: 2.0.0 - kuler: 2.0.0 - - '@dependents/detective-less@5.0.1': - dependencies: - gonzales-pe: 4.3.0 - node-source-walk: 7.0.1 + '@jridgewell/trace-mapping': 0.3.9 '@dimforge/rapier3d-compat@0.12.0': {} @@ -8945,8 +7488,6 @@ snapshots: msgpackr: 1.11.9 multipasta: 0.2.7 - '@electric-sql/pglite@0.3.16': {} - '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 @@ -8958,21 +7499,11 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.1': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@envelop/instrumentation@1.0.0': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - '@esbuild-kit/core-utils@3.3.2': dependencies: esbuild: 0.18.20 @@ -8986,10 +7517,10 @@ snapshots: '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.27.4': optional: true - '@esbuild/aix-ppc64@0.27.4': + '@esbuild/aix-ppc64@0.28.1': optional: true '@esbuild/android-arm64@0.18.20': @@ -8998,10 +7529,10 @@ snapshots: '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.27.4': optional: true - '@esbuild/android-arm64@0.27.4': + '@esbuild/android-arm64@0.28.1': optional: true '@esbuild/android-arm@0.18.20': @@ -9010,10 +7541,10 @@ snapshots: '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.27.4': optional: true - '@esbuild/android-arm@0.27.4': + '@esbuild/android-arm@0.28.1': optional: true '@esbuild/android-x64@0.18.20': @@ -9022,10 +7553,10 @@ snapshots: '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.27.4': optional: true - '@esbuild/android-x64@0.27.4': + '@esbuild/android-x64@0.28.1': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -9034,10 +7565,10 @@ snapshots: '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.27.4': optional: true - '@esbuild/darwin-arm64@0.27.4': + '@esbuild/darwin-arm64@0.28.1': optional: true '@esbuild/darwin-x64@0.18.20': @@ -9046,10 +7577,10 @@ snapshots: '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.27.4': optional: true - '@esbuild/darwin-x64@0.27.4': + '@esbuild/darwin-x64@0.28.1': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -9058,10 +7589,10 @@ snapshots: '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.27.4': optional: true - '@esbuild/freebsd-arm64@0.27.4': + '@esbuild/freebsd-arm64@0.28.1': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -9070,10 +7601,10 @@ snapshots: '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.27.4': optional: true - '@esbuild/freebsd-x64@0.27.4': + '@esbuild/freebsd-x64@0.28.1': optional: true '@esbuild/linux-arm64@0.18.20': @@ -9082,10 +7613,10 @@ snapshots: '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.27.4': optional: true - '@esbuild/linux-arm64@0.27.4': + '@esbuild/linux-arm64@0.28.1': optional: true '@esbuild/linux-arm@0.18.20': @@ -9094,10 +7625,10 @@ snapshots: '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.27.4': optional: true - '@esbuild/linux-arm@0.27.4': + '@esbuild/linux-arm@0.28.1': optional: true '@esbuild/linux-ia32@0.18.20': @@ -9106,10 +7637,10 @@ snapshots: '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.27.4': optional: true - '@esbuild/linux-ia32@0.27.4': + '@esbuild/linux-ia32@0.28.1': optional: true '@esbuild/linux-loong64@0.18.20': @@ -9118,10 +7649,10 @@ snapshots: '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.27.4': optional: true - '@esbuild/linux-loong64@0.27.4': + '@esbuild/linux-loong64@0.28.1': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -9130,10 +7661,10 @@ snapshots: '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.27.4': optional: true - '@esbuild/linux-mips64el@0.27.4': + '@esbuild/linux-mips64el@0.28.1': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -9142,10 +7673,10 @@ snapshots: '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.27.4': optional: true - '@esbuild/linux-ppc64@0.27.4': + '@esbuild/linux-ppc64@0.28.1': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -9154,10 +7685,10 @@ snapshots: '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.27.4': optional: true - '@esbuild/linux-riscv64@0.27.4': + '@esbuild/linux-riscv64@0.28.1': optional: true '@esbuild/linux-s390x@0.18.20': @@ -9166,10 +7697,10 @@ snapshots: '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.27.4': optional: true - '@esbuild/linux-s390x@0.27.4': + '@esbuild/linux-s390x@0.28.1': optional: true '@esbuild/linux-x64@0.18.20': @@ -9178,19 +7709,19 @@ snapshots: '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.27.4': optional: true - '@esbuild/linux-x64@0.27.4': + '@esbuild/linux-x64@0.28.1': optional: true '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.27.4': optional: true - '@esbuild/netbsd-arm64@0.27.4': + '@esbuild/netbsd-arm64@0.28.1': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -9199,19 +7730,19 @@ snapshots: '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.27.4': optional: true - '@esbuild/netbsd-x64@0.27.4': + '@esbuild/netbsd-x64@0.28.1': optional: true '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.27.4': optional: true - '@esbuild/openbsd-arm64@0.27.4': + '@esbuild/openbsd-arm64@0.28.1': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -9220,19 +7751,19 @@ snapshots: '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.27.4': optional: true - '@esbuild/openbsd-x64@0.27.4': + '@esbuild/openbsd-x64@0.28.1': optional: true '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/openharmony-arm64@0.27.4': optional: true - '@esbuild/openharmony-arm64@0.27.4': + '@esbuild/openharmony-arm64@0.28.1': optional: true '@esbuild/sunos-x64@0.18.20': @@ -9241,10 +7772,10 @@ snapshots: '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.27.4': optional: true - '@esbuild/sunos-x64@0.27.4': + '@esbuild/sunos-x64@0.28.1': optional: true '@esbuild/win32-arm64@0.18.20': @@ -9253,10 +7784,10 @@ snapshots: '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.27.4': optional: true - '@esbuild/win32-arm64@0.27.4': + '@esbuild/win32-arm64@0.28.1': optional: true '@esbuild/win32-ia32@0.18.20': @@ -9265,10 +7796,10 @@ snapshots: '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.27.4': optional: true - '@esbuild/win32-ia32@0.27.4': + '@esbuild/win32-ia32@0.28.1': optional: true '@esbuild/win32-x64@0.18.20': @@ -9277,15 +7808,11 @@ snapshots: '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.3': - optional: true - '@esbuild/win32-x64@0.27.4': optional: true - '@fastify/accept-negotiator@2.0.1': {} - - '@fastify/busboy@3.2.0': {} + '@esbuild/win32-x64@0.28.1': + optional: true '@fastify/otel@0.18.0(@opentelemetry/api@1.9.1)': dependencies: @@ -9353,10 +7880,6 @@ snapshots: dependencies: hono: 4.12.9 - '@humanwhocodes/momoa@2.0.4': {} - - '@iarna/toml@2.2.5': {} - '@iconify/types@2.0.0': {} '@iconify/utils@3.1.0': @@ -9449,7 +7972,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.9.1 + '@emnapi/runtime': 1.10.0 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -9461,12 +7984,6 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@import-maps/resolve@2.0.0': {} - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.3 - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -9486,6 +8003,11 @@ snapshots: '@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 + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -9629,19 +8151,6 @@ snapshots: dependencies: '@lit-labs/ssr-dom-shim': 1.5.1 - '@mapbox/node-pre-gyp@2.0.3': - dependencies: - consola: 3.4.2 - detect-libc: 2.1.2 - https-proxy-agent: 7.0.6 - node-fetch: 2.7.0 - nopt: 8.1.0 - semver: 7.7.4 - tar: 7.5.13 - transitivePeerDependencies: - - encoding - - supports-color - '@mediapipe/tasks-vision@0.10.17': {} '@mermaid-js/parser@1.1.0': @@ -9693,412 +8202,19 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@netlify/ai@0.4.1': - dependencies: - '@netlify/api': 14.0.18 - - '@netlify/api@14.0.18': - dependencies: - '@netlify/open-api': 2.52.0 - node-fetch: 3.3.2 - p-wait-for: 5.0.2 - picoquery: 2.5.0 - - '@netlify/binary-info@1.0.0': {} - - '@netlify/blobs@10.7.4': - dependencies: - '@netlify/dev-utils': 4.4.3 - '@netlify/otel': 5.1.5 - '@netlify/runtime-utils': 2.3.0 - transitivePeerDependencies: - - supports-color - - '@netlify/cache@3.4.4': - dependencies: - '@netlify/runtime-utils': 2.3.0 - - '@netlify/config@24.4.4': - dependencies: - '@iarna/toml': 2.2.5 - '@netlify/api': 14.0.18 - '@netlify/headers-parser': 9.0.3 - '@netlify/redirect-parser': 15.0.4 - chalk: 5.6.2 - cron-parser: 4.9.0 - deepmerge: 4.3.1 - dot-prop: 9.0.0 - execa: 8.0.1 - fast-safe-stringify: 2.1.1 - figures: 6.1.0 - filter-obj: 6.1.0 - find-up: 7.0.0 - indent-string: 5.0.0 - is-plain-obj: 4.1.0 - map-obj: 5.0.2 - omit.js: 2.0.2 - p-locate: 6.0.0 - path-type: 6.0.0 - read-package-up: 11.0.0 - tomlify-j0.4: 3.0.0 - validate-npm-package-name: 5.0.1 - yaml: 2.8.3 - yargs: 17.7.2 - zod: 4.4.3 - - '@netlify/database-dev@0.8.0': - dependencies: - '@electric-sql/pglite': 0.3.16 - pg-gateway: 0.3.0-beta.4 - - '@netlify/dev-utils@4.4.3': - dependencies: - '@whatwg-node/server': 0.10.18 - ansis: 4.2.0 - chokidar: 4.0.3 - decache: 4.6.2 - dettle: 1.0.5 - dot-prop: 9.0.0 - empathic: 2.0.0 - env-paths: 3.0.0 - image-size: 2.0.2 - js-image-generator: 1.0.4 - parse-gitignore: 2.0.0 - semver: 7.7.4 - tmp-promise: 3.0.3 - uuid: 13.0.0 - write-file-atomic: 5.0.1 - - '@netlify/dev@4.17.0(rollup@4.53.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))': - dependencies: - '@netlify/ai': 0.4.1 - '@netlify/blobs': 10.7.4 - '@netlify/config': 24.4.4 - '@netlify/database-dev': 0.8.0 - '@netlify/dev-utils': 4.4.3 - '@netlify/edge-functions-dev': 1.0.16 - '@netlify/functions-dev': 1.2.5(rollup@4.53.3) - '@netlify/headers': 2.1.8 - '@netlify/images': 1.3.7(@netlify/blobs@10.7.4)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)) - '@netlify/redirects': 3.1.10 - '@netlify/runtime': 4.1.20 - '@netlify/static': 3.1.7 - ulid: 3.0.2 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bare-abort-controller - - bare-buffer - - db0 - - encoding - - idb-keyval - - ioredis - - react-native-b4a - - rollup - - supports-color - - uploadthing - - '@netlify/edge-bundler@14.9.19': - dependencies: - '@import-maps/resolve': 2.0.0 - '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - acorn: 8.16.0 - ajv: 8.18.0 - ajv-errors: 3.0.0(ajv@8.18.0) - better-ajv-errors: 1.2.0(ajv@8.18.0) - common-path-prefix: 3.0.0 - env-paths: 3.0.0 - esbuild: 0.27.3 - execa: 8.0.1 - find-up: 7.0.0 - get-port: 7.2.0 - node-stream-zip: 1.15.0 - p-retry: 6.2.1 - p-wait-for: 5.0.2 - parse-imports: 2.2.1 - path-key: 4.0.0 - semver: 7.7.4 - tar: 7.5.13 - tmp-promise: 3.0.3 - urlpattern-polyfill: 8.0.2 - uuid: 11.1.0 - - '@netlify/edge-functions-bootstrap@2.16.0': {} - - '@netlify/edge-functions-dev@1.0.16': - dependencies: - '@netlify/dev-utils': 4.4.3 - '@netlify/edge-bundler': 14.9.19 - '@netlify/edge-functions': 3.0.6 - '@netlify/edge-functions-bootstrap': 2.16.0 - '@netlify/runtime-utils': 2.3.0 - get-port: 7.2.0 - - '@netlify/edge-functions@3.0.6': - dependencies: - '@netlify/types': 2.6.0 - - '@netlify/functions-dev@1.2.5(rollup@4.53.3)': - dependencies: - '@netlify/blobs': 10.7.4 - '@netlify/dev-utils': 4.4.3 - '@netlify/functions': 5.2.0 - '@netlify/zip-it-and-ship-it': 14.5.3(rollup@4.53.3) - cron-parser: 4.9.0 - decache: 4.6.2 - extract-zip: 2.0.1 - is-stream: 4.0.1 - jwt-decode: 4.0.0 - lambda-local: 2.2.0 - read-package-up: 11.0.0 - semver: 7.7.4 - source-map-support: 0.5.21 - transitivePeerDependencies: - - bare-abort-controller - - bare-buffer - - encoding - - react-native-b4a - - rollup - - supports-color - - '@netlify/functions@5.1.5': - dependencies: - '@netlify/types': 2.6.0 - - '@netlify/functions@5.2.0': - dependencies: - '@netlify/types': 2.6.0 - - '@netlify/headers-parser@9.0.3': - dependencies: - '@iarna/toml': 2.2.5 - escape-string-regexp: 5.0.0 - fast-safe-stringify: 2.1.1 - is-plain-obj: 4.1.0 - map-obj: 5.0.2 - path-exists: 5.0.0 - - '@netlify/headers@2.1.8': - dependencies: - '@netlify/headers-parser': 9.0.3 - - '@netlify/images@1.3.7(@netlify/blobs@10.7.4)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))': - dependencies: - ipx: 3.1.1(@netlify/blobs@10.7.4)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - idb-keyval - - ioredis - - uploadthing - - '@netlify/open-api@2.52.0': {} - - '@netlify/otel@5.1.5': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@netlify/redirect-parser@15.0.4': - dependencies: - '@iarna/toml': 2.2.5 - fast-safe-stringify: 2.1.1 - is-plain-obj: 4.1.0 - path-exists: 5.0.0 - - '@netlify/redirects@3.1.10': - dependencies: - '@netlify/dev-utils': 4.4.3 - '@netlify/redirect-parser': 15.0.4 - cookie: 1.1.1 - jsonwebtoken: 9.0.3 - netlify-redirector: 0.5.0 - - '@netlify/runtime-utils@2.3.0': {} - - '@netlify/runtime@4.1.20': - dependencies: - '@netlify/blobs': 10.7.4 - '@netlify/cache': 3.4.4 - '@netlify/runtime-utils': 2.3.0 - '@netlify/types': 2.6.0 - transitivePeerDependencies: - - supports-color - - '@netlify/serverless-functions-api@2.14.0': - dependencies: - '@netlify/types': 2.6.0 - - '@netlify/static@3.1.7': - dependencies: - mime-types: 3.0.2 - - '@netlify/types@2.6.0': {} - - '@netlify/vite-plugin-tanstack-start@1.3.4(@tanstack/react-start@1.168.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(rollup@4.53.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': - dependencies: - '@netlify/vite-plugin': 2.11.4(rollup@4.53.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) - optionalDependencies: - '@tanstack/react-start': 1.168.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - babel-plugin-macros - - bare-abort-controller - - bare-buffer - - db0 - - encoding - - idb-keyval - - ioredis - - react-native-b4a - - rollup - - supports-color - - uploadthing - - '@netlify/vite-plugin@2.11.4(rollup@4.53.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': - dependencies: - '@netlify/dev': 4.17.0(rollup@4.53.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)) - '@netlify/dev-utils': 4.4.3 - dedent: 1.7.2 - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - babel-plugin-macros - - bare-abort-controller - - bare-buffer - - db0 - - encoding - - idb-keyval - - ioredis - - react-native-b4a - - rollup - - supports-color - - uploadthing - - '@netlify/zip-it-and-ship-it@14.5.3(rollup@4.53.3)': - dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 - '@netlify/binary-info': 1.0.0 - '@netlify/serverless-functions-api': 2.14.0 - '@vercel/nft': 0.29.4(rollup@4.53.3) - archiver: 7.0.1 - common-path-prefix: 3.0.0 - copy-file: 11.1.0 - es-module-lexer: 1.7.0 - esbuild: 0.27.3 - execa: 8.0.1 - fast-glob: 3.3.3 - filter-obj: 6.1.0 - find-up: 7.0.0 - is-path-inside: 4.0.0 - junk: 4.0.1 - locate-path: 7.2.0 - merge-options: 3.0.4 - minimatch: 10.2.5 - normalize-path: 3.0.0 - p-map: 7.0.4 - path-exists: 5.0.0 - precinct: 12.2.0 - require-package-name: 2.0.1 - resolve: 2.0.0-next.6 - semver: 7.7.4 - tmp-promise: 3.0.3 - toml: 3.0.0 - unixify: 1.0.0 - urlpattern-polyfill: 8.0.2 - yargs: 17.7.2 - zod: 3.25.76 - transitivePeerDependencies: - - bare-abort-controller - - bare-buffer - - encoding - - react-native-b4a - - rollup - - supports-color - - '@nodelib/fs.scandir@2.1.5': + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.1 + optional: true - '@nodelib/fs.walk@1.2.8': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.1 + optional: true '@observablehq/plot@0.6.17': dependencies: @@ -10153,10 +8269,6 @@ snapshots: '@oozcitak/util@10.0.0': {} - '@opentelemetry/api-logs@0.203.0': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs@0.207.0': dependencies: '@opentelemetry/api': 1.9.1 @@ -10169,23 +8281,12 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api@1.9.0': {} - '@opentelemetry/api@1.9.1': {} - '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -10382,15 +8483,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.207.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -10418,37 +8510,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common@0.38.2': {} - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -10456,18 +8525,6 @@ snapshots: '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - semver: 7.7.4 - - '@opentelemetry/semantic-conventions@1.28.0': {} - '@opentelemetry/semantic-conventions@1.40.0': {} '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.1)': @@ -10676,70 +8733,17 @@ snapshots: '@oxlint/binding-win32-x64-msvc@1.58.0': optional: true - '@parcel/watcher-android-arm64@2.5.6': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.6': - optional: true - - '@parcel/watcher-darwin-x64@2.5.6': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.6': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.6': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.6': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.6': - optional: true - - '@parcel/watcher-wasm@2.5.6': + '@poppinss/colors@4.1.6': dependencies: - is-glob: 4.0.3 - picomatch: 4.0.4 + kleur: 4.1.5 - '@parcel/watcher-win32-arm64@2.5.6': - optional: true - - '@parcel/watcher-win32-ia32@2.5.6': - optional: true - - '@parcel/watcher-win32-x64@2.5.6': - optional: true - - '@parcel/watcher@2.5.6': + '@poppinss/dumper@0.6.5': dependencies: - detect-libc: 2.1.2 - is-glob: 4.0.3 - node-addon-api: 7.1.1 - picomatch: 4.0.4 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.6 - '@parcel/watcher-darwin-arm64': 2.5.6 - '@parcel/watcher-darwin-x64': 2.5.6 - '@parcel/watcher-freebsd-x64': 2.5.6 - '@parcel/watcher-linux-arm-glibc': 2.5.6 - '@parcel/watcher-linux-arm-musl': 2.5.6 - '@parcel/watcher-linux-arm64-glibc': 2.5.6 - '@parcel/watcher-linux-arm64-musl': 2.5.6 - '@parcel/watcher-linux-x64-glibc': 2.5.6 - '@parcel/watcher-linux-x64-musl': 2.5.6 - '@parcel/watcher-win32-arm64': 2.5.6 - '@parcel/watcher-win32-ia32': 2.5.6 - '@parcel/watcher-win32-x64': 2.5.6 + '@poppinss/colors': 4.1.6 + '@sindresorhus/is': 7.2.0 + supports-color: 10.2.2 + + '@poppinss/exception@1.2.3': {} '@prisma/instrumentation@7.6.0(@opentelemetry/api@1.9.1)': dependencies: @@ -11177,20 +9181,10 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.1': optional: true - '@rolldown/pluginutils@1.0.0-rc.15': {} - '@rolldown/pluginutils@1.0.0-rc.7': {} '@rolldown/pluginutils@1.0.1': {} - '@rollup/pluginutils@5.3.0(rollup@4.53.3)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.4 - optionalDependencies: - rollup: 4.53.3 - '@rollup/rollup-android-arm-eabi@4.53.3': optional: true @@ -11450,52 +9444,7 @@ snapshots: - rollup - supports-color - '@shikijs/core@4.0.2': - dependencies: - '@shikijs/primitive': 4.0.2 - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - - '@shikijs/engine-javascript@4.0.2': - dependencies: - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.5 - - '@shikijs/engine-oniguruma@4.0.2': - dependencies: - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - - '@shikijs/langs@4.0.2': - dependencies: - '@shikijs/types': 4.0.2 - - '@shikijs/primitive@4.0.2': - dependencies: - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - '@shikijs/themes@4.0.2': - dependencies: - '@shikijs/types': 4.0.2 - - '@shikijs/transformers@4.0.2': - dependencies: - '@shikijs/core': 4.0.2 - '@shikijs/types': 4.0.2 - - '@shikijs/types@4.0.2': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - '@shikijs/vscode-textmate@10.0.2': {} - - '@shopify/hydrogen-react@2026.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.183.2)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@shopify/hydrogen-react@2026.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.183.2)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@google/model-viewer': 4.2.0(three@0.183.2) '@xstate/fsm': 2.0.0 @@ -11504,17 +9453,14 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) type-fest: 4.41.0 - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) worktop: 0.7.3 transitivePeerDependencies: - three - '@sindresorhus/merge-streams@4.0.0': {} + '@sindresorhus/is@7.2.0': {} - '@so-ric/colorspace@1.1.6': - dependencies: - color: 5.0.3 - text-hex: 1.0.0 + '@sindresorhus/merge-streams@4.0.0': {} '@solid-primitives/event-listener@2.4.5(solid-js@1.9.12)': dependencies: @@ -11550,16 +9496,14 @@ snapshots: dependencies: solid-js: 1.9.12 + '@speed-highlight/core@1.2.17': {} + '@stablelib/base64@1.0.1': {} '@standard-schema/spec@1.0.0-beta.4': {} '@standard-schema/spec@1.1.0': {} - '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': - dependencies: - acorn: 8.16.0 - '@swc/helpers@0.5.18': dependencies: tslib: 2.8.1 @@ -11630,12 +9574,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.2.2 - '@tailwindcss/vite@4.3.0(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tailwindcss/vite@4.3.0(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.0 '@tailwindcss/oxide': 4.3.0 tailwindcss: 4.3.0 - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) '@takumi-rs/core-darwin-arm64@1.3.0': optional: true @@ -11715,13 +9659,13 @@ snapshots: '@tanstack/ai': 0.20.1(@opentelemetry/api@1.9.1) '@tanstack/devtools-event-client': 0.4.3 - '@tanstack/ai-openai@0.9.5(@tanstack/ai-client@0.11.3(@opentelemetry/api@1.9.1))(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.20.0)(zod@4.3.6)': + '@tanstack/ai-openai@0.9.5(@tanstack/ai-client@0.11.3(@opentelemetry/api@1.9.1))(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.21.0)(zod@4.3.6)': dependencies: '@tanstack/ai': 0.20.1(@opentelemetry/api@1.9.1) '@tanstack/ai-client': 0.11.3(@opentelemetry/api@1.9.1) '@tanstack/ai-utils': 0.2.0 - '@tanstack/openai-base': 0.3.4(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.20.0)(zod@4.3.6) - openai: 6.33.0(ws@8.20.0)(zod@4.3.6) + '@tanstack/openai-base': 0.3.4(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.21.0)(zod@4.3.6) + openai: 6.33.0(ws@8.21.0)(zod@4.3.6) zod: 4.3.6 transitivePeerDependencies: - ws @@ -11736,7 +9680,7 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.1 - '@tanstack/create@0.68.0(tslib@2.8.1)': + '@tanstack/create@0.68.3(tslib@2.8.1)': dependencies: ejs: 3.1.10 execa: 9.6.1 @@ -11771,7 +9715,7 @@ snapshots: transitivePeerDependencies: - csstype - '@tanstack/devtools-vite@0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tanstack/devtools-vite@0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@tanstack/devtools-client': 0.0.6 '@tanstack/devtools-event-bus': 0.4.1 @@ -11780,7 +9724,7 @@ snapshots: magic-string: 0.30.21 oxc-parser: 0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) picomatch: 4.0.4 - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -11803,17 +9747,23 @@ snapshots: - csstype - utf-8-validate + '@tanstack/highlight@0.0.2': {} + '@tanstack/history@1.162.0': {} '@tanstack/hotkeys@0.8.0': dependencies: '@tanstack/store': 0.11.0 - '@tanstack/openai-base@0.3.4(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.20.0)(zod@4.3.6)': + '@tanstack/markdown@0.0.4(react@19.2.3)': + optionalDependencies: + react: 19.2.3 + + '@tanstack/openai-base@0.3.4(@tanstack/ai@0.20.1(@opentelemetry/api@1.9.1))(ws@8.21.0)(zod@4.3.6)': dependencies: '@tanstack/ai': 0.20.1(@opentelemetry/api@1.9.1) '@tanstack/ai-utils': 0.2.0 - openai: 6.33.0(ws@8.20.0)(zod@4.3.6) + openai: 6.33.0(ws@8.21.0)(zod@4.3.6) transitivePeerDependencies: - ws - zod @@ -11904,7 +9854,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@tanstack/react-start-rsc@0.1.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tanstack/react-start-rsc@0.1.10(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@tanstack/react-router': 1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-start-server': 1.167.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -11912,14 +9862,12 @@ snapshots: '@tanstack/router-utils': 1.162.1 '@tanstack/start-client-core': 1.170.2 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-plugin-core': 1.171.3(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + '@tanstack/start-plugin-core': 1.171.3(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/start-server-core': 1.169.2 '@tanstack/start-storage-context': 1.167.7 pathe: 2.0.3 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - optionalDependencies: - '@vitejs/plugin-rsc': 0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - '@rsbuild/core' - crossws @@ -11940,22 +9888,21 @@ snapshots: transitivePeerDependencies: - crossws - '@tanstack/react-start@1.168.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tanstack/react-start@1.168.10(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@tanstack/react-router': 1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-start-client': 1.168.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@tanstack/react-start-rsc': 0.1.10(@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + '@tanstack/react-start-rsc': 0.1.10(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/react-start-server': 1.167.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/router-utils': 1.162.1 '@tanstack/start-client-core': 1.170.2 - '@tanstack/start-plugin-core': 1.171.3(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + '@tanstack/start-plugin-core': 1.171.3(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/start-server-core': 1.169.2 pathe: 2.0.3 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) optionalDependencies: - '@vitejs/plugin-rsc': 0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@rspack/core' - crossws @@ -11984,9 +9931,9 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@tanstack/redact@0.0.17(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tanstack/redact@0.0.17(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': optionalDependencies: - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) '@tanstack/router-core@1.171.5': dependencies: @@ -12016,7 +9963,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.10(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tanstack/router-plugin@1.168.10(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) @@ -12033,7 +9980,7 @@ snapshots: zod: 4.4.3 optionalDependencies: '@tanstack/react-router': 1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color @@ -12065,7 +10012,7 @@ snapshots: '@tanstack/start-fn-stubs@1.162.0': {} - '@tanstack/start-plugin-core@1.171.3(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@tanstack/start-plugin-core@1.171.3(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.29.0 @@ -12073,7 +10020,7 @@ snapshots: '@rolldown/pluginutils': 1.0.1 '@tanstack/router-core': 1.171.5 '@tanstack/router-generator': 1.167.9 - '@tanstack/router-plugin': 1.168.10(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + '@tanstack/router-plugin': 1.168.10(@tanstack/react-router@1.170.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/router-utils': 1.162.1 '@tanstack/start-client-core': 1.170.2 '@tanstack/start-server-core': 1.169.2 @@ -12087,11 +10034,11 @@ snapshots: srvx: 0.11.15 tinyglobby: 0.2.16 ufo: 1.6.3 - vitefu: 1.1.3(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + vitefu: 1.1.3(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) xmlbuilder2: 4.0.3 zod: 4.4.3 optionalDependencies: - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@tanstack/react-router' - crossws @@ -12291,8 +10238,6 @@ snapshots: dependencies: undici-types: 7.18.2 - '@types/normalize-package-data@2.4.4': {} - '@types/offscreencanvas@2019.7.3': {} '@types/pg-pool@2.0.7': @@ -12327,8 +10272,6 @@ snapshots: '@types/remove-markdown@0.3.4': {} - '@types/retry@0.12.2': {} - '@types/stats.js@0.17.4': {} '@types/tar-stream@3.1.4': @@ -12349,8 +10292,6 @@ snapshots: fflate: 0.8.2 meshoptimizer: 1.0.1 - '@types/triple-beam@1.3.5': {} - '@types/trusted-types@2.0.7': {} '@types/unist@2.0.11': {} @@ -12359,56 +10300,16 @@ snapshots: '@types/webxr@0.5.24': {} - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 25.5.0 - optional: true - - '@typescript-eslint/project-service@8.58.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) - '@typescript-eslint/types': 8.58.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/types@8.58.0': {} - - '@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.58.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/visitor-keys': 8.58.0 - debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.7.4 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.58.0': - dependencies: - '@typescript-eslint/types': 8.58.0 - eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.0': {} '@uploadthing/mime-types@0.3.6': {} - '@uploadthing/react@7.3.3(react@19.2.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2))': + '@uploadthing/react@7.3.3(react@19.2.3)(uploadthing@7.7.4(express@5.2.1)(tailwindcss@4.2.2))': dependencies: '@uploadthing/shared': 7.1.10 file-selector: 0.6.0 react: 19.2.3 - uploadthing: 7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2) + uploadthing: 7.7.4(express@5.2.1)(tailwindcss@4.2.2) '@uploadthing/shared@7.1.10': dependencies: @@ -12428,25 +10329,6 @@ snapshots: '@use-gesture/core': 10.3.1 react: 19.2.3 - '@vercel/nft@0.29.4(rollup@4.53.3)': - dependencies: - '@mapbox/node-pre-gyp': 2.0.3 - '@rollup/pluginutils': 5.3.0(rollup@4.53.3) - acorn: 8.16.0 - acorn-import-attributes: 1.9.5(acorn@8.16.0) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 13.0.6 - graceful-fs: 4.2.11 - node-gyp-build: 4.8.4 - picomatch: 4.0.4 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - rollup - - supports-color - '@visx/group@3.12.0(react@19.2.3)': dependencies: '@types/react': 19.2.14 @@ -12464,90 +10346,15 @@ snapshots: prop-types: 15.8.1 react: 19.2.3 - '@vitejs/plugin-react@6.0.1(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': + '@vitejs/plugin-react@6.0.1(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) - - '@vitejs/plugin-rsc@0.5.24(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': - dependencies: - '@rolldown/pluginutils': 1.0.0-rc.15 - es-module-lexer: 2.0.0 - estree-walker: 3.0.3 - magic-string: 0.30.21 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - srvx: 0.11.15 - strip-literal: 3.1.0 - turbo-stream: 3.2.0 - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) - vitefu: 1.1.3(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - - '@vue/compiler-core@3.5.31': - dependencies: - '@babel/parser': 7.29.2 - '@vue/shared': 3.5.31 - entities: 7.0.1 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.31': - dependencies: - '@vue/compiler-core': 3.5.31 - '@vue/shared': 3.5.31 - - '@vue/compiler-sfc@3.5.31': - dependencies: - '@babel/parser': 7.29.2 - '@vue/compiler-core': 3.5.31 - '@vue/compiler-dom': 3.5.31 - '@vue/compiler-ssr': 3.5.31 - '@vue/shared': 3.5.31 - estree-walker: 2.0.2 - magic-string: 0.30.21 - postcss: 8.5.8 - source-map-js: 1.2.1 - - '@vue/compiler-ssr@3.5.31': - dependencies: - '@vue/compiler-dom': 3.5.31 - '@vue/shared': 3.5.31 - - '@vue/shared@3.5.31': {} + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) '@webcontainer/api@1.6.1': {} '@webgpu/types@0.1.69': {} - '@whatwg-node/disposablestack@0.0.6': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@whatwg-node/fetch@0.10.13': - dependencies: - '@whatwg-node/node-fetch': 0.8.5 - urlpattern-polyfill: 10.1.0 - - '@whatwg-node/node-fetch@0.8.5': - dependencies: - '@fastify/busboy': 3.2.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@whatwg-node/promise-helpers@1.3.2': - dependencies: - tslib: 2.8.1 - - '@whatwg-node/server@0.10.18': - dependencies: - '@envelop/instrumentation': 1.0.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.13 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - '@xstate/fsm@2.0.0': {} '@xstate/react@6.1.0(@types/react@19.2.14)(react@19.2.3)(xstate@5.30.0)': @@ -12562,12 +10369,6 @@ snapshots: abbrev@1.1.1: {} - abbrev@3.0.1: {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - accepts@2.0.0: dependencies: mime-types: 3.0.2 @@ -12585,12 +10386,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.4: {} - - ajv-errors@3.0.0(ajv@8.18.0): - dependencies: - ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: ajv: 8.18.0 @@ -12636,35 +10431,6 @@ snapshots: ansis@4.2.0: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.2 - - archiver-utils@5.0.2: - dependencies: - glob: 13.0.6 - graceful-fs: 4.2.11 - is-stream: 2.0.1 - lazystream: 1.0.1 - lodash: 4.17.23 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - archiver@7.0.1: - dependencies: - archiver-utils: 5.0.2 - async: 3.2.6 - buffer-crc32: 1.0.0 - readable-stream: 4.7.0 - readdir-glob: 1.1.3 - tar-stream: 3.1.8 - zip-stream: 6.0.1 - transitivePeerDependencies: - - bare-abort-controller - - bare-buffer - - react-native-b4a - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -12678,13 +10444,6 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 - arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -12695,8 +10454,6 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - ast-module-types@6.0.1: {} - ast-v8-to-istanbul@0.3.12: dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -12705,8 +10462,6 @@ snapshots: async-function@1.0.0: {} - async-sema@3.1.1: {} - async@3.2.6: {} available-typed-arrays@1.0.7: @@ -12766,24 +10521,13 @@ snapshots: baseline-browser-mapping@2.10.13: {} - better-ajv-errors@1.2.0(ajv@8.18.0): - dependencies: - '@babel/code-frame': 7.29.0 - '@humanwhocodes/momoa': 2.0.4 - ajv: 8.18.0 - chalk: 4.1.2 - jsonpointer: 5.0.1 - leven: 3.1.0 - bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 binary-search-bounds@2.0.5: {} - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 + blake3-wasm@2.1.5: {} body-parser@2.2.2: dependencies: @@ -12814,10 +10558,6 @@ snapshots: dependencies: balanced-match: 4.0.4 - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - browserslist@4.28.2: dependencies: baseline-browser-mapping: 2.10.13 @@ -12828,12 +10568,6 @@ snapshots: btoa@1.2.1: {} - buffer-crc32@0.2.13: {} - - buffer-crc32@1.0.0: {} - - buffer-equal-constant-time@1.0.1: {} - buffer-from@1.1.2: {} buffer@6.0.3: @@ -12860,8 +10594,6 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - callsite@1.0.0: {} - camelcase@8.0.0: {} camera-controls@3.1.2(three@0.183.2): @@ -12938,36 +10670,16 @@ snapshots: dependencies: readdirp: 5.0.0 - chownr@3.0.0: {} - - citty@0.1.6: - dependencies: - consola: 3.4.2 - - cjs-module-lexer@1.4.3: {} - cjs-module-lexer@2.2.0: {} classnames@2.5.1: {} - clipboardy@4.0.0: - dependencies: - execa: 8.0.1 - is-wsl: 3.1.1 - is64bit: 2.0.0 - cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - clsx@2.1.1: {} cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): @@ -12990,55 +10702,20 @@ snapshots: dependencies: color-name: 1.1.4 - color-convert@3.1.3: - dependencies: - color-name: 2.1.0 - color-name@1.1.3: {} color-name@1.1.4: {} - color-name@2.1.0: {} - - color-string@2.1.4: - dependencies: - color-name: 2.1.0 - - color@5.0.3: - dependencies: - color-convert: 3.1.3 - color-string: 2.1.4 - comma-separated-tokens@2.0.3: {} - commander@10.0.1: {} - - commander@11.1.0: {} - - commander@12.1.0: {} - - commander@2.20.3: {} - commander@7.2.0: {} commander@8.3.0: {} - common-path-prefix@3.0.0: {} - - compress-commons@6.0.2: - dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - concat-map@0.0.1: {} confbox@0.1.8: {} - consola@3.4.2: {} - content-disposition@1.0.1: {} content-type@1.0.5: {} @@ -13047,8 +10724,6 @@ snapshots: convert-source-map@2.0.0: {} - cookie-es@1.2.2: {} - cookie-es@3.1.1: {} cookie-signature@1.2.2: {} @@ -13057,11 +10732,6 @@ snapshots: cookie@1.1.1: {} - copy-file@11.1.0: - dependencies: - graceful-fs: 4.2.11 - p-event: 6.0.1 - core-util-is@1.0.3: {} cors@2.8.6: @@ -13069,24 +10739,13 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cose-base@1.0.3: - dependencies: - layout-base: 1.0.2 - - cose-base@2.2.0: - dependencies: - layout-base: 2.0.1 - - crc-32@1.2.2: {} - - crc32-stream@6.0.0: + cose-base@1.0.3: dependencies: - crc-32: 1.2.2 - readable-stream: 4.7.0 + layout-base: 1.0.2 - cron-parser@4.9.0: + cose-base@2.2.0: dependencies: - luxon: 3.7.2 + layout-base: 2.0.1 cross-env@7.0.3: dependencies: @@ -13098,10 +10757,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crossws@0.3.5: - dependencies: - uncrypto: 0.1.3 - css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -13110,26 +10765,10 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@3.2.1: - dependencies: - mdn-data: 2.27.1 - source-map-js: 1.2.1 - css-what@6.2.2: {} cssesc@3.0.0: {} - cssfilter@0.0.10: {} - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - csstype@3.2.3: {} cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): @@ -13318,8 +10957,6 @@ snapshots: d3: 7.9.0 lodash-es: 4.17.23 - data-uri-to-buffer@4.0.1: {} - data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 @@ -13344,18 +10981,10 @@ snapshots: dependencies: ms: 2.1.3 - decache@4.6.2: - dependencies: - callsite: 1.0.0 - decode-named-character-reference@1.3.0: dependencies: character-entities: 2.0.2 - dedent@1.7.2: {} - - deepmerge@4.3.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -13368,8 +10997,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.4: {} - delaunator@5.1.0: dependencies: robust-predicates: 3.0.3 @@ -13378,8 +11005,6 @@ snapshots: dequal@2.0.3: {} - destr@2.0.5: {} - detect-gpu@5.0.70: dependencies: webgl-constants: 1.1.1 @@ -13388,64 +11013,6 @@ snapshots: detect-node-es@1.1.0: {} - detective-amd@6.0.1: - dependencies: - ast-module-types: 6.0.1 - escodegen: 2.1.0 - get-amd-module-type: 6.0.1 - node-source-walk: 7.0.1 - - detective-cjs@6.1.0: - dependencies: - ast-module-types: 6.0.1 - node-source-walk: 7.0.1 - - detective-es6@5.0.1: - dependencies: - node-source-walk: 7.0.1 - - detective-postcss@7.0.1(postcss@8.5.8): - dependencies: - is-url: 1.2.4 - postcss: 8.5.8 - postcss-values-parser: 6.0.2(postcss@8.5.8) - - detective-sass@6.0.1: - dependencies: - gonzales-pe: 4.3.0 - node-source-walk: 7.0.1 - - detective-scss@5.0.1: - dependencies: - gonzales-pe: 4.3.0 - node-source-walk: 7.0.1 - - detective-stylus@5.0.1: {} - - detective-typescript@14.0.0(typescript@5.9.3): - dependencies: - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - ast-module-types: 6.0.1 - node-source-walk: 7.0.1 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - detective-vue2@2.2.0(typescript@5.9.3): - dependencies: - '@dependents/detective-less': 5.0.1 - '@vue/compiler-sfc': 3.5.31 - detective-es6: 5.0.1 - detective-sass: 6.0.1 - detective-scss: 5.0.1 - detective-stylus: 5.0.1 - detective-typescript: 14.0.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - dettle@1.0.5: {} - devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -13476,10 +11043,6 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dot-prop@9.0.0: - dependencies: - type-fest: 4.41.0 - dotenv-cli@11.0.0: dependencies: cross-spawn: 7.0.6 @@ -13504,9 +11067,8 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.2(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(postgres@3.4.8): + drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(postgres@3.4.8): optionalDependencies: - '@electric-sql/pglite': 0.3.16 '@opentelemetry/api': 1.9.1 '@types/pg': 8.20.0 postgres: 3.4.8 @@ -13519,10 +11081,6 @@ snapshots: duplexer@0.1.2: {} - ecdsa-sig-formatter@1.0.11: - dependencies: - safe-buffer: 5.2.1 - ee-first@1.1.1: {} effect@3.17.7: @@ -13538,10 +11096,6 @@ snapshots: emoji-regex@8.0.0: {} - empathic@2.0.0: {} - - enabled@2.0.0: {} - encodeurl@2.0.0: {} encoding-sniffer@0.2.1: @@ -13549,10 +11103,6 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - enhanced-resolve@5.21.5: dependencies: graceful-fs: 4.2.11 @@ -13564,12 +11114,12 @@ snapshots: entities@7.0.1: {} - env-paths@3.0.0: {} - error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 + error-stack-parser-es@1.0.5: {} + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 @@ -13631,10 +11181,6 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} - - es-module-lexer@2.0.0: {} - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -13646,10 +11192,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 @@ -13710,35 +11252,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - 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 @@ -13768,6 +11281,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.4 '@esbuild/win32-x64': 0.27.4 + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -13776,60 +11318,28 @@ snapshots: escape-string-regexp@5.0.0: {} - escodegen@2.1.0: - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - - eslint-visitor-keys@5.0.1: {} - esprima@4.0.1: {} - estraverse@5.3.0: {} - estree-util-is-identifier-name@3.0.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.8 - esutils@2.0.3: {} - etag@1.8.1: {} - event-target-shim@5.0.1: {} - events-universal@1.0.1: dependencies: bare-events: 2.8.2 transitivePeerDependencies: - bare-abort-controller - events@3.3.0: {} - eventsource-parser@3.0.6: {} eventsource@3.0.7: dependencies: eventsource-parser: 3.0.6 - execa@8.0.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - execa@9.6.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 @@ -13891,16 +11401,6 @@ snapshots: extend@3.0.2: {} - extract-zip@2.0.1: - dependencies: - debug: 4.4.3 - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - fast-check@3.23.2: dependencies: pure-rand: 6.1.0 @@ -13911,39 +11411,14 @@ snapshots: fast-fifo@1.3.2: {} - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-safe-stringify@2.1.1: {} - fast-sha256@1.3.0: {} fast-uri@3.1.0: {} - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 - fecha@4.2.3: {} - - fetch-blob@3.2.0: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - fetchdts@0.1.7: {} fflate@0.6.10: {} @@ -13958,18 +11433,10 @@ snapshots: dependencies: tslib: 2.8.1 - file-uri-to-path@1.0.0: {} - filelist@1.0.6: dependencies: minimatch: 5.1.9 - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - filter-obj@6.1.0: {} - finalhandler@2.1.1: dependencies: debug: 4.4.3 @@ -13983,29 +11450,15 @@ snapshots: find-my-way-ts@0.1.6: {} - find-up-simple@1.0.1: {} - find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@7.0.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 - - fn.name@1.1.0: {} - for-each@0.3.5: dependencies: is-callable: 1.2.7 - formdata-polyfill@4.0.10: - dependencies: - fetch-blob: 3.2.0 - forwarded-parse@2.1.2: {} forwarded@0.2.0: {} @@ -14032,11 +11485,6 @@ snapshots: gensync@1.0.0-beta.2: {} - get-amd-module-type@6.0.1: - dependencies: - ast-module-types: 6.0.1 - node-source-walk: 7.0.1 - get-caller-file@2.0.5: {} get-intrinsic@1.3.0: @@ -14054,21 +11502,11 @@ snapshots: get-nonce@1.0.1: {} - get-port-please@3.2.0: {} - - get-port@7.2.0: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stream@5.2.0: - dependencies: - pump: 3.0.4 - - get-stream@8.0.1: {} - get-stream@9.0.1: dependencies: '@sec-ant/readable-stream': 0.4.1 @@ -14084,12 +11522,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - github-slugger@2.0.0: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - glob-to-regex.js@1.2.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -14107,10 +11539,6 @@ snapshots: glsl-noise@0.0.0: {} - gonzales-pe@4.3.0: - dependencies: - minimist: 1.2.8 - goober@2.1.18(csstype@3.2.3): dependencies: csstype: 3.2.3 @@ -14132,18 +11560,6 @@ snapshots: dependencies: duplexer: 0.1.2 - h3@1.15.10: - dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.4 - radix3: 1.1.2 - ufo: 1.6.3 - uncrypto: 0.1.3 - h3@2.0.1-rc.20: dependencies: rou3: 0.8.1 @@ -14175,15 +11591,6 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-from-html@2.0.3: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.3 - parse5: 7.3.0 - vfile: 6.0.3 - vfile-message: 4.0.3 - hast-util-from-parse5@8.0.3: dependencies: '@types/hast': 3.0.4 @@ -14195,14 +11602,6 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 - hast-util-heading-rank@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 @@ -14229,20 +11628,6 @@ snapshots: '@ungap/structured-clone': 1.3.0 unist-util-position: 5.0.0 - hast-util-to-html@9.0.5: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.8 @@ -14273,10 +11658,6 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-string@3.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -14300,10 +11681,6 @@ snapshots: hosted-git-info@2.8.9: {} - hosted-git-info@7.0.2: - dependencies: - lru-cache: 10.4.3 - htm@3.1.1: {} html-url-attributes@3.0.1: {} @@ -14325,8 +11702,6 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 - http-shutdown@1.2.2: {} - https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -14334,15 +11709,6 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - human-signals@5.0.0: {} - human-signals@8.0.1: {} husky@9.1.7: {} @@ -14361,19 +11727,8 @@ snapshots: ignore@7.0.5: {} - image-meta@0.2.2: {} - - image-size@2.0.2: {} - immediate@3.0.6: {} - import-in-the-middle@1.15.0: - dependencies: - acorn: 8.16.0 - acorn-import-attributes: 1.9.5(acorn@8.16.0) - cjs-module-lexer: 1.4.3 - module-details-from-path: 1.0.4 - import-in-the-middle@2.0.6: dependencies: acorn: 8.16.0 @@ -14388,12 +11743,6 @@ snapshots: cjs-module-lexer: 2.2.0 module-details-from-path: 1.0.4 - imurmurhash@0.1.4: {} - - indent-string@5.0.0: {} - - index-to-position@1.2.0: {} - inherits@2.0.4: {} inline-style-parser@0.2.7: {} @@ -14445,47 +11794,6 @@ snapshots: ipaddr.js@1.9.1: {} - ipx@3.1.1(@netlify/blobs@10.7.4)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)): - dependencies: - '@fastify/accept-negotiator': 2.0.1 - citty: 0.1.6 - consola: 3.4.2 - defu: 6.1.4 - destr: 2.0.5 - etag: 1.8.1 - h3: 1.15.10 - image-meta: 0.2.2 - listhen: 1.9.0 - ofetch: 1.5.1 - pathe: 2.0.3 - sharp: 0.34.5 - svgo: 4.0.1 - ufo: 1.6.3 - unstorage: 1.17.5(@netlify/blobs@10.7.4)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)) - xss: 1.0.15 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - idb-keyval - - ioredis - - uploadthing - - iron-webcrypto@1.2.1: {} - is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -14539,12 +11847,8 @@ snapshots: is-docker@2.2.1: {} - is-docker@3.0.0: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 @@ -14559,33 +11863,17 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - is-hexadecimal@2.0.1: {} - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - is-map@2.0.3: {} is-negative-zero@2.0.3: {} - is-network-error@1.3.1: {} - is-number-object@1.1.1: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-number@7.0.0: {} - - is-path-inside@4.0.0: {} - - is-plain-obj@2.1.0: {} - is-plain-obj@4.1.0: {} is-promise@2.2.2: {} @@ -14605,10 +11893,6 @@ snapshots: dependencies: call-bound: 1.0.4 - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - is-stream@4.0.1: {} is-string@1.1.1: @@ -14628,10 +11912,6 @@ snapshots: is-unicode-supported@2.1.0: {} - is-url-superb@4.0.0: {} - - is-url@1.2.4: {} - is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -14647,14 +11927,6 @@ snapshots: dependencies: is-docker: 2.2.1 - is-wsl@3.1.1: - dependencies: - is-inside-container: 1.0.0 - - is64bit@2.0.0: - dependencies: - system-architecture: 0.1.0 - isarray@1.0.0: {} isarray@2.0.5: {} @@ -14682,20 +11954,12 @@ snapshots: jose@6.2.2: {} - jpeg-js@0.4.4: {} - js-cookie@3.0.8: {} - js-image-generator@1.0.4: - dependencies: - jpeg-js: 0.4.4 - js-tokens@10.0.0: {} js-tokens@4.0.0: {} - js-tokens@9.0.1: {} - js-yaml@3.14.2: dependencies: argparse: 1.0.10 @@ -14718,21 +11982,6 @@ snapshots: json5@2.2.3: {} - jsonpointer@5.0.1: {} - - jsonwebtoken@9.0.3: - dependencies: - jws: 4.0.1 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.7.4 - jszip@3.10.1: dependencies: lie: 3.3.0 @@ -14740,21 +11989,6 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 - junk@4.0.1: {} - - jwa@2.0.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - jws@4.0.1: - dependencies: - jwa: 2.0.1 - safe-buffer: 5.2.1 - - jwt-decode@4.0.0: {} - katex@0.16.44: dependencies: commander: 8.3.0 @@ -14763,13 +11997,7 @@ snapshots: kind-of@6.0.3: {} - kuler@2.0.0: {} - - lambda-local@2.2.0: - dependencies: - commander: 10.0.1 - dotenv: 16.6.1 - winston: 3.19.0 + kleur@4.1.5: {} langium@4.2.1: dependencies: @@ -14788,12 +12016,6 @@ snapshots: layout-base@2.0.1: {} - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - - leven@3.1.0: {} - lie@3.3.0: dependencies: immediate: 3.0.6 @@ -14847,27 +12069,6 @@ snapshots: lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 - listhen@1.9.0: - dependencies: - '@parcel/watcher': 2.5.6 - '@parcel/watcher-wasm': 2.5.6 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.4.2 - crossws: 0.3.5 - defu: 6.1.4 - get-port-please: 3.2.0 - h3: 1.15.10 - http-shutdown: 1.2.2 - jiti: 2.7.0 - mlly: 1.8.2 - node-forge: 1.4.0 - pathe: 1.1.2 - std-env: 3.10.0 - ufo: 1.6.3 - untun: 0.1.3 - uqr: 0.1.2 - lit-element@4.2.2: dependencies: '@lit-labs/ssr-dom-shim': 1.5.1 @@ -14895,45 +12096,16 @@ snapshots: dependencies: p-locate: 5.0.0 - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - lodash-es@4.17.23: {} - lodash.includes@4.3.0: {} - - lodash.isboolean@3.0.3: {} - - lodash.isinteger@4.0.4: {} - - lodash.isnumber@3.0.3: {} - - lodash.isplainobject@4.0.6: {} - - lodash.isstring@4.0.1: {} - - lodash.once@4.1.1: {} - lodash@4.17.23: {} - logform@2.7.0: - dependencies: - '@colors/colors': 1.6.0 - '@types/triple-beam': 1.3.5 - fecha: 4.2.3 - ms: 2.1.3 - safe-stable-stringify: 2.5.0 - triple-beam: 1.4.1 - longest-streak@3.1.0: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - lru-cache@10.4.3: {} - lru-cache@11.2.7: {} lru-cache@5.1.1: @@ -14944,8 +12116,6 @@ snapshots: dependencies: react: 19.2.3 - luxon@3.7.2: {} - maath@0.10.8(@types/three@0.183.1)(three@0.183.2): dependencies: '@types/three': 0.183.1 @@ -14955,8 +12125,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - map-obj@5.0.2: {} - markdown-table@3.0.4: {} markdown-to-jsx@7.7.17(react@19.2.3): @@ -15127,10 +12295,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.0.28: {} - - mdn-data@2.27.1: {} - media-typer@1.1.0: {} memfs@4.57.1(tslib@2.8.1): @@ -15154,14 +12318,6 @@ snapshots: merge-descriptors@2.0.0: {} - merge-options@3.0.4: - dependencies: - is-plain-obj: 2.1.0 - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - mermaid@11.14.0: dependencies: '@braintree/sanitize-url': 7.1.2 @@ -15383,18 +12539,23 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.2 - mime-db@1.54.0: {} mime-types@3.0.2: dependencies: mime-db: 1.54.0 - mimic-fn@4.0.0: {} + miniflare@4.20260617.1: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + sharp: 0.34.5 + undici: 7.28.0 + workerd: 1.20260617.1 + ws: 8.21.0 + youch: 4.1.0-beta.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate minimatch@10.2.5: dependencies: @@ -15412,10 +12573,6 @@ snapshots: minipass@7.1.3: {} - minizlib@3.1.0: - dependencies: - minipass: 7.1.3 - mkdirp@0.3.0: {} mkdirp@0.5.6: @@ -15429,11 +12586,6 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.3 - module-definition@6.0.1: - dependencies: - ast-module-types: 6.0.1 - node-source-walk: 7.0.1 - module-details-from-path@1.0.4: {} ms@2.1.3: {} @@ -15456,64 +12608,25 @@ snapshots: multipasta@0.2.7: {} - nanoid@3.3.11: {} - nanoid@3.3.12: {} negotiator@1.0.0: {} - netlify-redirector@0.5.0: {} - - node-addon-api@7.1.1: {} - - node-domexception@1.0.0: {} - - node-exports-info@1.6.0: - dependencies: - array.prototype.flatmap: 1.3.3 - es-errors: 1.3.0 - object.entries: 1.1.9 - semver: 6.3.1 - - node-fetch-native@1.6.7: {} - node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-fetch@3.3.2: - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - - node-forge@1.4.0: {} - node-gyp-build-optional-packages@5.2.2: dependencies: detect-libc: 2.1.2 optional: true - node-gyp-build@4.8.4: {} - - node-mock-http@1.0.4: {} - node-releases@2.0.36: {} - node-source-walk@7.0.1: - dependencies: - '@babel/parser': 7.29.2 - - node-stream-zip@1.15.0: {} - nopt@1.0.10: dependencies: abbrev: 1.1.1 - nopt@8.1.0: - dependencies: - abbrev: 3.0.1 - normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -15521,18 +12634,6 @@ snapshots: semver: 5.7.2 validate-npm-package-license: 3.0.4 - normalize-package-data@6.0.2: - dependencies: - hosted-git-info: 7.0.2 - semver: 7.7.4 - validate-npm-package-license: 3.0.4 - - normalize-path@2.1.1: - dependencies: - remove-trailing-separator: 1.1.0 - - normalize-path@3.0.0: {} - normalize-wheel@1.0.1: {} npm-run-all@4.1.5: @@ -15547,14 +12648,10 @@ snapshots: shell-quote: 1.8.3 string.prototype.padend: 3.1.6 - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - npm-run-path@6.0.0: dependencies: path-key: 4.0.0 - unicorn-magic: 0.3.0 + unicorn-magic: 0.4.0 nth-check@2.1.1: dependencies: @@ -15575,21 +12672,6 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - ofetch@1.5.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.3 - - omit.js@2.0.2: {} - on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -15598,30 +12680,14 @@ snapshots: dependencies: wrappy: 1.0.2 - one-time@1.0.0: - dependencies: - fn.name: 1.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - oniguruma-parser@0.12.1: {} - - oniguruma-to-es@4.3.5: - dependencies: - oniguruma-parser: 0.12.1 - regex: 6.1.0 - regex-recursion: 6.0.2 - open@7.4.2: dependencies: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@6.33.0(ws@8.20.0)(zod@4.3.6): + openai@6.33.0(ws@8.21.0)(zod@4.3.6): optionalDependencies: - ws: 8.20.0 + ws: 8.21.0 zod: 4.3.6 own-keys@1.0.1: @@ -15714,18 +12780,10 @@ snapshots: '@oxlint/binding-win32-x64-msvc': 1.58.0 oxlint-tsgolint: 0.19.0 - p-event@6.0.1: - dependencies: - p-timeout: 6.1.4 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.2.2 - p-limit@6.2.0: dependencies: yocto-queue: 1.2.2 @@ -15734,24 +12792,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - - p-map@7.0.4: {} - - p-retry@6.2.1: - dependencies: - '@types/retry': 0.12.2 - is-network-error: 1.3.1 - retry: 0.13.1 - - p-timeout@6.1.4: {} - - p-wait-for@5.0.2: - dependencies: - p-timeout: 6.1.4 - package-json-from-dist@1.0.1: {} package-manager-detector@1.6.0: {} @@ -15770,22 +12810,11 @@ snapshots: parse-gitignore@2.0.0: {} - parse-imports@2.2.1: - dependencies: - es-module-lexer: 1.7.0 - slashes: 3.0.12 - parse-json@4.0.0: dependencies: error-ex: 1.3.4 json-parse-better-errors: 1.0.2 - parse-json@8.3.0: - dependencies: - '@babel/code-frame': 7.29.0 - index-to-position: 1.2.0 - type-fest: 4.41.0 - parse-ms@4.0.0: {} parse5-htmlparser2-tree-adapter@7.1.0: @@ -15809,8 +12838,6 @@ snapshots: path-exists@4.0.0: {} - path-exists@5.0.0: {} - path-key@3.1.1: {} path-key@4.0.0: {} @@ -15822,22 +12849,16 @@ snapshots: lru-cache: 11.2.7 minipass: 7.1.3 + path-to-regexp@6.3.0: {} + path-to-regexp@8.4.1: {} path-type@3.0.0: dependencies: pify: 3.0.0 - path-type@6.0.0: {} - - pathe@1.1.2: {} - pathe@2.0.3: {} - pend@1.2.0: {} - - pg-gateway@0.3.0-beta.4: {} - pg-int8@1.0.1: {} pg-protocol@1.13.0: {} @@ -15852,12 +12873,8 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.3.2: {} - picomatch@4.0.4: {} - picoquery@2.5.0: {} - pidtree@0.3.1: {} pify@3.0.0: {} @@ -15888,25 +12905,12 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-values-parser@6.0.2(postcss@8.5.8): - dependencies: - color-name: 1.1.4 - is-url-superb: 4.0.0 - postcss: 8.5.8 - quote-unquote: 1.0.0 - postcss@8.5.15: dependencies: nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.8: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postgres-array@2.0.0: {} postgres-bytea@1.0.1: {} @@ -15923,26 +12927,6 @@ snapshots: preact@10.29.0: {} - precinct@12.2.0: - dependencies: - '@dependents/detective-less': 5.0.1 - commander: 12.1.0 - detective-amd: 6.0.1 - detective-cjs: 6.1.0 - detective-es6: 5.0.1 - detective-postcss: 7.0.1(postcss@8.5.8) - detective-sass: 6.0.1 - detective-scss: 5.0.1 - detective-stylus: 5.0.1 - detective-typescript: 14.0.0(typescript@5.9.3) - detective-vue2: 2.2.0(typescript@5.9.3) - module-definition: 6.0.1 - node-source-walk: 7.0.1 - postcss: 8.5.8 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - prettier@3.8.1: {} pretty-ms@9.3.0: @@ -15951,8 +12935,6 @@ snapshots: process-nextick-args@2.0.1: {} - process@0.11.10: {} - progress@2.0.3: {} promise-worker-transferable@1.0.4: @@ -15975,23 +12957,12 @@ snapshots: proxy-from-env@1.1.0: {} - pump@3.0.4: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - pure-rand@6.1.0: {} qs@6.15.0: dependencies: side-channel: 1.1.0 - queue-microtask@1.2.3: {} - - quote-unquote@1.0.0: {} - - radix3@1.1.2: {} - range-parser@1.2.1: {} raw-body@3.0.2: @@ -16076,26 +13047,12 @@ snapshots: react@19.2.3: {} - read-package-up@11.0.0: - dependencies: - find-up-simple: 1.0.1 - read-pkg: 9.0.1 - type-fest: 4.41.0 - read-pkg@3.0.0: dependencies: load-json-file: 4.0.0 normalize-package-data: 2.5.0 path-type: 3.0.0 - read-pkg@9.0.1: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.2 - parse-json: 8.3.0 - type-fest: 4.41.0 - unicorn-magic: 0.1.0 - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -16106,24 +13063,6 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.9 - readdirp@4.1.2: {} readdirp@5.0.0: {} @@ -16139,16 +13078,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - regex-recursion@6.0.2: - dependencies: - regex-utilities: 2.3.0 - - regex-utilities@2.3.0: {} - - regex@6.1.0: - dependencies: - regex-utilities: 2.3.0 - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -16160,60 +13089,21 @@ snapshots: regexparam@2.0.2: {} - rehype-autolink-headings@7.1.0: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 - hast-util-heading-rank: 3.0.0 - hast-util-is-element: 3.0.0 - unified: 11.0.5 - unist-util-visit: 5.1.0 - - rehype-callouts@2.1.2: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-html: 2.0.3 - hast-util-is-element: 3.0.0 - hastscript: 9.0.1 - unist-util-visit: 5.1.0 - rehype-harden@1.1.8: dependencies: unist-util-visit: 5.1.0 - rehype-parse@9.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-html: 2.0.3 - unified: 11.0.5 - rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.1.0 vfile: 6.0.3 - rehype-react@8.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-to-jsx-runtime: 2.3.6 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - rehype-sanitize@6.0.0: dependencies: '@types/hast': 3.0.4 hast-util-sanitize: 5.0.2 - rehype-slug@6.0.0: - dependencies: - '@types/hast': 3.0.4 - github-slugger: 2.0.0 - hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.1 - unist-util-visit: 5.1.0 - remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 @@ -16254,20 +13144,10 @@ snapshots: remove-markdown@0.6.3: {} - remove-trailing-separator@1.1.0: {} - require-directory@2.1.1: {} require-from-string@2.0.2: {} - require-in-the-middle@7.5.2: - dependencies: - debug: 4.4.3 - module-details-from-path: 1.0.4 - resolve: 1.22.12 - transitivePeerDependencies: - - supports-color - require-in-the-middle@8.0.1: dependencies: debug: 4.4.3 @@ -16275,15 +13155,11 @@ snapshots: transitivePeerDependencies: - supports-color - require-package-name@2.0.1: {} - resend@6.10.0: dependencies: postal-mime: 2.7.4 svix: 1.88.0 - resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: {} resolve@1.22.11: @@ -16292,26 +13168,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@1.22.12: - dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@2.0.0-next.6: - dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.1 - node-exports-info: 1.6.0 - object-keys: 1.1.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - retry@0.13.1: {} - - reusify@1.1.0: {} - rimraf@2.6.3: dependencies: glob: 13.0.6 @@ -16391,10 +13247,6 @@ snapshots: transitivePeerDependencies: - supports-color - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - rw@1.3.3: {} safe-array-concat@1.1.3: @@ -16407,8 +13259,6 @@ snapshots: safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -16420,12 +13270,8 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-stable-stringify@2.5.0: {} - safer-buffer@2.1.2: {} - sax@1.6.0: {} - scheduler@0.27.0: {} search-insights@2.17.3: {} @@ -16539,17 +13385,6 @@ snapshots: shell-quote@1.8.3: {} - shiki@4.0.2: - dependencies: - '@shikijs/core': 4.0.2 - '@shikijs/engine-javascript': 4.0.2 - '@shikijs/engine-oniguruma': 4.0.2 - '@shikijs/langs': 4.0.2 - '@shikijs/themes': 4.0.2 - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -16580,8 +13415,6 @@ snapshots: signal-exit@4.1.0: {} - slashes@3.0.12: {} - solid-js@1.9.12: dependencies: csstype: 3.2.3 @@ -16638,8 +13471,6 @@ snapshots: srvx@0.11.16: {} - stack-trace@0.0.10: {} - standardwebhooks@1.0.0: dependencies: '@stablelib/base64': 1.0.1 @@ -16654,8 +13485,6 @@ snapshots: statuses@2.0.2: {} - std-env@3.10.0: {} - stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -16733,10 +13562,6 @@ snapshots: dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -16750,14 +13575,8 @@ snapshots: strip-bom@3.0.0: {} - strip-final-newline@3.0.0: {} - strip-final-newline@4.0.0: {} - strip-literal@3.1.0: - dependencies: - js-tokens: 9.0.1 - style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -16768,6 +13587,8 @@ snapshots: stylis@4.3.6: {} + supports-color@10.2.2: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -16782,23 +13603,11 @@ snapshots: dependencies: react: 19.2.3 - svgo@4.0.1: - dependencies: - commander: 11.1.0 - css-select: 5.2.2 - css-tree: 3.2.1 - css-what: 6.2.2 - csso: 5.0.5 - picocolors: 1.1.1 - sax: 1.6.0 - svix@1.88.0: dependencies: standardwebhooks: 1.0.0 uuid: 10.0.0 - system-architecture@0.1.0: {} - tabbable@6.4.0: {} tailwind-merge@3.5.0: {} @@ -16829,14 +13638,6 @@ snapshots: - bare-buffer - react-native-b4a - tar@7.5.13: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.3 - minizlib: 3.1.0 - yallist: 5.0.0 - teex@1.0.1: dependencies: streamx: 2.25.0 @@ -16855,8 +13656,6 @@ snapshots: transitivePeerDependencies: - react-native-b4a - text-hex@1.0.0: {} - thingies@2.6.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -16897,22 +13696,8 @@ snapshots: dependencies: tldts-core: 7.4.2 - tmp-promise@3.0.3: - dependencies: - tmp: 0.2.5 - - tmp@0.2.5: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - toidentifier@1.0.1: {} - toml@3.0.0: {} - - tomlify-j0.4@3.0.0: {} - tr46@0.0.3: {} tree-dump@1.1.0(tslib@2.8.1): @@ -16921,8 +13706,6 @@ snapshots: trim-lines@3.0.1: {} - triple-beam@1.4.1: {} - troika-three-text@0.52.4(three@0.183.2): dependencies: bidi-js: 1.0.3 @@ -16941,10 +13724,6 @@ snapshots: ts-algebra@2.0.0: {} - ts-api-utils@2.5.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - ts-dedent@2.2.0: {} tslib@2.8.1: {} @@ -16965,8 +13744,6 @@ snapshots: - react - use-sync-external-store - turbo-stream@3.2.0: {} - type-fest@4.41.0: {} type-is@2.0.1: @@ -17008,14 +13785,10 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@5.9.3: {} - typescript@6.0.2: {} ufo@1.6.3: {} - ulid@3.0.2: {} - unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -17023,15 +13796,17 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - uncrypto@0.1.3: {} - undici-types@7.18.2: {} undici@7.24.7: {} - unicorn-magic@0.1.0: {} + undici@7.28.0: {} + + unenv@2.0.0-rc.24: + dependencies: + pathe: 2.0.3 - unicorn-magic@0.3.0: {} + unicorn-magic@0.4.0: {} unified@11.0.5: dependencies: @@ -17068,10 +13843,6 @@ snapshots: universal-user-agent@7.0.3: {} - unixify@1.0.0: - dependencies: - normalize-path: 2.1.1 - unpipe@1.0.0: {} unplugin@3.0.0: @@ -17080,33 +13851,13 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unstorage@1.17.5(@netlify/blobs@10.7.4)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2)): - dependencies: - anymatch: 3.1.3 - chokidar: 5.0.0 - destr: 2.0.5 - h3: 1.15.10 - lru-cache: 11.2.7 - node-fetch-native: 1.6.7 - ofetch: 1.5.1 - ufo: 1.6.3 - optionalDependencies: - '@netlify/blobs': 10.7.4 - uploadthing: 7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2) - - untun@0.1.3: - dependencies: - citty: 0.1.6 - consola: 3.4.2 - pathe: 1.1.2 - update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 - uploadthing@7.7.4(express@5.2.1)(h3@1.15.10)(tailwindcss@4.2.2): + uploadthing@7.7.4(express@5.2.1)(tailwindcss@4.2.2): dependencies: '@effect/platform': 0.90.3(effect@3.17.7) '@standard-schema/spec': 1.0.0-beta.4 @@ -17115,15 +13866,8 @@ snapshots: effect: 3.17.7 optionalDependencies: express: 5.2.1 - h3: 1.15.10 tailwindcss: 4.2.2 - uqr@0.1.2: {} - - urlpattern-polyfill@10.1.0: {} - - urlpattern-polyfill@8.0.2: {} - use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.3): dependencies: react: 19.2.3 @@ -17157,8 +13901,6 @@ snapshots: uuid@11.1.0: {} - uuid@13.0.0: {} - valibot@1.3.1(typescript@6.0.2): optionalDependencies: typescript: 6.0.2 @@ -17168,8 +13910,6 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate-npm-package-name@5.0.1: {} - vary@1.1.2: {} vfile-location@5.0.3: @@ -17189,7 +13929,7 @@ snapshots: vite-bundle-analyzer@1.3.6: {} - vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3): + vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -17202,11 +13942,11 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vitefu@1.1.3(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)): + vitefu@1.1.3(vite@8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): optionalDependencies: - vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.13(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) vscode-jsonrpc@8.2.0: {} @@ -17227,8 +13967,6 @@ snapshots: web-namespaces@2.0.1: {} - web-streams-polyfill@3.3.3: {} - webgl-constants@1.1.1: {} webgl-sdf-generator@1.1.1: {} @@ -17293,30 +14031,34 @@ snapshots: dependencies: isexe: 2.0.0 - winston-transport@4.9.0: - dependencies: - logform: 2.7.0 - readable-stream: 3.6.2 - triple-beam: 1.4.1 - - winston@3.19.0: - dependencies: - '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.8 - async: 3.2.6 - is-stream: 2.0.1 - logform: 2.7.0 - one-time: 1.0.0 - readable-stream: 3.6.2 - safe-stable-stringify: 2.5.0 - stack-trace: 0.0.10 - triple-beam: 1.4.1 - winston-transport: 4.9.0 + workerd@1.20260617.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20260617.1 + '@cloudflare/workerd-darwin-arm64': 1.20260617.1 + '@cloudflare/workerd-linux-64': 1.20260617.1 + '@cloudflare/workerd-linux-arm64': 1.20260617.1 + '@cloudflare/workerd-windows-64': 1.20260617.1 worktop@0.7.3: dependencies: regexparam: 2.0.2 + wrangler@4.103.0: + dependencies: + '@cloudflare/kv-asset-handler': 0.5.0 + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260617.1) + blake3-wasm: 2.1.5 + esbuild: 0.28.1 + miniflare: 4.20260617.1 + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.24 + workerd: 1.20260617.1 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -17325,13 +14067,10 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@5.0.1: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - ws@8.20.0: {} + ws@8.21.0: {} + xmlbuilder2@4.0.3: dependencies: '@oozcitak/dom': 2.0.2 @@ -17339,11 +14078,6 @@ snapshots: '@oozcitak/util': 10.0.0 js-yaml: 3.14.2 - xss@1.0.15: - dependencies: - commander: 2.20.3 - cssfilter: 0.0.10 - xstate@5.30.0: {} xtend@4.0.2: {} @@ -17352,13 +14086,11 @@ snapshots: yallist@3.1.1: {} - yallist@5.0.0: {} - yaml@2.8.3: {} - yargs-parser@20.2.9: {} + yaml@2.9.0: {} - yargs-parser@21.1.1: {} + yargs-parser@20.2.9: {} yargs@16.2.0: dependencies: @@ -17370,32 +14102,24 @@ snapshots: y18n: 5.0.8 yargs-parser: 20.2.9 - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - yocto-queue@0.1.0: {} yocto-queue@1.2.2: {} yoctocolors@2.1.2: {} - zip-stream@6.0.1: + 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: - archiver-utils: 5.0.2 - compress-commons: 6.0.2 - readable-stream: 4.7.0 + '@poppinss/colors': 4.1.6 + '@poppinss/dumper': 0.6.5 + '@speed-highlight/core': 1.2.17 + cookie: 1.1.1 + youch-core: 0.3.3 zod-to-json-schema@3.24.6(zod@4.3.6): dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4e45eaf49..e6add2aca 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,6 @@ +packages: + - . + overrides: cross-spawn: '>=6.0.6' glob: '>=10.5.0' @@ -9,15 +12,16 @@ overrides: minimatch@3.1.5>brace-expansion: '1.1.12' minimatch@5.1.9>brace-expansion: '2.0.3' minimatch@10.2.5>brace-expansion: '5.0.5' + npm-run-path@6.0.0>unicorn-magic: '0.4.0' allowBuilds: # root dependency esbuild: true - # @netlify/vite-plugin-tanstack-start + # watcher optional native package '@parcel/watcher': false - # @netlify/vite-plugin-tanstack-start & uploadthing + # uploadthing optional native package msgpackr-extract: false #@takumi-rs @@ -26,3 +30,6 @@ allowBuilds: # sentry '@sentry/cli': false '@fingerprintjs/fingerprintjs-pro-react': false + + # Cloudflare Workers local runtime + workerd: true diff --git a/public/_headers b/public/_headers index 66f2a0769..45563990d 100644 --- a/public/_headers +++ b/public/_headers @@ -3,3 +3,8 @@ /builder Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp + +# Vite emits fingerprinted files under /assets, so they can be cached until +# the filename changes on a later build. +/assets/* + Cache-Control: public, max-age=31536000, immutable diff --git a/rsc-migration-report.md b/rsc-migration-report.md deleted file mode 100644 index 8dd677517..000000000 --- a/rsc-migration-report.md +++ /dev/null @@ -1,197 +0,0 @@ -# RSC Migration Report - -Status: bundle + code audit complete. Production Lighthouse baseline and post-deploy compare captured. - -## Scope - -This report tracks the impact of moving markdown-heavy and code-heavy surfaces to React Server Components and server-rendered code highlighting. - -Pages explicitly covered: - -- `/blog/react-server-components` -- `/router/latest/docs/overview` -- `/router/latest/docs/framework/react/examples/basic` -- `/query/latest` -- `/router/latest` -- `/form/latest` -- `/table/latest` -- `/virtual/latest` - -## Methodology - -Bundle analysis: - -- Baseline: clean `HEAD` worktree at `/tmp/tanstack-bundle-baseline` -- Current: this branch/worktree -- Metric: transitive built client JS graph per representative route from production build assets -- Unit: bytes and gzip bytes - -Production baseline metrics: - -- Captured against live `https://tanstack.com` -- Tool: Lighthouse via `npx lighthouse` -- Category: `performance` -- Strategy: default Lighthouse mobile simulation - -Notes: - -- Bundle numbers are the most trustworthy pre-ship metric here -- Lighthouse should be compared on the same production domain before and after deploy -- Production Lighthouse is noisy; treat single-run numbers as directional until we rerun after deploy - -## Bundle Impact - -Gzipped client JS, before vs after. - -| Page | Before | After | Delta | -| ---------------------------------------------------- | --------: | --------: | ---------: | -| `/blog/react-server-components` | 547,196 B | 394,207 B | -152,989 B | -| `/router/latest/docs/overview` | 563,295 B | 410,644 B | -152,651 B | -| `/router/latest/docs/framework/react/examples/basic` | 421,421 B | 381,079 B | -40,342 B | -| `/table/latest` | 451,744 B | 409,455 B | -42,289 B | -| `/query/latest` | 405,185 B | 412,671 B | +7,486 B | -| `/router/latest` | 403,281 B | 411,259 B | +7,978 B | -| `/form/latest` | 401,951 B | 409,389 B | +7,438 B | -| `/virtual/latest` | 401,535 B | 409,044 B | +7,509 B | - -### Bundle Takeaways - -- Big wins on markdown-heavy pages: - - blog: about `-153 KB gz` - - docs page: about `-153 KB gz` -- Clear win on docs example page: about `-40 KB gz` -- Clear win on table landing: about `-42 KB gz` -- Slight regressions on most other landing pages: about `+7-8 KB gz` - -Interpretation: - -- The pages dominated by markdown parsing and client-side highlighting improved materially -- Most landing pages are now architecturally cleaner, but not smaller yet -- The likely reason for the small landing regressions is that the old landing code-example path had more lazy/client indirection, while the new server-rendered example shell is part of the initial experience - -## Client Boundary Audit - -Verified absent from current `dist/client/assets`: - -- `shiki` -- `@shikijs/*` -- `createHighlighter` -- `codeToHtml` -- `html-react-parser` -- `remark-*` -- `rehype-*` -- `rehype-react` -- old client markdown renderer files -- old landing example card files -- representative raw example-source snippets - -Implications: - -- Markdown rendering pipeline is out of the client build -- Syntax highlighting pipeline is out of the client build -- Landing example source strings are out of the client build - -Runtime spot checks also confirmed: - -- docs/example pages no longer request Shiki/highlighting assets -- landing pages no longer hit the old client `CodeBlock` path - -Nuance: - -- Client sourcemaps still reference some server-fn stub names like `fetchRenderedCodeFile` and `fetchLandingCodeExample` -- Those are stubs, not the rendering/highlighting pipeline itself - -## Code Simplicity - -Git diff summary: - -- `46 files changed` -- `1,017 insertions` -- `2,038 deletions` -- Net: about `-1,021` lines - -Deleted legacy client-heavy files: - -- `src/components/CodeExampleCard.tsx` -- `src/components/LazyCodeExampleCard.tsx` -- `src/components/SimpleMarkdown.tsx` -- `src/components/markdown/Markdown.tsx` -- `src/components/markdown/MarkdownFrameworkHandler.tsx` -- `src/components/markdown/MarkdownTabsHandler.tsx` -- `src/utils/markdown/processor.ts` - -New server-focused structure: - -- `src/components/markdown/renderCodeBlock.server.tsx` -- `src/components/markdown/CodeBlock.server.tsx` -- `src/utils/markdown/processor.rsc.tsx` -- `src/utils/markdown/renderRsc.tsx` -- `src/components/landing/codeExamples.server.tsx` -- `src/components/landing/LandingCodeExampleCard.server.tsx` - -Dependency cleanup: - -- Removed `html-react-parser` -- Removed `rehype-stringify` - -Architectural simplifications: - -- One server markdown pipeline instead of mixed client/server rendering -- One server code-highlighting pipeline instead of client Shiki -- One server landing-example registry instead of repeating large inline code maps across landing pages -- Example pages now use URL-driven server-rendered code panes instead of client raw source + client highlighting - -## Current Production Lighthouse Baseline - -Captured before shipping these changes. - -| Page | Score | FCP | LCP | Speed Index | TBT | CLS | Interactive | Bytes | Requests | -| ------------------------------- | ----: | ---: | ---: | ----------: | ------: | ----: | ----------: | --------: | -------: | -| `/query/latest` | 80 | 2.8s | 3.4s | 3.4s | 300ms | 0.001 | 6.1s | 765 KiB | 89 | -| `/blog/react-server-components` | 52 | 3.3s | 3.7s | 3.6s | 1,200ms | 0.15 | 7.8s | 1,101 KiB | 60 | -| `/router/latest/docs/overview` | 78 | 3.0s | 3.6s | 3.9s | 280ms | 0.002 | 7.5s | 917 KiB | 81 | - -Notes: - -- These are single-run live production baselines, so expect some noise -- Blog is the most likely page to show strong post-deploy Lighthouse improvement because it had the largest client-bundle reduction -- Docs should also improve meaningfully -- Landing-page Lighthouse changes may be neutral or mixed except for table, based on current bundle data - -## Post-Deploy Compare - -| Page | Before Score | After Score | Before LCP | After LCP | Before TBT | After TBT | Before Bytes | After Bytes | Notes | -| ------------------------------- | -----------: | ----------: | ---------: | --------: | ---------: | --------: | -----------: | ----------: | ------------------------------------------------------------------------ | -| `/query/latest` | 80 | 77 | 3.4s | 3.8s | 300ms | 250ms | 765 KiB | 784 KiB | Roughly flat. Slightly worse score/LCP on this run, slightly better TBT. | -| `/blog/react-server-components` | 52 | 74 | 3.7s | 3.6s | 1,200ms | 260ms | 1,101 KiB | 785 KiB | Clear win. Huge TBT and transfer-size drop, major score improvement. | -| `/router/latest/docs/overview` | 78 | 81 | 3.6s | 3.6s | 280ms | 200ms | 917 KiB | 777 KiB | Modest win. Better score, lower TBT, lower transfer size. | - -## Conclusions So Far - -- Strong technical wins on markdown-heavy and code-heavy content pages -- Clear reduction in client responsibility and code complexity -- Clear removal of markdown parsing and syntax highlighting from the client bundle -- Not a universal bundle win across all landing pages yet -- Best pages to watch post-deploy: blog and docs - -## Post-Deploy Read - -- Blog got the clearest real-world benefit. - - Lighthouse score improved from `52` to `74` - - TBT dropped from `1,200ms` to `260ms` - - transfer size dropped from `1,101 KiB` to `785 KiB` -- Docs improved, but less dramatically. - - Lighthouse score improved from `78` to `81` - - TBT dropped from `280ms` to `200ms` - - transfer size dropped from `917 KiB` to `777 KiB` -- Query landing did not show a Lighthouse win on this run. - - Score went from `80` to `77` - - LCP worsened slightly from `3.4s` to `3.8s` - - TBT improved slightly from `300ms` to `250ms` - -Interpretation: - -- The bundle-side story predicted this fairly well. -- The strongest wins landed on markdown-heavy pages where we removed the client markdown/highlighting pipeline. -- The landing-page story remains mixed because those pages were not dominated by markdown and some of the server-rendered example-shell work traded complexity reduction for slightly more initial shell work. -- If we want broader Lighthouse wins on library landings, the next work is probably not more RSC conversion. It is targeted landing-page performance work. diff --git a/scripts/og-preview.ts b/scripts/og-preview.ts index d902d7e3b..30e9cb1b9 100644 --- a/scripts/og-preview.ts +++ b/scripts/og-preview.ts @@ -13,7 +13,7 @@ async function renderToFile( outPath: string, input: Parameters[0], ) { - const result = generateOgImageResponse(input) + const result = await generateOgImageResponse(input) if ('kind' in result) { console.warn(`[skip] ${input.libraryId}: ${result.kind}`) return diff --git a/scripts/run-built-server.mjs b/scripts/run-built-server.mjs deleted file mode 100644 index 956943910..000000000 --- a/scripts/run-built-server.mjs +++ /dev/null @@ -1,115 +0,0 @@ -import http from 'node:http' -import { Buffer } from 'node:buffer' -import path from 'node:path' -import url from 'node:url' -import fs from 'node:fs' - -const __dirname = path.dirname(url.fileURLToPath(import.meta.url)) -const rootDir = path.resolve(__dirname, '..') -const clientDir = path.join(rootDir, 'dist/client') -const serverModuleUrl = url.pathToFileURL( - path.join(rootDir, 'dist/server/server.js'), -).href - -const mod = await import(serverModuleUrl) -const app = mod.default || mod.app || mod -const port = Number(process.env.PORT || 3000) - -const MIME = { - '.js': 'application/javascript; charset=utf-8', - '.mjs': 'application/javascript; charset=utf-8', - '.css': 'text/css; charset=utf-8', - '.html': 'text/html; charset=utf-8', - '.json': 'application/json; charset=utf-8', - '.svg': 'image/svg+xml', - '.png': 'image/png', - '.jpg': 'image/jpeg', - '.jpeg': 'image/jpeg', - '.gif': 'image/gif', - '.webp': 'image/webp', - '.avif': 'image/avif', - '.ico': 'image/x-icon', - '.woff': 'font/woff', - '.woff2': 'font/woff2', - '.ttf': 'font/ttf', - '.otf': 'font/otf', - '.txt': 'text/plain; charset=utf-8', - '.xml': 'application/xml; charset=utf-8', - '.webmanifest': 'application/manifest+json', - '.map': 'application/json; charset=utf-8', -} - -function tryServeStatic(req, res, pathname) { - // Resolve safely under clientDir - const decoded = decodeURIComponent(pathname) - const filePath = path.join(clientDir, decoded) - if (!filePath.startsWith(clientDir + path.sep) && filePath !== clientDir) { - return false - } - let stat - try { - stat = fs.statSync(filePath) - } catch { - return false - } - if (!stat.isFile()) return false - const ext = path.extname(filePath).toLowerCase() - res.setHeader('Content-Type', MIME[ext] || 'application/octet-stream') - res.setHeader('Content-Length', stat.size) - if (ext === '.js' || ext === '.css' || ext === '.woff2' || ext === '.woff') { - res.setHeader('Cache-Control', 'public, max-age=31536000, immutable') - } - fs.createReadStream(filePath).pipe(res) - return true -} - -const server = http.createServer(async (req, res) => { - try { - const requestUrl = new URL(req.url || '/', `http://localhost:${port}`) - - // Serve static client assets directly (Netlify CDN handles this in prod). - if ( - req.method === 'GET' && - requestUrl.pathname !== '/' && - tryServeStatic(req, res, requestUrl.pathname) - ) { - return - } - - const chunks = [] - - for await (const chunk of req) { - chunks.push(chunk) - } - - const request = new Request(requestUrl, { - method: req.method, - headers: req.headers, - body: - req.method === 'GET' || req.method === 'HEAD' - ? undefined - : Buffer.concat(chunks), - }) - const response = await app.fetch(request) - - res.statusCode = response.status - response.headers.forEach((value, key) => { - res.setHeader(key, value) - }) - - if (!response.body || req.method === 'HEAD') { - res.end() - return - } - - res.end(Buffer.from(await response.arrayBuffer())) - } catch (error) { - console.error(error) - res.statusCode = 500 - res.end(String(error?.stack || error)) - } -}) - -server.listen(port, () => { - console.log(`Production server listening on http://localhost:${port}`) -}) diff --git a/scripts/sync-docs-webhooks.ts b/scripts/sync-docs-webhooks.ts index b9fc9e475..833561b9d 100644 --- a/scripts/sync-docs-webhooks.ts +++ b/scripts/sync-docs-webhooks.ts @@ -32,7 +32,7 @@ if (!dryRun && !webhookSecret) { if (!dryRun && webhookSecret) { if (webhookSecret.length < 16 || /\s/.test(webhookSecret)) { throw new Error( - 'GITHUB_WEBHOOK_SECRET must be a raw secret value, not Netlify env:get output for a secret variable.', + 'GITHUB_WEBHOOK_SECRET must be a raw secret value, not a secret manager placeholder.', ) } } diff --git a/src/auth/cli-tickets.server.ts b/src/auth/cli-tickets.server.ts index 35f1431fe..7be3e0839 100644 --- a/src/auth/cli-tickets.server.ts +++ b/src/auth/cli-tickets.server.ts @@ -17,11 +17,9 @@ interface CliTicket { authorized: boolean } -// The Vite RSC plugin duplicates .server.ts modules — one copy ends up in the -// regular server bundle (used by route handlers) and another in the RSC server -// bundle (used by createServerFn). Each copy gets its own module-level state, -// which would silently fragment the ticket store. Pin the Map to globalThis so -// both copies share a single instance. +// Server handlers and server-function handlers can load this module through +// different bundled entry points. Pin the Map to globalThis so those callers +// share one ticket store instead of fragmenting module-level state. const TICKETS_KEY = Symbol.for('tanstack.cli-auth.tickets') const TICKETS_INTERVAL_KEY = Symbol.for('tanstack.cli-auth.cleanup') diff --git a/src/builder/api/compile.ts b/src/builder/api/compile.ts index ea65d4257..ccfb5a9b7 100644 --- a/src/builder/api/compile.ts +++ b/src/builder/api/compile.ts @@ -3,15 +3,13 @@ import { createMemoryEnvironment, finalizeAddOns, populateAddOnOptionsDefaults, - computeAttribution, type AddOn, + type Framework, type Starter, - type LineAttribution as CtaLineAttribution, - type AttributedFile as CtaAttributedFile, -} from '@tanstack/create' +} from '@tanstack/create/edge' type AddOnType = 'add-on' | 'example' | 'starter' | 'toolchain' | 'deployment' -type AddOnPhase = 'setup' | 'add-on' +type AddOnPhase = 'setup' | 'add-on' | 'example' export interface AddOnCompiled { id: string @@ -250,6 +248,323 @@ export async function compileHandler( } } +type AttributionSource = { + sourceId: string + sourceName: string +} + +type FileProvenance = { + source: 'framework' | 'add-on' | 'starter' + sourceId: string + sourceName: string +} + +type CtaLineAttribution = { + line: number + sourceId: string + sourceName: string + type: 'original' | 'injected' +} + +type CtaAttributedFile = { + content: string + provenance: FileProvenance + lineAttributions: Array +} + +type DependencyAttribution = { + name: string + version: string + type: 'dependency' | 'devDependency' + sourceId: string + sourceName: string +} + +type AttributionOutput = { + attributedFiles: Record + dependencies: Array +} + +type IntegrationWithSource = NonNullable[number] & { + _sourceId: string + _sourceName: string +} + +type InjectionPattern = { + matches: (line: string) => boolean + appliesTo: (path: string) => boolean + source: AttributionSource +} + +function normalizeAttributionPath(path: string) { + let nextPath = path.startsWith('./') ? path.slice(2) : path + nextPath = nextPath.replace(/\.ejs$/, '').replace(/_dot_/g, '.') + + const match = nextPath.match(/^(.+\/)?__([^_]+)__(.+)$/) + return match ? (match[1] || '') + match[3] : nextPath +} + +async function getFileProvenance( + filePath: string, + framework: Framework, + addOns: Array, + starter: Starter | undefined, +): Promise { + const target = filePath.startsWith('./') ? filePath.slice(2) : filePath + + if (starter) { + const files = await starter.getFiles() + if (files.some((file) => normalizeAttributionPath(file) === target)) { + return { + source: 'starter', + sourceId: starter.id, + sourceName: starter.name, + } + } + } + + const typeOrder: Array = [ + 'add-on', + 'example', + 'toolchain', + 'deployment', + ] + const phaseOrder: Array = ['setup', 'add-on', 'example'] + const ordered = typeOrder.flatMap((type) => + phaseOrder.flatMap((phase) => + addOns.filter((addOn) => addOn.phase === phase && addOn.type === type), + ), + ) + + for (let index = ordered.length - 1; index >= 0; index--) { + const addOn = ordered[index] + if (!addOn) continue + + const files = await addOn.getFiles() + if (files.some((file) => normalizeAttributionPath(file) === target)) { + return { + source: 'add-on', + sourceId: addOn.id, + sourceName: addOn.name, + } + } + } + + const frameworkFiles = await framework.getFiles() + if ( + frameworkFiles.some((file) => normalizeAttributionPath(file) === target) + ) { + return { + source: 'framework', + sourceId: framework.id, + sourceName: framework.name, + } + } + + return null +} + +function integrationInjections( + integration: IntegrationWithSource, +): Array { + const source = { + sourceId: integration._sourceId, + sourceName: integration._sourceName, + } + const injections: Array = [] + const appliesTo = (path: string) => { + if (integration.type === 'vite-plugin') return path.includes('vite.config') + if ( + integration.type === 'provider' || + integration.type === 'root-provider' || + integration.type === 'devtools' + ) { + return path.includes('__root') || path.includes('root.tsx') + } + return false + } + + if (integration.import) { + const prefix = integration.import.split(' from ')[0] + injections.push({ + matches: (line) => line.includes(prefix), + appliesTo, + source, + }) + } + + const code = integration.code || integration.jsName + if (code) { + injections.push({ + matches: (line) => line.includes(code), + appliesTo, + source, + }) + } + + return injections +} + +function dependencyInjection(dep: DependencyAttribution): InjectionPattern { + return { + matches: (line) => line.includes(`"${dep.name}"`), + appliesTo: (path) => path.endsWith('package.json'), + source: { sourceId: dep.sourceId, sourceName: dep.sourceName }, + } +} + +function isRecord(value: unknown): value is Record { + return typeof value === 'object' && value !== null +} + +function readStringRecord(value: unknown): Record | undefined { + if (!isRecord(value)) return undefined + + const result: Record = {} + for (const [key, entryValue] of Object.entries(value)) { + if (typeof entryValue !== 'string') { + return undefined + } + result[key] = entryValue + } + + return result +} + +function collectPackageTemplateDependencies( + packageTemplate: string, + source: AttributionSource, +): Array { + try { + const value: unknown = JSON.parse( + packageTemplate.replace(/"[^"]*<%[^%]*%>[^"]*"/g, '""'), + ) + if (!isRecord(value)) return [] + + return [ + ...collectDependencies( + readStringRecord(value.dependencies), + 'dependency', + source, + ), + ...collectDependencies( + readStringRecord(value.devDependencies), + 'devDependency', + source, + ), + ] + } catch { + return [] + } +} + +function collectDependencies( + deps: Record | undefined, + type: 'dependency' | 'devDependency', + source: AttributionSource, +): Array { + if (!deps) return [] + + return Object.entries(deps).map(([name, version]) => ({ + name, + version, + type, + ...source, + })) +} + +async function computeAttribution(input: { + framework: Framework + chosenAddOns: Array + starter?: Starter + files: Record +}): Promise { + const { framework, chosenAddOns, starter, files } = input + + const integrations = chosenAddOns.flatMap((addOn) => + (addOn.integrations ?? []).map((integration) => ({ + ...integration, + _sourceId: addOn.id, + _sourceName: addOn.name, + })), + ) + + const dependencies = chosenAddOns.flatMap((addOn) => { + const source = { sourceId: addOn.id, sourceName: addOn.name } + + return [ + ...collectDependencies( + addOn.packageAdditions?.dependencies, + 'dependency', + source, + ), + ...collectDependencies( + addOn.packageAdditions?.devDependencies, + 'devDependency', + source, + ), + ...(addOn.packageTemplate + ? collectPackageTemplateDependencies(addOn.packageTemplate, source) + : []), + ] + }) + + const injections = [ + ...integrations.flatMap(integrationInjections), + ...dependencies.map(dependencyInjection), + ] + const attributedFiles: Record = {} + + for (const [filePath, content] of Object.entries(files)) { + const provenance = await getFileProvenance( + filePath, + framework, + chosenAddOns, + starter, + ) + if (!provenance) continue + + const lines = content.split('\n') + const relevant = injections.filter((injection) => + injection.appliesTo(filePath), + ) + const injectedLines = new Map() + + for (const injection of relevant) { + lines.forEach((line, index) => { + if (injection.matches(line) && !injectedLines.has(index + 1)) { + injectedLines.set(index + 1, injection.source) + } + }) + } + + attributedFiles[filePath] = { + content, + provenance, + lineAttributions: lines.map((_, index) => { + const line = index + 1 + const injected = injectedLines.get(line) + + return injected + ? { + line, + sourceId: injected.sourceId, + sourceName: injected.sourceName, + type: 'injected', + } + : { + line, + sourceId: provenance.sourceId, + sourceName: provenance.sourceName, + type: 'original', + } + }), + } + } + + return { attributedFiles, dependencies } +} + // Line attribution interface (used by the UI) export interface LineAttribution { lineNumber: number @@ -327,11 +642,10 @@ export async function compileWithAttributionHandler( const attributedFiles: Record = {} for (const [filePath, ctaFile] of Object.entries(attribution.attributedFiles)) { - const file = ctaFile as CtaAttributedFile attributedFiles[filePath] = { path: filePath, - content: file.content, - attributions: file.lineAttributions.map((attr: CtaLineAttribution) => { + content: ctaFile.content, + attributions: ctaFile.lineAttributions.map((attr) => { const isBaseline = baselineSourceIds.has(attr.sourceId) return { lineNumber: attr.line, @@ -346,10 +660,10 @@ export async function compileWithAttributionHandler( // For files that weren't in the attribution (e.g., generated files), use base attribution for (const [filePath, content] of Object.entries(output.files)) { if (!attributedFiles[filePath]) { - const lines = (content as string).split('\n') + const lines = content.split('\n') attributedFiles[filePath] = { path: filePath, - content: content as string, + content, attributions: lines.map((_, i) => ({ lineNumber: i + 1, featureId: 'base', diff --git a/src/builder/api/config.ts b/src/builder/api/config.ts index 9e9428dfc..d31cb7820 100644 --- a/src/builder/api/config.ts +++ b/src/builder/api/config.ts @@ -1,4 +1,4 @@ -import { getFrameworkById } from '@tanstack/create' +import { getFrameworkById } from '@tanstack/create/edge' import { normalizeFrameworkId, type FrameworkId } from '../frameworks' export { type FrameworkId, FRAMEWORKS, normalizeFrameworkId } from '../frameworks' diff --git a/src/builder/api/features.ts b/src/builder/api/features.ts index 87848663a..0e95781f0 100644 --- a/src/builder/api/features.ts +++ b/src/builder/api/features.ts @@ -1,4 +1,4 @@ -import { getAllAddOns, type AddOn, type AddOnOption } from '@tanstack/create' +import { getAllAddOns, type AddOn, type AddOnOption } from '@tanstack/create/edge' import { getFramework, DEFAULT_MODE, DEFAULT_REQUIRED_ADDONS, type FrameworkId } from './config' import { partners } from '~/utils/partners' diff --git a/src/builder/api/remote.ts b/src/builder/api/remote.ts index 22a5b64b1..51dd4f366 100644 --- a/src/builder/api/remote.ts +++ b/src/builder/api/remote.ts @@ -1,4 +1,5 @@ -import { loadRemoteAddOn, loadStarter } from '@tanstack/create' +import { loadRemoteAddOn } from '@tanstack/create/dist/edge-add-ons.js' +import type { AddOn } from '@tanstack/create/edge' import { type AddOnCompiled, type StarterCompiled } from './compile' import { validateRemoteUrl } from '~/utils/url-validation.server' @@ -12,6 +13,104 @@ export interface RemoteTemplateResponse { error?: string } +function toIntegrationCompiled(addOn: AddOn): AddOnCompiled { + return { + id: addOn.id, + name: addOn.name, + description: addOn.description, + type: addOn.type, + phase: addOn.phase, + modes: addOn.modes, + files: addOn.files ?? {}, + deletedFiles: addOn.deletedFiles ?? [], + dependsOn: addOn.dependsOn, + options: addOn.options, + link: addOn.link, + tailwind: addOn.tailwind ?? true, + requiresTailwind: addOn.tailwind === true ? undefined : !addOn.tailwind, + warning: addOn.warning, + priority: addOn.priority, + author: addOn.author, + version: addOn.version, + license: addOn.license, + category: addOn.category, + packageAdditions: addOn.packageAdditions, + } +} + +function isRecord(value: unknown): value is Record { + return typeof value === 'object' && value !== null +} + +function isStringArray(value: unknown): value is Array { + return Array.isArray(value) && value.every((item) => typeof item === 'string') +} + +function isStringRecord(value: unknown): value is Record { + return ( + isRecord(value) && + Object.values(value).every((item) => typeof item === 'string') + ) +} + +function readString(record: Record, key: string) { + const value = record[key] + return typeof value === 'string' ? value : undefined +} + +function readOptionalBoolean(record: Record, key: string) { + const value = record[key] + return typeof value === 'boolean' ? value : undefined +} + +function readStringRecord(record: Record, key: string) { + const value = record[key] + return isStringRecord(value) ? value : undefined +} + +function toRemoteTemplate(value: unknown, url: string): StarterCompiled | null { + if (!isRecord(value)) return null + + const name = readString(value, 'name') + const description = readString(value, 'description') + const framework = readString(value, 'framework') + const mode = readString(value, 'mode') + const files = readStringRecord(value, 'files') + + if (!name || !description || !framework || !mode || !files) { + return null + } + + return { + id: readString(value, 'id') ?? url, + name, + description, + type: 'starter', + phase: 'setup', + modes: isStringArray(value.modes) ? value.modes : [mode], + files, + deletedFiles: isStringArray(value.deletedFiles) ? value.deletedFiles : [], + framework, + mode, + typescript: readOptionalBoolean(value, 'typescript') ?? true, + tailwind: readOptionalBoolean(value, 'tailwind') ?? true, + banner: readString(value, 'banner'), + dependsOn: isStringArray(value.dependsOn) ? value.dependsOn : undefined, + } +} + +async function loadRemoteTemplate(url: string) { + const response = await fetch(url) + const json: unknown = await response.json() + const template = toRemoteTemplate(json, url) + + if (!template) { + throw new Error(`Invalid starter: ${url}`) + } + + return template +} + export async function loadRemoteIntegrationHandler( url: string, ): Promise { @@ -26,11 +125,7 @@ export async function loadRemoteIntegrationHandler( try { const addOn = await loadRemoteAddOn(validation.normalizedUrl!) - const integration = { - ...addOn, - files: addOn.files || {}, - deletedFiles: [], - } as AddOnCompiled + const integration = toIntegrationCompiled(addOn) return { integration } } catch (error) { return { @@ -53,14 +148,7 @@ export async function loadRemoteTemplateHandler( } try { - const starter = await loadStarter(validation.normalizedUrl!) - const template = { - ...starter, - files: starter.files || {}, - deletedFiles: starter.deletedFiles || [], - phase: 'setup' as const, - modes: [starter.mode || 'file-router'], - } as unknown as StarterCompiled + const template = await loadRemoteTemplate(validation.normalizedUrl!) return { template } } catch (error) { return { diff --git a/src/builder/api/suggest.ts b/src/builder/api/suggest.ts index 56598453f..f2e0a46db 100644 --- a/src/builder/api/suggest.ts +++ b/src/builder/api/suggest.ts @@ -1,4 +1,4 @@ -import { getAllAddOns, type AddOn } from '@tanstack/create' +import { getAllAddOns, type AddOn } from '@tanstack/create/edge' import type { ProjectDefinition } from './compile' import { getFramework, DEFAULT_MODE } from './config' diff --git a/src/builder/api/validate.ts b/src/builder/api/validate.ts index 144bc528d..36aaf90ba 100644 --- a/src/builder/api/validate.ts +++ b/src/builder/api/validate.ts @@ -4,7 +4,7 @@ * Uses cta-engine to validate project definitions. */ -import { getAllAddOns, type AddOn } from '@tanstack/create' +import { getAllAddOns, type AddOn } from '@tanstack/create/edge' import type { ProjectDefinition } from './compile' import { getFramework, DEFAULT_MODE } from './config' diff --git a/src/components/ApplicationStarter.tsx b/src/components/ApplicationStarter.tsx index f620215fa..b2a4a6c82 100644 --- a/src/components/ApplicationStarter.tsx +++ b/src/components/ApplicationStarter.tsx @@ -1,24 +1,19 @@ import * as React from 'react' import { ClientOnly } from '@tanstack/react-router' import { + ArrowRight, + Check, ChevronDown, Copy, Download, Loader2, Rocket, - Sparkles, - Wand2, } from 'lucide-react' import { twMerge } from 'tailwind-merge' import anthropicDarkLogo from '~/images/anthropic-dark.svg' import anthropicLightLogo from '~/images/anthropic-light.svg' -import cloudflareBlackLogo from '~/images/cloudflare-black.svg' -import cloudflareWhiteLogo from '~/images/cloudflare-white.svg' -import netlifyDarkLogo from '~/images/netlify-dark.svg' -import netlifyLightLogo from '~/images/netlify-light.svg' import openaiDarkLogo from '~/images/openai-dark.svg' import openaiLightLogo from '~/images/openai-light.svg' -import railwayBlackLogo from '~/images/railway-black.svg' import type { ApplicationStarterContext, ApplicationStarterResult, @@ -37,20 +32,16 @@ import { StarterTooltipProvider, } from '~/components/application-builder/parts' import { + buildStarterPromptDeployUrl, toneClasses, type ApplicationStarterBuilderIntegration, + type StarterPromptDeployProvider, type StarterTone, } from '~/components/application-builder/shared' import { useApplicationBuilder } from '~/components/application-builder/useApplicationBuilder' -import { - deploymentProviderIds, - type DeploymentProviderId, - useDeploymentProviderPlacement, -} from '~/utils/useDeploymentProviderPlacement' import { Button, GitHub } from '~/ui' export interface ApplicationStarterProps { - alwaysShowPostAnalysisSection?: boolean builderIntegration?: ApplicationStarterBuilderIntegration className?: string context: ApplicationStarterContext @@ -63,7 +54,7 @@ export interface ApplicationStarterProps { onDirtyStateChange?: (dirty: boolean) => void onResolvedResult?: (result: ApplicationStarterResult | null) => void primaryActionLabel?: string - primaryButtonColor?: 'cyan' | 'emerald' | 'purple' | 'yellow' + revealOptionsImmediately?: boolean secondaryActionLabel?: string showCliExportActions?: boolean showPromptPreview?: boolean @@ -88,8 +79,51 @@ const LazyDeployDialog = React.lazy(() => const starterPackageManagers = ['pnpm', 'npm', 'yarn', 'bun'] as const const starterToolchains = ['biome', 'eslint'] as const +type HostingDeployPartnerId = 'cloudflare' | 'lovable' | 'netlify' | 'railway' +type StarterTransientAction = + | 'claude' + | 'clone' + | 'codex' + | 'cursor' + | 'deploy' + | 'download' + | 'netlify' + +const hostingDeployPartnerLabels: Record = { + cloudflare: 'Cloudflare', + lovable: 'Lovable', + netlify: 'Netlify', + railway: 'Railway', +} + +function getHostingDeployPartnerId( + partnerId: string, +): HostingDeployPartnerId | undefined { + switch (partnerId) { + case 'cloudflare': + case 'lovable': + case 'netlify': + case 'railway': + return partnerId + default: + return undefined + } +} + +function getPromptDeployProvider( + partnerId: HostingDeployPartnerId, +): StarterPromptDeployProvider | undefined { + switch (partnerId) { + case 'lovable': + case 'netlify': + return partnerId + case 'cloudflare': + case 'railway': + return undefined + } +} + export function ApplicationStarter({ - alwaysShowPostAnalysisSection = false, builderIntegration, className, context, @@ -101,8 +135,8 @@ export function ApplicationStarter({ mode = 'full', onDirtyStateChange, onResolvedResult, - primaryActionLabel = 'Generate Prompt', - primaryButtonColor, + primaryActionLabel = 'Copy Prompt', + revealOptionsImmediately = false, secondaryActionLabel = 'Build with Netlify', showCliExportActions = true, showPromptPreview = true, @@ -112,29 +146,22 @@ export function ApplicationStarter({ tone = 'cyan', }: ApplicationStarterProps) { const { - analysis, - anonymousGenerationQuota, copiedKind, copyResultValue, dismissPromptCopyNotice, deployDialogProvider, - enableLuckyActions, generatePrompt, hasGeneratedPrompt, - hasFreshAnalysis, + hasRevealedOptions, hasInput, hasMigrationRepositoryUrlError, input, isDeployDialogOpen, - isAnalysisStale, - isAnalyzing, isGenerating, isGeneratingNetlify, isGeneratingPrompt, - isLocked, isModHeld, loadingPhrase, - lockMessage, migrationRepositoryInputRef, migrationRepositoryUrl, navigateToResult, @@ -142,7 +169,7 @@ export function ApplicationStarter({ openCursorStart, openCodexStart, openDeployDialog, - openLogin, + openLovableStart, openNetlifyStart, partnerSuggestions, promptCopyNotice, @@ -154,10 +181,8 @@ export function ApplicationStarter({ selectedToolchain, setIsDeployDialogOpen, setIsModHeld, - setSessionMode, showMigrationRepositoryInput, trackActivation, - showLuckyActions, submitCurrentInput, suggestions, toggleLibrary, @@ -173,139 +198,120 @@ export function ApplicationStarter({ mode, onDirtyStateChange, onResolvedResult, + revealOptionsImmediately, suggestionContext, }) - const orderedDeploymentProviders = useDeploymentProviderPlacement({ - availableProviders: deploymentProviderIds, - surface: `application_starter_deploy_actions:${context}`, - }) const palette = toneClasses[tone] const compact = mode === 'compact' - const buttonColor = primaryButtonColor ?? palette.button const [showMoreActions, setShowMoreActions] = React.useState(false) + const [pendingHostingDeployPartner, setPendingHostingDeployPartner] = + React.useState(null) + const [transientAction, setTransientAction] = + React.useState(null) const [hasFocusedPromptInput, setHasFocusedPromptInput] = React.useState(false) const [isPromptFocused, setIsPromptFocused] = React.useState(false) const [isMacShortcutPlatform, setIsMacShortcutPlatform] = React.useState(false) - const [showConfidentOptions, setShowConfidentOptions] = React.useState(false) const [showPackageManagerOptions, setShowPackageManagerOptions] = React.useState(false) - const [showToolchainOptions, setShowToolchainOptions] = React.useState( - alwaysShowPostAnalysisSection, - ) - const canContinue = + const [showToolchainOptions, setShowToolchainOptions] = React.useState(false) + const canRevealOptions = hasInput && !hasMigrationRepositoryUrlError && !isGenerating - const canUseLuckyAction = - hasInput && - !hasMigrationRepositoryUrlError && - !isGenerating && - (!showLuckyActions || isAnalysisStale) - const canUseConfidentAction = - alwaysShowPostAnalysisSection && - hasInput && - !hasMigrationRepositoryUrlError && - !isGenerating && - !hasFreshAnalysis && - !hasGeneratedPrompt && - !showConfidentOptions const canUseFinalActions = - (hasFreshAnalysis || showLuckyActions || showConfidentOptions) && + hasRevealedOptions && hasInput && !hasMigrationRepositoryUrlError && !isGenerating - const renderDeploymentProviderButton = (provider: DeploymentProviderId) => { - switch (provider) { - case 'cloudflare': - return ( - - ) - case 'netlify': - return ( - - ) - case 'railway': - return ( - - ) + const transientActionTimerRef = React.useRef | null>(null) + const showTransientActionFeedback = React.useCallback( + (action: StarterTransientAction) => { + if (transientActionTimerRef.current) { + clearTimeout(transientActionTimerRef.current) + } + + setTransientAction(action) + transientActionTimerRef.current = setTimeout(() => { + setTransientAction((current) => (current === action ? null : current)) + transientActionTimerRef.current = null + }, 1800) + }, + [], + ) + const selectedHostingDeployPartner = React.useMemo( + () => + selectedPartners.flatMap((partnerId) => { + const hostingPartnerId = getHostingDeployPartnerId(partnerId) + + return hostingPartnerId ? [hostingPartnerId] : [] + })[0], + [selectedPartners], + ) + const isSelectedHostingDeployPending = + pendingHostingDeployPartner !== null && + pendingHostingDeployPartner === selectedHostingDeployPartner + const isDeployFeedbackActive = + isSelectedHostingDeployPending || transientAction === 'deploy' + const isPromptCopied = copiedKind === 'prompt' + const isCommandCopied = copiedKind === 'command' + const selectedPromptDeployProvider = selectedHostingDeployPartner + ? getPromptDeployProvider(selectedHostingDeployPartner) + : undefined + const selectedHostingDeployHref = React.useMemo( + () => + selectedPromptDeployProvider && result?.prompt + ? buildStarterPromptDeployUrl( + selectedPromptDeployProvider, + result.prompt, + ) + : undefined, + [result?.prompt, selectedPromptDeployProvider], + ) + const trackSelectedHostingDeployLink = React.useCallback(() => { + if (!selectedHostingDeployPartner) { + return + } + + trackActivation({ + action: + selectedHostingDeployPartner === 'netlify' ? 'netlify_start' : 'deploy', + surface: 'result_panel', + provider: selectedHostingDeployPartner, + }) + }, [selectedHostingDeployPartner, trackActivation]) + const deployToSelectedHostingPartner = async () => { + if (!selectedHostingDeployPartner) { + return + } + + setPendingHostingDeployPartner(selectedHostingDeployPartner) + + try { + switch (selectedHostingDeployPartner) { + case 'cloudflare': + await openDeployDialog('cloudflare') + break + case 'lovable': + await openLovableStart() + break + case 'netlify': + await openNetlifyStart() + break + case 'railway': + await openDeployDialog('railway') + break + } + } finally { + setPendingHostingDeployPartner(null) } } - const renderGeneratePromptButton = () => ( + const renderCopyPromptButton = () => ( ) - const showPostAnalysisSection = - alwaysShowPostAnalysisSection || hasFreshAnalysis || hasGeneratedPrompt - const showActionSection = - alwaysShowPostAnalysisSection || hasFreshAnalysis || showLuckyActions - const postAnalysisSectionDisabled = - !hasFreshAnalysis && !hasGeneratedPrompt && !showConfidentOptions - const actionSectionDisabled = - alwaysShowPostAnalysisSection && - !hasFreshAnalysis && - !showLuckyActions && - !showConfidentOptions - const analysisMessage = isAnalysisStale - ? 'Prompt changed. Analyze again to refresh recommendations.' - : analysis - ? 'Review or adjust the selected chips below, then generate the final prompt.' - : null + const renderCopyCliCommandButton = () => ( + + ) + const renderSelectedHostingDeployButton = () => { + if (!selectedHostingDeployPartner) { + return null + } + + if (selectedHostingDeployHref) { + const disabled = !canUseFinalActions || transientAction === 'deploy' + + return ( + + ) + } + + return ( + + ) + } + const showOptionsSection = hasRevealedOptions || hasGeneratedPrompt + const showActionSection = hasRevealedOptions || hasGeneratedPrompt + + React.useEffect(() => { + return () => { + if (transientActionTimerRef.current) { + clearTimeout(transientActionTimerRef.current) + } + } + }, []) React.useEffect(() => { if (typeof navigator === 'undefined') { @@ -350,8 +447,12 @@ export function ApplicationStarter({ { - void submitCurrentInput() + onSubmit={() => { + if (showActionSection) { + void generatePrompt() + } else { + void submitCurrentInput() + } }} onModKeyChange={setIsModHeld} promptFocused={isPromptFocused} @@ -471,49 +572,30 @@ export function ApplicationStarter({ /> -
    - - {analysisMessage ? ( -
    - {analysisMessage} -
    - ) : null} -
    + {!showOptionsSection ? ( +
    + +
    + ) : null} - {showPostAnalysisSection ? ( - - + + + {showOptionsSection ? ( -
    +
    TanStack Libraries @@ -584,49 +666,15 @@ export function ApplicationStarter({ ))}
    -
    - - - ) : null} + ) : null} + + ) : (
    - {isLocked ? ( -
    -
    -
    - Sign in to unlock more generations -
    -
    - {lockMessage || - 'Anonymous generations are limited. Sign in to keep going.'} -
    -
    - -
    -
    -
    - ) : null} - -
    +

    @@ -699,7 +747,11 @@ export function ApplicationStarter({ onClick={(event) => { if (enableHotkeys && isModHeld) { event.preventDefault() - void generatePrompt() + if (showActionSection) { + void generatePrompt() + } else { + void submitCurrentInput() + } } }} rows={4} @@ -710,89 +762,33 @@ export function ApplicationStarter({ )} /> -
    -
    - - {!showActionSection ? ( + {!showActionSection ? ( +
    +
    - ) : null} - {canUseConfidentAction ? ( - - ) : null} - {analysisMessage ? ( -
    - {analysisMessage} -
    - ) : null} +
    -
    + ) : null}
    - {showPostAnalysisSection ? ( - - -
    + + + {showOptionsSection ? ( +
    -
    +
    TanStack Libraries @@ -868,85 +864,63 @@ export function ApplicationStarter({
    - - {footerContent ? (
    {footerContent}
    ) : null}
    - - - ) : null} - - {showActionSection ? ( - - -
    -
    -
    - {showCliExportActions ? ( -
    -
    - Deploy to -
    -
    - {orderedDeploymentProviders.map((provider) => - renderDeploymentProviderButton(provider), - )} -
    + ) : null} + + - {!showMoreActions ? ( - - ) : null} -
    - ) : ( - <> + + + {showActionSection ? ( +
    +
    + {!showCliExportActions ? ( +
    + {!selectedHostingDeployPartner ? ( + ) : null} - - - )} + )} + {transientAction === 'codex' + ? 'Opening...' + : 'Open in Codex'} + +
    + ) : null} + +
    + {renderSelectedHostingDeployButton()} + {renderCopyPromptButton()} + {showCliExportActions + ? renderCopyCliCommandButton() + : null}
    - {showCliExportActions && showMoreActions ? ( -
    + {showCliExportActions && !showMoreActions ? ( +
    +
    + ) : null} + {showCliExportActions && showMoreActions ? ( +
    ) : null} - -
    - {renderGeneratePromptButton()} -
    - - - ) : null} + ) : null} + + {showPromptPreview && hasGeneratedPrompt ? (
    @@ -1113,7 +1149,7 @@ function CursorIcon({ className }: { className?: string }) { ) } -function AnalyzeShortcutHint({ isMac }: { isMac: boolean }) { +function SubmitShortcutHint({ isMac }: { isMac: boolean }) { return ( @@ -1156,37 +1192,8 @@ function StarterCustomizationSection({ )} /> - {children} + {open ? children : null}
    ) } - -function AnonymousGenerationLimitNotice({ - quota, -}: { - quota: { - limit: number - remaining: number - resetAt: string - } | null -}) { - if (!quota) { - return null - } - - if (quota.limit >= 1_000_000) { - return null - } - - return ( -
    - {quota.remaining > 0 - ? `${quota.remaining} anonymous generation${quota.remaining === 1 ? '' : 's'} left today.` - : 'No anonymous generations left today.'}{' '} - - Sign in to remove the limit. - -
    - ) -} diff --git a/src/components/ApplicationStarterHotkeys.client.tsx b/src/components/ApplicationStarterHotkeys.client.tsx index 22a3000a5..4bcf5f923 100644 --- a/src/components/ApplicationStarterHotkeys.client.tsx +++ b/src/components/ApplicationStarterHotkeys.client.tsx @@ -2,13 +2,13 @@ import * as React from 'react' import { useHeldKeys, useHotkey } from '@tanstack/react-hotkeys' interface ApplicationStarterHotkeysProps { - onAnalyze: () => void + onSubmit: () => void onModKeyChange: (isHeld: boolean) => void promptFocused: boolean } export function ApplicationStarterHotkeys({ - onAnalyze, + onSubmit, onModKeyChange, promptFocused, }: ApplicationStarterHotkeysProps) { @@ -20,7 +20,7 @@ export function ApplicationStarterHotkeys({ return } - onAnalyze() + onSubmit() }) React.useEffect(() => { diff --git a/src/components/BlogCard.tsx b/src/components/BlogCard.tsx index 9f7811031..c1e98148b 100644 --- a/src/components/BlogCard.tsx +++ b/src/components/BlogCard.tsx @@ -6,7 +6,7 @@ import { formatPublishedDate, getBlogLibraries, } from '~/utils/blog' -import { getNetlifyImageUrl } from '~/utils/netlifyImage' +import { getOptimizedImageUrl } from '~/utils/optimizedImage' export type BlogCardPost = { slug: string @@ -50,7 +50,12 @@ export function BlogCard({ post, showLibraryBadges = true }: BlogCardProps) { {headerImage ? (
    { @@ -93,7 +96,15 @@ export function CodeExplorer({ isFullScreen ? 'max-h-[90dvh]' : 'max-h-[80dvh]', )} > - {currentCodeRsc} + + + {currentCode} + +
    } - > - - - ) -} - -function DeferredApplicationStarterFallback({ - mode = 'full', -}: { - mode?: ApplicationStarterProps['mode'] -}) { - if (mode === 'compact') { - return ( -