diff --git a/.codacy.yml b/.codacy.yml deleted file mode 100644 index 3785a50f6..000000000 --- a/.codacy.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -exclude_paths: - - "migrations/**" diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml deleted file mode 100644 index 331742e03..000000000 --- a/.github/actionlint.yaml +++ /dev/null @@ -1,5 +0,0 @@ -self-hosted-runner: - labels: - - blacksmith-2vcpu-ubuntu-2404 - - blacksmith-32vcpu-ubuntu-2404 - - blacksmith-32vcpu-ubuntu-2404-arm diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml deleted file mode 100644 index 91e80c9dc..000000000 --- a/.markdownlint-cli2.yaml +++ /dev/null @@ -1,31 +0,0 @@ -config: - default: true - MD007: false - MD009: false - MD010: false - MD012: false - MD013: false - MD001: false - MD022: false - MD024: false - MD025: false - MD028: false - MD031: false - MD032: false - MD033: false - MD034: false - MD036: false - MD040: false - MD041: false - MD046: false - MD060: false - -frontMatter: "^---[\\s\\S]*?---" -gitignore: true -globs: - - "**/*.{md,mdx}" -ignores: - - ".design-sync/**" - - "node_modules/**" - - ".turbo/**" - - "dist/**" diff --git a/.orchestration/imported-table-raster-ci-fix.md b/.orchestration/imported-table-raster-ci-fix.md deleted file mode 100644 index e7bf3a4f1..000000000 --- a/.orchestration/imported-table-raster-ci-fix.md +++ /dev/null @@ -1,39 +0,0 @@ -# Imported-table raster CI fix - -## Root cause - -Hosted runs `34007560930` (PR #3471) and `34007788443` (PR #3472) failed only in -`tests/e2e/specs/imported-table.spec.ts` with `horizontal: 18` instead of Plan 16's -`horizontal: 17`; text and vertical checks passed. - -The PDF operator dump from the failed hosted artifact showed 29 table path records matching the Plan 16 contract -(17 horizontal, 12 vertical), followed by an unrelated `constructPath` `endPath` bbox: -`[0, 19.65, 358.93, 20.65]`. Its stroke color was reported as `#cc00cc` only because the helper retained the -last table stroke color. It was a later red section-divider fill/no-paint path, not an extra table border. The old -helper classified every thin bbox after the last matching color state, so it counted this false positive. - -The table's explicit width is stable at 300pt, while row height legitimately changes from 30pt to 31pt after the -`Beta!` edit. The helper therefore scopes candidate paths by the fixture's 300pt horizontal grid envelope, not by a -row-height tolerance. Missing or duplicated paths inside that envelope still change the exact 17/12 contract. - -## Change - -- Added `tests/e2e/fixtures/pdf-borders.ts` with deterministic `countTableBorderGeometry` filtering. -- Updated browser/server PDF inspection in `tests/e2e/specs/imported-table.spec.ts` to use the helper. -- Added `tests/e2e/fixtures/pdf-borders.test.ts`; regression proves old stale-color counting returns 2 horizontal - paths while topology-scoped counting returns 1. - -## Verification - -- Intent skill inventory: 7 packages, 26 skills; no matching local skill for this E2E/PDF helper. -- Focused helper regression: 1 file, 1 passed. -- Dedicated imported-table E2E: 2 consecutive runs, each 1 passed; both exercise initial, unrelated-edit, and table-edit - stages plus browser and server PDF exports. -- Production build: 3/3 tasks successful. -- Web typecheck via `rtk proxy pnpm --filter web typecheck`: passed (`tsgo --noEmit`). -- Turbo boundaries: 1,443 files across 20 packages, no issues. -- Targeted Biome: 3 files, no issues. -- `git diff --check`: passed. - -The root `pnpm typecheck` wrapper was also tried but invokes an incompatible `tsc` path and reports TS5096 for -`allowImportingTsExtensions`; the package's documented `tsgo --noEmit` typecheck passes. diff --git a/.orchestration/plan-21-implementation.md b/.orchestration/plan-21-implementation.md deleted file mode 100644 index 07e19e751..000000000 --- a/.orchestration/plan-21-implementation.md +++ /dev/null @@ -1,33 +0,0 @@ -# Plan 21 implementation evidence - -## Revision and scope - -- Worktree: `issue-3060-section-heading-visibility` -- Base: current `origin/main` at dispatch, `2a4a1583b` (`fix(pdf): restore Gengar skill rating order (#3473)`) -- Product decisions applied: Q1 explicit Show heading toggle; Q2 Move-to continuations default visible; Q3 visual omission in preview/PDF/DOCX with accessible outline labels retained. -- No `.codegraph/` directory exists in this worktree, so CodeGraph was skipped after the required presence check. -- Intent discovery ran before edits; no matching local skill was available for this schema/PDF/DOCX/web change. - -## Implementation - -- Added backward-compatible `showHeading` section data for summary, built-ins, and custom sections. `parseResumeData` normalizes absent legacy values to `true`; explicit `false` survives round trips. -- Added heading toggles to built-in/summary and custom section menus. Toggle mutations use `useUpdateResumeData`, preserving undo/autosave/save/reload behavior; legacy absent values are treated as visible. Existing lock fieldset remains authoritative. -- Move-to-created custom sections explicitly set `showHeading: true`, independent of source heading state or copied title. -- `SectionShell` omits complete heading/icon/decoration output when disabled in both icon and no-icon branches. Empty titles still resolve localized defaults. -- DOCX section renderers omit visible heading paragraphs for summary, built-in, and custom sections while retaining content. Screen-reader mirror continues to expose section labels regardless of visual setting. -- Added characterization for Semantic CSS `section[id="..."] section-heading { display: none; }`; body remains while heading is omitted. -- Updated default/sample fixtures, generated schema references, recovery hashes, and compatibility tests; existing Gengar renderer/order changes remain untouched. - -## Verification - -- `pnpm --filter @reactive-resume/schema test`: 9 files, 132 tests passed. -- `pnpm --filter @reactive-resume/pdf test`: 81 files, 1059 tests passed. -- `pnpm --filter @reactive-resume/docx test`: 9 files, 76 tests passed. -- `pnpm --filter web test`: 135 files, 942 tests passed. -- `pnpm test`: full Turborepo suite passed (19 successful tasks; 10 cache hits). -- Affected typechecks passed: schema, PDF, DOCX, web. -- Focused menu, Move-to, accessible-outline, schema, PDF semantic, and DOCX renderer tests passed. -- `pnpm exec turbo boundaries`: passed (1108 files, 20 packages). -- Read-only `pnpm exec biome check` on 22 changed source/test files: passed; no write-capable `pnpm check` run. -- `git diff --check`: passed. -- Final diff review completed; local commit follows. diff --git a/.orchestration/plan-23-item-pagination-blocker.md b/.orchestration/plan-23-item-pagination-blocker.md deleted file mode 100644 index cc2b05a86..000000000 --- a/.orchestration/plan-23-item-pagination-blocker.md +++ /dev/null @@ -1,32 +0,0 @@ -# Plan 23 item-pagination execution evidence - -## Scope - -Plan 23 steps 1–3 were evaluated from `origin/main` at `368858a56` (Plan 21 / PR #3477 merged). Widow/orphan UI and authored-page continuation guidance remain deferred from this execution, and Semantic CSS was not changed. - -## Durable diagnostic matrix - -`packages/pdf/src/templates/shared/item-pagination.test.tsx` renders physical PDF pages and checks numbered tokens exactly once for: - -- an item that fits remaining space; -- an item that fits a full page but not the remaining space; -- an oversized item taller than one page; -- a two-line paragraph at a boundary; -- nested bullets; and -- built-in plus custom items in an Azurill sidebar/main-column overflow fixture. - -The fixture also keeps authored `metadata.layout.pages` separate from renderer-generated physical pages. - -The current deterministic baseline is: fit remainder = 1 physical page; full-page-but-not-remainder = 3 pages with sampled tokens on pages 2/2/3; oversized = 5 pages with sampled tokens on pages 1/3/5; two-line boundary = 2 pages; nested bullets = 1 page; Azurill built-in/custom/sidebar = 5 pages with sampled tokens on pages 1/4/5/5/1. Page numbers here are 1-based; every token still appears exactly once. - -## Concrete blocker - -React PDF's only available item-level keep-together primitive is `View wrap={false}`. A durable renderer fixture with 180 paragraph-like child views shows that a non-wrapping item cannot safely fall back when its content exceeds one page: the renderer omits the oversized tail instead of splitting it. Applying the same prop to shared `SectionItem` would therefore violate the lossless token requirement; no item schema flag or menu control was added. - -Do not estimate item height from HTML length, persist physical pages, alter existing Semantic CSS, or claim #3350 complete. A future implementation needs renderer-supported conditional keep-together behavior or an actual measured two-pass fallback that preserves every token. - -## Verification - -- `pnpm --filter @reactive-resume/pdf exec vitest run src/templates/shared/item-pagination.test.tsx`: 7 tests passed. -- No production source or schema changes made after the unsafe fallback was reproduced. -- Undo/persistence/lock UI coverage is intentionally absent because no item control was shipped; add it only when safe fallback exists. diff --git a/.orchestration/plan-27a-diagnostic.md b/.orchestration/plan-27a-diagnostic.md deleted file mode 100644 index a21098559..000000000 --- a/.orchestration/plan-27a-diagnostic.md +++ /dev/null @@ -1,157 +0,0 @@ -# Plan 27 Phase A diagnostic evidence - -Date: 2026-09-06 -Issue: [#3377](https://github.com/reactive-resume/reactive-resume/issues/3377)
-Revision: `2a4a1583b` (`origin/main` at run start) -Scope: Phase A, steps 1–2 only. No resolver, runtime behavior, or remote-source behavior changed. - -## Drift and authority - -- Worktree started clean and `HEAD` matched `origin/main`; `git diff origin/main...HEAD` was empty. -- Current catalog is `packages/fonts/src/webfontlist.json`. Its web font records point at both Google Fonts static assets and jsDelivr assets; “Google blocked” is not an offline proof. -- Browser preview is `apps/web/src/components/typography/font-display.tsx` and calls `FontFace.load()` against each catalog preview URL. -- Browser PDF preview/download is `apps/web/src/features/resume/export/pdf-document.tsx` → `@reactive-resume/pdf/browser`; registration is `packages/pdf/src/hooks/use-register-fonts.ts`. -- Server PDF is `apps/server/src/http/resume-pdf.ts` → `createResumePdfDownload`; Playwright browser routing cannot observe that process’s outbound font fetches. -- The issue is open and unmodified. PR #3455 is the approved planning PR; its plan/decision log grants execution of this bounded diagnostic and manifest evidence. - -## Deterministic fixture - -`tests/e2e/fixtures/offline-fonts.ts` seeds one disposable resume after sample creation. It writes the same text into basics and summary, hides the picture, selects IBM Plex Serif 400/700 for body and heading, and marks the row public for the server-PDF surface. - -The exact markers are versioned as `offline-font-scripts-v1`: - -| Marker | Script or coverage | -| --- | --- | -| `Latin punctuation • — “quotes” €` | Latin plus General Punctuation and currency | -| `简体中文` | Han / Simplified Chinese | -| `العربية` | Arabic | -| `עברית` | Hebrew | -| `ไทย` | Thai | -| `Emoji 🚀` | Emoji | - -`tests/e2e/specs/offline-fonts.spec.ts` is opt-in (`OFFLINE_FONT_DIAGNOSTIC=1`) so the normal PR E2E suite does not become network-dependent. Each surface creates a new browser context with persisted auth state, disabled service workers, and no prior browser cache. Every non-same-origin request is aborted and recorded as `{ hostname, path }`; query strings, fragments, headers, bodies, tokens, and full URLs never enter diagnostic output. Reports are attached as JSON and emitted with the same sanitized shape. - -The four surfaces are separate tests: - -1. Font picker preview opens Typography → Font Family and waits for lazy `FontFace` preview loads. -2. Builder PDF preview navigates to the builder, captures the active PDF canvas, and measures marker-local raster crops. -3. Browser PDF download uses the Export dialog, rasterizes the downloaded PDF, and measures marker-local crops when generation succeeds. -4. Server PDF calls the public PDF endpoint and records text-layer marker presence when generation succeeds. - -Builder/browser-PDF reports keep PDF text extraction as a separate `textLayerMarkers` signal; it does not prove visible glyph outlines. Raster evidence attaches a rendered PNG and per-marker crop metrics, failing for blank or tofu-like visible crops. Blocked browser font requests classify browser surfaces as `network-error`. The server report deliberately says `server-outbound-requests-unobservable-from-playwright`; its cold-network gate remains unresolved because server outbound capture and verifiable restart identity require external host-level controls. - -## Run protocol and cold-cache boundary - -Build and database setup follow `tests/e2e/README.md`. Run each surface in a separately restarted production server process so module-level PDF font registration state cannot leak between controls: - -```text -OFFLINE_FONT_DIAGNOSTIC=1 OFFLINE_FONT_DIAGNOSTIC_SERVER_RESTARTED=1 \ - pnpm exec playwright test tests/e2e/specs/offline-fonts.spec.ts --grep "picker preview" -``` - -Stop and restart the production server before repeating the command with `builder PDF`, `browser PDF`, and `server PDF` grep patterns. The environment used for this change had no built `apps/server/dist` or `apps/web/dist`, no running PostgreSQL instance, and no production server to restart, so the cold E2E matrix was not run. This is an explicit infrastructure blocker, not a pass claim. The test records `serverRestartFlag` only as caller input and labels it non-proof; it does not claim a completed cold-network gate. - -The current Playwright route guard cannot impose host-level egress denial on Node.js running the server. A genuinely cold server test therefore needs a separately restarted server plus host-level egress capture/deny (for example, a controlled network namespace or an approved outbound proxy). Do not infer server network behavior from an empty browser request list. - -## Administrator-hosted manifest proposal - -This is a proposal, not an asset download. It intentionally contains only the primary family and glyph fallbacks required by the fixture and current PDF fallback map, not the full catalog. - -```json -{ - "schemaVersion": "offline-fonts-v1", - "mode": "local-only", - "assetRoot": "/fonts/offline/v1", - "families": { - "IBM Plex Serif": { - "normal": { "400": "ibm-plex-serif/400.ttf", "700": "ibm-plex-serif/700.ttf" }, - "italic": { "400": "ibm-plex-serif/400-italic.ttf", "700": "ibm-plex-serif/700-italic.ttf" }, - "preview": "ibm-plex-serif/preview.ttf" - }, - "IBM Plex Sans": { - "normal": { "400": "ibm-plex-sans/400.ttf", "700": "ibm-plex-sans/700.ttf" }, - "italic": { "400": "ibm-plex-sans/400-italic.ttf", "700": "ibm-plex-sans/700-italic.ttf" }, - "preview": "ibm-plex-sans/preview.ttf" - }, - "Noto Serif": { - "normal": { "400": "noto-serif/400.ttf", "700": "noto-serif/700.ttf" }, - "italic": { "400": "noto-serif/400-italic.ttf", "700": "noto-serif/700-italic.ttf" }, - "preview": "noto-serif/preview.ttf" - }, - "Noto Sans": { - "normal": { "400": "noto-sans/400.ttf", "700": "noto-sans/700.ttf" }, - "italic": { "400": "noto-sans/400-italic.ttf", "700": "noto-sans/700-italic.ttf" }, - "preview": "noto-sans/preview.ttf" - }, - "Noto Sans SC": { "normal": { "400": "noto-sans-sc/400.ttf", "700": "noto-sans-sc/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-sc/preview.ttf" }, - "Noto Serif SC": { "normal": { "400": "noto-serif-sc/400.ttf", "700": "noto-serif-sc/700.ttf" }, "italic": "reuse-normal", "preview": "noto-serif-sc/preview.ttf" }, - "Noto Sans TC": { "normal": { "400": "noto-sans-tc/400.ttf", "700": "noto-sans-tc/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-tc/preview.ttf" }, - "Noto Serif TC": { "normal": { "400": "noto-serif-tc/400.ttf", "700": "noto-serif-tc/700.ttf" }, "italic": "reuse-normal", "preview": "noto-serif-tc/preview.ttf" }, - "Noto Sans JP": { "normal": { "400": "noto-sans-jp/400.ttf", "700": "noto-sans-jp/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-jp/preview.ttf" }, - "Noto Serif JP": { "normal": { "400": "noto-serif-jp/400.ttf", "700": "noto-serif-jp/700.ttf" }, "italic": "reuse-normal", "preview": "noto-serif-jp/preview.ttf" }, - "Noto Sans KR": { "normal": { "400": "noto-sans-kr/400.ttf", "700": "noto-sans-kr/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-kr/preview.ttf" }, - "Noto Serif KR": { "normal": { "400": "noto-serif-kr/400.ttf", "700": "noto-serif-kr/700.ttf" }, "italic": "reuse-normal", "preview": "noto-serif-kr/preview.ttf" }, - "Noto Sans Arabic": { "normal": { "400": "noto-sans-arabic/400.ttf", "700": "noto-sans-arabic/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-arabic/preview.ttf" }, - "Noto Naskh Arabic": { "normal": { "400": "noto-naskh-arabic/400.ttf", "700": "noto-naskh-arabic/700.ttf" }, "italic": "reuse-normal", "preview": "noto-naskh-arabic/preview.ttf" }, - "Noto Sans Hebrew": { "normal": { "400": "noto-sans-hebrew/400.ttf", "700": "noto-sans-hebrew/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-hebrew/preview.ttf" }, - "Noto Sans Thai": { "normal": { "400": "noto-sans-thai/400.ttf", "700": "noto-sans-thai/700.ttf" }, "italic": "reuse-normal", "preview": "noto-sans-thai/preview.ttf" }, - "Noto Emoji": { "normal": { "400": "noto-emoji/400.ttf", "700": "noto-emoji/700.ttf" }, "italic": "reuse-normal", "preview": "noto-emoji/preview.ttf" } - } -} -``` - -### Candidate source, license, script, and size evidence - -Sizes are `Content-Length` bytes from a HEAD request to the exact current catalog assets on 2026-09-06. Responses reported `Content-Encoding: gzip`; these are compressed transfer-size estimates, not a claim about the eventual on-disk representation. Preview paths are aliases to the selected 400 face and add no extra bytes when stored once. Primary sources: [IBM Plex LICENSE.txt](https://github.com/IBM/plex/blob/master/LICENSE.txt), [Noto core LICENSE](https://github.com/notofonts/noto-fonts/blob/main/LICENSE), [Noto CJK Sans LICENSE](https://github.com/notofonts/noto-cjk/blob/main/Sans/LICENSE), and [Noto Emoji font LICENSE](https://github.com/googlefonts/noto-emoji/blob/main/fonts/LICENSE). - -| Family | Style/weights in proposal | Current catalog source version | License | Script/fallback role | Gzip bytes (selected files) | Build owner; runtime owners | -| --- | --- | --- | --- | --- | ---: | --- | -| IBM Plex Serif | normal 400/700; italic 400/700 | `fonts.gstatic.com/s/ibmplexserif/v20` | OFL 1.1, Reserved Font Name `Plex` | Primary serif; Latin and punctuation stack | 294,717 | `packages/fonts`; `apps/web` FontDisplay; `packages/pdf` registration | -| IBM Plex Sans | normal 400/700; italic 400/700 | `fonts.gstatic.com/s/ibmplexsans/v23` | OFL 1.1, Reserved Font Name `Plex` | Primary sans | 435,469 | `packages/fonts`; `apps/web` FontDisplay; `packages/pdf` registration | -| Noto Serif | normal 400/700; italic 400/700 | `fonts.gstatic.com/s/notoserif/v33` | OFL 1.1 | Serif punctuation fallback | 1,055,120 | `packages/fonts`; `packages/pdf` fallback registration | -| Noto Sans | normal 400/700; italic 400/700 | `fonts.gstatic.com/s/notosans/v42` | OFL 1.1 | Sans punctuation fallback | 1,236,259 | `packages/fonts`; `packages/pdf` fallback registration | -| Noto Sans SC | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosanssc/v40` | OFL 1.1 (Noto CJK) | Simplified Han; CJK fallback | 12,766,416 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Serif SC | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notoserifsc/v35` | OFL 1.1 (Noto CJK) | Simplified Han serif fallback | 17,350,185 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Sans TC | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosanstc/v39` | OFL 1.1 (Noto CJK) | Traditional Han fallback | 8,628,278 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Serif TC | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notoseriftc/v36` | OFL 1.1 (Noto CJK) | Traditional Han serif fallback | 11,804,923 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Sans JP | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosansjp/v56` | OFL 1.1 (Noto CJK) | Kana and Japanese Han fallback | 6,383,035 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Serif JP | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notoserifjp/v33` | OFL 1.1 (Noto CJK) | Kana and Japanese Han serif fallback | 8,685,862 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Sans KR | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosanskr/v39` | OFL 1.1 (Noto CJK) | Hangul and Korean Han fallback | 6,102,888 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Serif KR | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notoserifkr/v31` | OFL 1.1 (Noto CJK) | Hangul and Korean Han serif fallback | 11,113,442 | `packages/fonts`; `packages/pdf` CJK fallback | -| Noto Sans Arabic | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosansarabic/v33` | OFL 1.1 | Arabic sans fallback | 178,455 | `packages/fonts`; `packages/pdf` script fallback | -| Noto Naskh Arabic | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notonaskharabic/v44` | OFL 1.1 | Arabic serif fallback | 190,924 | `packages/fonts`; `packages/pdf` script fallback | -| Noto Sans Hebrew | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosanshebrew/v50` | OFL 1.1 | Hebrew fallback for both serif/sans slots | 55,707 | `packages/fonts`; `packages/pdf` script fallback | -| Noto Sans Thai | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notosansthai/v29` | OFL 1.1 | Thai fallback for both serif/sans slots | 55,173 | `packages/fonts`; `packages/pdf` script fallback | -| Noto Emoji | normal 400/700; italic reuses normal | `fonts.gstatic.com/s/notoemoji/v62` | OFL 1.1 for font files; assets/tools have separate licenses | Emoji outline fallback; verify renderer support | 1,153,847 | `packages/fonts`; `packages/pdf` script fallback | - -Estimated transfer size for all rows and listed styles: **87,490,700 bytes (~83.44 MiB)**. This confirms why a full-catalog bundle is out of scope. A later implementation should subset by declared glyph requirements or make the administrator choose fallback families; it must not silently fetch another CDN. - -### Source and license obligations - -- Pin an upstream release/commit and retain source attribution plus the complete applicable license with hosted assets. Do not use mutable `@latest` URLs as runtime sources. -- IBM Plex’s license has Reserved Font Name `Plex`; modified/subset outputs must follow OFL naming requirements. -- Noto core, Noto CJK, and Noto Emoji font files are OFL 1.1, but Noto Emoji documents separate Apache/public-domain treatment for tools and flag image assets. Bundle only font files unless those other assets are intentionally needed and separately attributed. -- License checks are build-owner responsibility (`packages/fonts`/tooling); runtime owners (`apps/web` and `packages/pdf`) consume only the validated manifest. - -### Missing-family and missing-asset behavior - -Local mode must resolve only same-origin administrator-hosted manifest paths. If imported resume data names an unavailable family, show an actionable missing-family error naming the family and required local asset; apply a configured local fallback only when the administrator explicitly supplied one. If a required weight/style/fallback asset is absent, fail the affected preview/export with an actionable diagnostic containing family/style/weight and local path. Never retry Google Fonts, jsDelivr, or any other remote URL in local mode. - -Standard PDF families (Helvetica, Courier, Times-Roman) remain file-free. They do not prove that a document containing punctuation, CJK, Arabic, Hebrew, Thai, or emoji is network-free; the script fallback rows remain required. - -## Verification record - -Completed read-only checks before handoff: - -- CodeGraph exploration of font catalog, picker preview, browser PDF, server PDF, and existing fallback tests. -- `pnpm dlx @tanstack/intent@latest list`: no matching local intent skill for this work. -- `pnpm exec biome check tests/e2e/specs/offline-fonts.spec.ts tests/e2e/fixtures/offline-fonts.ts turbo.json`: passed. -- `git diff --check`: passed. -- `pnpm --filter @reactive-resume/fonts test`: passed (55 tests). -- `pnpm --filter @reactive-resume/pdf exec vitest run src/hooks/use-register-fonts.test.ts`: passed (35 tests). -- Web typography/regression suite: passed (940 tests across 135 files); web and server package typechecks passed. -- `pnpm exec playwright test tests/e2e/specs/offline-fonts.spec.ts --list`: passed (4 diagnostic tests collected). -- E2E diagnostic execution: blocked by missing build outputs and unavailable PostgreSQL/server; no success claim made. -- `pnpm exec turbo boundaries`: passed on fresh rerun (Turbo 2.10.12, 1108 files, no issues). - -The implementation intentionally stops at diagnostic fixtures and manifest evidence. Shared source resolution, asset hosting, local-mode configuration, and production behavior remain Phase A step 3+ work. diff --git a/.orchestration/plan-27a-remediation-round-2.md b/.orchestration/plan-27a-remediation-round-2.md deleted file mode 100644 index 5fa66ff0c..000000000 --- a/.orchestration/plan-27a-remediation-round-2.md +++ /dev/null @@ -1,22 +0,0 @@ -# Plan 27A remediation round 2 - -Date: 2026-09-06 -Base: `ae8e2f76f` - -## Focused fixes - -- Removed multilingual markers from the fixture headline. Each marker now exists only in its dedicated summary paragraph. -- Added pure marker-location helpers. Marker lookup joins PDF text items, supports markers split across items, rejects duplicate occurrences, and rejects non-whitespace neighbors that could contaminate a local crop. -- Raster measurement still scans with antialiasing padding but counts ink only inside the marker box, preventing neighboring glyphs from making blank or tofu-like evidence pass. -- Browser PDF download now separates download errors from post-download evidence errors. A received download with failed rasterization is reported as `unresolved-raster-evidence-error` and fails the opt-in test rather than passing as a generic download error. -- Added focused pure tests covering duplicate, split, neighboring, blank, and tofu-like cases. -- Removed trailing spaces from `plan-27a-remediation.md`. - -## Verification - -- `pnpm exec vitest run tests/e2e/fixtures/offline-font-markers.test.ts` — 5/5 passed. -- `pnpm exec biome check tests/e2e/specs/offline-fonts.spec.ts tests/e2e/fixtures/offline-fonts.ts tests/e2e/fixtures/offline-font-markers.ts tests/e2e/fixtures/offline-font-markers.test.ts` — passed. -- `pnpm exec playwright test tests/e2e/specs/offline-fonts.spec.ts --list` — 4 tests collected. -- `git diff --check` — passed after remediation-document whitespace cleanup. - -Full diagnostic E2E remains opt-in and was not run in this focused round. Server outbound request capture and verifiable restart identity remain explicit external host-level blockers; no production resolver changes were made. diff --git a/.orchestration/plan-27a-remediation.md b/.orchestration/plan-27a-remediation.md deleted file mode 100644 index f445acf14..000000000 --- a/.orchestration/plan-27a-remediation.md +++ /dev/null @@ -1,24 +0,0 @@ -# Plan 27A remediation - -Date: 2026-09-06 -Base: `61b58ae9a` -Scope: concrete findings from `.orchestration/plan-27a-independent-review.md` only. - -## Remediated findings - -- Builder PDF preview and browser PDF download now produce raster evidence. The fixture stores each multilingual marker in its own summary paragraph, allowing the diagnostic to locate marker-local PDF text boxes and measure only those raster crops. Reports attach a rendered PNG plus per-marker `inkPixels`, trimmed dimensions, and status. Blank and tofu-like crops fail assertions; no whole-page snapshot is used. -- PDF text extraction is reported separately as `textLayerMarkers`. It is not described or asserted as proof of visible glyph outlines. -- Server PDF output remains text-extraction-only and is explicitly classified as `serverGateStatus: unresolved-external-host-level-blocker`. `serverRestartFlag` is caller input, not restart proof. Browser Playwright routing is not used to infer server egress, and no production resolver or instrumentation behavior was added. -- `.orchestration/plan-27a-diagnostic.md` now records a fresh boundaries pass and the corrected `87,490,700 bytes (~83.44 MiB)` arithmetic. -- Diagnostic remains opt-in through `OFFLINE_FONT_DIAGNOSTIC=1`; normal CI behavior remains unchanged. Request logs stay sanitized to hostname and pathname. - -## Verification - -- `pnpm exec biome check tests/e2e/specs/offline-fonts.spec.ts tests/e2e/fixtures/offline-fonts.ts` — passed. -- `git diff --check` — passed. -- `pnpm exec playwright test tests/e2e/specs/offline-fonts.spec.ts --list` — 4 tests collected. -- `pnpm --filter @reactive-resume/fonts test` — 55/55 passed. -- `pnpm --filter @reactive-resume/pdf exec vitest run src/hooks/use-register-fonts.test.ts` — 35/35 passed. -- `pnpm exec turbo boundaries` — passed on fresh rerun (Turbo 2.10.12, 1108 files, no issues). - -Full diagnostic E2E remains unrun because this environment lacks production build output, PostgreSQL, and a production server. Server cold-network capture and verifiable restart identity remain external host-level blockers by design; this remediation does not claim that gate is complete. diff --git a/.orchestration/remediation-issue-3350-item-pagination.md b/.orchestration/remediation-issue-3350-item-pagination.md deleted file mode 100644 index 6ab351f6f..000000000 --- a/.orchestration/remediation-issue-3350-item-pagination.md +++ /dev/null @@ -1,17 +0,0 @@ -# Issue 3350 remediation evidence - -## Findings addressed - -- `item-pagination.test.tsx` now derives complete numbered-token inventories for each generated fixture and asserts every token exactly once. Sampled token-to-physical-page placement checks remain separate. -- Pagination fixtures snapshot `metadata.layout.pages` before rendering and assert authored layout pages are unchanged afterward. Overflow fixtures also assert physical PDF page count exceeds authored page count. -- Unsafe `wrap={false}` renderer coverage remains diagnostic-only; no item controls, schema flags, or runtime behavior were added. - -## Verification - -- `rtk proxy pnpm --filter @reactive-resume/pdf exec vitest run src/semantic/pagination.test.tsx src/templates/shared/item-pagination.test.tsx` — 2 files, 11 tests passed. -- `rtk proxy pnpm --filter @reactive-resume/pdf typecheck` — passed. -- `rtk proxy pnpm exec biome check packages/pdf/src/templates/shared/item-pagination.test.tsx` — passed. -- `rtk proxy pnpm exec turbo boundaries` — passed; 1109 files checked. -- `rtk git diff --check origin/main...HEAD` — passed. - -Only PDF test coverage and this evidence file changed; production behavior remains untouched. diff --git a/AGENTS.md b/AGENTS.md index 570715e80..c7ffef0b6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -168,7 +168,6 @@ pnpm --filter @reactive-resume/pdf test src/templates/shared/filtering.test.ts pnpm --filter @reactive-resume/pdf exec vitest run src/templates/shared/filtering.test.ts -t "filterItems" pnpm --filter @reactive-resume/pdf test:coverage pnpm exec biome check apps/web/src/features/resume -pnpm exec markdownlint-cli2 --no-globs AGENTS.md pnpm exec turbo boundaries ``` @@ -199,7 +198,7 @@ pnpm test:e2e:ui - TypeScript is strict, including `exactOptionalPropertyTypes`, `noUncheckedIndexedAccess`, and unused-symbol checks; packages typecheck with `tsgo --noEmit`. - Biome uses tabs, double quotes, 120-column lines, separated type imports, organized import groups, and sorted Tailwind classes in `clsx`, `cva`, and `cn`. Use existing file naming and feature-local conventions. -- **`pnpm check` modifies files**: it regenerates PDF translations, runs Biome with `--write --unsafe`, runs Markdown fixes, and checks GitHub Actions syntax. Call out its write behavior and review the diff; use narrow non-mutating commands when inspecting unrelated edits. +- **`pnpm check` modifies files**: it regenerates PDF translations and runs Biome with `--write --unsafe`. Call out its write behavior and review the diff; use narrow non-mutating commands when inspecting unrelated edits. - Lefthook's pre-commit hook checks conflict markers and runs write-capable Biome on supported staged files, staging fixes. The commit-message hook enforces Conventional Commits (`fix:`, `feat:`, `docs:`, etc.). ## Build and deployment diff --git a/DESIGN.md b/DESIGN.md index 88e1610f3..47068e42e 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,5 +1,5 @@ --- -version: 2.0-alpha +version: 6.0.0 name: Reactive Resume · Desk & Paper description: A quiet, warm desk around a bright page. The resume is the only white, detailed object on screen; one moss-green accent marks the next action. Light and dark themes, with the page always white. colors: diff --git a/apps/server/package.json b/apps/server/package.json index 37e00eac5..b2f0efdac 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -15,30 +15,30 @@ "test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests" }, "dependencies": { - "@ai-sdk/anthropic": "^4.0.65", - "@ai-sdk/cerebras": "^3.0.57", - "@ai-sdk/cohere": "^4.0.50", - "@ai-sdk/deepseek": "^3.0.54", - "@ai-sdk/fireworks": "^3.0.60", - "@ai-sdk/google": "^4.0.82", - "@ai-sdk/groq": "^4.0.50", - "@ai-sdk/mistral": "^4.0.52", - "@ai-sdk/openai": "^4.0.78", - "@ai-sdk/openai-compatible": "^3.0.57", - "@ai-sdk/perplexity": "^5.0.1", - "@ai-sdk/togetherai": "^3.0.58", - "@ai-sdk/xai": "^5.0.10", - "@aws-sdk/client-s3": "^3.1141.0", + "@ai-sdk/anthropic": "^4.0.68", + "@ai-sdk/cerebras": "^3.0.59", + "@ai-sdk/cohere": "^4.0.52", + "@ai-sdk/deepseek": "^3.0.56", + "@ai-sdk/fireworks": "^3.0.62", + "@ai-sdk/google": "^4.0.85", + "@ai-sdk/groq": "^4.0.52", + "@ai-sdk/mistral": "^4.0.54", + "@ai-sdk/openai": "^4.0.81", + "@ai-sdk/openai-compatible": "^3.0.59", + "@ai-sdk/perplexity": "^5.0.3", + "@ai-sdk/togetherai": "^3.0.60", + "@ai-sdk/xai": "^5.0.12", + "@aws-sdk/client-s3": "^3.1143.0", "@better-auth/api-key": "^1.7.6", "@better-auth/drizzle-adapter": "^1.7.6", - "@better-auth/infra": "^0.4.11", + "@better-auth/infra": "^0.4.13", "@better-auth/oauth-provider": "^1.7.6", "@better-auth/passkey": "^1.7.6", "@bramus/specificity": "^2.4.2", "@formepdf/core": "0.25.0", "@formepdf/react": "0.25.0", - "@hono/node-server": "^2.1.1", - "@modelcontextprotocol/sdk": "^1.30.1", + "@hono/node-server": "^2.1.3", + "@modelcontextprotocol/sdk": "^1.31.0", "@orpc/client": "^1.15.4", "@orpc/experimental-ratelimit": "^1.15.4", "@orpc/json-schema": "^1.15.4", @@ -57,7 +57,7 @@ "@uiw/color-convert": "^2.10.3", "@vercel/blob": "^2.8.0", "@vercel/functions": "^3.9.9", - "ai": "^7.0.118", + "ai": "^7.0.122", "bcrypt": "^6.0.0", "better-auth": "1.7.6", "cjk-regex": "^3.5.0", @@ -68,12 +68,12 @@ "fast-json-patch": "^3.1.1", "fast-png": "^8.0.0", "fflate": "^0.8.3", - "hono": "^4.13.9", + "hono": "^4.13.11", "ioredis": "^6.0.0", "jose": "^6.2.12", "jsonrepair": "^3.15.0", "node-html-parser": "^9.0.4", - "nodemailer": "^10.0.11", + "nodemailer": "^10.0.12", "ollama-ai-provider-v2": "^4.0.1", "pg": "^8.23.0", "react": "^19.3.0", diff --git a/apps/web/package.json b/apps/web/package.json index 66964b509..260a68b4e 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -16,10 +16,10 @@ "lingui:extract": "lingui extract --clean --overwrite" }, "dependencies": { - "@ai-sdk/react": "^4.0.121", + "@ai-sdk/react": "^4.0.125", "@base-ui/react": "^1.8.0", "@better-auth/api-key": "^1.7.6", - "@better-auth/infra": "^0.4.11", + "@better-auth/infra": "^0.4.13", "@better-auth/oauth-provider": "^1.7.6", "@better-auth/passkey": "^1.7.6", "@codemirror/autocomplete": "^6.20.3", @@ -34,7 +34,7 @@ "@dnd-kit/utilities": "^3.2.2", "@fontsource-variable/anybody": "^5.3.0", "@fontsource-variable/martian-mono": "^5.3.0", - "@lezer/highlight": "^1.2.4", + "@lezer/highlight": "^1.2.5", "@lingui/core": "^6.8.0", "@lingui/react": "^6.8.0", "@orpc/client": "^1.15.4", @@ -70,7 +70,7 @@ "@types/js-cookie": "^3.0.6", "@uiw/color-convert": "^2.10.3", "@uiw/react-color-colorful": "^2.10.3", - "ai": "^7.0.118", + "ai": "^7.0.122", "better-auth": "1.7.6", "cmdk": "^1.1.1", "es-toolkit": "^1.52.0", @@ -78,7 +78,7 @@ "fuse.js": "^7.5.0", "immer": "^11.1.18", "js-cookie": "^3.0.8", - "motion": "^13.4.4", + "motion": "^13.4.6", "pdfjs-dist": "6.3.289", "prettier": "^3.9.9", "qrcode.react": "^4.2.0", diff --git a/package.json b/package.json index 74323e79d..4456bb53b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "reactive-resume", "description": "Reactive Resume is a free and open-source resume builder that makes it easy to create, update, and share your resume.", - "version": "5.3.2", + "version": "6.0.0", "private": true, "license": "MIT", "author": { @@ -16,7 +16,7 @@ "engines": { "node": "24.x" }, - "packageManager": "pnpm@12.6.0", + "packageManager": "pnpm@12.8.1", "workspaces": [ "apps/*", "packages/*", @@ -24,7 +24,7 @@ ], "scripts": { "build": "pnpm pdf:translations && turbo run build", - "check": "pnpm pdf:translations && biome check --write --unsafe . && markdownlint-cli2 --fix && github-actionlint -shellcheck= -pyflakes=", + "check": "pnpm pdf:translations && biome check --write --unsafe .", "docs:gen": "pnpm --filter server docs:gen && pnpm --filter @reactive-resume/tooling docs:gen", "db:generate": "dotenvx run --ignore=MISSING_ENV_FILE -f .env.local -- turbo run db:generate --filter=@reactive-resume/db", "db:migrate": "dotenvx run --ignore=MISSING_ENV_FILE -f .env.local -- turbo run db:migrate --filter=@reactive-resume/db", @@ -48,7 +48,7 @@ "@biomejs/biome": "^2.5.14", "@commitlint/cli": "^21.2.3", "@commitlint/config-conventional": "^21.2.3", - "@dotenvx/dotenvx": "^1.75.1", + "@dotenvx/dotenvx": "^2.31.1", "@playwright/test": "^1.63.0", "@reactive-resume/config": "workspace:*", "@testing-library/jest-dom": "^7.0.1", @@ -57,11 +57,9 @@ "@types/node": "^26.6.3", "@types/pg": "^8.23.1", "@vitest/coverage-v8": "^5.0.2", - "github-actionlint": "1.7.12", "happy-dom": "^20.14.5", "knip": "^6.38.0", - "lefthook": "^2.1.14", - "markdownlint-cli2": "0.23.3", + "lefthook": "^2.1.15", "pg": "^8.23.0", "turbo": "^2.11.5", "typescript": "^7.0.2", diff --git a/packages/ai/package.json b/packages/ai/package.json index f7845c8d7..dabedfd29 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@reactive-resume/config": "workspace:*", - "ai": "^7.0.118", + "ai": "^7.0.122", "@typescript/native-preview": "7.0.0-dev.20260707.2", "typescript": "^7.0.2" } diff --git a/packages/api/package.json b/packages/api/package.json index 9f8a382f0..6d02fd881 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -24,20 +24,20 @@ "test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests" }, "dependencies": { - "@ai-sdk/anthropic": "^4.0.65", - "@ai-sdk/cerebras": "^3.0.57", - "@ai-sdk/cohere": "^4.0.50", - "@ai-sdk/deepseek": "^3.0.54", - "@ai-sdk/fireworks": "^3.0.60", - "@ai-sdk/google": "^4.0.82", - "@ai-sdk/groq": "^4.0.50", - "@ai-sdk/mistral": "^4.0.52", - "@ai-sdk/openai": "^4.0.78", - "@ai-sdk/openai-compatible": "^3.0.57", - "@ai-sdk/perplexity": "^5.0.1", - "@ai-sdk/togetherai": "^3.0.58", - "@ai-sdk/xai": "^5.0.10", - "@aws-sdk/client-s3": "^3.1141.0", + "@ai-sdk/anthropic": "^4.0.68", + "@ai-sdk/cerebras": "^3.0.59", + "@ai-sdk/cohere": "^4.0.52", + "@ai-sdk/deepseek": "^3.0.56", + "@ai-sdk/fireworks": "^3.0.62", + "@ai-sdk/google": "^4.0.85", + "@ai-sdk/groq": "^4.0.52", + "@ai-sdk/mistral": "^4.0.54", + "@ai-sdk/openai": "^4.0.81", + "@ai-sdk/openai-compatible": "^3.0.59", + "@ai-sdk/perplexity": "^5.0.3", + "@ai-sdk/togetherai": "^3.0.60", + "@ai-sdk/xai": "^5.0.12", + "@aws-sdk/client-s3": "^3.1143.0", "@orpc/client": "^1.15.4", "@orpc/experimental-ratelimit": "^1.15.4", "@orpc/server": "^1.15.4", @@ -50,7 +50,7 @@ "@reactive-resume/schema": "workspace:*", "@reactive-resume/utils": "workspace:*", "@vercel/blob": "^2.8.0", - "ai": "^7.0.118", + "ai": "^7.0.122", "bcrypt": "^6.0.0", "better-auth": "1.7.6", "drizzle-orm": "1.0.0-rc.4", @@ -70,7 +70,7 @@ "@reactive-resume/config": "workspace:*", "@types/bcrypt": "^6.0.0", "@types/pg": "^8.23.1", - "@types/sanitize-html": "^2.16.1", + "@types/sanitize-html": "^2.16.2", "@typescript/native-preview": "7.0.0-dev.20260707.2", "es-toolkit": "^1.52.0", "pg": "^8.23.0", diff --git a/packages/auth/package.json b/packages/auth/package.json index 557ace1ab..33f932fab 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -17,7 +17,7 @@ "dependencies": { "@better-auth/api-key": "^1.7.6", "@better-auth/drizzle-adapter": "^1.7.6", - "@better-auth/infra": "^0.4.11", + "@better-auth/infra": "^0.4.13", "@better-auth/oauth-provider": "^1.7.6", "@better-auth/passkey": "^1.7.6", "@reactive-resume/db": "workspace:*", diff --git a/packages/docx/package.json b/packages/docx/package.json index da102ac96..6af7f7ad1 100644 --- a/packages/docx/package.json +++ b/packages/docx/package.json @@ -16,7 +16,7 @@ "dependencies": { "@reactive-resume/schema": "workspace:*", "@reactive-resume/utils": "workspace:*", - "docx": "^9.8.0" + "docx": "^9.8.1" }, "devDependencies": { "@reactive-resume/config": "workspace:*", diff --git a/packages/email/package.json b/packages/email/package.json index 4440356a3..73a5fdbad 100644 --- a/packages/email/package.json +++ b/packages/email/package.json @@ -17,7 +17,7 @@ }, "dependencies": { "@reactive-resume/env": "workspace:*", - "nodemailer": "^10.0.11", + "nodemailer": "^10.0.12", "react": "^19.3.0", "react-email": "^6.11.0" }, diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 648ebd5b8..e730005cb 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -16,7 +16,7 @@ "test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests" }, "dependencies": { - "@modelcontextprotocol/sdk": "^1.30.1", + "@modelcontextprotocol/sdk": "^1.31.0", "@orpc/server": "^1.15.4", "@reactive-resume/ai": "workspace:*", "@reactive-resume/api": "workspace:*", diff --git a/packages/pdf/package.json b/packages/pdf/package.json index d5f150193..86e2e1e63 100644 --- a/packages/pdf/package.json +++ b/packages/pdf/package.json @@ -42,7 +42,7 @@ "@napi-rs/canvas": "1.0.9", "@reactive-resume/config": "workspace:*", "@types/react": "^19.3.0", - "@types/react-reconciler": "^0.33.0", + "@types/react-reconciler": "^0.33.1", "@typescript/native-preview": "7.0.0-dev.20260707.2", "pdfjs-dist": "6.3.289", "typescript": "^7.0.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cbee385be..da2e3787f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,153 +7,153 @@ importers: configDependencies: {} packageManagerDependencies: pnpm: - specifier: 12.6.0 - version: 12.6.0 + specifier: 12.8.1 + version: 12.8.1 packages: - '@pnpm/exe.android-arm64@12.6.0': - resolution: {integrity: sha512-kviIHft9h02q+7N2In7tSL9T/HRUSGwYmU74YPtsWU5ee7vgqPyC0JT6RRX6miW+NxX1CvHgQxg69qq1qTLJYQ==} + '@pnpm/exe.android-arm64@12.8.1': + resolution: {integrity: sha512-siDxcidfz5eM6L2tJfik+i2bbUEw8UC7MZ3Yl2HYdRmqbdhHGAOQACtOOu6QVW4Jul4/w5wVKm+wM8ACtgh1Pg==} cpu: [arm64] os: [android] - '@pnpm/exe.android-x64@12.6.0': - resolution: {integrity: sha512-CT8aJKLq2mtZFE71pr4E5Z2xHL8uGnRGr+NclDqsXlVF4SVcQ2QAs14mWi0C8gjT4hbmi+Q0lJRRIkMAWfjjng==} + '@pnpm/exe.android-x64@12.8.1': + resolution: {integrity: sha512-0F/uqPRc3aN4vLHsa0f+6fTtmsigFQ9/yxEU43fionF//pNHEd5e97b3w/nKIgqYMCUQCJphmBRMA9Q8/wlo9Q==} cpu: [x64] os: [android] - '@pnpm/exe.darwin-arm64@12.6.0': - resolution: {integrity: sha512-rafpVkjzugKBMxSvGQd5wK1x5eOTkD/+lcJIFHeQhvd+BJ8kDisOOvwhQDrpGd4vd2Fx+hhW0P2Ptt638OlhFg==} + '@pnpm/exe.darwin-arm64@12.8.1': + resolution: {integrity: sha512-/rwavvMQJsl2RIxOHBnDF+4Gk+fhQFAY4M3PQZoKskJOEnaJcygG9p1xby6wcQcbS4d9dIubv09CQhufTgfmpw==} cpu: [arm64] os: [darwin] - '@pnpm/exe.darwin-x64@12.6.0': - resolution: {integrity: sha512-72Jpuv1m24gI8zUNcaylYpBWEhBzz1VPhnDIU2GYM2eRP+KsOqVLwV78i+JrihI39zY2NNXmaN4eAKX1inpaDQ==} + '@pnpm/exe.darwin-x64@12.8.1': + resolution: {integrity: sha512-htYt2gN7zqJKLhC99Ft6EUiO7myjZAZXfmGCTJUL1v+o7vE9hZdE1+fAkk4Oj1ZHNRti6b2woOxEkRkAusi8OQ==} cpu: [x64] os: [darwin] - '@pnpm/exe.freebsd-x64@12.6.0': - resolution: {integrity: sha512-LON4QgNy1w/XF4uySZIyC/5hEB0oGdelXsY9tSKqstER+2j2X2oHz67skD11RRd/HWFRtMr64shQZ4I9ZoZ0zg==} + '@pnpm/exe.freebsd-x64@12.8.1': + resolution: {integrity: sha512-PB5BULNgytxvExoOXUUeseS/DcpPENs+cg3iA6xHHeaLT4ctEGKSGXEbuj7USeqvo8JBpAx039hivnbzGqDwnA==} cpu: [x64] os: [freebsd] - '@pnpm/exe.linux-arm64-musl@12.6.0': - resolution: {integrity: sha512-BdDpX+DeaMUc5x6WNcE6FkmFy36NwrBbBvwsZU737Zt3u1fTY+iKFPchjEQNCM4rT6q6xvF2oN3ZwExGsJCkxQ==} + '@pnpm/exe.linux-arm64-musl@12.8.1': + resolution: {integrity: sha512-kKeyC/ArjrgdciQRBrOL0j9HtOI4gDRgoyP+eJ1CQKyadpKlf/DhDDyspXe07R3B9KagTVLUF2nlt6Dr5quFIg==} cpu: [arm64] os: [linux] libc: [musl] - '@pnpm/exe.linux-arm64@12.6.0': - resolution: {integrity: sha512-8h2sNoIhHDpHDYqZZCh9PXr6krqW10btb0GHVGuw710muDHlFAHMtUG2ogmaHge6zJG1xgY4Y7mwX5g/LWvrYg==} + '@pnpm/exe.linux-arm64@12.8.1': + resolution: {integrity: sha512-q4s9a9X2O3N9aeUFooW24orNrxvu20+jyVUFR5RanPCqOKKPBrgs2iywMkBBx1aXkkzdWT54/mfz8Be8sJlWEw==} cpu: [arm64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-ppc64@12.6.0': - resolution: {integrity: sha512-ld6xgcEhFCFrsVsJhbmdmR714PnsEspO/Ij8w0/D7OSiz2hYGu3fZd5tKRxOI5m6H6Gl0/RRFAPncTHbsgXVjQ==} + '@pnpm/exe.linux-ppc64@12.8.1': + resolution: {integrity: sha512-F7XSjKJthwCh/L6abZiMpAfo2Cm61SZIT3e4dfgiIjESndlWaXCnfLKngSgZ/SEMsdmHT6dud3+kWIB3tw0/xQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-riscv64@12.6.0': - resolution: {integrity: sha512-HIbImydoC3J8NFt+8MXfhTCf5rO6NjCMyinSAHac0VmV8uCHw+kbQkyAzxV84rzz9ZOzmBOnj0b1N461UIYGsw==} + '@pnpm/exe.linux-riscv64@12.8.1': + resolution: {integrity: sha512-z1ecpIK/ZY08Unk69KWWE9867oaKUytGUjrHnBoGFAAhsK+q+0cfvBH+f5fWobJ7FX97leMlLO+gkJolddM45Q==} cpu: [riscv64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-s390x@12.6.0': - resolution: {integrity: sha512-DjSqT7+BZ/lWcDHwNMuzsRVfyxUimh+D54Xw4tSWbdVVQhtWtNMUyI93LVnwCmsoEpar2gC3SFeAgywx37svKQ==} + '@pnpm/exe.linux-s390x@12.8.1': + resolution: {integrity: sha512-KU6tnrBfu4uKXTq6N5qJwSm8FSrs9Wc8b5AUEsHK9bRXwNdsZ1/lRxG1++X29SKRW9OSNuDSjxASv5mAvGo1gA==} cpu: [s390x] os: [linux] libc: [glibc] - '@pnpm/exe.linux-x64-musl@12.6.0': - resolution: {integrity: sha512-31lKeGPmRE6xfV6I3VjaEGVFRei14pl/zgoFDK4w+UkbJqOuNl2Ht3O1GuqNIg3Gl14qTEb4kZRAYFHXifDx9A==} + '@pnpm/exe.linux-x64-musl@12.8.1': + resolution: {integrity: sha512-eUE8BWJkDr2tJb/yrk0yVnszlmNqFarVxUlqiZ9BAkct28Nq/5g2H0tvMDmPA7fAQW3STNj+omJPPRVT+4s5sQ==} cpu: [x64] os: [linux] libc: [musl] - '@pnpm/exe.linux-x64@12.6.0': - resolution: {integrity: sha512-qFWBneHJAJ73W4whtbaFOL1M/7DBC6ILHXuxc7ZPtEhfPuT1zeZiGrmKHoMAfJA+mcm6xhOFljqVTUS+00Jabw==} + '@pnpm/exe.linux-x64@12.8.1': + resolution: {integrity: sha512-8bDZ0lZlCdi2rvnFul7EYgcC7zKeWSe76y8JV2oXobaS8p9i9d6PSf6LgLtTM0fI7R9Oh4eLCbveXyNDMmvZ+g==} cpu: [x64] os: [linux] libc: [glibc] - '@pnpm/exe.win32-arm64@12.6.0': - resolution: {integrity: sha512-OhfefXEEykZlslSUhR8PPRe6MVPV3Oink/dVfIecE5velpc7j80cZYsHlaDrtRDcm3TPwQHkaRW1SJ1efX9oFg==} + '@pnpm/exe.win32-arm64@12.8.1': + resolution: {integrity: sha512-MsT0dlrRxnCRCHCaosNbhWpEiAFnFuMEu3KuDJDU41BXgTwiINxU8goloUSUDejWZUqKaUqNC/qUTihl9nFtqg==} cpu: [arm64] os: [win32] - '@pnpm/exe.win32-x64@12.6.0': - resolution: {integrity: sha512-L2tuyrD2+Imgxs3VK/ST/2L3xD6vDP0ktJQxM0TaGw7TbAQEMq+RMc8iK6Ew7Id579uzjJe8jSfJID2ZGsOHCA==} + '@pnpm/exe.win32-x64@12.8.1': + resolution: {integrity: sha512-SWtPe0PsbTTk//gJND10tMdOfCYjrkq5+qV49hzVhY7xz2iJ339Rc+xwASlcvbwTfrvH39YNqpKYibD+CRGLwA==} cpu: [x64] os: [win32] - pnpm@12.6.0: - resolution: {integrity: sha512-PvaPlRyxEawgS0paFvCy3fDaVqluBBPoHYVdnwtV75JnFHCQKOHNAMQFwsX7e56OxNxGd3yAXQNzwvL/AP0g7A==} + pnpm@12.8.1: + resolution: {integrity: sha512-9kupB1B/XOr+BsjTjmBS0BeURFgOwSed3Vv8EctIqoomRLZlmOB+dh2oSHKp/FfV+QK4f6SdAkGY1VhhKqu+RQ==} engines: {node: '>=18.*'} hasBin: true snapshots: - '@pnpm/exe.android-arm64@12.6.0': + '@pnpm/exe.android-arm64@12.8.1': optional: true - '@pnpm/exe.android-x64@12.6.0': + '@pnpm/exe.android-x64@12.8.1': optional: true - '@pnpm/exe.darwin-arm64@12.6.0': + '@pnpm/exe.darwin-arm64@12.8.1': optional: true - '@pnpm/exe.darwin-x64@12.6.0': + '@pnpm/exe.darwin-x64@12.8.1': optional: true - '@pnpm/exe.freebsd-x64@12.6.0': + '@pnpm/exe.freebsd-x64@12.8.1': optional: true - '@pnpm/exe.linux-arm64-musl@12.6.0': + '@pnpm/exe.linux-arm64-musl@12.8.1': optional: true - '@pnpm/exe.linux-arm64@12.6.0': + '@pnpm/exe.linux-arm64@12.8.1': optional: true - '@pnpm/exe.linux-ppc64@12.6.0': + '@pnpm/exe.linux-ppc64@12.8.1': optional: true - '@pnpm/exe.linux-riscv64@12.6.0': + '@pnpm/exe.linux-riscv64@12.8.1': optional: true - '@pnpm/exe.linux-s390x@12.6.0': + '@pnpm/exe.linux-s390x@12.8.1': optional: true - '@pnpm/exe.linux-x64-musl@12.6.0': + '@pnpm/exe.linux-x64-musl@12.8.1': optional: true - '@pnpm/exe.linux-x64@12.6.0': + '@pnpm/exe.linux-x64@12.8.1': optional: true - '@pnpm/exe.win32-arm64@12.6.0': + '@pnpm/exe.win32-arm64@12.8.1': optional: true - '@pnpm/exe.win32-x64@12.6.0': + '@pnpm/exe.win32-x64@12.8.1': optional: true - pnpm@12.6.0: + pnpm@12.8.1: optionalDependencies: - '@pnpm/exe.android-arm64': 12.6.0 - '@pnpm/exe.android-x64': 12.6.0 - '@pnpm/exe.darwin-arm64': 12.6.0 - '@pnpm/exe.darwin-x64': 12.6.0 - '@pnpm/exe.freebsd-x64': 12.6.0 - '@pnpm/exe.linux-arm64': 12.6.0 - '@pnpm/exe.linux-arm64-musl': 12.6.0 - '@pnpm/exe.linux-ppc64': 12.6.0 - '@pnpm/exe.linux-riscv64': 12.6.0 - '@pnpm/exe.linux-s390x': 12.6.0 - '@pnpm/exe.linux-x64': 12.6.0 - '@pnpm/exe.linux-x64-musl': 12.6.0 - '@pnpm/exe.win32-arm64': 12.6.0 - '@pnpm/exe.win32-x64': 12.6.0 + '@pnpm/exe.android-arm64': 12.8.1 + '@pnpm/exe.android-x64': 12.8.1 + '@pnpm/exe.darwin-arm64': 12.8.1 + '@pnpm/exe.darwin-x64': 12.8.1 + '@pnpm/exe.freebsd-x64': 12.8.1 + '@pnpm/exe.linux-arm64': 12.8.1 + '@pnpm/exe.linux-arm64-musl': 12.8.1 + '@pnpm/exe.linux-ppc64': 12.8.1 + '@pnpm/exe.linux-riscv64': 12.8.1 + '@pnpm/exe.linux-s390x': 12.8.1 + '@pnpm/exe.linux-x64': 12.8.1 + '@pnpm/exe.linux-x64-musl': 12.8.1 + '@pnpm/exe.win32-arm64': 12.8.1 + '@pnpm/exe.win32-x64': 12.8.1 --- lockfileVersion: '9.0' @@ -183,8 +183,8 @@ importers: specifier: ^21.2.3 version: 21.2.3 '@dotenvx/dotenvx': - specifier: ^1.75.1 - version: 1.75.1 + specifier: ^2.31.1 + version: 2.31.1 '@playwright/test': specifier: ^1.63.0 version: 1.63.0 @@ -209,9 +209,6 @@ importers: '@vitest/coverage-v8': specifier: ^5.0.2 version: 5.0.2(vitest@5.0.2) - github-actionlint: - specifier: 1.7.12 - version: 1.7.12 happy-dom: specifier: ^20.14.5 version: 20.14.5 @@ -219,11 +216,8 @@ importers: specifier: ^6.38.0 version: 6.38.0 lefthook: - specifier: ^2.1.14 - version: 2.1.14 - markdownlint-cli2: - specifier: 0.23.3 - version: 0.23.3(supports-color@7.2.0) + specifier: ^2.1.15 + version: 2.1.15 pg: specifier: ^8.23.0 version: 8.23.0 @@ -240,47 +234,47 @@ importers: apps/server: dependencies: '@ai-sdk/anthropic': - specifier: ^4.0.65 - version: 4.0.65(zod@4.6.5) + specifier: ^4.0.68 + version: 4.0.68(zod@4.6.5) '@ai-sdk/cerebras': - specifier: ^3.0.57 - version: 3.0.57(zod@4.6.5) + specifier: ^3.0.59 + version: 3.0.59(zod@4.6.5) '@ai-sdk/cohere': - specifier: ^4.0.50 - version: 4.0.50(zod@4.6.5) - '@ai-sdk/deepseek': - specifier: ^3.0.54 - version: 3.0.54(zod@4.6.5) - '@ai-sdk/fireworks': - specifier: ^3.0.60 - version: 3.0.60(zod@4.6.5) - '@ai-sdk/google': - specifier: ^4.0.82 - version: 4.0.82(zod@4.6.5) - '@ai-sdk/groq': - specifier: ^4.0.50 - version: 4.0.50(zod@4.6.5) - '@ai-sdk/mistral': specifier: ^4.0.52 version: 4.0.52(zod@4.6.5) + '@ai-sdk/deepseek': + specifier: ^3.0.56 + version: 3.0.56(zod@4.6.5) + '@ai-sdk/fireworks': + specifier: ^3.0.62 + version: 3.0.62(zod@4.6.5) + '@ai-sdk/google': + specifier: ^4.0.85 + version: 4.0.85(zod@4.6.5) + '@ai-sdk/groq': + specifier: ^4.0.52 + version: 4.0.52(zod@4.6.5) + '@ai-sdk/mistral': + specifier: ^4.0.54 + version: 4.0.54(zod@4.6.5) '@ai-sdk/openai': - specifier: ^4.0.78 - version: 4.0.78(zod@4.6.5) + specifier: ^4.0.81 + version: 4.0.81(zod@4.6.5) '@ai-sdk/openai-compatible': - specifier: ^3.0.57 - version: 3.0.57(zod@4.6.5) + specifier: ^3.0.59 + version: 3.0.59(zod@4.6.5) '@ai-sdk/perplexity': - specifier: ^5.0.1 - version: 5.0.1(zod@4.6.5) + specifier: ^5.0.3 + version: 5.0.3(zod@4.6.5) '@ai-sdk/togetherai': - specifier: ^3.0.58 - version: 3.0.58(zod@4.6.5) + specifier: ^3.0.60 + version: 3.0.60(zod@4.6.5) '@ai-sdk/xai': - specifier: ^5.0.10 - version: 5.0.10(zod@4.6.5) + specifier: ^5.0.12 + version: 5.0.12(zod@4.6.5) '@aws-sdk/client-s3': - specifier: ^3.1141.0 - version: 3.1141.0 + specifier: ^3.1143.0 + version: 3.1143.0 '@better-auth/api-key': specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(better-call@1.4.0(zod@4.6.5)) @@ -288,8 +282,8 @@ importers: specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5)) '@better-auth/infra': - specifier: ^0.4.11 - version: 0.4.11(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5) + specifier: ^0.4.13 + version: 0.4.13(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5) '@better-auth/oauth-provider': specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(better-call@1.4.0(zod@4.6.5)) @@ -306,11 +300,11 @@ importers: specifier: 0.25.0 version: 0.25.0(react@19.3.0) '@hono/node-server': - specifier: ^2.1.1 - version: 2.1.1(hono@4.13.9) + specifier: ^2.1.3 + version: 2.1.3(hono@4.13.11) '@modelcontextprotocol/sdk': - specifier: ^1.30.1 - version: 1.30.1(supports-color@7.2.0)(zod@4.6.5) + specifier: ^1.31.0 + version: 1.31.0(supports-color@7.2.0)(zod@4.6.5) '@orpc/client': specifier: ^1.15.4 version: 1.15.4 @@ -366,8 +360,8 @@ importers: specifier: ^3.9.9 version: 3.9.9(@aws-sdk/credential-provider-web-identity@3.972.78)(ws@8.21.3) ai: - specifier: ^7.0.118 - version: 7.0.118(zod@4.6.5) + specifier: ^7.0.122 + version: 7.0.122(zod@4.6.5) bcrypt: specifier: ^6.0.0 version: 6.0.0 @@ -399,8 +393,8 @@ importers: specifier: ^0.8.3 version: 0.8.3 hono: - specifier: ^4.13.9 - version: 4.13.9 + specifier: ^4.13.11 + version: 4.13.11 ioredis: specifier: ^6.0.0 version: 6.0.0(supports-color@7.2.0) @@ -414,11 +408,11 @@ importers: specifier: ^9.0.4 version: 9.0.4 nodemailer: - specifier: ^10.0.11 - version: 10.0.11 + specifier: ^10.0.12 + version: 10.0.12 ollama-ai-provider-v2: specifier: ^4.0.1 - version: 4.0.1(ai@7.0.118(zod@4.6.5))(zod@4.6.5) + version: 4.0.1(ai@7.0.122(zod@4.6.5))(zod@4.6.5) pg: specifier: ^8.23.0 version: 8.23.0 @@ -487,8 +481,8 @@ importers: apps/web: dependencies: '@ai-sdk/react': - specifier: ^4.0.121 - version: 4.0.121(react@19.3.0)(zod@4.6.5) + specifier: ^4.0.125 + version: 4.0.125(react@19.3.0)(zod@4.6.5) '@base-ui/react': specifier: ^1.8.0 version: 1.8.0(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) @@ -496,8 +490,8 @@ importers: specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(better-call@1.4.0(zod@4.6.5)) '@better-auth/infra': - specifier: ^0.4.11 - version: 0.4.11(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5) + specifier: ^0.4.13 + version: 0.4.13(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5) '@better-auth/oauth-provider': specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(better-call@1.4.0(zod@4.6.5)) @@ -541,8 +535,8 @@ importers: specifier: ^5.3.0 version: 5.3.0 '@lezer/highlight': - specifier: ^1.2.4 - version: 1.2.4 + specifier: ^1.2.5 + version: 1.2.5 '@lingui/core': specifier: ^6.8.0 version: 6.8.0(@babel/core@7.29.7(supports-color@7.2.0))(babel-plugin-macros@3.1.0) @@ -649,8 +643,8 @@ importers: specifier: ^2.10.3 version: 2.10.3(@babel/runtime@7.29.7)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) ai: - specifier: ^7.0.118 - version: 7.0.118(zod@4.6.5) + specifier: ^7.0.122 + version: 7.0.122(zod@4.6.5) better-auth: specifier: 1.7.6 version: 1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2) @@ -673,8 +667,8 @@ importers: specifier: ^3.0.8 version: 3.0.8 motion: - specifier: ^13.4.4 - version: 13.4.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + specifier: ^13.4.6 + version: 13.4.6(react-dom@19.3.0(react@19.3.0))(react@19.3.0) pdfjs-dist: specifier: 6.3.289 version: 6.3.289 @@ -804,8 +798,8 @@ importers: specifier: 7.0.0-dev.20260707.2 version: 7.0.0-dev.20260707.2 ai: - specifier: ^7.0.118 - version: 7.0.118(zod@4.6.5) + specifier: ^7.0.122 + version: 7.0.122(zod@4.6.5) typescript: specifier: ^7.0.2 version: 7.0.2 @@ -813,47 +807,47 @@ importers: packages/api: dependencies: '@ai-sdk/anthropic': - specifier: ^4.0.65 - version: 4.0.65(zod@4.6.5) + specifier: ^4.0.68 + version: 4.0.68(zod@4.6.5) '@ai-sdk/cerebras': - specifier: ^3.0.57 - version: 3.0.57(zod@4.6.5) + specifier: ^3.0.59 + version: 3.0.59(zod@4.6.5) '@ai-sdk/cohere': - specifier: ^4.0.50 - version: 4.0.50(zod@4.6.5) - '@ai-sdk/deepseek': - specifier: ^3.0.54 - version: 3.0.54(zod@4.6.5) - '@ai-sdk/fireworks': - specifier: ^3.0.60 - version: 3.0.60(zod@4.6.5) - '@ai-sdk/google': - specifier: ^4.0.82 - version: 4.0.82(zod@4.6.5) - '@ai-sdk/groq': - specifier: ^4.0.50 - version: 4.0.50(zod@4.6.5) - '@ai-sdk/mistral': specifier: ^4.0.52 version: 4.0.52(zod@4.6.5) + '@ai-sdk/deepseek': + specifier: ^3.0.56 + version: 3.0.56(zod@4.6.5) + '@ai-sdk/fireworks': + specifier: ^3.0.62 + version: 3.0.62(zod@4.6.5) + '@ai-sdk/google': + specifier: ^4.0.85 + version: 4.0.85(zod@4.6.5) + '@ai-sdk/groq': + specifier: ^4.0.52 + version: 4.0.52(zod@4.6.5) + '@ai-sdk/mistral': + specifier: ^4.0.54 + version: 4.0.54(zod@4.6.5) '@ai-sdk/openai': - specifier: ^4.0.78 - version: 4.0.78(zod@4.6.5) + specifier: ^4.0.81 + version: 4.0.81(zod@4.6.5) '@ai-sdk/openai-compatible': - specifier: ^3.0.57 - version: 3.0.57(zod@4.6.5) + specifier: ^3.0.59 + version: 3.0.59(zod@4.6.5) '@ai-sdk/perplexity': - specifier: ^5.0.1 - version: 5.0.1(zod@4.6.5) + specifier: ^5.0.3 + version: 5.0.3(zod@4.6.5) '@ai-sdk/togetherai': - specifier: ^3.0.58 - version: 3.0.58(zod@4.6.5) + specifier: ^3.0.60 + version: 3.0.60(zod@4.6.5) '@ai-sdk/xai': - specifier: ^5.0.10 - version: 5.0.10(zod@4.6.5) + specifier: ^5.0.12 + version: 5.0.12(zod@4.6.5) '@aws-sdk/client-s3': - specifier: ^3.1141.0 - version: 3.1141.0 + specifier: ^3.1143.0 + version: 3.1143.0 '@orpc/client': specifier: ^1.15.4 version: 1.15.4 @@ -891,8 +885,8 @@ importers: specifier: ^2.8.0 version: 2.8.0 ai: - specifier: ^7.0.118 - version: 7.0.118(zod@4.6.5) + specifier: ^7.0.122 + version: 7.0.122(zod@4.6.5) bcrypt: specifier: ^6.0.0 version: 6.0.0 @@ -916,7 +910,7 @@ importers: version: 3.15.0 ollama-ai-provider-v2: specifier: ^4.0.1 - version: 4.0.1(ai@7.0.118(zod@4.6.5))(zod@4.6.5) + version: 4.0.1(ai@7.0.122(zod@4.6.5))(zod@4.6.5) resumable-stream: specifier: ^2.2.13 version: 2.2.13 @@ -946,8 +940,8 @@ importers: specifier: ^8.23.1 version: 8.23.1 '@types/sanitize-html': - specifier: ^2.16.1 - version: 2.16.1 + specifier: ^2.16.2 + version: 2.16.2 '@typescript/native-preview': specifier: 7.0.0-dev.20260707.2 version: 7.0.0-dev.20260707.2 @@ -970,8 +964,8 @@ importers: specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5)) '@better-auth/infra': - specifier: ^0.4.11 - version: 0.4.11(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5) + specifier: ^0.4.13 + version: 0.4.13(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5) '@better-auth/oauth-provider': specifier: ^1.7.6 version: 1.7.6(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(better-call@1.4.0(zod@4.6.5)) @@ -1070,8 +1064,8 @@ importers: specifier: workspace:* version: link:../utils docx: - specifier: ^9.8.0 - version: 9.8.0 + specifier: ^9.8.1 + version: 9.8.1 devDependencies: '@reactive-resume/config': specifier: workspace:* @@ -1122,8 +1116,8 @@ importers: specifier: workspace:* version: link:../env nodemailer: - specifier: ^10.0.11 - version: 10.0.11 + specifier: ^10.0.12 + version: 10.0.12 react: specifier: ^19.3.0 version: 19.3.0 @@ -1222,8 +1216,8 @@ importers: packages/mcp: dependencies: '@modelcontextprotocol/sdk': - specifier: ^1.30.1 - version: 1.30.1(supports-color@7.2.0)(zod@4.6.5) + specifier: ^1.31.0 + version: 1.31.0(supports-color@7.2.0)(zod@4.6.5) '@orpc/server': specifier: ^1.15.4 version: 1.15.4(ws@8.21.3) @@ -1305,8 +1299,8 @@ importers: specifier: ^19.3.0 version: 19.3.0 '@types/react-reconciler': - specifier: ^0.33.0 - version: 0.33.0(@types/react@19.3.0) + specifier: ^0.33.1 + version: 0.33.1(@types/react@19.3.0) '@typescript/native-preview': specifier: 7.0.0-dev.20260707.2 version: 7.0.0-dev.20260707.2 @@ -1528,80 +1522,80 @@ packages: '@adobe/css-tools@4.5.0': resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} - '@ai-sdk/anthropic@4.0.65': - resolution: {integrity: sha512-3fmxxn5xWGOPU1wGrUCI30YFW5r6h2WrY+sz3rokkVlBHrDr889hPYP1yNoSmOVvtAwCFWlm79P2lRngIPOObg==} + '@ai-sdk/anthropic@4.0.68': + resolution: {integrity: sha512-7PzZEf2brum218FSdXf6gE9yz4gKkLwkoLkPwoBExWYFj/Qsbi2JetWDKnFOdV6eezOnP72pGs3T0OKUaAEcLw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/cerebras@3.0.57': - resolution: {integrity: sha512-9bnV6Cvh50pvdhym/Wk5qxsnuZ3P3Ym3s5kmlqEEKgB0JMz7mZ/YI0ee4gio3l0YhtCoZo1e1qp3jDfz72Ia1g==} + '@ai-sdk/cerebras@3.0.59': + resolution: {integrity: sha512-6WDJDStGPTvzCehTiDyQhJAKcz7uw2YyGIUxDiEZNOg368DPYfjy1J5DZ9t6t88TnnI0/pFGHfgR5UjWVbPjHQ==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/cohere@4.0.50': - resolution: {integrity: sha512-M2gctvsb0uWzhWDafSKvER9pFy5Mr0jwk4PKakJ8qBl8uITZigrW21TQ651Y1SF8wN/dbYx1Ji4eaDf0Fp/u4A==} + '@ai-sdk/cohere@4.0.52': + resolution: {integrity: sha512-JVIjabzIuaebEX4lFx6CsSJFjH/PCaZfhnIHHBscXbs+MktqoqJPJIa/6tHFgK2JOdkORE7Ktlx7PmlDtGRfpw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/deepseek@3.0.54': - resolution: {integrity: sha512-1ByKYV/uis+3U66kueMJgF2DjN0DcJVtacZf7s1+BttKQwIRmHhKnQ3aqDRlIzpc2as59eqO5dxGi8Bfii2Pnw==} + '@ai-sdk/deepseek@3.0.56': + resolution: {integrity: sha512-ZBmtMofJqRzJK1JoPhz7EwcboJgsA7CCZDQ4Ld6SyHoONN29Sb3Pvnrq6YsK4gE3InnTx/cjjE+GJhL0Z/G+lw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/fireworks@3.0.60': - resolution: {integrity: sha512-wsQDeYJM6YLhkneWsM2Q4d8SG6VOzM3QEyROUJxYx0A+7un5rLARnnkk1BJZrS8u29arOgUqA2foQy1nKj78fQ==} + '@ai-sdk/fireworks@3.0.62': + resolution: {integrity: sha512-CeyoT7zbuY7PiQJ5rriMX1RQAodegfyFIK1jQS2D1f5qBjWcOpXGmF2O5NTTgdIPjUIsslOWaRLJrfuM6aTePg==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/gateway@4.0.96': - resolution: {integrity: sha512-1aniRTzEf9T7uRHdKnBQ36WgEVQswK6wDgkPVsNMl+sPy7otcmrBa2HEurdFBS51s1q3/UXlh8nNcguwU79Hkg==} + '@ai-sdk/gateway@4.0.100': + resolution: {integrity: sha512-diJXVW2D1/NUW2JSg99b8yTpN8eW9AK5ntXSW4B7NrsW5STqwcGJAAOFlfOrQBzYHJlWReyy11WefWetdx4Qsw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/google@4.0.82': - resolution: {integrity: sha512-2zPYyBSyIcywLtOEJRxlrtXjBjz4KxEU19Qqg/Dk8I9BrsB08+ghG2jv155dtuDZj8qZMrh6LO8J+Wt5O4xVhg==} + '@ai-sdk/google@4.0.85': + resolution: {integrity: sha512-gYfORjh13EkLZWKvpF3gEe2cAMEC3O9tnWniz2wuz8mHqJo08RfCjtLtP8iTka/xq4+a8lnXD4OGipDELd/GnA==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/groq@4.0.50': - resolution: {integrity: sha512-hNyn0BNfWyV0a6IfOxZ4QeymVAwzMEZ0iOMKnBtNdQS74hECd1bvKfPD/JCJDSZizZk65Q4b5a0rVpK4p2227g==} + '@ai-sdk/groq@4.0.52': + resolution: {integrity: sha512-Vmgr4GDtZRd/eKGVSfCYvWLEPpVJyxbE4PI5OWPmnu/uHHvCOQU/6jRP7z2Rn4S+GGR64p3QvSHqeTRuj2bfQA==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/mcp@2.0.60': - resolution: {integrity: sha512-/veUBdZ3u/Kg/F5J2IPq8ePC2sxbtPsteZ9idUWLdmavxI46xbT/ygwWT+jOSp6I4x8p0z618fFdVSNVOyLL4g==} + '@ai-sdk/mcp@2.0.62': + resolution: {integrity: sha512-nGfJ+M9oW9haxvnDptzFoW/QQj7JQO1dzhKq31zls4UlKJ3BXrSlHnkpZvqMFjQbWKY97YCrIk9PjQpCXlk5Og==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/mistral@4.0.52': - resolution: {integrity: sha512-ytqGhPHulDQA+NzDYCsulKFuB1xPo63XcWx+jGuAK7MK98mp8wBF+SddHK/UXa5hv+4CBJMmGgJHWZemzRs/HQ==} + '@ai-sdk/mistral@4.0.54': + resolution: {integrity: sha512-s3RkuUtkVvh8rmUgqBBtB7Ysttfq64Mr76G/589+IFOCp6WkBXO61lw+lCO1w61tWG5YFfMhg3RaHmKPSCWVIw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai-compatible@3.0.57': - resolution: {integrity: sha512-TEY5Ng/bTJXrYy9wpdxK70gABdYejYedaKbmPCZLhBkPe21rmLzkGxAGkfPYgAfCKPaoAO9THrEhmwUZ4Xhg2Q==} + '@ai-sdk/openai-compatible@3.0.59': + resolution: {integrity: sha512-ZRWWHhLTyVT0NSy+CnGuRAushwRRxXxpX0XMPgUjz+LTR3IP3nE155NkPhrD06yCT8fTKX+xlzF2nEg0P/LjGQ==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai@4.0.78': - resolution: {integrity: sha512-S9WLSZUqebRjZbwYM8uorb4fsjo4Lhz/PGA3rWl01x88WeF/1PdHtNckcxqNZy5xMRzCHPVv9iA3F+ckV74zfA==} + '@ai-sdk/openai@4.0.81': + resolution: {integrity: sha512-xLKx+4pbRvKF1gaXckfg0gQxDppi5SVYQsB/gkkzElCjAZ1OYDJB7xp+CvXIZGI6fzspricSfOl7MxEDvEdilg==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/perplexity@5.0.1': - resolution: {integrity: sha512-tLlYr0FbTgs3FTqK7CkBO80AV2ayTFEcsCJ7mbVkSO2Of8KPWlzjlHDx51wquohqu3bTT7PIMDn+M36QeYMY7Q==} + '@ai-sdk/perplexity@5.0.3': + resolution: {integrity: sha512-f13iQ4hnCR7hG1f5n9eIzJcfLObTQiWODBL9nhHyUpyuH24oqns0/DLj+cvI4hK7pmMk+Mzg8Z/axgB0VytrEw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1612,24 +1606,34 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider@4.0.18': - resolution: {integrity: sha512-+GZJIgz1jk86pwEbb3f1BD2bdoSKyWE4Jg4YUc7NMnMozbWemSKYZcw2F4nMaO5qwsL5A8RmioAKW81YktRpIQ==} - engines: {node: '>=22'} - - '@ai-sdk/react@4.0.121': - resolution: {integrity: sha512-x1ZAJVpogdXZJ7E3GJMg6dOKR3Qe+DDgNpQRvnjxdzPN99MXkls58l0o80pNjPExZWEn763iuCB0+V0qZiKEsQ==} - engines: {node: '>=22'} - peerDependencies: - react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 - - '@ai-sdk/togetherai@3.0.58': - resolution: {integrity: sha512-coKdhqMHkSwkwnHtNnSzgqlGIYJxYBHLpZDXQZQN18Zf7bABQAkhDToO3I7YVqfccPcjuDJdDdwPNWorJyH9KQ==} + '@ai-sdk/provider-utils@5.0.51': + resolution: {integrity: sha512-z0IsEsDx+dxlZqyCtDjMbBj16NGmxFVTgQcP3+n3EFm9ttNU6wjOgL/kgvaPwtmZM6F7JbtRuLyzr6WOfo5DMw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/xai@5.0.10': - resolution: {integrity: sha512-fSZtjtoQPa6VR6a30WNGagbfIECWTJA1I5dJCovYOC/JDZqibpBNCkvjnxd2YaWJy0Ozzq52rWCS+D1sY3M/uQ==} + '@ai-sdk/provider@4.0.18': + resolution: {integrity: sha512-+GZJIgz1jk86pwEbb3f1BD2bdoSKyWE4Jg4YUc7NMnMozbWemSKYZcw2F4nMaO5qwsL5A8RmioAKW81YktRpIQ==} + engines: {node: '>=22'} + + '@ai-sdk/provider@4.0.19': + resolution: {integrity: sha512-ryVZSSfmpEsr4bM8rbt9cSBWal+KGYRrm57C+k/hiPQHMiMahaqg2bPF0MpxSUWY8mGpt7s/ajM6PAqNTMKqPQ==} + engines: {node: '>=22'} + + '@ai-sdk/react@4.0.125': + resolution: {integrity: sha512-Pnv0YL21IigDrx9MYD2FsVwfmXrTO9xyTTsXMuQMNCcdt9GR9EJTj+WS+BHrReJEhUfSOJ4Imd6f9THHuvYdyw==} + engines: {node: '>=22'} + peerDependencies: + react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 + + '@ai-sdk/togetherai@3.0.60': + resolution: {integrity: sha512-g9Ir3blom6NRuPPAygzsUJcJyBJvuULep3KX4ZJ3jukwbJjHBm7eBnOODpYo71ui2WvTjHUiz2HIrOo1WtesoQ==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/xai@5.0.12': + resolution: {integrity: sha512-Vkgwm/p0LHlz6JUE3VLrPooYg2FoJdrQ6OdPFDcn86nUJfJYDkQPrRSRaxzdA3T2fjBrsOeKJeNi9iqZxCOdag==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1642,8 +1646,8 @@ packages: resolution: {integrity: sha512-x12Q17KYlJAd3nKf8LV5LV0vt8sh8/6YfQLGPtrGnQf/tW4jqxPGq5GPpuVitpQYM3eUR4XB7CbxZf751NMbLw==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.1141.0': - resolution: {integrity: sha512-uOVH37xGLenAdJkCPCin/JJG2PgWrFcSsDnQ9+C9Zq8N9Oalo5ol4xmn5fG28iWAlA/b/9boQZgHbMh+UsIhcg==} + '@aws-sdk/client-s3@3.1143.0': + resolution: {integrity: sha512-YVcwL17cUDru7OJFMoGB6aJCg7TmMiuAUjKfswtSm+t8NhO5BLLFTUhjnGWrhdw7ZgYyU2Y8u19t8a7yu0EhEg==} engines: {node: '>=20.0.0'} '@aws-sdk/core@3.978.1': @@ -1972,8 +1976,8 @@ packages: drizzle-orm: optional: true - '@better-auth/infra@0.4.11': - resolution: {integrity: sha512-zVhoFkauVUhyOkSEU4Hob9osLUhpc0DHE34lhXGIxTenlvJRCuQINaOvZ9Boi2BjQJlkUUxSkGYLxlkPaMpyVw==} + '@better-auth/infra@0.4.13': + resolution: {integrity: sha512-OpcrAbsVDVg97/tyhYkb6fyZrmTYRIZZPTI8zcK4RTcJ1Yp5v4F1jbveCsCZ2B9KqSQzEfVaO+buABydhlbzFw==} peerDependencies: '@better-auth/core': '>=1.4.0' '@react-native-async-storage/async-storage': '>=1.21.0' @@ -2414,9 +2418,19 @@ packages: resolution: {integrity: sha512-/BITOC9dmS/edY2zQwZNicQ059O6RKabtQfyEafV0nGtfYRNHYy1DIPiYVcov40+tob9hfmBnbR963dS+EQ1DQ==} hasBin: true + '@dotenvx/dotenvx@2.31.1': + resolution: {integrity: sha512-Sen23BJL57MID4y7ATSHKokTYbJjsTqDWXOjDGBxydRddc2MEknaYMRz90LC7iTO9VXS5HyYBnA5N8oOKdUhug==} + hasBin: true + '@dotenvx/primitives@0.8.0': resolution: {integrity: sha512-VYJy0uhFm9zTJ1TxBaW/pA8bjbOM/OttaNMwZ1RHG4JKyRG7DhSdiqD1ipQoAyoD22olUtxbP78W9xY3Wd11bg==} + '@dotenvx/primitives@3.0.3': + resolution: {integrity: sha512-KodBtwW8IgXhDiic04+cMvMKGjGLLew3jJq2JUGmh7c0M7u+twSylCkygkixzDvIvXrugKcCUQLkvDhgK7RN2g==} + + '@dotenvx/tooling@1.0.3': + resolution: {integrity: sha512-Gd6qQol/ICb4MPRWpiIH56y+pR9AVB7kPBkbhrLSGLtAiF4Qgy+k651/f2pze0Xbm3H5XewbPfIm4y9K+ic30Q==} + '@drizzle-team/brocli@0.12.1': resolution: {integrity: sha512-yHwomvolVafvUXhy5TdiJVkuNCxXn+bKOs2aWiWEQh/5YaV97Oa/abJz3dmx7lxgIUsUlS1Jl4mEfvJPo3YsVw==} @@ -2796,6 +2810,12 @@ packages: peerDependencies: hono: ^4 + '@hono/node-server@2.1.3': + resolution: {integrity: sha512-TA//nWMqPhbfdfneACk6t5a9eqbS9lABEPyKn0/xZTah3H3U2XaVg85rJFl0/Fyit0I552YDHgXGVSf3GwqbUw==} + engines: {node: '>=20'} + peerDependencies: + hono: ^4 + '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} @@ -2964,10 +2984,6 @@ packages: '@ioredis/commands@2.0.0': resolution: {integrity: sha512-vrx0AE/T0h7cRZwfo1M39Cr+ZhZrkf0V8mQN75wucKCxCLD9l/VX6no3gFvrLqD1IlG/1LtzWovqEw3t0Vr9zg==} - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3021,6 +3037,9 @@ packages: '@lezer/highlight@1.2.4': resolution: {integrity: sha512-4UeRVFO0lsBaM7GA32zOqbmqNPme9jedo8Ey+5c5656MU3MLitMLIA8aCZTYjUMEpEsuSeXEm78Uea6Iq3bvSg==} + '@lezer/highlight@1.2.5': + resolution: {integrity: sha512-O1GMVKgtf5YspFaRzpmqkVgMtIk2HG9uMAbH6wdAIdNh3TVzCsch/+cRi+6l2//UGDKe6NB9BW3cvuR5ezMQ0w==} + '@lezer/lr@1.4.10': resolution: {integrity: sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A==} @@ -3119,6 +3138,16 @@ packages: '@cfworker/json-schema': optional: true + '@modelcontextprotocol/sdk@1.31.0': + resolution: {integrity: sha512-UvTMgnNlnIBO/22ob2RcVGDlcvOslQs8T59+FTGdA0L27a39fdGF/EDETNtDVK4DZGpwomlsYpRdA8UXcVL/pw==} + engines: {node: '>=18'} + peerDependencies: + '@cfworker/json-schema': ^4.1.1 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@cfworker/json-schema': + optional: true + '@napi-rs/canvas-android-arm64@1.0.9': resolution: {integrity: sha512-4LGXk2/0HVzE29K8SzML5WubgCp++B1FH3qgl35XmSZE+lLdr6P9VRQEnZ0MCLZMTSuJP41yyhtoiVNEuvrTIA==} engines: {node: '>= 10'} @@ -4829,9 +4858,6 @@ packages: '@types/jsesc@2.5.1': resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} - '@types/katex@0.16.8': - resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -4855,16 +4881,16 @@ packages: peerDependencies: '@types/react': ^19.3.0 - '@types/react-reconciler@0.33.0': - resolution: {integrity: sha512-HZOXsKT0tGI9LlUw2LuedXsVeB88wFa536vVL0M6vE8zN63nI+sSr1ByxmPToP5K5bukaVscyeCJcF9guVNJ1g==} + '@types/react-reconciler@0.33.1': + resolution: {integrity: sha512-0kF59ji2mKuHUd5wytHSpmORybMYVerJvq0K10pz9ZFoOlJ3e+w1LBjLshWpCrokeyQOioRodNbO4PH4ddvRfg==} peerDependencies: '@types/react': '*' '@types/react@19.3.0': resolution: {integrity: sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==} - '@types/sanitize-html@2.16.1': - resolution: {integrity: sha512-n9wjs8bCOTyN/ynwD8s/nTcTreIHB1vf31vhLMGqUPNHaweKC4/fAl4Dj+hUlCTKYgm4P3k83fmiFfzkZ6sgMA==} + '@types/sanitize-html@2.16.2': + resolution: {integrity: sha512-kuAbgDCFv418flrp3z4o/4ufLA/5ovmXRH0L419iZCPGO7w00znjeDI5Wy/KZWNIBpDQc7hucCK+J5almB6FyA==} '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -5328,12 +5354,8 @@ packages: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} - adm-zip@0.5.18: - resolution: {integrity: sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng==} - engines: {node: '>=12.0'} - - ai@7.0.118: - resolution: {integrity: sha512-ZjkbbOffH09yQAjeZ5yGXd8ePTQlFIyKH5aW0s0LOMmvaR1TSoeg5wVURwLvFry/IzzaLndmw9glTKwWRoog3Q==} + ai@7.0.122: + resolution: {integrity: sha512-Un4yVROG+BMd6Q62xUxb9yV+wlTrUGeXhRtg5ltEFDV0p3lOYQaQHK9ozB6rdPdqlH3LyaszfbFdUkZ1p00nIQ==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -5348,11 +5370,6 @@ packages: ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} @@ -5388,9 +5405,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - argparse@3.0.2: - resolution: {integrity: sha512-mFdDM6WqWKraGLsVb+C9CahPnzTXOefAOLq3jYcca2YZ8bEWpr++Tzj+zSaKW9+X9L5uSxcm1AZ3Y6aZJ09OhQ==} - argue-cli@3.2.0: resolution: {integrity: sha512-VipTB0gXgGIFO2Rg9yEVN5wLt2AurJcZqDbgmYSwPwsykhLrQhs240/bfceev4w68lI8JshoOJIk9uW7tFzROw==} engines: {node: '>=22'} @@ -5531,6 +5545,10 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} @@ -5613,10 +5631,6 @@ 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.2.2: resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} @@ -5699,10 +5713,6 @@ packages: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - conf@10.2.0: resolution: {integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==} engines: {node: '>=12'} @@ -5862,6 +5872,10 @@ packages: resolution: {integrity: sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==} engines: {node: '>=18'} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -5870,6 +5884,10 @@ packages: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} @@ -5892,6 +5910,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -5899,8 +5920,8 @@ packages: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} - docx@9.8.0: - resolution: {integrity: sha512-RunQowTxl5dzUcDmDnUJrXndOI5/V+mA0U4EAVAbgKdKKgJldAdyHfo9UWgPihLLXJtXu4FDlgma6xDQ1bbrhA==} + docx@9.8.1: + resolution: {integrity: sha512-bv4yDxgiV9aRyh327HG+V36wG0f23wk32SDhXGQpUhnykVtIPaR1K4ISi8E+DYJ7OcRQRkR8Y70QYlSS08V1cA==} engines: {node: '>=10'} dom-accessibility-api@0.5.16: @@ -6200,6 +6221,9 @@ packages: es-toolkit@1.52.0: resolution: {integrity: sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==} + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + esbuild@0.28.1: resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} @@ -6344,8 +6368,8 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - framer-motion@13.4.4: - resolution: {integrity: sha512-lbsZO95NGbulo6apz70zEt6Vxf/anoRwQI2ECEc/EQYWO5CGbITtl7plDW8P/VXgXw6e8wrbhH4a9i+ygke0Mg==} + framer-motion@13.4.6: + resolution: {integrity: sha512-TwKWt2CC8rjhARzwV00TZIh04ipumSAqyKM/JZmS+urdncSHg6wTF/mfj/Fd6Oi2W01TZSWsiA3uxXDrXZtKyw==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 @@ -6421,11 +6445,6 @@ packages: resolution: {integrity: sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==} engines: {node: '>=20.20.0'} - github-actionlint@1.7.12: - resolution: {integrity: sha512-kSVz5clt9voatp2Tdh1BETKNooT358/nPChYseaDC4M6f9Hc/sBRMbhagx2FTu2F/WHzDoxlNPh2EqwBngTYQg==} - engines: {node: '>=18.0.0'} - hasBin: true - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -6434,13 +6453,17 @@ packages: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + global-directory@5.0.0: resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} engines: {node: '>=20'} - globby@16.2.4: - resolution: {integrity: sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==} - engines: {node: '>=20'} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} goober@2.1.19: resolution: {integrity: sha512-U7veizMqxyKlM58+Z5j2ngJBH/r9siDmxpvNxSw0PylF6WQvrASJEZrxh1hidRBJc2jqoBVSyOban5u8m+6Rxg==} @@ -6462,6 +6485,9 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -6479,6 +6505,10 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hono@4.13.11: + resolution: {integrity: sha512-/SMX/RQNJn7oNmFwH6DtwDqcrzZU2otm1FD6OJe2cWF6cfy/F8hq0XVBv7xW3FTJshRQwuBnXHDq2kNsdZnshg==} + engines: {node: '>=16.9.0'} + hono@4.13.9: resolution: {integrity: sha512-7dMkQmZoC4E6F7AtaQSPhlWAdnBti+j7rreMZl8QB4jFiEhP9TWbGWUMi8WYzBCgmgulxuvLQupKqo+Co6Omyg==} engines: {node: '>=16.9.0'} @@ -6496,9 +6526,6 @@ packages: html5parser@3.0.0: resolution: {integrity: sha512-iNpSopa+4YHX50UOk825tBy7MghmXHo/ZpLskBYN0kAr1xhH8GlIMk5bLRXcZlfP3AnLUcSuFMu8C4MdOUxA8A==} - htmlparser2@10.1.0: - resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - htmlparser2@12.0.0: resolution: {integrity: sha512-Tz7u1i95/g2x2jz81+x0FBVhBhY5aRTvD3tXXdFaljuNdzDLJ8UGNRrTcj2cgQvAg3iW/h77Fz15nLW0L0CrZw==} engines: {node: '>=20.19.0'} @@ -6526,10 +6553,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.10: - resolution: {integrity: sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==} - engines: {node: '>= 4'} - immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -6649,10 +6672,6 @@ packages: resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} engines: {node: '>=12'} - is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -6744,10 +6763,6 @@ packages: resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} hasBin: true - js-yaml@5.4.1: - resolution: {integrity: sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==} - hasBin: true - jsbi@4.3.2: resolution: {integrity: sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==} @@ -6771,21 +6786,17 @@ packages: json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@6.2.1: resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - jsonrepair@3.15.0: resolution: {integrity: sha512-wy8OTjwsJwQRnQJkKnMJJ9vcytRdBPAgIF/Hy6+s1dAj42BHMKiyL8JzEieIl3JY7idt8eyHwBWTO8mh/+mtwA==} hasBin: true @@ -6793,10 +6804,6 @@ packages: jszip@3.10.2: resolution: {integrity: sha512-3l+rb15IOWtUhU0H5MFqES/T6Kh7abYwjosBey/vD6hDt8zoEffkSC5Ws5SGtgVw3gBx2NEbhTeSW1+kWkpyTQ==} - katex@0.16.47: - resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} - hasBin: true - kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -6823,58 +6830,58 @@ packages: leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - lefthook-darwin-arm64@2.1.14: - resolution: {integrity: sha512-VMUAqY81+8ph7Mc0iROd3JWqj2sOuK7SYDyd8ZgzYVKChCt+Nnz8ehd4gUwprJy7QI28IFSUh1M3wnIRiYh+fA==} + lefthook-darwin-arm64@2.1.15: + resolution: {integrity: sha512-6sNtlNsoeahxZySHbMMijFS8qB5nxZjMohO5t9x4UoM03sKAwXL++vR196mKOF942YdvkuDrwd+qyxfAU6QmWg==} cpu: [arm64] os: [darwin] - lefthook-darwin-x64@2.1.14: - resolution: {integrity: sha512-uSmjcPRU+yB+D6vk+u6WJDnyHlB+XIv1QZw97N2+qNGG2bNSLH/7MuJ6puCdJv+lVPBEO5wBjE3JIbaEzPOQCw==} + lefthook-darwin-x64@2.1.15: + resolution: {integrity: sha512-B2upzVBV/9adKe0fGUO4JCrgx/iKx3qC6PQ2N3Qrok9yL5wDx+AZ6L5GNNgAKUbUWP6XZywyZZ/DFTPLOGxA/Q==} cpu: [x64] os: [darwin] - lefthook-freebsd-arm64@2.1.14: - resolution: {integrity: sha512-po/pmjbp/7BjE9RFfeDnh+CeNsA0d+utppOYKB425I7mgI1GcmT8GAZ9DDut4DIutNjVqKL/lzrj+F87Gm40Rg==} + lefthook-freebsd-arm64@2.1.15: + resolution: {integrity: sha512-7PbO32jhKKHqRdD6DIucmQrZ5nHlXwhxHdqy6CxTH2wNNPlvjXPrMqb6W0SpHuOLS0dWdz77ZVJsOvwfH139AA==} cpu: [arm64] os: [freebsd] - lefthook-freebsd-x64@2.1.14: - resolution: {integrity: sha512-+KiXiFjJf7YdHUYjzhDsklcA5bAFZN+pNcz/NbBftrhVTwzNALNoK+SYEKt+9QJsrzL6tpDWmHHFpeLGp+8t8w==} + lefthook-freebsd-x64@2.1.15: + resolution: {integrity: sha512-0XEgTQomWVV/uw4v5A/OMSfRk/9MRu3OBgTX1xF2QvUrb+fCEglkrJW299vSqndKn53MkUtyoIntz0ajw4PJlA==} cpu: [x64] os: [freebsd] - lefthook-linux-arm64@2.1.14: - resolution: {integrity: sha512-bjeJB16ftJaPWGTedssh8ZrqRy1ACfQuTV7a0O3NU1FoIsJtfHOm0o0mV4cPf4q+ZCVCwq1Xf2I11qUpuJFV4Q==} + lefthook-linux-arm64@2.1.15: + resolution: {integrity: sha512-HfgGoLtzqop68Zo9FDdP7rozFc+hv3xf2s4fWsyH50SbQLNgoKz/9vsneZG7n8bQ5YYGR/up0H9D8WQ7pou01g==} cpu: [arm64] os: [linux] - lefthook-linux-x64@2.1.14: - resolution: {integrity: sha512-gYExzjU2w3uKrP1MklbHENS1cXUdCQRIiEJkykI7q4RjhIHi+mQEUAZLxZw93a6jE2pNWaO0me5tB8EbEt4/GQ==} + lefthook-linux-x64@2.1.15: + resolution: {integrity: sha512-oyhZn6koNmXvSlSQXeTL1Zmxmlp1ysInjZCETwfAhjGb5r42HX2coaPzO0e6dvoP6bqEO8cyWoqqj+FYVz9nig==} cpu: [x64] os: [linux] - lefthook-openbsd-arm64@2.1.14: - resolution: {integrity: sha512-MCW76gTlEMBF3Ds8O63UTxjaSguha/5zT0U3Vr719I1sXueSpttfRmm/5YfIB4MygB116yA/Vi+DsizT/X0kcg==} + lefthook-openbsd-arm64@2.1.15: + resolution: {integrity: sha512-/hF3ap8CUqD2whU127pesD0x0CLOymDmtR5NR5jbNrT/BryjxlL6YL7HL3KB1Xz3MZwBqYeLIceqFE9/Gc53xQ==} cpu: [arm64] os: [openbsd] - lefthook-openbsd-x64@2.1.14: - resolution: {integrity: sha512-salAc1PAhLI6xrB9pth5UxALQlTOGvZAfaAvgFwixhkdu8D//uW8zS3faFq31ktd1bDAy5wDI8p9yg+fF5+2uA==} + lefthook-openbsd-x64@2.1.15: + resolution: {integrity: sha512-IljStK5gOS8oQPxCsHNDoHeD8vSCDHFuHWtJfRbYWVtNMEA9/2shtIKHswFWQBAxltgt4/i/lN86rErKdDoIug==} cpu: [x64] os: [openbsd] - lefthook-windows-arm64@2.1.14: - resolution: {integrity: sha512-q3JC6lBrYLzkhXEhfnmFxJF47gSd5JeDweH3aNrHoLGX/KkRiOrk9RSyoRwSuGq03EYxSkJhl1FLj2GUxF7VqQ==} + lefthook-windows-arm64@2.1.15: + resolution: {integrity: sha512-S1HIhsM0RZua8fQlHzXFrF0CpA/eo2/UYVUAqU+pJ/3IBAq0ZpWG4ZzfrQiSSBbcG9LB4tJgqiJVtumQKO+ZgA==} cpu: [arm64] os: [win32] - lefthook-windows-x64@2.1.14: - resolution: {integrity: sha512-WwIxdwW1lDAaJUU3ETcKlCtdqluGr3Cy+LjKvP4QIQnFf0FEXL78THstIkZ6k6qhfUn7/WvyqSIf0cbTAKw2nQ==} + lefthook-windows-x64@2.1.15: + resolution: {integrity: sha512-cp4ZhMYpX9khKw+fu0JEskq0Aeo1csREkb4WTMmJaEL7KTt+Lpp5zzSPPa8NGtpcQSKUo+ZXYrtqzpxYpPdt0g==} cpu: [x64] os: [win32] - lefthook@2.1.14: - resolution: {integrity: sha512-Y9TL1dmpRlIdSp73SJ6bb+xAZ4s2SinGTK3pgC9PRWMSjMr2iOfowPGnlSOfAo5fu6S5rdiItsQDxeLEWCGk4g==} + lefthook@2.1.15: + resolution: {integrity: sha512-l/BSlOZBou3zLDuSIV8V+kbNyC6UiFCACVHu8dVUCDxH5+8qZXmJr8iROruI/7hv6W7c3sVlVT+6+BpVhGZRmA==} hasBin: true leven@3.1.0: @@ -7042,9 +7049,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@6.1.0: - resolution: {integrity: sha512-wJ/TwpSDTLepCrQoYWYIExIKg5Zchex2Nn5yk2mFnB+6PtdkHtyLx742md9csRjjOnGkKIS/RrbY7l8D6gT9Vw==} - linkifyjs@4.3.3: resolution: {integrity: sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==} @@ -7086,32 +7090,18 @@ packages: magicast@0.5.5: resolution: {integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==} - markdown-it@15.0.1: - resolution: {integrity: sha512-9/7gE95FNPkfUWrjJIoHZza2iLmuJlPD0UNMxPi7bxUrbCR525YZY0r+zyfes0dZI5ZZ/uNIXUJca0pJvtw41g==} - hasBin: true - markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - markdownlint-cli2-formatter-default@0.0.6: - resolution: {integrity: sha512-VVDGKsq9sgzu378swJ0fcHfSicUnMxnL8gnLm/Q4J/xsNJ4e5bA6lvAz7PCzIl0/No0lHyaWdqVD2jotxOSFMQ==} - peerDependencies: - markdownlint-cli2: '>=0.0.4' - - markdownlint-cli2@0.23.3: - resolution: {integrity: sha512-xAr5o/TGpC3v6lE6cKIW4b5eOFRrRX5u7Vtjae9ix3RALv8nNOd94XMkD/1OXXBtpMcJ4uQGbpSo3hv5UqS4uQ==} - engines: {node: '>=22'} - hasBin: true - - markdownlint@0.41.1: - resolution: {integrity: sha512-qHKeU2E1bdyNAT077go2FVTNXvYcktN5IHtF6XyeD1l0PClxzSp2tUApAV14ORI8DGX4H9bNKZEzelZp4qn8IA==} - engines: {node: '>=22'} - marked@15.0.12: resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} engines: {node: '>= 18'} hasBin: true + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -7164,9 +7154,6 @@ packages: mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - mdurl@2.1.0: - resolution: {integrity: sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==} - media-typer@1.1.1: resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} engines: {node: '>= 0.8'} @@ -7182,15 +7169,9 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - micromark-core-commonmark@2.0.4: resolution: {integrity: sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w==} - micromark-extension-directive@4.0.0: - resolution: {integrity: sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==} - micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} @@ -7200,9 +7181,6 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - micromark-extension-gfm-table@2.1.2: resolution: {integrity: sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==} @@ -7215,9 +7193,6 @@ packages: micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} @@ -7275,15 +7250,9 @@ packages: micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark-util-types@2.0.3: resolution: {integrity: sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==} - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - micromark@4.0.3: resolution: {integrity: sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw==} @@ -7337,21 +7306,17 @@ 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'} - moo@0.5.3: resolution: {integrity: sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==} - motion-dom@13.4.4: - resolution: {integrity: sha512-z2qN3RUABSci4G7cr5aHTFhqPNCWJsEMMfRlzxqtANQsSCIbVJmHvMV288m5x7doEQBTYbRTWbKdztmquCn4Sw==} + motion-dom@13.4.5: + resolution: {integrity: sha512-p63p2Doq+US/O5wADauIPUVx0/eONHMLPzsudBM9XMWRuBQLXogdxH0vwIA8WYQZw864pyzoV723xoDqakwWTg==} motion-utils@13.3.0: resolution: {integrity: sha512-sgSschQp7EseHInIlR7hBbMuvet3RA0bs28KPZAXJcGKGdxHGvh1ogpYDilY3bOMtl73EqPNmp75sAKHYPU5sg==} - motion@13.4.4: - resolution: {integrity: sha512-lyX5kpAum2MmigecKWrFdIj3Sjn7pHek2EUrXY0WGZbOjJ1f5NfX0g4KQAb2Bp2EqL0a6dUzse11s1n7OYr5jg==} + motion@13.4.6: + resolution: {integrity: sha512-zDXi6lIdyhda6wZlTsv9QgT2ed6UExAfRegtl/akQmZb5iaeLlArXr9Gmo/hx3iTx2y4R7tmdb9k9koFQmV+NQ==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 @@ -7411,6 +7376,10 @@ packages: resolution: {integrity: sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==} engines: {node: ^18 || ^20 || >= 21} + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} + engines: {node: '>= 6.13.0'} + node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -7422,8 +7391,8 @@ packages: resolution: {integrity: sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==} engines: {node: '>=18'} - nodemailer@10.0.11: - resolution: {integrity: sha512-/c4P7U7aGpiNu2Rl08q525q2zECkUpSaf2zQPgIStCcAjHAkkQQKwD4sTyi3l91mGcLQrKzL1syXPHymo+Ogtw==} + nodemailer@10.0.12: + resolution: {integrity: sha512-PQ46oNbNMuH/Sno7B5IWIU9etytwrO0xdTFvWXpIQFRXhBAXtzD48243AS+BCbQQTPD8y3fqUrgLn0tSo77gvg==} engines: {node: '>=20.0.0'} normalize-path@3.0.0: @@ -7457,6 +7426,10 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + object-treeify@1.1.33: resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} engines: {node: '>= 10'} @@ -7803,10 +7776,6 @@ packages: engines: {node: '>=24.0.0'} hasBin: true - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - pure-rand@8.4.2: resolution: {integrity: sha512-vvuOGgcuPJAirlHvuQw1TrOiw7ptaIXXmIbNuiNOY6lNGJJH49PQ1Kj4nd783nPdQhQdicgOjVI2yI/9BD6/Ng==} @@ -8000,6 +7969,10 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + rolldown-plugin-dts@0.28.6: resolution: {integrity: sha512-qKrFtBfRfR2hP233m7Ic9zf3wv6MSYdZghWKMdEO6dRYZGlNfINJAa1P5ZVvyHh3mrcd7IJQvIY8L9vnm+v5rQ==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} @@ -8067,6 +8040,9 @@ packages: selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -8080,6 +8056,10 @@ packages: resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + seroval-plugins@1.5.6: resolution: {integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==} engines: {node: '>=10'} @@ -8165,18 +8145,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smol-toml@1.8.0: - resolution: {integrity: sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==} - engines: {node: '>= 18'} - smol-toml@1.9.0: resolution: {integrity: sha512-hpd+HLON7HdZXqYchMM/+LaTTbdK0AU3NngIJ4KVyWbY9bfQqdL9cD+4yf6dUoU2Ap4VsU0JkQi6FxAI1B2mXQ==} engines: {node: '>= 18'} @@ -8234,6 +8206,9 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} @@ -8260,10 +8235,6 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.2.1: - resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} - engines: {node: '>=20'} - string-width@8.3.0: resolution: {integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==} engines: {node: '>=20'} @@ -8368,10 +8339,6 @@ packages: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tar@7.5.22: - resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} - engines: {node: '>=18'} - throttleit@2.1.0: resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} engines: {node: '>=18'} @@ -8487,6 +8454,10 @@ packages: tw-animate-css@1.4.0: resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + type-fest@5.10.0: resolution: {integrity: sha512-NoSdpq/WEiAg5sjmBkmV/hfxv6HJH4NqPNrqjtSO5CwRmpsDfaf4begxW34KdJykH/l1yHtwBWQkCRdoXO8mPA==} engines: {node: '>=20'} @@ -8500,9 +8471,6 @@ packages: engines: {node: '>=16.20.0'} hasBin: true - uc.micro@3.0.0: - resolution: {integrity: sha512-U3PppEkleoTnIfi8BozMx3yju3qc/L6SwqWo2Sw+54PX+PX0q9I+r1Um5HCmqD7n9VDX5/v3vQH/AjA6deDdtw==} - uint8array-extras@1.6.0: resolution: {integrity: sha512-8iAasVS4wUx0gPLjH8Xtz2PeDzTSiy8QiLGu2DT3X5GU+egFEQhpnbtkehbAwjvDcxIERmCYcysiODFmE3Ud0Q==} engines: {node: '>=18'} @@ -8533,10 +8501,6 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} - unicorn-magic@0.4.1: - resolution: {integrity: sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==} - engines: {node: '>=20'} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -8852,10 +8816,6 @@ 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@1.10.3: resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} @@ -8929,87 +8889,87 @@ snapshots: '@adobe/css-tools@4.5.0': {} - '@ai-sdk/anthropic@4.0.65(zod@4.6.5)': + '@ai-sdk/anthropic@4.0.68(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/cerebras@3.0.57(zod@4.6.5)': + '@ai-sdk/cerebras@3.0.59(zod@4.6.5)': dependencies: - '@ai-sdk/openai-compatible': 3.0.57(zod@4.6.5) - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/openai-compatible': 3.0.59(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/cohere@4.0.50(zod@4.6.5)': + '@ai-sdk/cohere@4.0.52(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/deepseek@3.0.54(zod@4.6.5)': + '@ai-sdk/deepseek@3.0.56(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/fireworks@3.0.60(zod@4.6.5)': + '@ai-sdk/fireworks@3.0.62(zod@4.6.5)': dependencies: - '@ai-sdk/openai-compatible': 3.0.57(zod@4.6.5) - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/openai-compatible': 3.0.59(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/gateway@4.0.96(zod@4.6.5)': + '@ai-sdk/gateway@4.0.100(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) '@vercel/oidc': 3.2.0 zod: 4.6.5 - '@ai-sdk/google@4.0.82(zod@4.6.5)': + '@ai-sdk/google@4.0.85(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/groq@4.0.50(zod@4.6.5)': + '@ai-sdk/groq@4.0.52(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/mcp@2.0.60(zod@4.6.5)': + '@ai-sdk/mcp@2.0.62(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) cross-spawn: 7.0.6 pkce-challenge: 5.0.1 zod: 4.6.5 - '@ai-sdk/mistral@4.0.52(zod@4.6.5)': + '@ai-sdk/mistral@4.0.54(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/openai-compatible@3.0.57(zod@4.6.5)': + '@ai-sdk/openai-compatible@3.0.59(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/openai@4.0.78(zod@4.6.5)': + '@ai-sdk/openai@4.0.81(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/perplexity@5.0.1(zod@4.6.5)': + '@ai-sdk/perplexity@5.0.3(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 '@ai-sdk/provider-utils@5.0.49(zod@4.6.5)': @@ -9021,33 +8981,46 @@ snapshots: undici: 7.30.0 zod: 4.6.5 + '@ai-sdk/provider-utils@5.0.51(zod@4.6.5)': + dependencies: + '@ai-sdk/provider': 4.0.19 + '@standard-schema/spec': 1.1.0 + '@workflow/serde': 4.1.0 + eventsource-parser: 3.1.1 + undici: 7.30.0 + zod: 4.6.5 + '@ai-sdk/provider@4.0.18': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@4.0.121(react@19.3.0)(zod@4.6.5)': + '@ai-sdk/provider@4.0.19': dependencies: - '@ai-sdk/mcp': 2.0.60(zod@4.6.5) - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) - ai: 7.0.118(zod@4.6.5) + json-schema: 0.4.0 + + '@ai-sdk/react@4.0.125(react@19.3.0)(zod@4.6.5)': + dependencies: + '@ai-sdk/mcp': 2.0.62(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) + ai: 7.0.122(zod@4.6.5) react: 19.3.0 swr: 2.5.1(react@19.3.0) throttleit: 2.1.0 transitivePeerDependencies: - zod - '@ai-sdk/togetherai@3.0.58(zod@4.6.5)': + '@ai-sdk/togetherai@3.0.60(zod@4.6.5)': dependencies: - '@ai-sdk/openai-compatible': 3.0.57(zod@4.6.5) - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/openai-compatible': 3.0.59(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 - '@ai-sdk/xai@5.0.10(zod@4.6.5)': + '@ai-sdk/xai@5.0.12(zod@4.6.5)': dependencies: - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 '@alloc/quick-lru@5.3.0': {} @@ -9060,7 +9033,7 @@ snapshots: '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.1141.0': + '@aws-sdk/client-s3@3.1143.0': dependencies: '@aws-sdk/checksums': 3.1001.1 '@aws-sdk/core': 3.978.1 @@ -9576,7 +9549,7 @@ snapshots: optionalDependencies: drizzle-orm: 1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5) - '@better-auth/infra@0.4.11(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5)': + '@better-auth/infra@0.4.13(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5)': dependencies: '@better-auth/core': 1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4) '@better-auth/utils': 0.4.3 @@ -9589,7 +9562,7 @@ snapshots: libphonenumber-js: 1.13.14 zod: 4.6.5 - '@better-auth/infra@0.4.11(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5)': + '@better-auth/infra@0.4.13(@better-auth/core@1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4))(better-auth@1.7.6(drizzle-kit@1.0.0-rc.4)(drizzle-orm@1.0.0-rc.4(@types/pg@8.23.1)(pg@8.23.0)(zod@4.6.5))(next@16.3.3(@babel/core@8.0.6)(@playwright/test@1.63.0)(@types/node@26.6.3)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(pg@8.23.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(solid-js@1.9.15)(vitest@5.0.2))(zod@4.6.5)': dependencies: '@better-auth/core': 1.7.6(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.5))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.4) '@better-auth/utils': 0.4.3 @@ -10076,8 +10049,21 @@ snapshots: which: 4.0.0 yocto-spinner: 1.2.2 + '@dotenvx/dotenvx@2.31.1': + dependencies: + '@dotenvx/primitives': 3.0.3 + '@dotenvx/tooling': 1.0.3 + global-agent: 3.0.0 + node-forge: 1.4.0 + undici: 6.29.0 + yocto-spinner: 1.2.2 + '@dotenvx/primitives@0.8.0': {} + '@dotenvx/primitives@3.0.3': {} + + '@dotenvx/tooling@1.0.3': {} + '@drizzle-team/brocli@0.12.1': {} '@emnapi/core@1.11.2': @@ -10304,6 +10290,10 @@ snapshots: dependencies: hono: 4.13.9 + '@hono/node-server@2.1.3(hono@4.13.11)': + dependencies: + hono: 4.13.11 + '@img/colour@1.1.0': {} '@img/sharp-darwin-arm64@0.35.5': @@ -10416,10 +10406,6 @@ snapshots: '@ioredis/commands@2.0.0': {} - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.3 - '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.12 @@ -10498,6 +10484,10 @@ snapshots: dependencies: '@lezer/common': 1.5.3 + '@lezer/highlight@1.2.5': + dependencies: + '@lezer/common': 1.5.3 + '@lezer/lr@1.4.10': dependencies: '@lezer/common': 1.5.3 @@ -10610,7 +10600,7 @@ snapshots: dependencies: '@hono/node-server': 2.1.1(hono@4.13.9) ajv: 8.20.0 - ajv-formats: 3.0.1(ajv@8.20.0) + ajv-formats: 3.0.1 content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 @@ -10632,7 +10622,29 @@ snapshots: dependencies: '@hono/node-server': 2.1.1(hono@4.13.9) ajv: 8.20.0 - ajv-formats: 3.0.1(ajv@8.20.0) + ajv-formats: 3.0.1 + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.1.1 + express: 5.2.1(supports-color@7.2.0) + express-rate-limit: 8.7.0(express@5.2.1(supports-color@7.2.0))(supports-color@7.2.0) + hono: 4.13.9 + jose: 6.2.12 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.6.5 + zod-to-json-schema: 3.25.2(zod@4.6.5) + transitivePeerDependencies: + - supports-color + + '@modelcontextprotocol/sdk@1.31.0(supports-color@7.2.0)(zod@4.6.5)': + dependencies: + '@hono/node-server': 2.1.1(hono@4.13.9) + ajv: 8.20.0 + ajv-formats: 3.0.1 content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 @@ -12262,8 +12274,6 @@ snapshots: '@types/jsesc@2.5.1': optional: true - '@types/katex@0.16.8': {} - '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -12290,7 +12300,7 @@ snapshots: dependencies: '@types/react': 19.3.0 - '@types/react-reconciler@0.33.0(@types/react@19.3.0)': + '@types/react-reconciler@0.33.1(@types/react@19.3.0)': dependencies: '@types/react': 19.3.0 @@ -12298,9 +12308,9 @@ snapshots: dependencies: csstype: 3.2.3 - '@types/sanitize-html@2.16.1': + '@types/sanitize-html@2.16.2': dependencies: - htmlparser2: 10.1.0 + htmlparser2: 12.0.0 '@types/unist@2.0.11': {} @@ -12617,22 +12627,18 @@ snapshots: mime-types: 3.0.2 negotiator: 1.1.0 - adm-zip@0.5.18: {} - - ai@7.0.118(zod@4.6.5): + ai@7.0.122(zod@4.6.5): dependencies: - '@ai-sdk/gateway': 4.0.96(zod@4.6.5) - '@ai-sdk/provider': 4.0.18 - '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) + '@ai-sdk/gateway': 4.0.100(zod@4.6.5) + '@ai-sdk/provider': 4.0.19 + '@ai-sdk/provider-utils': 5.0.51(zod@4.6.5) zod: 4.6.5 ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 - ajv-formats@3.0.1(ajv@8.20.0): - optionalDependencies: - ajv: 8.20.0 + ajv-formats@3.0.1: {} ajv@8.20.0: dependencies: @@ -12659,8 +12665,6 @@ snapshots: argparse@2.0.1: {} - argparse@3.0.2: {} - argue-cli@3.2.0: {} aria-hidden@1.2.6: @@ -12819,6 +12823,8 @@ snapshots: boolbase@1.0.0: {} + boolean@3.2.0: {} + bowser@2.14.1: {} brace-expansion@5.0.12: @@ -12888,8 +12894,6 @@ snapshots: dependencies: readdirp: 5.1.1 - chownr@3.0.0: {} - citty@0.2.2: {} cjk-regex@3.5.0: @@ -12959,8 +12963,6 @@ snapshots: commander@14.0.3: {} - commander@8.3.0: {} - conf@10.2.0: dependencies: ajv: 8.20.0 @@ -12977,7 +12979,7 @@ snapshots: conf@15.1.0: dependencies: ajv: 8.20.0 - ajv-formats: 3.0.1(ajv@8.20.0) + ajv-formats: 3.0.1 atomically: 2.1.1 debounce-fn: 6.0.0 dot-prop: 10.2.0 @@ -13112,10 +13114,22 @@ snapshots: bundle-name: 4.1.1 default-browser-id: 5.0.1 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + define-lazy-prop@2.0.0: {} define-lazy-prop@3.0.0: {} + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + defu@6.1.7: {} denque@2.1.0: {} @@ -13128,13 +13142,15 @@ snapshots: detect-node-es@1.1.0: {} + detect-node@2.1.0: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 diff@8.0.4: {} - docx@9.8.0: + docx@9.8.1: dependencies: '@types/node': 26.6.3 hash.js: 1.1.7 @@ -13290,6 +13306,8 @@ snapshots: es-toolkit@1.52.0: {} + es6-error@4.1.1: {} + esbuild@0.28.1: optionalDependencies: '@esbuild/aix-ppc64': 0.28.1 @@ -13516,9 +13534,9 @@ snapshots: forwarded@0.2.0: {} - framer-motion@13.4.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0): + framer-motion@13.4.6(react-dom@19.3.0(react@19.3.0))(react@19.3.0): dependencies: - motion-dom: 13.4.4 + motion-dom: 13.4.5 motion-utils: 13.3.0 tslib: 2.8.1 optionalDependencies: @@ -13585,11 +13603,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - github-actionlint@1.7.12: - dependencies: - adm-zip: 0.5.18 - tar: 7.5.22 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -13600,19 +13613,23 @@ snapshots: minipass: 7.1.3 path-scurry: 2.0.2 + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.8.5 + serialize-error: 7.0.1 + global-directory@5.0.0: dependencies: ini: 6.0.0 - globby@16.2.4: + globalthis@1.0.4: dependencies: - '@sindresorhus/merge-streams': 4.0.0 - fast-glob: 3.3.3 - ignore: 7.0.10 - is-path-inside: 4.0.0 - micromatch: 4.0.8 - slash: 5.1.0 - unicorn-magic: 0.4.1 + define-properties: 1.2.1 + gopd: 1.2.0 goober@2.1.19(csstype@3.2.3): dependencies: @@ -13637,6 +13654,10 @@ snapshots: has-flag@4.0.0: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + has-symbols@1.1.0: {} hash.js@1.1.7: @@ -13672,6 +13693,8 @@ snapshots: dependencies: '@types/hast': 3.0.5 + hono@4.13.11: {} + hono@4.13.9: {} hookable@6.1.2: {} @@ -13688,13 +13711,6 @@ snapshots: html5parser@3.0.0: {} - htmlparser2@10.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 7.0.1 - htmlparser2@12.0.0: dependencies: domelementtype: 3.0.0 @@ -13727,8 +13743,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.10: {} - immediate@3.0.6: {} immer@11.1.18: {} @@ -13815,8 +13829,6 @@ snapshots: is-obj@3.0.0: {} - is-path-inside@4.0.0: {} - is-plain-obj@4.1.0: {} is-plain-object@5.1.0: {} @@ -13880,10 +13892,6 @@ snapshots: dependencies: argparse: 2.0.1 - js-yaml@5.4.1: - dependencies: - argparse: 2.0.1 - jsbi@4.3.2: {} jsesc@3.1.0: {} @@ -13898,9 +13906,9 @@ snapshots: json-schema@0.4.0: {} - json5@2.2.3: {} + json-stringify-safe@5.0.1: {} - jsonc-parser@3.3.1: {} + json5@2.2.3: {} jsonfile@6.2.1: dependencies: @@ -13908,8 +13916,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonpointer@5.0.1: {} - jsonrepair@3.15.0: {} jszip@3.10.2: @@ -13919,10 +13925,6 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 - katex@0.16.47: - dependencies: - commander: 8.3.0 - kleur@3.0.3: {} kleur@4.1.5: {} @@ -13956,48 +13958,48 @@ snapshots: leac@0.6.0: {} - lefthook-darwin-arm64@2.1.14: + lefthook-darwin-arm64@2.1.15: optional: true - lefthook-darwin-x64@2.1.14: + lefthook-darwin-x64@2.1.15: optional: true - lefthook-freebsd-arm64@2.1.14: + lefthook-freebsd-arm64@2.1.15: optional: true - lefthook-freebsd-x64@2.1.14: + lefthook-freebsd-x64@2.1.15: optional: true - lefthook-linux-arm64@2.1.14: + lefthook-linux-arm64@2.1.15: optional: true - lefthook-linux-x64@2.1.14: + lefthook-linux-x64@2.1.15: optional: true - lefthook-openbsd-arm64@2.1.14: + lefthook-openbsd-arm64@2.1.15: optional: true - lefthook-openbsd-x64@2.1.14: + lefthook-openbsd-x64@2.1.15: optional: true - lefthook-windows-arm64@2.1.14: + lefthook-windows-arm64@2.1.15: optional: true - lefthook-windows-x64@2.1.14: + lefthook-windows-x64@2.1.15: optional: true - lefthook@2.1.14: + lefthook@2.1.15: optionalDependencies: - lefthook-darwin-arm64: 2.1.14 - lefthook-darwin-x64: 2.1.14 - lefthook-freebsd-arm64: 2.1.14 - lefthook-freebsd-x64: 2.1.14 - lefthook-linux-arm64: 2.1.14 - lefthook-linux-x64: 2.1.14 - lefthook-openbsd-arm64: 2.1.14 - lefthook-openbsd-x64: 2.1.14 - lefthook-windows-arm64: 2.1.14 - lefthook-windows-x64: 2.1.14 + lefthook-darwin-arm64: 2.1.15 + lefthook-darwin-x64: 2.1.15 + lefthook-freebsd-arm64: 2.1.15 + lefthook-freebsd-x64: 2.1.15 + lefthook-linux-arm64: 2.1.15 + lefthook-linux-x64: 2.1.15 + lefthook-openbsd-arm64: 2.1.15 + lefthook-openbsd-x64: 2.1.15 + lefthook-windows-arm64: 2.1.15 + lefthook-windows-x64: 2.1.15 leven@3.1.0: {} @@ -14109,10 +14111,6 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-it@6.1.0: - dependencies: - uc.micro: 3.0.0 - linkifyjs@4.3.3: {} locate-path@3.0.0: @@ -14156,51 +14154,14 @@ snapshots: '@babel/types': 7.29.8 source-map-js: 1.2.1 - markdown-it@15.0.1: - dependencies: - argparse: 3.0.2 - entities: 8.1.0 - linkify-it: 6.1.0 - mdurl: 2.1.0 - punycode.js: 2.3.1 - uc.micro: 3.0.0 - markdown-table@3.0.4: {} - markdownlint-cli2-formatter-default@0.0.6(markdownlint-cli2@0.23.3(supports-color@7.2.0)): - dependencies: - markdownlint-cli2: 0.23.3(supports-color@7.2.0) - - markdownlint-cli2@0.23.3(supports-color@7.2.0): - dependencies: - globby: 16.2.4 - js-yaml: 5.4.1 - jsonc-parser: 3.3.1 - jsonpointer: 5.0.1 - markdown-it: 15.0.1 - markdownlint: 0.41.1(supports-color@7.2.0) - markdownlint-cli2-formatter-default: 0.0.6(markdownlint-cli2@0.23.3(supports-color@7.2.0)) - micromatch: 4.0.8 - smol-toml: 1.8.0 - transitivePeerDependencies: - - supports-color - - markdownlint@0.41.1(supports-color@7.2.0): - dependencies: - micromark: 4.0.2(supports-color@7.2.0) - micromark-core-commonmark: 2.0.3 - micromark-extension-directive: 4.0.0 - micromark-extension-gfm-autolink-literal: 2.1.0 - micromark-extension-gfm-footnote: 2.1.0 - micromark-extension-gfm-table: 2.1.1 - micromark-extension-math: 3.1.0 - micromark-util-types: 2.0.2 - string-width: 8.2.1 - transitivePeerDependencies: - - supports-color - marked@15.0.12: {} + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + math-intrinsics@1.1.0: {} mdast-util-find-and-replace@3.0.2: @@ -14360,8 +14321,6 @@ snapshots: mdn-data@2.27.1: {} - mdurl@2.1.0: {} - media-typer@1.1.1: {} merge-descriptors@2.0.0: {} @@ -14370,25 +14329,6 @@ snapshots: merge2@1.4.1: {} - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.3.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.1.0 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.3 - micromark-core-commonmark@2.0.4: dependencies: decode-named-character-reference: 1.3.0 @@ -14409,16 +14349,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.3 - micromark-extension-directive@4.0.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.1.0 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.3 - parse-entities: 4.0.2 - micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 @@ -14446,14 +14376,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.3 - micromark-extension-gfm-table@2.1.1: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.3 - micromark-extension-gfm-table@2.1.2: dependencies: devlop: 1.1.0 @@ -14485,16 +14407,6 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.3 - micromark-extension-math@3.1.0: - dependencies: - '@types/katex': 0.16.8 - devlop: 1.1.0 - katex: 0.16.47 - micromark-factory-space: 2.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.3 - micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 @@ -14589,32 +14501,8 @@ snapshots: micromark-util-symbol@2.0.1: {} - micromark-util-types@2.0.2: {} - micromark-util-types@2.0.3: {} - micromark@4.0.2(supports-color@7.2.0): - dependencies: - '@types/debug': 4.1.13 - debug: 4.4.3(supports-color@7.2.0) - decode-named-character-reference: 1.3.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.4 - micromark-factory-space: 2.1.0 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.3 - transitivePeerDependencies: - - supports-color - micromark@4.0.3(supports-color@7.2.0): dependencies: '@types/debug': 4.1.13 @@ -14673,21 +14561,17 @@ snapshots: minipass@7.1.3: {} - minizlib@3.1.0: - dependencies: - minipass: 7.1.3 - moo@0.5.3: {} - motion-dom@13.4.4: + motion-dom@13.4.5: dependencies: motion-utils: 13.3.0 motion-utils@13.3.0: {} - motion@13.4.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0): + motion@13.4.6(react-dom@19.3.0(react@19.3.0))(react@19.3.0): dependencies: - framer-motion: 13.4.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + framer-motion: 13.4.6(react-dom@19.3.0(react@19.3.0))(react@19.3.0) tslib: 2.8.1 optionalDependencies: react: 19.3.0 @@ -14764,6 +14648,8 @@ snapshots: node-addon-api@8.9.2: {} + node-forge@1.4.0: {} + node-gyp-build@4.8.4: {} node-html-parser@9.0.4: @@ -14773,7 +14659,7 @@ snapshots: node-releases@2.0.57: {} - nodemailer@10.0.11: {} + nodemailer@10.0.12: {} normalize-path@3.0.0: {} @@ -14802,17 +14688,19 @@ snapshots: object-inspect@1.13.4: {} + object-keys@1.1.1: {} + object-treeify@1.1.33: {} obug@2.2.1: {} obug@3.0.0: {} - ollama-ai-provider-v2@4.0.1(ai@7.0.118(zod@4.6.5))(zod@4.6.5): + ollama-ai-provider-v2@4.0.1(ai@7.0.122(zod@4.6.5))(zod@4.6.5): dependencies: '@ai-sdk/provider': 4.0.18 '@ai-sdk/provider-utils': 5.0.49(zod@4.6.5) - ai: 7.0.118(zod@4.6.5) + ai: 7.0.122(zod@4.6.5) zod: 4.6.5 on-finished@2.4.1: @@ -15231,8 +15119,6 @@ snapshots: dependencies: commander: 13.1.0 - punycode.js@2.3.1: {} - pure-rand@8.4.2: {} pvtsutils@1.3.6: @@ -15463,6 +15349,15 @@ snapshots: reusify@1.1.0: {} + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + rolldown-plugin-dts@0.28.6(@typescript/native-preview@7.0.0-dev.20260707.2)(oxc-resolver@11.24.2)(rolldown@1.2.11)(typescript@7.0.2): dependencies: dts-resolver: 3.0.0(oxc-resolver@11.24.2) @@ -15543,6 +15438,8 @@ snapshots: dependencies: parseley: 0.12.1 + semver-compare@1.0.0: {} + semver@6.3.1: {} semver@7.8.5: {} @@ -15563,6 +15460,10 @@ snapshots: transitivePeerDependencies: - supports-color + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + seroval-plugins@1.5.6(seroval@1.5.6): dependencies: seroval: 1.5.6 @@ -15706,12 +15607,8 @@ snapshots: sisteransi@1.0.5: {} - slash@5.1.0: {} - smart-buffer@4.2.0: {} - smol-toml@1.8.0: {} - smol-toml@1.9.0: {} socket.io-adapter@2.5.8(supports-color@7.2.0): @@ -15780,6 +15677,8 @@ snapshots: split2@4.2.0: {} + sprintf-js@1.1.3: {} + standard-as-callback@2.1.0: {} statuses@2.0.2: {} @@ -15802,11 +15701,6 @@ snapshots: get-east-asian-width: 1.7.0 strip-ansi: 7.2.0 - string-width@8.2.1: - dependencies: - get-east-asian-width: 1.7.0 - strip-ansi: 7.2.0 - string-width@8.3.0: dependencies: get-east-asian-width: 1.7.0 @@ -15904,14 +15798,6 @@ snapshots: tapable@2.3.3: {} - tar@7.5.22: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.3 - minizlib: 3.1.0 - yallist: 5.0.0 - throttleit@2.1.0: {} tiny-invariant@1.3.3: {} @@ -16007,6 +15893,8 @@ snapshots: tw-animate-css@1.4.0: {} + type-fest@0.13.1: {} + type-fest@5.10.0: dependencies: tagged-tag: 1.0.0 @@ -16040,8 +15928,6 @@ snapshots: '@typescript/typescript-win32-arm64': 7.0.2 '@typescript/typescript-win32-x64': 7.0.2 - uc.micro@3.0.0: {} - uint8array-extras@1.6.0: {} unbash@4.0.11: {} @@ -16063,8 +15949,6 @@ snapshots: unicorn-magic@0.3.0: {} - unicorn-magic@0.4.1: {} - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -16267,8 +16151,6 @@ snapshots: yallist@3.1.1: {} - yallist@5.0.0: {} - yaml@1.10.3: {} yaml@2.9.1: {}