diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml index 1724f20..133c01b 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -8,19 +8,20 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v6 with: run_install: true + version: latest - name: Setup Nodejs uses: actions/setup-node@v4 with: - node-version: 23.1.0 + node-version: 24 cache: pnpm - name: Install Deps diff --git a/AGENTS.md b/AGENTS.md index 3230378..cacc72b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,130 +1,81 @@ # AGENTS.md -This document provides context, conventions, and instructions for AI agents (and human developers) working on the `animeko-website` repository. - -## 1. Project Overview - -- **Framework:** [Astro](https://astro.build/) (v5.x) -- **UI Framework:** [SolidJS](https://solidjs.com/) (v1.x) -- **Styling:** [Tailwind CSS](https://tailwindcss.com/) (v4.x) using `@tailwindcss/vite`. -- **Linter/Formatter:** [Biome](https://biomejs.dev/) (v2.x). -- **Package Manager:** [pnpm](https://pnpm.io/) (v10.x). -- **Language:** TypeScript (Strict mode enabled). - -## 2. Development & Build Commands - -Always use `pnpm` for script execution. - -### Core Commands -- **Start Development Server:** - ```bash - pnpm dev - # or - pnpm start - ``` - Runs `astro dev`. - -- **Build Production Artifacts:** - ```bash - pnpm build - ``` - Runs `astro check` (type checking) followed by `astro build`. - *Note: Always run this before submitting changes to ensure type safety.* - -- **Preview Production Build:** - ```bash - pnpm preview - ``` - -### Linting & Formatting -The project uses **Biome** for both linting and formatting. Do not use Prettier or ESLint commands. - -- **Lint and Fix Code:** - ```bash - pnpm code:lint - ``` - Executes `biome lint . --fix`. - -- **Type Checking:** - ```bash - pnpm astro check - ``` - Checks `.astro` files and TypeScript validity. - -### Testing -There is currently no dedicated unit test runner (like Vitest) configured in `package.json`. -**Verification Strategy for Agents:** -1. **Static Analysis:** Run `pnpm code:lint` to catch syntax and style errors. -2. **Type Safety:** Run `pnpm build` (which includes `astro check`) to verify type integrity. -3. **Runtime Verification:** If making UI changes, ensure the dev server starts without errors via `pnpm dev`. - -## 3. Code Style & Conventions - -Strictly adhere to the rules defined in `biome.json`. - -### Formatting Rules -- **Indentation:** 2 spaces. -- **Line Width:** 120 characters. -- **Line Endings:** LF. -- **Quotes:** Double quotes (`"`) for both JS/TS and JSX/Astro attributes. -- **Semicolons:** Always include semicolons. -- **Trailing Commas:** ES5 compatible (objects, arrays, etc.). -- **Arrow Parentheses:** Always included (e.g., `(arg) => ...`). -- **Bracket Spacing:** `true` (e.g., `{ foo }`). - -### Naming Conventions -- **Components:** PascalCase (e.g., `MyComponent.vue`, `Header.astro`). -- **Files/Directories:** Kebab-case is generally preferred for pages and assets, though component files usually match the component name. -- **Variables/Functions:** camelCase. -- **Constants:** UPPER_CASE or camelCase depending on context. - -### TypeScript -- **Strict Mode:** Enabled via `astro/tsconfigs/strict`. -- **No `any`:** Avoid `any` types. Use proper interfaces or `unknown` if necessary. -- **Non-null Assertions:** Biome rule `noNonNullAssertion` is disabled ("off"), but use them sparingly. -- **Unused Variables:** specific Biome rules (`noUnusedVariables`) are set to "warn" or "error". Clean up unused code. - -### CSS / Tailwind -- **Tailwind v4:** This project uses Tailwind CSS v4. -- **Directives:** `@apply`, `@theme`, and other Tailwind directives are supported. -- **Ordering:** Biome handles class sorting/attribute positioning automatically ("auto"). - -### Imports -- **Organization:** Biome `organizeImports` is enabled. -- **Unused Imports:** `noUnusedImports` is set to "warn". Remove them. -- **File Extensions:** Use explicit extensions where appropriate in ESM, though standard bundler resolution applies. - -## 4. Directory Structure - -- `src/pages/`: Astro file-based routing. -- `src/components/`: Reusable UI components (Astro or Vue). -- `src/layouts/`: Astro layouts (e.g., BaseLayout). -- `src/styles/`: Global styles (CSS/Tailwind). -- `src/ui/`: Likely atomic or design-system specific UI components. -- `src/types/`: TypeScript type definitions. -- `public/`: Static assets served at root. - -## 5. Error Handling - -- **Async/Await:** Prefer `async/await` over raw promises. -- **Try/Catch:** Use standard try/catch blocks for API calls or risky operations. -- **Console Logs:** Avoid committing `console.log` statements. Use proper logging if available, or remove debug logs before finalizing. - -## 6. Git & CI Workflow - -- **Pre-commit:** `husky` and `lint-staged` are configured. - - `*.astro`: Runs `astro check`. -- **CI Pipeline:** GitHub Actions (`pr_prew.yml`) runs on Pull Requests. - - Installs dependencies with `pnpm`. - - Runs `pnpm build`. - - Environment: Node.js 23.x. - -## 7. Agent Behavior Guidelines - -- **File Modification:** When editing files, always read the file first to preserve existing structure. -- **Dependencies:** Do NOT add new dependencies without explicit instruction. Use existing packages (`@headlessui/vue`, `@iconify/vue`, etc.). -- **Astro Components:** Keep frontmatter (JavaScript fence `---`) clean and typed. -- **Safety:** Do not bypass `lint-staged` hooks. Ensure your code passes `pnpm code:lint` and `pnpm build` before marking a task as complete. - ---- -*Generated for AI Agents interacting with the animeko-website repository.* +Compact instructions for AI agents working on `animeko-website` (https://myani.org). + +## Stack + +- **Framework:** Astro v6 (static output, deployed to Cloudflare Pages via `wrangler.jsonc`) +- **UI:** SolidJS v1 (JSX in `.tsx` files) +- **Styling:** Tailwind CSS v4 via `@tailwindcss/vite` +- **Lint/Format:** Biome v2 — do NOT use Prettier or ESLint +- **Package Manager:** pnpm v10 (lockfile: `pnpm-lock.yaml`; also has `bun.lock` but use pnpm) +- **Language:** TypeScript strict mode. Path alias `@/*` → `src/*` + +## Commands + +``` +pnpm dev # Dev server +pnpm build # astro check + astro build (run before committing) +pnpm code:fix # biome check --write . (lint + format fix) +pnpm test:logic # node --experimental-strip-types --test src/components/modules/*.test.ts +pnpm astro check # Type-check only (also runs as pre-commit on *.astro via lint-staged) +``` + +Verification order: `pnpm code:fix` → `pnpm build` → if UI changed, `pnpm dev` to spot-check. + +## Testing + +Logic tests use Node's built-in test runner (`node:test` + `node:assert/strict`). Test files live alongside source as `*.test.ts` in `src/components/modules/`. Run with `pnpm test:logic`. + +## Content Collections + +Defined in `src/content.config.ts`: + +- **changelogs** — custom loader fetches release data from an external API at build time. Schema: `version`, `downloadUrlAlternatives`, `publishTime` (unix seconds → ISO date), `description` (rendered as markdown). +- **wiki** — glob loader over `src/content/wiki/*.md`. Frontmatter: `title` (required), `order` (optional), `authors` (optional array). + +## Key Source Layout + +``` +src/ + components/ + common/ # NavBar, Footer, GoogleAnalytics + home/ # Landing page sections (Header, Features, FAQ, etc.) + modules/ # Interactive components (DownloadList.tsx) + logic tests + content/ + wiki/ # Wiki markdown files + config/ # ads.ts + layouts/ # Layout, Doc, Post, Changelog + pages/ # File-based routes (index, downloads, changelogs, wiki/*, about, 404) + plugins/ # rehypeMarkdownImages.ts (custom rehype plugin) + scripts/ # Client-side scripts (analytics, image enhancement) + styles/ # Global CSS +``` + +## Code Style (enforced by biome.json) + +- 2-space indent, 120 char line width, LF line endings, double quotes, semicolons always, ES5 trailing commas +- Arrow parens always, bracket spacing true +- `organizeImports` enabled; remove unused imports +- `noNonNullAssertion` is OFF (allowed but use sparingly) +- Biome rules are relaxed for `.astro`, `.svelte`, `.vue` files (unused vars/imports off) + +## Deployment + +Cloudflare Pages static asset hosting. `wrangler.jsonc` points to `./dist` with auto-trailing-slash HTML handling. CI (`pr_check.yml`) runs on PRs: pnpm install → `pnpm build` with Node 23.x and `--max_old_space_size=8192`. + +## Environment + +Only one env var in `.env.example`: `PUBLIC_GA_MEASUREMENT_ID` (Google Analytics). No other secrets needed for local dev. + +## Pre-commit Hooks + +`husky` + `lint-staged`: runs `astro check` on `*.astro` files and `biome check` on all staged files. Do not bypass or disable. + +## Agent Rules + +- Do NOT add new dependencies without explicit instruction. +- Do NOT commit `console.log` statements. +- Read files before editing to preserve structure. +- Content is bilingual (English + Chinese). See `README_CN.md` and `CONTRIBUTING_CN.md`. +- The project has OpenCode skills in `.opencode/skills/` for UI baseline, accessibility, metadata, and motion performance — load relevant skills when those topics apply. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1086027..983d3b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,15 +2,33 @@ This guide describes how to contribute to the Animeko website. +## Stack + +- Framework: Astro v6 (static output, deployed to Cloudflare Pages) +- UI: SolidJS v1 (JSX in `.tsx` files) +- Styling: Tailwind CSS v4 via `@tailwindcss/vite` +- Lint/Format: Biome v2 — do NOT use Prettier or ESLint +- Package Manager: pnpm v10 +- Language: TypeScript strict mode. Path alias `@/*` → `src/*` + ## Project Structure -- `src/pages/`: File-based routing for Astro pages. -- `src/components/`: Reusable UI components (Astro or Solid). -- `src/layouts/`: Shared page layouts. -- `src/styles/`: Global styles and Tailwind layers. -- `src/ui/`: Design-system style UI building blocks. -- `src/types/`: Shared TypeScript types. -- `public/`: Static assets served at site root. +``` +src/ + components/ + common/ # NavBar, Footer, GoogleAnalytics + home/ # Landing page sections (Header, Features, FAQ, etc.) + modules/ # Interactive components (DownloadList.tsx) + logic tests + content/ + wiki/ # Wiki markdown files + config/ # ads.ts + layouts/ # Layout, Doc, Post, Changelog + pages/ # File-based routes (index, downloads, changelogs, wiki/*, about, 404) + plugins/ # rehypeMarkdownImages.ts (custom rehype plugin) + scripts/ # Client-side scripts (analytics, image enhancement) + styles/ # Global CSS +public/ # Static assets served at site root +``` ## Development Environment @@ -33,25 +51,47 @@ pnpm dev The site runs at `http://localhost:4321` by default. Use `pnpm start` as an alias for `pnpm dev`. +## Available Commands + +``` +pnpm dev # Dev server +pnpm build # astro check + astro build (run before committing) +pnpm code:fix # biome check --write . (lint + format fix) +pnpm test:logic # node --experimental-strip-types --test src/components/modules/*.test.ts +pnpm astro check # Type-check only (also runs as pre-commit on *.astro via lint-staged) +``` + ## Code Standards - Use TypeScript (strict mode is enabled). -- Follow Biome formatting and linting rules in `biome.json`. +- Follow Biome formatting and linting rules in `biome.json` (2-space indent, 120 char line width, double quotes, semicolons, ES5 trailing commas). - Use Tailwind CSS v4 for styling. - Keep imports organized and remove unused code. +## Testing + +Logic tests use Node's built-in test runner (`node:test` + `node:assert/strict`). Test files live alongside source as `*.test.ts` in `src/components/modules/`. Run with `pnpm test:logic`. + ## Commit Standards - Use concise, descriptive commit messages. - Gitmoji is recommended: +## Pre-commit Hooks + +`husky` + `lint-staged` run automatically on commit: +- `astro check` on `*.astro` files +- `biome check` on all staged files + +Do not bypass or disable these hooks. + ## Code Quality Requirements -Run these before submitting: +Verification order before submitting: ```bash pnpm code:fix pnpm build ``` -`pnpm build` includes type checking via `astro check`. +If you changed UI, also run `pnpm dev` to spot-check. `pnpm build` includes type checking via `astro check`. diff --git a/CONTRIBUTING_CN.md b/CONTRIBUTING_CN.md index 7847bb7..a795e2f 100644 --- a/CONTRIBUTING_CN.md +++ b/CONTRIBUTING_CN.md @@ -2,15 +2,33 @@ 本指南用于说明如何为 Animeko 网站做贡献。 +## 技术栈 + +- 框架:Astro v6(静态输出,部署到 Cloudflare Pages) +- UI:SolidJS v1(JSX 写在 `.tsx` 文件中) +- 样式:Tailwind CSS v4,通过 `@tailwindcss/vite` 集成 +- Lint/格式化:Biome v2 — 请勿使用 Prettier 或 ESLint +- 包管理器:pnpm v10 +- 语言:TypeScript 严格模式。路径别名 `@/*` → `src/*` + ## 项目结构 -- `src/pages/`: Astro 页面路由目录。 -- `src/components/`: 可复用 UI 组件(Astro 或 Solid)。 -- `src/layouts/`: 页面布局。 -- `src/styles/`: 全局样式与 Tailwind 层。 -- `src/ui/`: 设计系统风格的基础组件。 -- `src/types/`: 共享 TypeScript 类型。 -- `public/`: 站点根目录静态资源。 +``` +src/ + components/ + common/ # NavBar、Footer、GoogleAnalytics + home/ # 落地页各区块(Header、Features、FAQ 等) + modules/ # 交互组件(DownloadList.tsx)+ 逻辑测试 + content/ + wiki/ # Wiki Markdown 文件 + config/ # ads.ts + layouts/ # Layout、Doc、Post、Changelog + pages/ # 基于文件的路由(index、downloads、changelogs、wiki/*、about、404) + plugins/ # rehypeMarkdownImages.ts(自定义 rehype 插件) + scripts/ # 客户端脚本(统计、图片增强) + styles/ # 全局 CSS +public/ # 站点根目录静态资源 +``` ## 开发环境要求 @@ -33,25 +51,47 @@ pnpm dev 默认访问地址为 `http://localhost:4321`。`pnpm start` 作为 `pnpm dev` 的别名。 +## 可用命令 + +``` +pnpm dev # 开发服务器 +pnpm build # astro check + astro build(提交前执行) +pnpm code:fix # biome check --write .(lint + 格式化修复) +pnpm test:logic # node --experimental-strip-types --test src/components/modules/*.test.ts +pnpm astro check # 仅类型检查(也会在 pre-commit 阶段对 *.astro 文件运行) +``` + ## 代码规范 - 使用 TypeScript(严格模式已开启)。 -- 遵循 `biome.json` 中的格式化与 lint 规则。 +- 遵循 `biome.json` 中的格式化与 lint 规则(2 空格缩进、120 字符行宽、双引号、分号、ES5 尾逗号)。 - 样式使用 Tailwind CSS v4。 - 保持 import 有序,移除未使用代码。 +## 测试 + +逻辑测试使用 Node 内置测试运行器(`node:test` + `node:assert/strict`)。测试文件以 `*.test.ts` 的形式放在 `src/components/modules/` 源码旁边。使用 `pnpm test:logic` 运行。 + ## 提交规范 - 提交信息简洁清晰。 - 推荐使用 Gitmoji: +## Pre-commit 钩子 + +`husky` + `lint-staged` 会在提交时自动运行: +- 对 `*.astro` 文件运行 `astro check` +- 对所有暂存文件运行 `biome check` + +请勿绕过或禁用这些钩子。 + ## 代码质量要求 -提交前请执行: +提交前请按以下顺序验证: ```bash pnpm code:fix pnpm build ``` -`pnpm build` 会包含 `astro check` 的类型检查。 +如果修改了 UI,请额外执行 `pnpm dev` 进行预览检查。`pnpm build` 会包含 `astro check` 的类型检查。 diff --git a/astro.config.mjs b/astro.config.mts similarity index 100% rename from astro.config.mjs rename to astro.config.mts diff --git a/biome.json b/biome.json index 78fdcf4..54fdd3f 100644 --- a/biome.json +++ b/biome.json @@ -1,6 +1,6 @@ { "root": true, - "$schema": "https://biomejs.dev/schemas/2.4.12/schema.json", + "$schema": "https://biomejs.dev/schemas/2.5.0/schema.json", "formatter": { "enabled": true, "formatWithErrors": false, @@ -28,7 +28,7 @@ "linter": { "enabled": true, "rules": { - "recommended": true, + "preset": "recommended", "style": { "noNonNullAssertion": "off", "noDescendingSpecificity": "off" diff --git a/opencode.jsonc b/opencode.jsonc index 4ad38f3..5fc211d 100644 --- a/opencode.jsonc +++ b/opencode.jsonc @@ -1,5 +1,6 @@ { "$schema": "https://opencode.ai/config.json", + "lsp": true, "mcp": { "Astro docs": { "type": "remote", diff --git a/package.json b/package.json index 816b052..d5190a5 100644 --- a/package.json +++ b/package.json @@ -13,24 +13,24 @@ "postinstall": "husky" }, "dependencies": { - "@astrojs/markdown-remark": "^7.1.0", - "@astrojs/sitemap": "^3.7.2", + "@astrojs/markdown-remark": "^7.2.0", + "@astrojs/sitemap": "^3.7.3", "@astrojs/solid-js": "^6.0.1", - "@tailwindcss/vite": "^4.2.2", - "astro": "^6.1.8", + "@tailwindcss/vite": "^4.3.1", + "astro": "^6.4.8", "danmaku": "^2.0.9", - "mingcute_icon": "^2.9.71", + "mingcute_icon": "^2.9.72", "rehype-autolink-headings": "^7.1.0", "remark-github-blockquote-alert": "^2.1.0", - "solid-js": "^1.9.12", - "tailwindcss": "^4.2.2" + "solid-js": "^1.9.13", + "tailwindcss": "^4.3.1" }, "devDependencies": { - "@astrojs/check": "^0.9.8", - "@biomejs/biome": "^2.4.12", - "@typescript/native-preview": "7.0.0-dev.20250821.1", + "@astrojs/check": "^0.9.9", + "@biomejs/biome": "^2.5.0", + "@typescript/native-preview": "7.0.0-dev.20260619.1", "husky": "^9.1.7", - "lint-staged": "^16.4.0" + "lint-staged": "^17.0.7" }, "lint-staged": { "*.astro": "astro check", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 684c6fe..14d89c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,26 +9,26 @@ importers: .: dependencies: '@astrojs/markdown-remark': - specifier: ^7.1.0 - version: 7.1.0 + specifier: ^7.2.0 + version: 7.2.0 '@astrojs/sitemap': - specifier: ^3.7.2 - version: 3.7.2 + specifier: ^3.7.3 + version: 3.7.3 '@astrojs/solid-js': specifier: ^6.0.1 - version: 6.0.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(solid-js@1.9.12)(yaml@2.8.3) + version: 6.0.1(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(solid-js@1.9.13)(yaml@2.9.0) '@tailwindcss/vite': - specifier: ^4.2.2 - version: 4.2.2(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3)) + specifier: ^4.3.1 + version: 4.3.1(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)) astro: - specifier: ^6.1.8 - version: 6.1.8(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(typescript@5.9.2)(yaml@2.8.3) + specifier: ^6.4.8 + version: 6.4.8(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.60.2)(yaml@2.9.0) danmaku: specifier: ^2.0.9 version: 2.0.9 mingcute_icon: - specifier: ^2.9.71 - version: 2.9.71 + specifier: ^2.9.72 + version: 2.9.72 rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -36,47 +36,47 @@ importers: specifier: ^2.1.0 version: 2.1.0 solid-js: - specifier: ^1.9.12 - version: 1.9.12 + specifier: ^1.9.13 + version: 1.9.13 tailwindcss: - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.3.1 + version: 4.3.1 devDependencies: '@astrojs/check': - specifier: ^0.9.8 - version: 0.9.8(prettier@3.8.3)(typescript@5.9.2) + specifier: ^0.9.9 + version: 0.9.9(prettier@3.8.3)(typescript@5.9.2) '@biomejs/biome': - specifier: ^2.4.12 - version: 2.4.12 + specifier: ^2.5.0 + version: 2.5.0 '@typescript/native-preview': - specifier: 7.0.0-dev.20250821.1 - version: 7.0.0-dev.20250821.1 + specifier: 7.0.0-dev.20260619.1 + version: 7.0.0-dev.20260619.1 husky: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^17.0.7 + version: 17.0.7 packages: - '@astrojs/check@0.9.8': - resolution: {integrity: sha512-LDng8446QLS5ToKjRHd3bgUdirvemVVExV7nRyJfW2wV36xuv7vDxwy5NWN9zqeSEDgg0Tv84sP+T3yEq+Zlkw==} + '@astrojs/check@0.9.9': + resolution: {integrity: sha512-A5UW8uIuErLWEoRQvzgXpO1gTjUFtK8r7nU2Z7GewAMxUb7bPvpk11qaKKgxqXlHJWlAvaaxy+Xg28A6bmQ1Tg==} hasBin: true peerDependencies: - typescript: ^5.0.0 + typescript: ^5.0.0 || ^6.0.0 '@astrojs/compiler@2.13.1': resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} - '@astrojs/compiler@3.0.1': - resolution: {integrity: sha512-z97oYbdebO5aoWzuJ/8q5hLK232+17KcLZ7cJ8BCWk6+qNzVxn/gftC0KzMBUTD8WAaBkPpNSQK6PXLnNrZ0CA==} + '@astrojs/compiler@4.0.0': + resolution: {integrity: sha512-eouss7G8ygdZqHuke033VMcVw5HTZUu+PXd/h06DGDUg/jt5btPYPqh66ENWw/mU78rBrf/oeC4oqoBwMtDMNA==} - '@astrojs/internal-helpers@0.8.0': - resolution: {integrity: sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w==} + '@astrojs/internal-helpers@0.10.0': + resolution: {integrity: sha512-Ry2R3VPeIN4uPCSA4xQc+e+vsJXkalKpEbDc07hV+a/o5Bs2N/s/uDcPJH/05L19DKh9tAy7e6JM3YZ6Cxfezw==} - '@astrojs/language-server@2.16.6': - resolution: {integrity: sha512-N990lu+HSFiG57owR0XBkr02BYMgiLCshLf+4QG4v6jjSWkBeQGnzqi+E1L08xFPPJ7eEeXnxPXGLaVv5pa4Ug==} + '@astrojs/language-server@2.16.10': + resolution: {integrity: sha512-87VQ/5GSdHlRnUA+hGuerYyIGAj+9RbZmATyuKLEUePinUXhQ5YkRnRrHhOD9sSi5JOErLjrLkHnfZFEvGrV8w==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -87,15 +87,15 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@7.1.0': - resolution: {integrity: sha512-P+HnCsu2js3BoTc8kFmu+E9gOcFeMdPris75g+Zl4sY8+bBRbSQV6xzcBDbZ27eE7yBGEGQoqjpChx+KJYIPYQ==} + '@astrojs/markdown-remark@7.2.0': + resolution: {integrity: sha512-+YxmVQu1Bd+MFfSzjq1rOJvD9+nIOJzz5YIIhdIH01RrxRkKbyKoEgyIqP3yv51MhzMDgd79QaPv+kCVPT8vHw==} - '@astrojs/prism@4.0.1': - resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==} + '@astrojs/prism@4.0.2': + resolution: {integrity: sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==} engines: {node: '>=22.12.0'} - '@astrojs/sitemap@3.7.2': - resolution: {integrity: sha512-PqkzkcZTb5ICiyIR8VoKbIAP/laNRXi5tw616N1Ckk+40oNB8Can1AzVV56lrbC5GKSZFCyJYUVYqVivMisvpA==} + '@astrojs/sitemap@3.7.3': + resolution: {integrity: sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA==} '@astrojs/solid-js@6.0.1': resolution: {integrity: sha512-6g2DEtznW2ithiaDY3qyCSdnyNBjpXfKR2qCnvxxdmZZlO+8AC85KkEX4BpnJrzVfy7ptx0/WYKuBRCFdheo8Q==} @@ -107,12 +107,12 @@ packages: solid-devtools: optional: true - '@astrojs/telemetry@3.3.1': - resolution: {integrity: sha512-7fcIxXS9J4ls5tr8b3ww9rbAIz2+HrhNJYZdkAhhB4za/I5IZ/60g+Bs8q7zwG0tOIZfNB4JWhVJ1Qkl/OrNCw==} + '@astrojs/telemetry@3.3.2': + resolution: {integrity: sha512-j8DNruA8ors99Al39RYZPJK4DC1bKkoNm93mAMuBhY9TCNC4R8n1q7ovFnJ5qhGh5Lsh7pa1gpQVpYpsJPeTHQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - '@astrojs/yaml2ts@0.2.3': - resolution: {integrity: sha512-PJzRmgQzUxI2uwpdX2lXSHtP4G8ocp24/t+bZyf5Fy0SZLSF9f9KXZoMlFM/XCGue+B0nH/2IZ7FpBYQATBsCg==} + '@astrojs/yaml2ts@0.2.4': + resolution: {integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==} '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} @@ -195,55 +195,59 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@biomejs/biome@2.4.12': - resolution: {integrity: sha512-Rro7adQl3NLq/zJCIL98eElXKI8eEiBtoeu5TbXF/U3qbjuSc7Jb5rjUbeHHcquDWeSf3HnGP7XI5qGrlRk/pA==} + '@biomejs/biome@2.5.0': + resolution: {integrity: sha512-4kURkd9hAPrdDM3C9n82ycYgx8hvQcW6MjKTEejruj8rK0N8P3OPpdy8BvI8kt3KWY4ycF5XtDOrktetEfhfuw==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.4.12': - resolution: {integrity: sha512-BnMU4Pc3ciEVteVpZ0BK33MLr7X57F5w1dwDLDn+/iy/yTrA4Q/N2yftidFtsA4vrDh0FMXDpacNV/Tl3fbmng==} + '@biomejs/cli-darwin-arm64@2.5.0': + resolution: {integrity: sha512-Mn3Fwi3SA5fgmfCPqmzpWF2DLZnms3BVAhM088nTnGrTZmHS3wwIjcoZPqpXeNgd3DrrLH6xp8vTLIBuJoZiXw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.4.12': - resolution: {integrity: sha512-x9uJ0bI1rJsWICp3VH8w/5PnAVD3A7SqzDpbrfoUQX1QyWrK5jSU4fRLo/wSgGeplCivbxBRKmt5Xq4/nWvq8A==} + '@biomejs/cli-darwin-x64@2.5.0': + resolution: {integrity: sha512-rg3VPL5P8mYro6pqlXYXuJWph21slVp3SZtAqWSrkZs40d2gTzYmHF8E/X1iTID25btmNKltNDJ926sqVBp7DQ==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.4.12': - resolution: {integrity: sha512-FhfpkAAlKL6kwvcVap0Hgp4AhZmtd3YImg0kK1jd7C/aSoh4SfsB2f++yG1rU0lr8Y5MCFJrcSkmssiL9Xnnig==} + '@biomejs/cli-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-vQdM4oSGaf7ZNeGO9w5+Y8SBtyser9M6znxYbm7Ec8wInxJu1WiKxFYZW5Auj2d80bcVvefuGGRxoFOE0eee8g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + libc: [musl] - '@biomejs/cli-linux-arm64@2.4.12': - resolution: {integrity: sha512-tOwuCuZZtKi1jVzbk/5nXmIsziOB6yqN8c9r9QM0EJYPU6DpQWf11uBOSCfFKKM4H3d9ZoarvlgMfbcuD051Pw==} + '@biomejs/cli-linux-arm64@2.5.0': + resolution: {integrity: sha512-tl+LW8fdD96/xdeWtWwc82LIOc5CoY7N2AsogLTp5R4ECErYt+8Jl/N68ezN9vzSiqPTxw6vjcihoLPYKZHrlw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + libc: [glibc] - '@biomejs/cli-linux-x64-musl@2.4.12': - resolution: {integrity: sha512-dwTIgZrGutzhkQCuvHynCkyW6hJxUuyZqKKO0YNfaS2GUoRO+tOvxXZqZB6SkWAOdfZTzwaw8IEdUnIkHKHoew==} + '@biomejs/cli-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-+9hIcMngJ+yGUahXqZuZ8CoWKJE9SAZsFsM3QDvXpNsLbXZ9lqVzgBhOk/jTSYkOA0GLP9eu3teukqpLUojHMg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + libc: [musl] - '@biomejs/cli-linux-x64@2.4.12': - resolution: {integrity: sha512-8pFeAnLU9QdW9jCIslB/v82bI0lhBmz2ZAKc8pVMFPO0t0wAHsoEkrUQUbMkIorTRIjbqyNZHA3lEXavsPWYSw==} + '@biomejs/cli-linux-x64@2.5.0': + resolution: {integrity: sha512-zpEGf4RQbFEh8Vt7OmavLyyOzRbtcE9osCqrS1kfvt8jDvxwhKXLSf7n0ebr/ov0RJ9ssP+lhs6C8a9WwFvrQA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + libc: [glibc] - '@biomejs/cli-win32-arm64@2.4.12': - resolution: {integrity: sha512-B0DLnx0vA9ya/3v7XyCaP+/lCpnbWbMOfUFFve+xb5OxyYvdHaS55YsSddr228Y+JAFk58agCuZTsqNiw2a6ig==} + '@biomejs/cli-win32-arm64@2.5.0': + resolution: {integrity: sha512-jB0wAvTLI4itx5VidqVUejPQFhRUxiZ9l9FvZ26D5fl6t3qme+ZB4PD3bTSeL1vZ8NI2Rx/zj6H9zcESuGHKGw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.4.12': - resolution: {integrity: sha512-yMckRzTyZ83hkk8iDFWswqSdU8tvZxspJKnYNh7JZr/zhZNOlzH13k4ecboU6MurKExCe2HUkH75pGI/O2JwGA==} + '@biomejs/cli-win32-x64@2.5.0': + resolution: {integrity: sha512-VT/lF+GId+67j8aDfLkxdxNoVApsPSTbyAtB3jJq0IWTrY77WXfbPfpngxq0bA6JCEv/7k8C9qWjDRKRznDlyw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -468,89 +472,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -637,66 +657,79 @@ packages: resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.60.2': resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.60.2': resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.60.2': resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.60.2': resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.60.2': resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.60.2': resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.60.2': resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.60.2': resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.60.2': resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.60.2': resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.60.2': resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.60.2': resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openbsd-x64@4.60.2': resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} @@ -759,65 +792,69 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@tailwindcss/node@4.2.2': - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + '@tailwindcss/node@4.3.1': + resolution: {integrity: sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==} - '@tailwindcss/oxide-android-arm64@4.2.2': - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + '@tailwindcss/oxide-android-arm64@4.3.1': + resolution: {integrity: sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==} engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.2.2': - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + '@tailwindcss/oxide-darwin-arm64@4.3.1': + resolution: {integrity: sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==} engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.2.2': - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + '@tailwindcss/oxide-darwin-x64@4.3.1': + resolution: {integrity: sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==} engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.2.2': - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + '@tailwindcss/oxide-freebsd-x64@4.3.1': + resolution: {integrity: sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==} engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1': + resolution: {integrity: sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==} engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + '@tailwindcss/oxide-linux-arm64-gnu@4.3.1': + resolution: {integrity: sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [glibc] - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + '@tailwindcss/oxide-linux-arm64-musl@4.3.1': + resolution: {integrity: sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + '@tailwindcss/oxide-linux-x64-gnu@4.3.1': + resolution: {integrity: sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [glibc] - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + '@tailwindcss/oxide-linux-x64-musl@4.3.1': + resolution: {integrity: sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [musl] - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} + '@tailwindcss/oxide-wasm32-wasi@4.3.1': + resolution: {integrity: sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -828,24 +865,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + '@tailwindcss/oxide-win32-arm64-msvc@4.3.1': + resolution: {integrity: sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==} engines: {node: '>= 20'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + '@tailwindcss/oxide-win32-x64-msvc@4.3.1': + resolution: {integrity: sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==} engines: {node: '>= 20'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.2.2': - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + '@tailwindcss/oxide@4.3.1': + resolution: {integrity: sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==} engines: {node: '>= 20'} - '@tailwindcss/vite@4.2.2': - resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + '@tailwindcss/vite@4.3.1': + resolution: {integrity: sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 || ^8 @@ -888,55 +925,56 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-b3L13MVLvigBTf8jc6fDQnbWi4RC5XoXgaakftm+gQtFNtriU5Iqfl3ROBjiwPgUMmuXfjnSpau1zKwDY8M5zw==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-i07qdTFQEBYotjg/Iy0GAfARSFyKAjXmP5BNPo6+QXGOp5hJNnmXSxGyhIlooqbDXluTQRhESEmzVAuvYryKCA==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-EIFcmzaFhM176D6jHD1aJ1FGos9sTokWeFvVfJVDSk27box/xMNtfwM7OXg17OIWoF2IDC6zpyOV4mOs+9ADCg==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-WVetqm9ypzLv+b/8+SRYuO6bJDC4AaQmT/1EcYh8iP6y5vZl3h13iscJ+45eHc4Y3yMyoDHOivfOTyTIMH2Vrw==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-linux-arm64@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-V1Ok+gnzLrrMIjUdIOf8uiNEy7t9OJ7/x3G8/0F/WRfVyT0p1Tcv70g1nEStiMk+60wjyyP76F81GDn9wXg0aQ==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-peEnXecjZsnsW24GutRasmZlIgRLbyXPoR0inMkzXT1h7/+Ns5tM8RPnuxelXoC10dg4Ajo8I9BlUAgX45LwEQ==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-oFv7qu8uLmJtHcebQYbP6s7tG3kq+hstXHkOU76d2Ke1F1kJDaQmOz4MU1nY/AVtOs6dqQPPJ0jfpnrgsq8fYg==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-linux-arm@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-mqUzZ9htNWH0su9+A5QqnHJ25hQ+E8Cq5qOOmfdQjiCQnPT69HQZ9MiUozQc1qk0i9/UaXouYDK48Pe0oUvUOw==} + engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-l5UPAxtM10B0nECUHpmSwcxxDZJhGB44uaFaMpKrDVC3Cl4/4M//HgRcYA83+VSDA+Nz1naanXBNTWFgTY6ygw==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-linux-x64@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-vZhIHvtpQE4ZICMIzIrOVOl/YYOLJjA91CsJMyetNNzvuQCCtll7CWUsS6Sp1IdRqJdwM6seJrdDEAtWkEMFkA==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-79ICW5hDFZRjNDXpvKdnCYuNaDo/SlGrL2x2cwqm7CXor/bh1QJ9v993AQHP2ZRc13GxHT+SIIUi4FXVhy47ug==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-pRdZDV9Q3IzBKOi5WrIaEnlkVLB0w3zVj2/BliPV/oQ8r8N+4LmSCuyy8PbL5bMw8SznTlmiIfv5gvoEx2SpEw==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-x64@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-n9DOZc8e3azx5FedX5U4llAsUF250Z0TOfNxnB/E9njWCkoh8mguKFMM+RQpoppV2jl7nhfpzlNJ1Vgp1OA45Q==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview-win32-x64@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-sOvPE+lA/+SU/cnva+MXA1oq70HO0lLajsj9ZA10T1CN1PUGgaC1Zw7V0objTJsZ9ri6I3Ldp+Fh4Onz3mLDXw==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20250821.1': - resolution: {integrity: sha512-o6rAnWoRc+IDZ+sxblSn2ZEbdhl5ggK4IvYcNrYAF1phiZKC3PS2WT12O0EJ9MT9Xtu3+32gxqJZ4YORaEIGKQ==} - engines: {node: '>=20.6.0'} + '@typescript/native-preview@7.0.0-dev.20260619.1': + resolution: {integrity: sha512-YDmSiD6l+nikPoqrwDKn9wkCFUDFJCfkKcOKrYVycX5plwu6H03JWKyW1h1HjEfrMVw4Mq/Qk12VTsXJWP4TDQ==} + engines: {node: '>=16.20.0'} hasBin: true '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@volar/kit@2.4.28': resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==} @@ -1012,8 +1050,8 @@ packages: array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - astro@6.1.8: - resolution: {integrity: sha512-6fT9M12U3fpi13DiPavNKDIoBflASTSxmKTEe+zXhWtlebQuOqfOnIrMWyRmlXp+mgDsojmw+fVFG9LUTzKSog==} + astro@6.4.8: + resolution: {integrity: sha512-KK5lX90uU9EeVaTjINyj3sy9/NFXVa59aowaqbWBDDKLXZh4rr7GwIaCFYVetE22MJtsCNFerQXn0vlCLmpP/Q==} engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1101,9 +1139,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -1111,10 +1146,6 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} - common-ancestor-path@2.0.0: resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} engines: {node: '>= 18'} @@ -1183,8 +1214,8 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - devalue@5.7.1: - resolution: {integrity: sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==} + devalue@5.8.1: + resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -1193,9 +1224,6 @@ packages: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1225,8 +1253,8 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + enhanced-resolve@5.21.6: + resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} engines: {node: '>=10.13.0'} entities@4.5.0: @@ -1318,6 +1346,10 @@ packages: resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} + get-tsconfig@5.0.0-beta.4: + resolution: {integrity: sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==} + engines: {node: '>=20.20.0'} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -1415,8 +1447,8 @@ packages: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true js-tokens@4.0.0: @@ -1484,24 +1516,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.32.0: resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} @@ -1519,14 +1555,14 @@ packages: resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} - lint-staged@16.4.0: - resolution: {integrity: sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==} - engines: {node: '>=20.17'} + lint-staged@17.0.7: + resolution: {integrity: sha512-JrSobt+tW3rH8IOMi8tDZd3foorM5yPEkLD/V2NxobgHrFfHWGee4MOLVuZeScgxftEwbHrPHIFA/ZL+nUJeuA==} + engines: {node: '>=22.22.1'} hasBin: true - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} + listr2@10.2.1: + resolution: {integrity: sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==} + engines: {node: '>=22.13.0'} log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} @@ -1688,8 +1724,8 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - mingcute_icon@2.9.71: - resolution: {integrity: sha512-4QCtrym4uGW9pCsMs8u2ACbRKg5acumoT5st8EIo2aiLjws5XOGzafZvZULr6YiALa5JrsNHaeX7Nt/j+4ZB9g==} + mingcute_icon@2.9.72: + resolution: {integrity: sha512-pOw6b1tzQ1JXJP7XefmGhK3nh6GHRaQzi6YjcIu5VfAfr3lN70C6Hc9tC1v/+aNRL9RvbDMaciP18q71HklQgQ==} mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} @@ -1871,6 +1907,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -1950,8 +1989,8 @@ packages: resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} - solid-js@1.9.12: - resolution: {integrity: sha512-QzKaSJq2/iDrWR1As6MHZQ8fQkdOBf8GReYb7L5iKwMGceg7HxDcaOHk0at66tNgn9U2U7dXo8ZZpLIAmGMzgw==} + solid-js@1.9.13: + resolution: {integrity: sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ==} solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} @@ -2000,11 +2039,11 @@ packages: engines: {node: '>=16'} hasBin: true - tailwindcss@4.2.2: - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + tailwindcss@4.3.1: + resolution: {integrity: sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==} - tapable@2.3.2: - resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} tiny-inflate@1.0.3: @@ -2018,6 +2057,10 @@ packages: resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + engines: {node: '>=18'} + tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -2028,16 +2071,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - tsconfck@3.1.6: - resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -2331,6 +2364,10 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} + wrap-ansi@10.0.0: + resolution: {integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==} + engines: {node: '>=20'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -2363,6 +2400,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -2387,9 +2429,9 @@ packages: snapshots: - '@astrojs/check@0.9.8(prettier@3.8.3)(typescript@5.9.2)': + '@astrojs/check@0.9.9(prettier@3.8.3)(typescript@5.9.2)': dependencies: - '@astrojs/language-server': 2.16.6(prettier@3.8.3)(typescript@5.9.2) + '@astrojs/language-server': 2.16.10(prettier@3.8.3)(typescript@5.9.2) chokidar: 4.0.3 kleur: 4.1.5 typescript: 5.9.2 @@ -2400,16 +2442,23 @@ snapshots: '@astrojs/compiler@2.13.1': {} - '@astrojs/compiler@3.0.1': {} + '@astrojs/compiler@4.0.0': {} - '@astrojs/internal-helpers@0.8.0': + '@astrojs/internal-helpers@0.10.0': dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + js-yaml: 4.1.1 picomatch: 4.0.4 + retext-smartypants: 6.2.0 + shiki: 4.0.2 + smol-toml: 1.6.1 + unified: 11.0.5 - '@astrojs/language-server@2.16.6(prettier@3.8.3)(typescript@5.9.2)': + '@astrojs/language-server@2.16.10(prettier@3.8.3)(typescript@5.9.2)': dependencies: '@astrojs/compiler': 2.13.1 - '@astrojs/yaml2ts': 0.2.3 + '@astrojs/yaml2ts': 0.2.4 '@jridgewell/sourcemap-codec': 1.5.5 '@volar/kit': 2.4.28(typescript@5.9.2) '@volar/language-core': 2.4.28 @@ -2431,14 +2480,13 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@7.1.0': + '@astrojs/markdown-remark@7.2.0': dependencies: - '@astrojs/internal-helpers': 0.8.0 - '@astrojs/prism': 4.0.1 + '@astrojs/internal-helpers': 0.10.0 + '@astrojs/prism': 4.0.2 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 - js-yaml: 4.1.1 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 @@ -2446,9 +2494,6 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - retext-smartypants: 6.2.0 - shiki: 4.0.2 - smol-toml: 1.6.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.1.0 @@ -2457,21 +2502,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/prism@4.0.1': + '@astrojs/prism@4.0.2': dependencies: prismjs: 1.30.0 - '@astrojs/sitemap@3.7.2': + '@astrojs/sitemap@3.7.3': dependencies: sitemap: 9.0.1 stream-replace-string: 2.0.0 zod: 4.3.6 - '@astrojs/solid-js@6.0.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(solid-js@1.9.12)(yaml@2.8.3)': + '@astrojs/solid-js@6.0.1(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(solid-js@1.9.13)(yaml@2.9.0)': dependencies: - solid-js: 1.9.12 - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3) - vite-plugin-solid: 2.11.12(solid-js@1.9.12)(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3)) + solid-js: 1.9.13 + vite: 7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0) + vite-plugin-solid: 2.11.12(solid-js@1.9.13)(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -2487,16 +2532,15 @@ snapshots: - tsx - yaml - '@astrojs/telemetry@3.3.1': + '@astrojs/telemetry@3.3.2': dependencies: ci-info: 4.4.0 - dlv: 1.1.3 dset: 3.1.4 is-docker: 4.0.0 is-wsl: 3.1.1 which-pm-runs: 1.1.0 - '@astrojs/yaml2ts@0.2.3': + '@astrojs/yaml2ts@0.2.4': dependencies: yaml: 2.8.3 @@ -2611,39 +2655,39 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@biomejs/biome@2.4.12': + '@biomejs/biome@2.5.0': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.4.12 - '@biomejs/cli-darwin-x64': 2.4.12 - '@biomejs/cli-linux-arm64': 2.4.12 - '@biomejs/cli-linux-arm64-musl': 2.4.12 - '@biomejs/cli-linux-x64': 2.4.12 - '@biomejs/cli-linux-x64-musl': 2.4.12 - '@biomejs/cli-win32-arm64': 2.4.12 - '@biomejs/cli-win32-x64': 2.4.12 - - '@biomejs/cli-darwin-arm64@2.4.12': + '@biomejs/cli-darwin-arm64': 2.5.0 + '@biomejs/cli-darwin-x64': 2.5.0 + '@biomejs/cli-linux-arm64': 2.5.0 + '@biomejs/cli-linux-arm64-musl': 2.5.0 + '@biomejs/cli-linux-x64': 2.5.0 + '@biomejs/cli-linux-x64-musl': 2.5.0 + '@biomejs/cli-win32-arm64': 2.5.0 + '@biomejs/cli-win32-x64': 2.5.0 + + '@biomejs/cli-darwin-arm64@2.5.0': optional: true - '@biomejs/cli-darwin-x64@2.4.12': + '@biomejs/cli-darwin-x64@2.5.0': optional: true - '@biomejs/cli-linux-arm64-musl@2.4.12': + '@biomejs/cli-linux-arm64-musl@2.5.0': optional: true - '@biomejs/cli-linux-arm64@2.4.12': + '@biomejs/cli-linux-arm64@2.5.0': optional: true - '@biomejs/cli-linux-x64-musl@2.4.12': + '@biomejs/cli-linux-x64-musl@2.5.0': optional: true - '@biomejs/cli-linux-x64@2.4.12': + '@biomejs/cli-linux-x64@2.5.0': optional: true - '@biomejs/cli-win32-arm64@2.4.12': + '@biomejs/cli-win32-arm64@2.5.0': optional: true - '@biomejs/cli-win32-x64@2.4.12': + '@biomejs/cli-win32-x64@2.5.0': optional: true '@capsizecss/unpack@4.0.0': @@ -3009,73 +3053,73 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@tailwindcss/node@4.2.2': + '@tailwindcss/node@4.3.1': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.1 - jiti: 2.6.1 + enhanced-resolve: 5.21.6 + jiti: 2.7.0 lightningcss: 1.32.0 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.2.2 + tailwindcss: 4.3.1 - '@tailwindcss/oxide-android-arm64@4.2.2': + '@tailwindcss/oxide-android-arm64@4.3.1': optional: true - '@tailwindcss/oxide-darwin-arm64@4.2.2': + '@tailwindcss/oxide-darwin-arm64@4.3.1': optional: true - '@tailwindcss/oxide-darwin-x64@4.2.2': + '@tailwindcss/oxide-darwin-x64@4.3.1': optional: true - '@tailwindcss/oxide-freebsd-x64@4.2.2': + '@tailwindcss/oxide-freebsd-x64@4.3.1': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + '@tailwindcss/oxide-linux-arm64-gnu@4.3.1': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + '@tailwindcss/oxide-linux-arm64-musl@4.3.1': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + '@tailwindcss/oxide-linux-x64-gnu@4.3.1': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.2.2': + '@tailwindcss/oxide-linux-x64-musl@4.3.1': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.2.2': + '@tailwindcss/oxide-wasm32-wasi@4.3.1': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + '@tailwindcss/oxide-win32-arm64-msvc@4.3.1': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + '@tailwindcss/oxide-win32-x64-msvc@4.3.1': optional: true - '@tailwindcss/oxide@4.2.2': + '@tailwindcss/oxide@4.3.1': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-x64': 4.2.2 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 - - '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3))': - dependencies: - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - tailwindcss: 4.2.2 - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3) + '@tailwindcss/oxide-android-arm64': 4.3.1 + '@tailwindcss/oxide-darwin-arm64': 4.3.1 + '@tailwindcss/oxide-darwin-x64': 4.3.1 + '@tailwindcss/oxide-freebsd-x64': 4.3.1 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.1 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.1 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.1 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.1 + '@tailwindcss/oxide-linux-x64-musl': 4.3.1 + '@tailwindcss/oxide-wasm32-wasi': 4.3.1 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.1 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.1 + + '@tailwindcss/vite@4.3.1(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))': + dependencies: + '@tailwindcss/node': 4.3.1 + '@tailwindcss/oxide': 4.3.1 + tailwindcss: 4.3.1 + vite: 7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0) '@types/babel__core@7.20.5': dependencies: @@ -3128,36 +3172,36 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250821.1': + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview-darwin-x64@7.0.0-dev.20250821.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview-linux-arm64@7.0.0-dev.20250821.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview-linux-arm@7.0.0-dev.20250821.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20250821.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20250821.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20250821.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20260619.1': optional: true - '@typescript/native-preview@7.0.0-dev.20250821.1': + '@typescript/native-preview@7.0.0-dev.20260619.1': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20250821.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20250821.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20250821.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20250821.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20250821.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20250821.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20250821.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260619.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260619.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260619.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260619.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260619.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260619.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260619.1 '@ungap/structured-clone@1.3.0': {} @@ -3249,12 +3293,12 @@ snapshots: array-iterate@2.0.1: {} - astro@6.1.8(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(typescript@5.9.2)(yaml@2.8.3): + astro@6.4.8(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.60.2)(yaml@2.9.0): dependencies: - '@astrojs/compiler': 3.0.1 - '@astrojs/internal-helpers': 0.8.0 - '@astrojs/markdown-remark': 7.1.0 - '@astrojs/telemetry': 3.3.1 + '@astrojs/compiler': 4.0.0 + '@astrojs/internal-helpers': 0.10.0 + '@astrojs/markdown-remark': 7.2.0 + '@astrojs/telemetry': 3.3.2 '@capsizecss/unpack': 4.0.0 '@clack/prompts': 1.2.0 '@oslojs/encoding': 1.1.0 @@ -3265,17 +3309,19 @@ snapshots: clsx: 2.1.1 common-ancestor-path: 2.0.0 cookie: 1.1.1 - devalue: 5.7.1 + devalue: 5.8.1 diff: 8.0.4 dset: 3.1.4 es-module-lexer: 2.0.0 esbuild: 0.27.7 flattie: 1.1.1 fontace: 0.4.1 + get-tsconfig: 5.0.0-beta.4 github-slugger: 2.0.0 html-escaper: 3.0.3 http-cache-semantics: 4.2.0 js-yaml: 4.1.1 + jsonc-parser: 3.3.1 magic-string: 0.30.21 magicast: 0.5.2 mrmime: 2.0.1 @@ -3294,14 +3340,13 @@ snapshots: tinyclip: 0.1.12 tinyexec: 1.1.1 tinyglobby: 0.2.16 - tsconfck: 3.1.6(typescript@5.9.2) ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 unstorage: 1.17.5 vfile: 6.0.3 - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3) - vitefu: 1.1.3(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3)) + vite: 7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)) xxhash-wasm: 1.1.0 yargs-parser: 22.0.0 zod: 4.3.6 @@ -3338,7 +3383,6 @@ snapshots: - supports-color - terser - tsx - - typescript - uploadthing - yaml @@ -3353,12 +3397,12 @@ snapshots: html-entities: 2.3.3 parse5: 7.3.0 - babel-preset-solid@1.9.12(@babel/core@7.29.0)(solid-js@1.9.12): + babel-preset-solid@1.9.12(@babel/core@7.29.0)(solid-js@1.9.13): dependencies: '@babel/core': 7.29.0 babel-plugin-jsx-dom-expressions: 0.40.6(@babel/core@7.29.0) optionalDependencies: - solid-js: 1.9.12 + solid-js: 1.9.13 bail@2.0.2: {} @@ -3417,14 +3461,10 @@ snapshots: color-name@1.1.4: {} - colorette@2.0.20: {} - comma-separated-tokens@2.0.3: {} commander@11.1.0: {} - commander@14.0.3: {} - common-ancestor-path@2.0.0: {} convert-source-map@2.0.0: {} @@ -3481,7 +3521,7 @@ snapshots: detect-libc@2.1.2: {} - devalue@5.7.1: {} + devalue@5.8.1: {} devlop@1.1.0: dependencies: @@ -3489,8 +3529,6 @@ snapshots: diff@8.0.4: {} - dlv@1.1.3: {} - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -3522,10 +3560,10 @@ snapshots: emoji-regex@8.0.0: {} - enhanced-resolve@5.20.1: + enhanced-resolve@5.21.6: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.2 + tapable: 2.3.3 entities@4.5.0: {} @@ -3611,6 +3649,10 @@ snapshots: get-east-asian-width@1.5.0: {} + get-tsconfig@5.0.0-beta.4: + dependencies: + resolve-pkg-maps: 1.0.0 + github-slugger@2.0.0: {} graceful-fs@4.2.11: {} @@ -3752,7 +3794,7 @@ snapshots: dependencies: is-inside-container: 1.0.0 - jiti@2.6.1: {} + jiti@2.7.0: {} js-tokens@4.0.0: {} @@ -3821,23 +3863,22 @@ snapshots: lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 - lint-staged@16.4.0: + lint-staged@17.0.7: dependencies: - commander: 14.0.3 - listr2: 9.0.5 + listr2: 10.2.1 picomatch: 4.0.4 string-argv: 0.3.2 - tinyexec: 1.1.1 - yaml: 2.8.3 + tinyexec: 1.2.4 + optionalDependencies: + yaml: 2.9.0 - listr2@9.0.5: + listr2@10.2.1: dependencies: cli-truncate: 5.2.0 - colorette: 2.0.20 eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.2 + wrap-ansi: 10.0.0 log-update@6.1.0: dependencies: @@ -4188,7 +4229,7 @@ snapshots: mimic-function@5.0.1: {} - mingcute_icon@2.9.71: {} + mingcute_icon@2.9.72: {} mrmime@2.0.1: {} @@ -4389,6 +4430,8 @@ snapshots: require-from-string@2.0.2: {} + resolve-pkg-maps@1.0.0: {} + restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -4530,18 +4573,18 @@ snapshots: smol-toml@1.6.1: {} - solid-js@1.9.12: + solid-js@1.9.13: dependencies: csstype: 3.2.3 seroval: 1.5.2 seroval-plugins: 1.5.2(seroval@1.5.2) - solid-refresh@0.6.3(solid-js@1.9.12): + solid-refresh@0.6.3(solid-js@1.9.13): dependencies: '@babel/generator': 7.29.1 '@babel/helper-module-imports': 7.28.6 '@babel/types': 7.29.0 - solid-js: 1.9.12 + solid-js: 1.9.13 transitivePeerDependencies: - supports-color @@ -4593,9 +4636,9 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - tailwindcss@4.2.2: {} + tailwindcss@4.3.1: {} - tapable@2.3.2: {} + tapable@2.3.3: {} tiny-inflate@1.0.3: {} @@ -4603,6 +4646,8 @@ snapshots: tinyexec@1.1.1: {} + tinyexec@1.2.4: {} + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -4612,10 +4657,6 @@ snapshots: trough@2.2.0: {} - tsconfck@3.1.6(typescript@5.9.2): - optionalDependencies: - typescript: 5.9.2 - tslib@2.8.1: optional: true @@ -4725,20 +4766,20 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-plugin-solid@2.11.12(solid-js@1.9.12)(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3)): + vite-plugin-solid@2.11.12(solid-js@1.9.13)(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)): dependencies: '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.12) + babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.13) merge-anything: 5.1.7 - solid-js: 1.9.12 - solid-refresh: 0.6.3(solid-js@1.9.12) - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3) - vitefu: 1.1.3(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3)) + solid-js: 1.9.13 + solid-refresh: 0.6.3(solid-js@1.9.13) + vite: 7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)) transitivePeerDependencies: - supports-color - vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3): + vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -4749,13 +4790,13 @@ snapshots: optionalDependencies: '@types/node': 24.12.2 fsevents: 2.3.3 - jiti: 2.6.1 + jiti: 2.7.0 lightningcss: 1.32.0 - yaml: 2.8.3 + yaml: 2.9.0 - vitefu@1.1.3(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3)): + vitefu@1.1.3(vite@7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)): optionalDependencies: - vite: 7.3.2(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.12.2)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0) volar-service-css@0.0.70(@volar/language-service@2.4.28): dependencies: @@ -4858,6 +4899,12 @@ snapshots: which-pm-runs@1.1.0: {} + wrap-ansi@10.0.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 8.2.0 + strip-ansi: 7.2.0 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -4894,6 +4941,9 @@ snapshots: yaml@2.8.3: {} + yaml@2.9.0: + optional: true + yargs-parser@21.1.1: {} yargs-parser@22.0.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..c939687 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,12 @@ +allowBuilds: + esbuild: true + sharp: true +minimumReleaseAgeExclude: + - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260619.1' + - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260619.1' + - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260619.1' + - '@typescript/native-preview-linux-arm@7.0.0-dev.20260619.1' + - '@typescript/native-preview-linux-x64@7.0.0-dev.20260619.1' + - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260619.1' + - '@typescript/native-preview-win32-x64@7.0.0-dev.20260619.1' + - '@typescript/native-preview@7.0.0-dev.20260619.1' diff --git a/src/components/home/AdSlidePanel.astro b/src/components/home/AdSlidePanel.astro new file mode 100644 index 0000000..0106d25 --- /dev/null +++ b/src/components/home/AdSlidePanel.astro @@ -0,0 +1,132 @@ +--- +import { homeAdConfig } from "@/config/ads"; +import AdBanner from "./AdBanner.astro"; + +const landscapeColumns = homeAdConfig.ads.map((ad) => `${ad.width / ad.height}fr`).join(" "); +--- + +
+
+ + +
+
+ { + homeAdConfig.ads.map((ad) => ( + + )) + } +
+
+
+
+ + + + diff --git a/src/components/home/FAQ.astro b/src/components/home/FAQ.astro index 80f07b1..b0a291c 100644 --- a/src/components/home/FAQ.astro +++ b/src/components/home/FAQ.astro @@ -6,7 +6,7 @@ interface Props { const { isIndex } = Astro.props; --- -
+

{isIndex ? 常见问题 : "常见问题"} diff --git a/src/components/home/Features.astro b/src/components/home/Features.astro index 67b440b..055db47 100644 --- a/src/components/home/Features.astro +++ b/src/components/home/Features.astro @@ -2,7 +2,7 @@ import FeatureCard from "./FeatureCard.astro"; --- -
+
diff --git a/src/components/home/Header.astro b/src/components/home/Header.astro index d6d45a0..3e44403 100644 --- a/src/components/home/Header.astro +++ b/src/components/home/Header.astro @@ -1,6 +1,6 @@ --- +import AdSlidePanel from "./AdSlidePanel.astro"; import HeaderShowCase from "./HeaderShowCase.astro"; -import HomeAdGroup from "./HomeAdGroup.astro"; ---
-
+
+

Animeko @@ -193,12 +194,10 @@ import HomeAdGroup from "./HomeAdGroup.astro"; 开源仓库 -

-
@@ -206,3 +205,5 @@ import HomeAdGroup from "./HomeAdGroup.astro";
+ + diff --git a/src/components/home/HeaderShowCase.astro b/src/components/home/HeaderShowCase.astro index 7bcb16e..94da89d 100644 --- a/src/components/home/HeaderShowCase.astro +++ b/src/components/home/HeaderShowCase.astro @@ -4,7 +4,7 @@
diff --git a/src/components/home/HomeAdGroup.astro b/src/components/home/HomeAdGroup.astro deleted file mode 100644 index 084325d..0000000 --- a/src/components/home/HomeAdGroup.astro +++ /dev/null @@ -1,46 +0,0 @@ ---- -import { homeAdConfig } from "@/config/ads"; -import AdBanner from "./AdBanner.astro"; - -interface Props { - class?: string; - placement?: string; -} - -const { class: className = "", placement = "home_header" } = Astro.props; -const landscapeColumns = homeAdConfig.ads.map((ad) => `${ad.width / ad.height}fr`).join(" "); ---- - -
- { - homeAdConfig.ads.map((ad) => ( - - )) - } -
- - diff --git a/src/plugins/rehypeMarkdownImages.ts b/src/plugins/rehypeMarkdownImages.ts index 71a3edd..cefb2d5 100644 --- a/src/plugins/rehypeMarkdownImages.ts +++ b/src/plugins/rehypeMarkdownImages.ts @@ -155,8 +155,8 @@ function visitElements( * receive `loading`, `decoding`, and dimension attributes. */ export default function rehypeMarkdownImages() { - return (tree: HastNode) => { - visitElements(tree, (node) => { + return (tree: unknown) => { + visitElements(tree as HastNode, (node) => { if (node.tagName !== "img") return; const props = node.properties ?? {}; diff --git a/tailwind.config.mjs b/tailwind.config.mts similarity index 100% rename from tailwind.config.mjs rename to tailwind.config.mts