From db54024f13f702853c09bec44e6db96505b776f4 Mon Sep 17 00:00:00 2001 From: Next Date: Sun, 20 Sep 2026 21:56:46 +0800 Subject: [PATCH 1/2] Refactor website architecture and content structure --- .codesandbox/Dockerfile | 1 - .dev.vars.example | 5 + .github/pull_request_template.md | 11 + .github/workflows/ci.yml | 72 ++ .gitignore | 35 +- .oxfmtrc.json | 20 + .oxlintrc.json | 22 + .vscode/extensions.json | 5 +- .vscode/settings.json | 5 + AGENTS.md | 30 + README.md | 57 +- astro.config.mjs | 11 - bun.lock | 1293 ++++++++++++--------- content/blog/documentation.md | 23 + content/blog/draft-example.md | 11 + content/blog/edge-runtime.md | 31 + content/blog/start-small.mdx | 39 + content/docs/getting-started.md | 29 + content/docs/writing.md | 28 + content/projects/semicoder.mdx | 28 + docs/README.md | 13 + docs/adr/0001-platform.md | 11 + docs/architecture.md | 15 + docs/content.md | 13 + docs/data.md | 13 + docs/deployment.md | 43 + docs/development.md | 11 + docs/generated.md | 74 ++ docs/impact.json | 11 + docs/product.md | 11 + docs/releases/2026-09-20.md | 32 + drizzle.config.ts | 6 + drizzle/0000_sturdy_quicksilver.sql | 100 ++ drizzle/meta/0000_snapshot.json | 621 ++++++++++ drizzle/meta/_journal.json | 13 + package.json | 94 +- public/_headers | 11 + public/_redirects | 1 + public/blog-placeholder-1.jpg | Bin 32040 -> 0 bytes public/blog-placeholder-2.jpg | Bin 33136 -> 0 bytes public/blog-placeholder-3.jpg | Bin 28687 -> 0 bytes public/blog-placeholder-4.jpg | Bin 38690 -> 0 bytes public/blog-placeholder-5.jpg | Bin 34890 -> 0 bytes public/blog-placeholder-about.jpg | Bin 21606 -> 0 bytes public/favicon.svg | 10 +- public/fonts.css | 1 + public/fonts/atkinson-bold.woff | Bin 23780 -> 0 bytes public/fonts/atkinson-regular.woff | Bin 22792 -> 0 bytes public/robots.txt | 6 + public/rss.xml | 1 + public/sitemap.xml | 1 + scripts/build-check.ts | 77 ++ scripts/content.ts | 238 ++++ scripts/deploy.ts | 27 + scripts/docs-impact.ts | 26 + scripts/docs.ts | 61 + scripts/prepare-restore.py | 38 + scripts/smoke.ts | 53 + src/components/BaseHead.astro | 55 - src/components/ContentCards.module.css | 183 +++ src/components/ContentCards.tsx | 99 ++ src/components/ContentPage.module.css | 145 +++ src/components/ContentPage.tsx | 126 ++ src/components/Footer.astro | 62 - src/components/FormattedDate.astro | 17 - src/components/Header.astro | 85 -- src/components/HeaderLink.astro | 24 - src/components/Shell.module.css | 223 ++++ src/components/Shell.tsx | 151 +++ src/consts.ts | 6 - src/content.config.ts | 19 - src/content/posts/first-post.md | 17 - src/content/posts/markdown-style-guide.md | 215 ---- src/content/posts/second-post.md | 17 - src/content/posts/third-post.md | 17 - src/content/posts/using-mdx.mdx | 32 - src/env.d.ts | 5 + src/features/Comments.module.css | 132 +++ src/features/Comments.tsx | 260 +++++ src/features/Turnstile.tsx | 60 + src/layouts/BlogPost.astro | 108 -- src/lib/client.ts | 32 + src/lib/search.ts | 28 + src/lib/seo.ts | 15 + src/lib/site.ts | 40 + src/pages/about.astro | 62 - src/pages/index.astro | 49 - src/pages/posts/[...slug].astro | 21 - src/pages/posts/index.astro | 111 -- src/pages/rss.xml.js | 16 - src/routeTree.gen.ts | 324 ++++++ src/router.tsx | 19 + src/routes/__root.tsx | 70 ++ src/routes/about.tsx | 42 + src/routes/admin.tsx | 235 ++++ src/routes/api.auth.$.ts | 15 + src/routes/blog.$slug.tsx | 16 + src/routes/blog.index.tsx | 38 + src/routes/docs.$project.$slug.tsx | 18 + src/routes/docs.index.tsx | 54 + src/routes/index.tsx | 142 +++ src/routes/privacy.tsx | 38 + src/routes/projects.$slug.tsx | 16 + src/routes/projects.index.tsx | 35 + src/routes/rules.tsx | 30 + src/routes/search.tsx | 152 +++ src/server.ts | 86 ++ src/server/auth.ts | 55 + src/server/comments.ts | 262 +++++ src/server/db/schema.ts | 109 ++ src/server/env.ts | 19 + src/server/functions.ts | 103 ++ src/server/security.ts | 55 + src/styles/Home.module.css | 342 ++++++ src/styles/global.css | 471 +++++--- tests/unit/content.test.ts | 35 + tests/unit/search.test.ts | 25 + tests/workers/comments.test.ts | 206 ++++ tsconfig.json | 27 +- vite.config.ts | 44 + vitest.config.ts | 15 + wrangler.jsonc | 83 ++ 122 files changed, 7265 insertions(+), 1736 deletions(-) delete mode 100644 .codesandbox/Dockerfile create mode 100644 .dev.vars.example create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/ci.yml create mode 100644 .oxfmtrc.json create mode 100644 .oxlintrc.json create mode 100644 .vscode/settings.json create mode 100644 AGENTS.md delete mode 100644 astro.config.mjs create mode 100644 content/blog/documentation.md create mode 100644 content/blog/draft-example.md create mode 100644 content/blog/edge-runtime.md create mode 100644 content/blog/start-small.mdx create mode 100644 content/docs/getting-started.md create mode 100644 content/docs/writing.md create mode 100644 content/projects/semicoder.mdx create mode 100644 docs/README.md create mode 100644 docs/adr/0001-platform.md create mode 100644 docs/architecture.md create mode 100644 docs/content.md create mode 100644 docs/data.md create mode 100644 docs/deployment.md create mode 100644 docs/development.md create mode 100644 docs/generated.md create mode 100644 docs/impact.json create mode 100644 docs/product.md create mode 100644 docs/releases/2026-09-20.md create mode 100644 drizzle.config.ts create mode 100644 drizzle/0000_sturdy_quicksilver.sql create mode 100644 drizzle/meta/0000_snapshot.json create mode 100644 drizzle/meta/_journal.json create mode 100644 public/_headers create mode 100644 public/_redirects delete mode 100644 public/blog-placeholder-1.jpg delete mode 100644 public/blog-placeholder-2.jpg delete mode 100644 public/blog-placeholder-3.jpg delete mode 100644 public/blog-placeholder-4.jpg delete mode 100644 public/blog-placeholder-5.jpg delete mode 100644 public/blog-placeholder-about.jpg create mode 100644 public/fonts.css delete mode 100644 public/fonts/atkinson-bold.woff delete mode 100644 public/fonts/atkinson-regular.woff create mode 100644 public/robots.txt create mode 100644 public/rss.xml create mode 100644 public/sitemap.xml create mode 100644 scripts/build-check.ts create mode 100644 scripts/content.ts create mode 100644 scripts/deploy.ts create mode 100644 scripts/docs-impact.ts create mode 100644 scripts/docs.ts create mode 100644 scripts/prepare-restore.py create mode 100644 scripts/smoke.ts delete mode 100644 src/components/BaseHead.astro create mode 100644 src/components/ContentCards.module.css create mode 100644 src/components/ContentCards.tsx create mode 100644 src/components/ContentPage.module.css create mode 100644 src/components/ContentPage.tsx delete mode 100644 src/components/Footer.astro delete mode 100644 src/components/FormattedDate.astro delete mode 100644 src/components/Header.astro delete mode 100644 src/components/HeaderLink.astro create mode 100644 src/components/Shell.module.css create mode 100644 src/components/Shell.tsx delete mode 100644 src/consts.ts delete mode 100644 src/content.config.ts delete mode 100644 src/content/posts/first-post.md delete mode 100644 src/content/posts/markdown-style-guide.md delete mode 100644 src/content/posts/second-post.md delete mode 100644 src/content/posts/third-post.md delete mode 100644 src/content/posts/using-mdx.mdx create mode 100644 src/env.d.ts create mode 100644 src/features/Comments.module.css create mode 100644 src/features/Comments.tsx create mode 100644 src/features/Turnstile.tsx delete mode 100644 src/layouts/BlogPost.astro create mode 100644 src/lib/client.ts create mode 100644 src/lib/search.ts create mode 100644 src/lib/seo.ts create mode 100644 src/lib/site.ts delete mode 100644 src/pages/about.astro delete mode 100644 src/pages/index.astro delete mode 100644 src/pages/posts/[...slug].astro delete mode 100644 src/pages/posts/index.astro delete mode 100644 src/pages/rss.xml.js create mode 100644 src/routeTree.gen.ts create mode 100644 src/router.tsx create mode 100644 src/routes/__root.tsx create mode 100644 src/routes/about.tsx create mode 100644 src/routes/admin.tsx create mode 100644 src/routes/api.auth.$.ts create mode 100644 src/routes/blog.$slug.tsx create mode 100644 src/routes/blog.index.tsx create mode 100644 src/routes/docs.$project.$slug.tsx create mode 100644 src/routes/docs.index.tsx create mode 100644 src/routes/index.tsx create mode 100644 src/routes/privacy.tsx create mode 100644 src/routes/projects.$slug.tsx create mode 100644 src/routes/projects.index.tsx create mode 100644 src/routes/rules.tsx create mode 100644 src/routes/search.tsx create mode 100644 src/server.ts create mode 100644 src/server/auth.ts create mode 100644 src/server/comments.ts create mode 100644 src/server/db/schema.ts create mode 100644 src/server/env.ts create mode 100644 src/server/functions.ts create mode 100644 src/server/security.ts create mode 100644 src/styles/Home.module.css create mode 100644 tests/unit/content.test.ts create mode 100644 tests/unit/search.test.ts create mode 100644 tests/workers/comments.test.ts create mode 100644 vite.config.ts create mode 100644 vitest.config.ts create mode 100644 wrangler.jsonc diff --git a/.codesandbox/Dockerfile b/.codesandbox/Dockerfile deleted file mode 100644 index c3b5c81..0000000 --- a/.codesandbox/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM node:18-bullseye diff --git a/.dev.vars.example b/.dev.vars.example new file mode 100644 index 0000000..572d1a0 --- /dev/null +++ b/.dev.vars.example @@ -0,0 +1,5 @@ +BETTER_AUTH_SECRET= +GITHUB_CLIENT_ID= +GITHUB_CLIENT_SECRET= +TURNSTILE_SECRET_KEY= +ADMIN_GITHUB_IDS= diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..51edf41 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,11 @@ +## 改动 + +描述用户可见行为和相关约束。 + +## 验证 + +填写运行过的检查与结果。 + +## 文档影响 + +更新映射中的相关文档;无影响时使用 `docs-impact: none — 具体说明原因(至少十个字符)`,由审查者确认。 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d293981 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,72 @@ +name: Quality and release +on: + pull_request: + push: + branches: [main] + workflow_dispatch: +permissions: + contents: read +concurrency: + group: portal-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} +jobs: + quality: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: "24" + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.4.2 + - run: bun install --frozen-lockfile + - run: bun run check + - run: bun run test + - run: bun run test:workers + - run: bun run build + - run: bun run build:check + - run: git diff --exit-code -- src/routeTree.gen.ts + - name: Documentation impact + if: github.event_name == 'pull_request' + run: bun run docs:impact + env: + DOCS_BASE_SHA: ${{ github.event.pull_request.base.sha }} + PR_BODY: ${{ github.event.pull_request.body }} + staging: + if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' + needs: quality + runs-on: ubuntu-latest + environment: staging + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "24" + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.4.2 + - run: bun install --frozen-lockfile + - run: bun run deploy:staging + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + production: + needs: staging + runs-on: ubuntu-latest + environment: production + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "24" + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.4.2 + - run: bun install --frozen-lockfile + - run: bun run deploy:production + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} diff --git a/.gitignore b/.gitignore index 16d54bb..a8abf07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,15 @@ -# build output -dist/ -# generated types -.astro/ - -# dependencies node_modules/ - -# logs -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* - - -# environment variables -.env -.env.production - -# macOS-specific files +dist/ +.wrangler/ +.tanstack/ +.output/ +coverage/ +.env* +!.env.example +.dev.vars* +!.dev.vars.example +worker-configuration.d.ts +src/generated/ +public/pagefind/ .DS_Store - -# jetbrains setting folder -.idea/ +*.log diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 0000000..cbd0cd4 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,20 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "endOfLine": "lf", + "proseWrap": "preserve", + "ignorePatterns": [ + "src/generated/**", + "src/routeTree.gen.ts", + "worker-configuration.d.ts", + "docs/generated.md", + "public/pagefind/**", + "dist/**", + ".wrangler/**", + "bun.lock" + ] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000..ccb6fcc --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,22 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["typescript", "react", "jsx-a11y", "import", "unicorn", "oxc"], + "categories": { "correctness": "error" }, + "rules": { + "react/rules-of-hooks": "error", + "react/exhaustive-deps": "warn", + "jsx-a11y/alt-text": "error", + "jsx-a11y/anchor-has-content": "error", + "jsx-a11y/label-has-associated-control": "error", + "no-unused-vars": "error" + }, + "ignorePatterns": [ + "src/generated/**", + "src/routeTree.gen.ts", + "worker-configuration.d.ts", + "dist/**", + "public/pagefind/**", + "node_modules/**", + ".wrangler/**" + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 22a1505..a84403e 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,4 +1 @@ -{ - "recommendations": ["astro-build.astro-vscode"], - "unwantedRecommendations": [] -} +{ "recommendations": ["oxc.oxc-vscode"] } diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..782a8fa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "editor.defaultFormatter": "oxc.oxc-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { "source.fixAll.oxc": "explicit" } +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..141d9a2 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,30 @@ +# 新手程序员 · Agent 工作约定 + +## 开始工作 + +阅读 [工程文档](docs/README.md)、[架构](docs/architecture.md) 和相关模块文档。网站内容在 `content/`,工程说明在 `docs/`,不要混用。旧 Astro 基线保存在 `archive/astro-before-rebuild`。 + +## 架构边界 + +- 单应用 TanStack Start / React,Cloudflare Workers 运行服务端,D1 保存动态数据。 +- Bun 负责工具链;Workers 代码不得依赖 Bun API、文件系统或进程内持久状态。 +- 数据库、密钥和权限检查放在 `src/server/`,客户端只能通过服务端函数访问。 +- 服务端每次写入校验会话、输入、权限;不得相信前端管理员标记。 +- 内容稳定 ID 不随 URL 改变;生产构建不能包含草稿或私有数据。 +- 数据库采用提交到 Git 的增量迁移,禁止生产 schema push。 +- 当前使用 Cloudflare 免费套餐;不得自动升级或添加付费服务。公开内容优先由 Assets 提供,避免消耗动态请求额度;不配置付费版 CPU 上限。 + +## 质量标准 + +- TypeScript strict;Oxlint 检查代码;Oxfmt 统一格式。不引入第二套 lint / format 工具链。 +- 使用 `bun run fmt`、`bun run lint:fix` 本地修复,提交前执行 `bun run check`、`bun run test`、`bun run test:workers`、`bun run build`。 +- 不关闭规则掩盖问题;局部禁用必须附具体理由。不手改生成文件。 +- 测试验证行为、权限和失败场景;修改接口时更新相应测试。 + +## 文档维护与完成标准 + +- 每次变更根据 `docs/impact.json` 同步维护文档;无文档影响需在 PR 的 `docs-impact: none — 原因` 声明中解释。 +- `bun run docs:generate` 生成技术清单,`bun run docs:check` 检查链接与一致性。生成器只写 `docs/generated.md`。 +- 架构决策写 ADR;运行方式改变更新部署手册;本文件只记录长期规则,不追加开发日志。 +- 交付须说明变更、验证和外部阻塞;未验证的登录、部署、生产数据不得声称成功。 +- 不提交密钥、真实用户数据或测试会话。部署环境与 OAuth 应用分离。 diff --git a/README.md b/README.md index e34a99b..5752e0b 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,34 @@ -# Astro Starter Kit: Minimal +# 新手程序员 · semicoder.dev -```sh -npm create astro@latest -- --template minimal -``` - -[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal) -[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal) -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json) +中文个人技术门户:博客、项目展示、项目文档、中文搜索、GitHub 登录评论和审核后台。 -> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! +TanStack Start / React / Query · Bun · Cloudflare Workers / D1 · Drizzle · Better Auth · Oxlint / Oxfmt。 -## 🚀 Project Structure +## 本地开发 -Inside of your Astro project, you'll see the following folders and files: +需要 Bun 1.4.2 和 Node 24。 -```text -/ -├── public/ -├── src/ -│ └── pages/ -│ └── index.astro -└── package.json +```bash +bun install --frozen-lockfile +bun run db:local +bun run dev ``` -Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. - -There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. +打开 http://localhost:3000 。无需密钥即可浏览示例内容;动态评论先初始化本地 D1。真实登录需将 `.dev.vars.example` 复制为 `.dev.vars` 并配置 GitHub OAuth、Turnstile 与管理员 ID。 -Any static assets, like images, can be placed in the `public/` directory. +## 验证 -## 🧞 Commands - -All commands are run from the root of the project, from a terminal: +```bash +bun run fmt +bun run docs:generate +bun run check +bun run test +bun run test:workers +bun run build +``` -| Command | Action | -| :------------------------ | :----------------------------------------------- | -| `npm install` | Installs dependencies | -| `npm run dev` | Starts local dev server at `localhost:4321` | -| `npm run build` | Build your production site to `./dist/` | -| `npm run preview` | Preview your build locally, before deploying | -| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | -| `npm run astro -- --help` | Get help using the Astro CLI | +工程约定见 [AGENTS.md](AGENTS.md),完整说明见 [docs](docs/README.md),环境资源和上线步骤见 [部署手册](docs/deployment.md)。网站内容在 `content/`,与工程文档分离。 -## 👀 Want to learn more? +仓库中的文章和项目描述明确标为示例。正式部署前需替换为真实内容、配置 D1 ID、域名、GitHub OAuth 和 Turnstile,并完成预发布验收。没有凭据时不会把功能模拟声称为线上验证。 -Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). +旧 Astro 实现保留在 Git 标签 `archive/astro-before-rebuild`。 diff --git a/astro.config.mjs b/astro.config.mjs deleted file mode 100644 index 0c058de..0000000 --- a/astro.config.mjs +++ /dev/null @@ -1,11 +0,0 @@ -// @ts-check -import { defineConfig } from 'astro/config'; -import mdx from '@astrojs/mdx'; -import UnoCSS from 'unocss/astro' -import react from '@astrojs/react'; - -// https://astro.build/config -export default defineConfig({ - site: "https://semicoder.dev", - integrations: [react(), UnoCSS(), mdx()] -}); \ No newline at end of file diff --git a/bun.lock b/bun.lock index 49769a2..ed284c8 100644 --- a/bun.lock +++ b/bun.lock @@ -1,1103 +1,1294 @@ { - "lockfileVersion": 1, + "lockfileVersion": 2, + "configVersion": 1, "workspaces": { "": { "name": "semicoder", "dependencies": { - "@astrojs/mdx": "^4.2.6", - "@astrojs/react": "^4.2.7", - "@astrojs/rss": "^4.0.11", - "@astrojs/sitemap": "^3.4.0", - "astro": "^5.7.10", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "@tanstack/react-query": "5.103.1", + "@tanstack/react-router": "1.170.38", + "@tanstack/react-start": "1.168.56", + "better-auth": "1.7.5", + "drizzle-orm": "0.45.2", + "lucide-react": "1.47.0", + "react": "19.3.0", + "react-dom": "19.3.0", + "react-markdown": "10.1.0", + "remark-gfm": "4.0.1", + "zod": "4.6.5", }, "devDependencies": { - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.3", - "unocss": "^66.1.1", + "@cloudflare/vite-plugin": "1.56.0", + "@cloudflare/vitest-plugin": "1.1.13", + "@cloudflare/workers-types": "5.20260920.1", + "@mdx-js/mdx": "3.1.1", + "@mdx-js/rollup": "3.1.1", + "@types/bun": "1.4.2", + "@types/node": "26.6.2", + "@types/react": "19.3.0", + "@types/react-dom": "19.3.0", + "@vitejs/plugin-react": "6.1.1", + "drizzle-kit": "0.31.10", + "gray-matter": "4.0.3", + "jsonc-parser": "3.3.1", + "oxfmt": "0.68.0", + "oxlint": "1.83.0", + "pagefind": "1.5.2", + "rehype-pretty-code": "0.14.5", + "rehype-slug": "6.0.0", + "remark-frontmatter": "5.0.0", + "typescript": "7.0.2", + "vite": "8.3.0", + "vitest": "4.1.0", + "wrangler": "4.135.0", }, }, }, "packages": { - "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], - "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], - "@antfu/utils": ["@antfu/utils@8.1.1", "https://registry.npmmirror.com/@antfu/utils/-/utils-8.1.1.tgz", {}, "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ=="], + "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], - "@astrojs/compiler": ["@astrojs/compiler@2.12.0", "https://registry.npmmirror.com/@astrojs/compiler/-/compiler-2.12.0.tgz", {}, "sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA=="], + "@babel/generator": ["@babel/generator@7.29.8", "", { "dependencies": { "@babel/parser": "^7.29.8", "@babel/types": "^7.29.8", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg=="], - "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.6.1", "https://registry.npmmirror.com/@astrojs/internal-helpers/-/internal-helpers-0.6.1.tgz", {}, "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A=="], + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], - "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.1", "https://registry.npmmirror.com/@astrojs/markdown-remark/-/markdown-remark-6.3.1.tgz", { "dependencies": { "@astrojs/internal-helpers": "0.6.1", "@astrojs/prism": "3.2.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", "shiki": "^3.0.0", "smol-toml": "^1.3.1", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg=="], + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], - "@astrojs/mdx": ["@astrojs/mdx@4.2.6", "https://registry.npmmirror.com/@astrojs/mdx/-/mdx-4.2.6.tgz", { "dependencies": { "@astrojs/markdown-remark": "6.3.1", "@mdx-js/mdx": "^3.1.0", "acorn": "^8.14.1", "es-module-lexer": "^1.6.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.4", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-0i/GmOm6d0qq1/SCfcUgY/IjDc/bS0i42u7h85TkPFBmlFOcBZfkYhR5iyz6hZLwidvJOEq5yGfzt9B1Azku4w=="], + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], - "@astrojs/prism": ["@astrojs/prism@3.2.0", "https://registry.npmmirror.com/@astrojs/prism/-/prism-3.2.0.tgz", { "dependencies": { "prismjs": "^1.29.0" } }, "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw=="], + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], - "@astrojs/react": ["@astrojs/react@4.2.7", "https://registry.npmmirror.com/@astrojs/react/-/react-4.2.7.tgz", { "dependencies": { "@vitejs/plugin-react": "^4.4.1", "ultrahtml": "^1.6.0", "vite": "^6.3.4" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", "react": "^17.0.2 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" } }, "sha512-/wM90noT/6QyJEOGdDmDbq2D9qZooKTJNG1M8olmsW5ns6bJ7uxG5fzkYxcpA3WUTD6Dj6NtpEqchvb5h8Fa+g=="], + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], - "@astrojs/rss": ["@astrojs/rss@4.0.11", "https://registry.npmmirror.com/@astrojs/rss/-/rss-4.0.11.tgz", { "dependencies": { "fast-xml-parser": "^4.5.0", "kleur": "^4.1.5" } }, "sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], - "@astrojs/sitemap": ["@astrojs/sitemap@3.4.0", "https://registry.npmmirror.com/@astrojs/sitemap/-/sitemap-3.4.0.tgz", { "dependencies": { "sitemap": "^8.0.0", "stream-replace-string": "^2.0.0", "zod": "^3.24.2" } }, "sha512-C5m/xsKvRSILKM3hy47n5wKtTQtJXn8epoYuUmCCstaE9XBt20yInym3Bz2uNbEiNfv11bokoW0MqeXPIvjFIQ=="], + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], - "@astrojs/telemetry": ["@astrojs/telemetry@3.2.1", "https://registry.npmmirror.com/@astrojs/telemetry/-/telemetry-3.2.1.tgz", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-SSVM820Jqc6wjsn7qYfV9qfeQvePtVc1nSofhyap7l0/iakUKywj3hfy3UJAOV4sGV4Q/u450RD4AaCaFvNPlg=="], + "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], - "@babel/code-frame": ["@babel/code-frame@7.27.1", "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.27.1.tgz", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "@babel/parser": ["@babel/parser@7.29.9", "", { "dependencies": { "@babel/types": "^7.29.8" }, "bin": "./bin/babel-parser.js" }, "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA=="], - "@babel/compat-data": ["@babel/compat-data@7.27.1", "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.27.1.tgz", {}, "sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A=="], + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], - "@babel/core": ["@babel/core@7.27.1", "https://registry.npmmirror.com/@babel/core/-/core-7.27.1.tgz", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.27.1", "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-module-transforms": "^7.27.1", "@babel/helpers": "^7.27.1", "@babel/parser": "^7.27.1", "@babel/template": "^7.27.1", "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ=="], + "@babel/traverse": ["@babel/traverse@7.29.8", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.8", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.8", "@babel/template": "^7.29.7", "@babel/types": "^7.29.8", "debug": "^4.3.1" } }, "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg=="], - "@babel/generator": ["@babel/generator@7.27.1", "https://registry.npmmirror.com/@babel/generator/-/generator-7.27.1.tgz", { "dependencies": { "@babel/parser": "^7.27.1", "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w=="], + "@babel/types": ["@babel/types@7.29.8", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg=="], - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.1", "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.1.tgz", { "dependencies": { "@babel/compat-data": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g=="], + "@better-auth/core": ["@better-auth/core@1.7.5", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.41.1", "@standard-schema/spec": "^1.1.0", "zod": "^4.5.4" }, "peerDependencies": { "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.2", "@opentelemetry/api": "^1.9.0", "better-call": "1.4.0", "jose": "^6.1.0", "kysely": "^0.28.5 || ^0.29.0", "nanostores": "^1.0.1" }, "optionalPeers": ["@opentelemetry/api"] }, "sha512-kVlSu4H8OKQfjg4b/Zj5MOaospt83N0JbX38wsDzE58Yw95jzovFkU3pxzB1eUFYc4mkuhUMZD8iT1gpUjNMcQ=="], - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], + "@better-auth/drizzle-adapter": ["@better-auth/drizzle-adapter@1.7.5", "", { "peerDependencies": { "@better-auth/core": "^1.7.5", "@better-auth/utils": "0.4.2", "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0" }, "optionalPeers": ["drizzle-orm"] }, "sha512-9SM7v1735SoaedRDcDbHc5ULgXEd2vUlEJkvRHpMF2Q9qf59TRh1b5A9hryyecyi56bm/0CNUDU3nY0uVWj5/Q=="], - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.27.1", "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g=="], + "@better-auth/kysely-adapter": ["@better-auth/kysely-adapter@1.7.5", "", { "peerDependencies": { "@better-auth/core": "^1.7.5", "@better-auth/utils": "0.4.2", "kysely": "^0.28.17 || ^0.29.0" }, "optionalPeers": ["kysely"] }, "sha512-1wE5gvnjW+c1i4GrLtL9HLn3s0Xrq4YneCDan1NO1dpz0mEguLFNlzfnUGykTFrDwvFh2X5rkIbA8ALCj6WzXQ=="], - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], + "@better-auth/memory-adapter": ["@better-auth/memory-adapter@1.7.5", "", { "peerDependencies": { "@better-auth/core": "^1.7.5", "@better-auth/utils": "0.4.2" } }, "sha512-YDmnfR9zOXbn5SNYYwfHBPuc19hg1d1C1vUXb+Hm8Q91pTsstFNX5OTlZbo7f28q06FpogAEfGGCN/2QV39cig=="], - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + "@better-auth/mongo-adapter": ["@better-auth/mongo-adapter@1.7.5", "", { "peerDependencies": { "@better-auth/core": "^1.7.5", "@better-auth/utils": "0.4.2", "mongodb": "^6.0.0 || ^7.0.0" }, "optionalPeers": ["mongodb"] }, "sha512-Yq0LfF0VlA9Kfjcjp/v43MSsChv7vKd1ct0Mt15px4zlqaCPIGfPbjw9YNM6jTo0fGpqLR0n15PllSWmLLRp9g=="], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], + "@better-auth/prisma-adapter": ["@better-auth/prisma-adapter@1.7.5", "", { "peerDependencies": { "@better-auth/core": "^1.7.5", "@better-auth/utils": "0.4.2", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@prisma/client", "prisma"] }, "sha512-QfW6HS9vK0FMcbI/GsQLdplICxOz0EPzYWGONZT4ovL3cSItd4YH/09USbPPVl+VUQCdznAQIk+n+NKvHdmSag=="], - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + "@better-auth/telemetry": ["@better-auth/telemetry@1.7.5", "", { "peerDependencies": { "@better-auth/core": "^1.7.5", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.2" } }, "sha512-e/REPqMy9Em+gC6G0xWBikiMLRuy532Er7jqdoNkPBa65FbywgWcm1cZbgdW5CnHsrM3OLZsmKn14yeGoDISeg=="], - "@babel/helpers": ["@babel/helpers@7.27.1", "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.27.1.tgz", { "dependencies": { "@babel/template": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ=="], + "@better-auth/utils": ["@better-auth/utils@0.4.2", "", { "dependencies": { "@noble/hashes": "^2.0.1" } }, "sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A=="], - "@babel/parser": ["@babel/parser@7.27.1", "https://registry.npmmirror.com/@babel/parser/-/parser-7.27.1.tgz", { "dependencies": { "@babel/types": "^7.27.1" }, "bin": "./bin/babel-parser.js" }, "sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ=="], + "@better-fetch/fetch": ["@better-fetch/fetch@1.3.2", "", {}, "sha512-Gs7n99b5tqUC6cQAPbV0uED3IraHB6xQbHLQ/C3l7ZFafHScOx9pQ+DYmP5blbLFShVWLqxNUlI9wi4xU/X+ow=="], - "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.27.1", "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw=="], + "@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.5.0", "", {}, "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg=="], - "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.27.1", "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw=="], + "@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.16.1", "", { "peerDependencies": { "unenv": "2.0.0-rc.24", "workerd": ">1.20260305.0 <2.0.0-0" }, "optionalPeers": ["workerd"] }, "sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw=="], - "@babel/template": ["@babel/template@7.27.1", "https://registry.npmmirror.com/@babel/template/-/template-7.27.1.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg=="], + "@cloudflare/vite-plugin": ["@cloudflare/vite-plugin@1.56.0", "", { "dependencies": { "@cloudflare/unenv-preset": "2.16.1", "miniflare": "5.20260918.0-alpha", "unenv": "2.0.0-rc.24", "workerd": "1.20260918.1", "wrangler": "4.135.0", "ws": "8.21.0" }, "peerDependencies": { "vite": "^6.1.0 || ^7.0.0 || ^8.0.0" }, "bin": { "cf-vite": "bin/cf-vite" } }, "sha512-JkVJgSuUM1dlxpl/XMSTcx3oD84hKIAwPtqUs9pjfBXiKcUx8Jez+Tuxg3l2O7nt87AxoArgve0KAeW7hc0Kqw=="], - "@babel/traverse": ["@babel/traverse@7.27.1", "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.27.1.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.27.1", "@babel/parser": "^7.27.1", "@babel/template": "^7.27.1", "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg=="], + "@cloudflare/vitest-plugin": ["@cloudflare/vitest-plugin@1.1.13", "", { "dependencies": { "cjs-module-lexer": "1.2.3", "esbuild": "0.28.1", "miniflare": "5.20260918.0-alpha", "wrangler": "4.135.0", "zod": "4.4.3" }, "peerDependencies": { "@vitest/runner": "^4.1.0", "@vitest/snapshot": "^4.1.0", "vitest": "^4.1.0" } }, "sha512-0yw65BvdySpKlK73YcJE/VXn2gbwyPB8dSpxFOUQbh4Kg2Yx6msxTEzQ+92dNH5q/84FNGzWcJ2aJjHlWCzGkA=="], - "@babel/types": ["@babel/types@7.27.1", "https://registry.npmmirror.com/@babel/types/-/types-7.27.1.tgz", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q=="], + "@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20260918.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-H5Em6Wd0jjxaloYh2rp+WLBl2eWbkk7nSP1svGt6K1RSv/rNVqmKdpjZPJTBSavOmeYGa88qvtOWwS+33OHTqQ=="], - "@capsizecss/unpack": ["@capsizecss/unpack@2.4.0", "https://registry.npmmirror.com/@capsizecss/unpack/-/unpack-2.4.0.tgz", { "dependencies": { "blob-to-buffer": "^1.2.8", "cross-fetch": "^3.0.4", "fontkit": "^2.0.2" } }, "sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q=="], + "@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20260918.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-CR9JRZEQo93fNgBVF4Df2H2/VYO4n7rxSseSwCVv3bJQEb0huADUSCj2FK4ipxar8ToOEB4wawyw0vJo5U/rQQ=="], - "@emnapi/runtime": ["@emnapi/runtime@1.4.3", "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.4.3.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="], + "@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20260918.1", "", { "os": "linux", "cpu": "x64" }, "sha512-UQ2nnY3qpXLzQ80frmWO+8HvtqyWaQILe8QYZwpemdjT+sqwCz4Dz+0/WVkFco0v/04kIIqikVeLTY/7gEhmkw=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.3", "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", { "os": "aix", "cpu": "ppc64" }, "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ=="], + "@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20260918.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-4rib51MaLNWweUIUxM/Xj558M5QmyZoBSf0ffv+lYah5VTrvwnez3XGxX72pElnBKHROvAPOi5msQ5Ts8JSI0A=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.25.3", "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.3.tgz", { "os": "android", "cpu": "arm" }, "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A=="], + "@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20260918.1", "", { "os": "win32", "cpu": "x64" }, "sha512-sATrMx5ShYYgmgUGrcTmvsFSJBFuN95NEkX3xwb1qk8w1A6h5N11sea7yN2IeibwPyPmXKjWNjXOno0hZAM71Q=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", { "os": "android", "cpu": "arm64" }, "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ=="], + "@cloudflare/workers-types": ["@cloudflare/workers-types@5.20260920.1", "", {}, "sha512-wP7wbKqfQjFRGhE/tvu7bwvmBBTqJjvrETTvNzF4u5oolVEXt0gy6JxbqcUC2Khz0Cy+M/q7rhOOODng8VpnPw=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.3.tgz", { "os": "android", "cpu": "x64" }, "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ=="], + "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w=="], + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A=="], + "@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", { "os": "freebsd", "cpu": "arm64" }, "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw=="], + "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q=="], + "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", { "os": "linux", "cpu": "arm" }, "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", { "os": "linux", "cpu": "ia32" }, "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.1", "", { "os": "android", "cpu": "arm64" }, "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", { "os": "linux", "cpu": "none" }, "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.28.1", "", { "os": "android", "cpu": "x64" }, "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", { "os": "linux", "cpu": "none" }, "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", { "os": "linux", "cpu": "none" }, "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", { "os": "linux", "cpu": "x64" }, "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.1", "", { "os": "linux", "cpu": "arm" }, "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ=="], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", { "os": "none", "cpu": "arm64" }, "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", { "os": "none", "cpu": "x64" }, "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w=="], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", { "os": "openbsd", "cpu": "arm64" }, "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", { "os": "openbsd", "cpu": "x64" }, "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", { "os": "sunos", "cpu": "x64" }, "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.3", "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.3", "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.3", "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", { "os": "win32", "cpu": "x64" }, "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.1", "", { "os": "linux", "cpu": "x64" }, "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA=="], - "@iconify/types": ["@iconify/types@2.0.0", "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw=="], - "@iconify/utils": ["@iconify/utils@2.3.0", "https://registry.npmmirror.com/@iconify/utils/-/utils-2.3.0.tgz", { "dependencies": { "@antfu/install-pkg": "^1.0.0", "@antfu/utils": "^8.1.0", "@iconify/types": "^2.0.0", "debug": "^4.4.0", "globals": "^15.14.0", "kolorist": "^1.8.0", "local-pkg": "^1.0.0", "mlly": "^1.7.4" } }, "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.1", "", { "os": "none", "cpu": "x64" }, "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg=="], - "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.33.5", "https://registry.npmmirror.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.0.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q=="], - "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.33.5", "https://registry.npmmirror.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.0.4" }, "os": "darwin", "cpu": "x64" }, "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw=="], - "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg=="], + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg=="], - "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ=="], - "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.0.5", "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", { "os": "linux", "cpu": "arm" }, "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA=="], - "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg=="], - "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A=="], - "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", { "os": "linux", "cpu": "x64" }, "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw=="], + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], - "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA=="], + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.3" }, "os": "darwin", "cpu": "arm64" }, "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA=="], - "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.0.4", "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", { "os": "linux", "cpu": "x64" }, "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw=="], + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.3" }, "os": "darwin", "cpu": "x64" }, "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw=="], - "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.33.5", "https://registry.npmmirror.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.0.5" }, "os": "linux", "cpu": "arm" }, "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ=="], + "@img/sharp-freebsd-wasm32": ["@img/sharp-freebsd-wasm32@0.35.4", "", { "dependencies": { "@img/sharp-wasm32": "0.35.4" }, "os": "freebsd" }, "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA=="], - "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.33.5", "https://registry.npmmirror.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA=="], + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.3.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg=="], - "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.33.5", "https://registry.npmmirror.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.0.4" }, "os": "linux", "cpu": "s390x" }, "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q=="], + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.3.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw=="], - "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.33.5", "https://registry.npmmirror.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA=="], + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.3.3", "", { "os": "linux", "cpu": "arm" }, "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA=="], - "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.33.5", "https://registry.npmmirror.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g=="], + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A=="], - "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.33.5", "https://registry.npmmirror.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw=="], + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.3.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w=="], - "@img/sharp-wasm32": ["@img/sharp-wasm32@0.33.5", "https://registry.npmmirror.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", { "dependencies": { "@emnapi/runtime": "^1.2.0" }, "cpu": "none" }, "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg=="], + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.3.3", "", { "os": "linux", "cpu": "none" }, "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ=="], - "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.33.5", "https://registry.npmmirror.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ=="], + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.3.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q=="], - "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.33.5", "https://registry.npmmirror.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", { "os": "win32", "cpu": "x64" }, "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg=="], + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="], + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw=="], - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw=="], - "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.3" }, "os": "linux", "cpu": "arm" }, "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.3" }, "os": "linux", "cpu": "arm64" }, "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ=="], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.3" }, "os": "linux", "cpu": "ppc64" }, "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ=="], - "@mdx-js/mdx": ["@mdx-js/mdx@3.1.0", "https://registry.npmmirror.com/@mdx-js/mdx/-/mdx-3.1.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw=="], + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.3" }, "os": "linux", "cpu": "none" }, "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA=="], - "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "https://registry.npmmirror.com/@oslojs/encoding/-/encoding-1.1.0.tgz", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.3" }, "os": "linux", "cpu": "s390x" }, "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ=="], - "@polka/url": ["@polka/url@1.0.0-next.29", "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.29.tgz", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.3" }, "os": "linux", "cpu": "x64" }, "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA=="], - "@quansync/fs": ["@quansync/fs@0.1.3", "https://registry.npmmirror.com/@quansync/fs/-/fs-0.1.3.tgz", { "dependencies": { "quansync": "^0.2.10" } }, "sha512-G0OnZbMWEs5LhDyqy2UL17vGhSVHkQIfVojMtEWVenvj0V5S84VBgy86kJIuNsGDp2p7sTKlpSIpBUWdC35OKg=="], + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" }, "os": "linux", "cpu": "arm64" }, "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA=="], - "@rollup/pluginutils": ["@rollup/pluginutils@5.1.4", "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ=="], + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.3" }, "os": "linux", "cpu": "x64" }, "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", { "os": "android", "cpu": "arm" }, "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw=="], + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.35.4", "", { "dependencies": { "@emnapi/runtime": "^1.11.3" } }, "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", { "os": "android", "cpu": "arm64" }, "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw=="], + "@img/sharp-webcontainers-wasm32": ["@img/sharp-webcontainers-wasm32@0.35.4", "", { "dependencies": { "@img/sharp-wasm32": "0.35.4" }, "cpu": "none" }, "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA=="], + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.35.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw=="], + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.35.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", { "os": "freebsd", "cpu": "arm64" }, "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw=="], + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.35.4", "", { "os": "win32", "cpu": "x64" }, "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg=="], + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], - "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ=="], + "@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="], - "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg=="], + "@mdx-js/rollup": ["@mdx-js/rollup@3.1.1", "", { "dependencies": { "@mdx-js/mdx": "^3.0.0", "@rollup/pluginutils": "^5.0.0", "source-map": "^0.7.0", "vfile": "^6.0.0" }, "peerDependencies": { "rollup": ">=2" } }, "sha512-v8satFmBB+DqDzYohnm1u2JOvxx6Hl3pUvqzJvfs2Zk/ngZ1aRUhsWpXvwPkNeGN9c2NCm/38H29ZqXQUjf8dw=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ=="], + "@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA=="], + "@noble/ciphers": ["@noble/ciphers@2.4.0", "", {}, "sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg=="], + "@noble/hashes": ["@noble/hashes@2.4.0", "", {}, "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ=="], + "@oozcitak/dom": ["@oozcitak/dom@2.0.2", "", { "dependencies": { "@oozcitak/infra": "^2.0.2", "@oozcitak/url": "^3.0.0", "@oozcitak/util": "^10.0.0" } }, "sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ=="], + "@oozcitak/infra": ["@oozcitak/infra@2.0.2", "", { "dependencies": { "@oozcitak/util": "^10.0.0" } }, "sha512-2g+E7hoE2dgCz/APPOEK5s3rMhJvNxSMBrP+U+j1OWsIbtSpWxxlUjq1lU8RIsFJNYv7NMlnVsCuHcUzJW+8vA=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg=="], + "@oozcitak/url": ["@oozcitak/url@3.0.0", "", { "dependencies": { "@oozcitak/infra": "^2.0.2", "@oozcitak/util": "^10.0.0" } }, "sha512-ZKfET8Ak1wsLAiLWNfFkZc/BraDccuTJKR6svTYc7sVjbR+Iu0vtXdiDMY4o6jaFl5TW2TlS7jbLl4VovtAJWQ=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA=="], + "@oozcitak/util": ["@oozcitak/util@10.0.0", "", {}, "sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.40.1", "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA=="], + "@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.43.0", "", {}, "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg=="], - "@shikijs/core": ["@shikijs/core@3.3.0", "https://registry.npmmirror.com/@shikijs/core/-/core-3.3.0.tgz", { "dependencies": { "@shikijs/types": "3.3.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-CovkFL2WVaHk6PCrwv6ctlmD4SS1qtIfN8yEyDXDYWh4ONvomdM9MaFw20qHuqJOcb8/xrkqoWQRJ//X10phOQ=="], + "@oxc-project/types": ["@oxc-project/types@0.150.0", "", {}, "sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw=="], - "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.3.0", "https://registry.npmmirror.com/@shikijs/engine-javascript/-/engine-javascript-3.3.0.tgz", { "dependencies": { "@shikijs/types": "3.3.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.2.0" } }, "sha512-XlhnFGv0glq7pfsoN0KyBCz9FJU678LZdQ2LqlIdAj6JKsg5xpYKay3DkazXWExp3DTJJK9rMOuGzU2911pg7Q=="], + "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.68.0", "", { "os": "android", "cpu": "arm" }, "sha512-dhfYPbzv/h9JgHjNkl2R6sOjUfxDyLGOZVb3g8/ScaTNwwJcYgmHh8kcYFDUhinuy1QAoANCWUvw1jlk+z6gAg=="], - "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.3.0", "https://registry.npmmirror.com/@shikijs/engine-oniguruma/-/engine-oniguruma-3.3.0.tgz", { "dependencies": { "@shikijs/types": "3.3.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-l0vIw+GxeNU7uGnsu6B+Crpeqf+WTQ2Va71cHb5ZYWEVEPdfYwY5kXwYqRJwHrxz9WH+pjSpXQz+TJgAsrkA5A=="], + "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.68.0", "", { "os": "android", "cpu": "arm64" }, "sha512-v3Njdi6qY0O/5eGfg01ww2w6gTn2mUvZ72Bnx1/UN53A9wruh3Nk6otc3WkgJLkXD4Qgz1SOcVQieH1oD03V9Q=="], - "@shikijs/langs": ["@shikijs/langs@3.3.0", "https://registry.npmmirror.com/@shikijs/langs/-/langs-3.3.0.tgz", { "dependencies": { "@shikijs/types": "3.3.0" } }, "sha512-zt6Kf/7XpBQKSI9eqku+arLkAcDQ3NHJO6zFjiChI8w0Oz6Jjjay7pToottjQGjSDCFk++R85643WbyINcuL+g=="], + "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.68.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ei4MCMzHFREmZwPJ7KuWUB4kBuHdsgDrnXGJVcEAopU7fj7S42I8BChdFILWdHvhFqR08FLJtOfbZIr2CDw0cA=="], - "@shikijs/themes": ["@shikijs/themes@3.3.0", "https://registry.npmmirror.com/@shikijs/themes/-/themes-3.3.0.tgz", { "dependencies": { "@shikijs/types": "3.3.0" } }, "sha512-tXeCvLXBnqq34B0YZUEaAD1lD4lmN6TOHAhnHacj4Owh7Ptb/rf5XCDeROZt2rEOk5yuka3OOW2zLqClV7/SOg=="], + "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.68.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-UrKgzZxYhwB9DSvTX+vdgl9M32wLUNKJcAKIoiyx/Kzn/zveqi7W6kYVcRroFMhS3Kwz0KhTk3WBeSuQn4YCTg=="], - "@shikijs/types": ["@shikijs/types@3.3.0", "https://registry.npmmirror.com/@shikijs/types/-/types-3.3.0.tgz", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-KPCGnHG6k06QG/2pnYGbFtFvpVJmC3uIpXrAiPrawETifujPBv0Se2oUxm5qYgjCvGJS9InKvjytOdN+bGuX+Q=="], + "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.68.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6jrEKgpJbilM1QaRv7hEtKXr4p4AK4jvvyOtajwyhu0kOz3e0O7OLnSTk6tBotRqCcUC4ehZRJ1Zx+Y99wieLw=="], - "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "https://registry.npmmirror.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.68.0", "", { "os": "linux", "cpu": "arm" }, "sha512-YOIVnKOBaLeGullskS179N12hjSAdFYnzLjOaKiLhAKNWgnShq9w4xRdtmUm6BlnP65l2/EA9Aw/KlftNxDM7Q=="], - "@swc/helpers": ["@swc/helpers@0.5.17", "https://registry.npmmirror.com/@swc/helpers/-/helpers-0.5.17.tgz", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], + "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.68.0", "", { "os": "linux", "cpu": "arm" }, "sha512-xW5XoEHVNqydPBv2KXvk9lmEzyAlOQHVEazKoXUuAacqekjya+OdiaFjjEBl0oJD02raG8g3TRl9OVCh9PDIHA=="], - "@types/babel__core": ["@types/babel__core@7.20.5", "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.68.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-QCvYwVVQieu6oyJglAgV9vH/YMDxZyR4cwVSYtoq9oOXd5N+D3TDUBjNwxFrLn5AdcJZOcvn/7IB17vJGp+2Og=="], - "@types/babel__generator": ["@types/babel__generator@7.27.0", "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.27.0.tgz", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.68.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-4TVz5iFQ8ndrHnhX50UXiz9BIWAtUSOHJ6Nus4qWFfJBXq/Ed/krXbF/ehJu42BXM5tIvBs99jNIM22s9agY5A=="], - "@types/babel__template": ["@types/babel__template@7.4.4", "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.68.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-qLe3ao0RP84bnPxBvRI+GnlK/jybo538NWu0Xrm+zYeTmJtpzqLhnnd5BH21NafqKnplbGZjtN1cnrOlWF73lw=="], - "@types/babel__traverse": ["@types/babel__traverse@7.20.7", "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng=="], + "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.68.0", "", { "os": "linux", "cpu": "none" }, "sha512-Yvyl7a6gbb0vM6r925KW2dO+/CmXySO5TVbcX7o/uZJ+d108HFOG0TxIyHApmn5USuj5mhDPxzhiVwOlGP7uSA=="], - "@types/debug": ["@types/debug@4.1.12", "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], + "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.68.0", "", { "os": "linux", "cpu": "none" }, "sha512-mJlFuFVCxzrYM5sFStN433D/s/mb6Wq4aCQAM02vs/OudHywnaSAd2rb1vlYUJtqdYIciJtiasuxvfbYkv5fLg=="], - "@types/estree": ["@types/estree@1.0.7", "https://registry.npmmirror.com/@types/estree/-/estree-1.0.7.tgz", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="], + "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.68.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-RlfSg++qs1hbKltRR6lYvV9EoI3MdlfSQD9w1hdHVYjHqjIn1tkH4FWOpMSmjKGN20zr+nI+W9o4ARogCDudGQ=="], - "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "https://registry.npmmirror.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.68.0", "", { "os": "linux", "cpu": "x64" }, "sha512-nyzRB9U+dlYUKu3pMo3afHzZBUv/oTHZMG36ZfJViNVfOIzp70Q4GS8FFRGgYJ/p0zcyDCgpBvYISOdJOMh+jQ=="], - "@types/hast": ["@types/hast@3.0.4", "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.68.0", "", { "os": "linux", "cpu": "x64" }, "sha512-iCx3sbZRIvGrL1RafphEiUKBaW1lc0/tAjKOIB/Wjw2+STRBEdu5+fH1Gc1faEWEmc2k5Ks4iUUV54Zd5C9a1A=="], - "@types/mdast": ["@types/mdast@4.0.4", "https://registry.npmmirror.com/@types/mdast/-/mdast-4.0.4.tgz", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.68.0", "", { "os": "none", "cpu": "arm64" }, "sha512-x2X5AZez7OgyLLFpwIgItoXBUqudDM7yiaTsxv8R8vKQ6e81l0jVw0NFeUCXzcl1sAJq8h+tC8N4mY8EiMeL4w=="], - "@types/mdx": ["@types/mdx@2.0.13", "https://registry.npmmirror.com/@types/mdx/-/mdx-2.0.13.tgz", {}, "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="], + "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.68.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-AHVPjXkenLPQUh6kB8zSC8pX2ct9r4T1Edk9r/RNJyov6wPsS5uAfYtipwG4chn6+3bPFG5rI/3DxEeH8vib1w=="], - "@types/ms": ["@types/ms@2.1.0", "https://registry.npmmirror.com/@types/ms/-/ms-2.1.0.tgz", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.68.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-n09SjEk5VH7z8Hl4WVP7hho+cCwGViENkQFiM45vbW85dJd7kEhWaHRUobaPzEmrWyu6uumd4EuNfNyDKLtzDA=="], - "@types/nlcst": ["@types/nlcst@2.0.3", "https://registry.npmmirror.com/@types/nlcst/-/nlcst-2.0.3.tgz", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="], + "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.68.0", "", { "os": "win32", "cpu": "x64" }, "sha512-gPe+dJLXaPuWPWqlpklDAJp0k+K9KhQPYiQLHfb+i2rmFuUGfJ/5Qlj6tr1mO6of5g0DiLjG/XCFHIaPhotqqA=="], - "@types/node": ["@types/node@17.0.45", "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz", {}, "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="], + "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.83.0", "", { "os": "android", "cpu": "arm" }, "sha512-0yGY24EwsLk5YDe6F+VkmZyRHSwJDALa3nIrPpq7FXmp2lV2d0TzvBCGeZk+wgiULRGr5blhyr4QMp5KCXJUqA=="], - "@types/react": ["@types/react@19.1.2", "https://registry.npmmirror.com/@types/react/-/react-19.1.2.tgz", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw=="], + "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.83.0", "", { "os": "android", "cpu": "arm64" }, "sha512-hHfJ0vc17A4iUjH5p9BsTUPYbYRNxGpvD2lbu1aBRk54bzNIx9o5TtYF39QPZcV95DagZd+4DEAw2RH3G2ZsMg=="], - "@types/react-dom": ["@types/react-dom@19.1.3", "https://registry.npmmirror.com/@types/react-dom/-/react-dom-19.1.3.tgz", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg=="], + "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.83.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-hsOjYjszLb/3zym/TkzUMPAoQlTJcuzSyEPOAyA+skXJIX9M0o+4JfOtqopX/Vf4hSLrJ98j0nvFo23gzk8auQ=="], - "@types/sax": ["@types/sax@1.2.7", "https://registry.npmmirror.com/@types/sax/-/sax-1.2.7.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="], + "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.83.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-mjh5oH2EA+wl5yRJYT9K9G61O2zFlpuv+yf2JwZOi0+dq2FnTUtm1h8i+5Ik0fXPWIu/k84I1psZR9aQsLAnyA=="], - "@types/unist": ["@types/unist@3.0.3", "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.83.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-fNHr64/YaO8YssuoDVC8+F4Uk5enR86q5uxfHkQrjAPs1dbAILOrD2uaud+J7MO8Fx774g44ERLD0IGIvZE48w=="], - "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.83.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Qpwy3zzAwMj+8/lyYItHmkSMwbkprFNWTK7jPYDOxSyxEhaSLOWYUTCMkjF334J8/WD0nznCCsoBbIH6hpsuIw=="], - "@unocss/astro": ["@unocss/astro@66.1.1", "https://registry.npmmirror.com/@unocss/astro/-/astro-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/reset": "66.1.1", "@unocss/vite": "66.1.1" }, "peerDependencies": { "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0" }, "optionalPeers": ["vite"] }, "sha512-/wteVem8orDq5B4xhAol81WcK1eEwg6FCeWZhtWnP5u/1e0zI5h1rLTbyzb+qqXVNcGgqUo/jSYLLJ+dNQa99g=="], + "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.83.0", "", { "os": "linux", "cpu": "arm" }, "sha512-s+BirYLFq7JL2k9sP0XI3ZXJ9dYvJ8sX3jLCLoag7tt+zrSHpZxP0jqznfL+Gdgwu7ay0dYgGYJXrQvq3iWloA=="], - "@unocss/cli": ["@unocss/cli@66.1.1", "https://registry.npmmirror.com/@unocss/cli/-/cli-66.1.1.tgz", { "dependencies": { "@ampproject/remapping": "^2.3.0", "@unocss/config": "66.1.1", "@unocss/core": "66.1.1", "@unocss/preset-uno": "66.1.1", "cac": "^6.7.14", "chokidar": "^3.6.0", "colorette": "^2.0.20", "consola": "^3.4.2", "magic-string": "^0.30.17", "pathe": "^2.0.3", "perfect-debounce": "^1.0.0", "tinyglobby": "^0.2.13", "unplugin-utils": "^0.2.4" }, "bin": { "unocss": "bin/unocss.mjs" } }, "sha512-1bZ+iQJNt21bkBK+kmZymqSLt2W3zpawlx3w9SvQPuOy4xK8B6HkKaUcBnr9Wy3MymrI5Qwccr5f4vXweBkAxQ=="], + "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.83.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-7lihXt3vKr+GIyapNbHrnFHm/biiW30le6Zv/DExbAFPF6YwCQXVFlONPFehxs0CpGO4CBfYPM9rdDT+XMoIlg=="], - "@unocss/config": ["@unocss/config@66.1.1", "https://registry.npmmirror.com/@unocss/config/-/config-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "unconfig": "^7.3.2" } }, "sha512-Fg4sRw5dncNHxh/SM6guRzAveBI1FErw2ncb70Qe0LzCY7+IfUqrOBep/HIHP7NA1Mcj2JxHlM61ITLqrcYKpw=="], + "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.83.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-q63JalLYVkZiZvls1z3PPUnpmQluOMXp0khqQMznCeAPLGydfNY8JhvuA4WlK57JfrvikU8wB5lPVveqpIXvew=="], - "@unocss/core": ["@unocss/core@66.1.1", "https://registry.npmmirror.com/@unocss/core/-/core-66.1.1.tgz", {}, "sha512-EOewEnipyB7Y6ne0YQmxdCG1hbMjYJ7oPMeHKfQuCZz60DPzkYwV6zVMa35ySMs1xljb/vFTHVFcJA8du3i8XA=="], + "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.83.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-krQmDF+dRbxvdqVPV88ZuOoPPu8X5BuqDA8Hd+qcS4YMRQCb+nexA57DazgGsc/rGdKBe3QmV0mnv0bdpW/p5g=="], - "@unocss/extractor-arbitrary-variants": ["@unocss/extractor-arbitrary-variants@66.1.1", "https://registry.npmmirror.com/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1" } }, "sha512-hDbdXm2+LjQ18zkUniU6tCGdyBHxnMZ0M2LFF21iGEbDvK3ukX4uEVAhzASEmhkEE0nULyEJg0HkU4CRNBupBg=="], + "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.83.0", "", { "os": "linux", "cpu": "none" }, "sha512-MmOl8Y6txEAXZU1RG8Rr264jQ6D7VPmqFsU/45x/FeWsGe32hklTqGrLE6UxHzp5Rjt0wP+20tY8YXKgSFB3mw=="], - "@unocss/inspector": ["@unocss/inspector@66.1.1", "https://registry.npmmirror.com/@unocss/inspector/-/inspector-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/rule-utils": "66.1.1", "colorette": "^2.0.20", "gzip-size": "^6.0.0", "sirv": "^3.0.1", "vue-flow-layout": "^0.1.1" } }, "sha512-112uYliXR7VLYqdPfDWy/cL65An36IabFL7xU9dRPBDYmlB5qyVks9l5Sqd8uMafsZYjbMhpkjPRkXTmLMieEw=="], + "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.83.0", "", { "os": "linux", "cpu": "none" }, "sha512-u1rMymh0W3JZkq370kzQsYPULGWqhE09pZRqnZvUSoYaI9pVO5yVX+iYIslmWuEgwuzH9YAaOsScJiobWCHoOw=="], - "@unocss/postcss": ["@unocss/postcss@66.1.1", "https://registry.npmmirror.com/@unocss/postcss/-/postcss-66.1.1.tgz", { "dependencies": { "@unocss/config": "66.1.1", "@unocss/core": "66.1.1", "@unocss/rule-utils": "66.1.1", "css-tree": "^3.1.0", "postcss": "^8.5.3", "tinyglobby": "^0.2.13" } }, "sha512-+CTeYbUGDk8ESrwxRN6wkaIAJYfJekt7NvUSp1us9zws+2Ev3pH7GXztbGmTz8HCkSqLB/3MOQ6sIpviS1A7/Q=="], + "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.83.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-y0zK3HNwGysu7rqtE+BQG/d0bx5gh/KwlOtghN8oWeK1KcWzeaLqtZrbm8owqdma1lFyrce/hTO5ismuNu+INQ=="], - "@unocss/preset-attributify": ["@unocss/preset-attributify@66.1.1", "https://registry.npmmirror.com/@unocss/preset-attributify/-/preset-attributify-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1" } }, "sha512-PQC0L5CVt8JRCPBHWX1YD/XmGVWT5HZLa3NHZkl2nezoZNAiSSmwe9f5kq+bZDUZYvtbAY6jltF+G4rUAdWvJA=="], + "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.83.0", "", { "os": "linux", "cpu": "x64" }, "sha512-rS5gM0NgD7ngmuJmbIehsidtrOwKkLFwCQbKEeb9KuyQrrWNq5Zkn0uV6AYdXOMJ0grrWEiLwBuvMxt8w5vsNw=="], - "@unocss/preset-icons": ["@unocss/preset-icons@66.1.1", "https://registry.npmmirror.com/@unocss/preset-icons/-/preset-icons-66.1.1.tgz", { "dependencies": { "@iconify/utils": "^2.3.0", "@unocss/core": "66.1.1", "ofetch": "^1.4.1" } }, "sha512-F8NZKJfGzlv7tCxbo5cDXouxm1azKMzGOV11zbDTuZFDacyH5WprQ9zNMffUdUuVDy+rwAN+OoR0GEyggt4zww=="], + "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.83.0", "", { "os": "linux", "cpu": "x64" }, "sha512-W2IH4EtpcPaWcvNGCA95YoDg4vxqE/ZiPCi3arrxEEpsK7+JQN9WYwrlYFx9pcdP6KPXqRqkv3zdQPHcx7b6YQ=="], - "@unocss/preset-mini": ["@unocss/preset-mini@66.1.1", "https://registry.npmmirror.com/@unocss/preset-mini/-/preset-mini-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/extractor-arbitrary-variants": "66.1.1", "@unocss/rule-utils": "66.1.1" } }, "sha512-VRv1BWqnKaDQZb4EGZ6bV03+jLios9R8CmlOKAjr9AIAUuZv3OKP7LoSA9Jo0bci1wQUdHxNs8IvD2c1mDz+Pw=="], + "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.83.0", "", { "os": "none", "cpu": "arm64" }, "sha512-6LyKkUyoajssTPLlZmDbZIbu4IZ5B4bGuRUnBgCGpEvHP3FQMaYITncHA/unPUo7q+Z+pIu2HhdkQ+8d1SG7iA=="], - "@unocss/preset-tagify": ["@unocss/preset-tagify@66.1.1", "https://registry.npmmirror.com/@unocss/preset-tagify/-/preset-tagify-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1" } }, "sha512-cC4MjyRVu3w4xxdlvz+mrkElNEYJpgCx/HVQehK9aXDBP9L9NgpEr+7Mqefhv5ES4a2U82MPNSElyFIwm3bOUw=="], + "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.83.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Uz/fObEtF0jmNJQJ8CGRBKfefYstS0/wjD3s6IGzP8nUwsJykHQJBiN3npHwKiGRGn/vvBEgNr4B3cCzmmatvg=="], - "@unocss/preset-typography": ["@unocss/preset-typography@66.1.1", "https://registry.npmmirror.com/@unocss/preset-typography/-/preset-typography-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/preset-mini": "66.1.1", "@unocss/rule-utils": "66.1.1" } }, "sha512-FB8leh/TANJB7U8sUuEG0pM+Nqhw65A1k+xJEXlYKAbfIdUN6mGNvFirh6c2WJXUg6rHe06l//TZAAvwJiS29Q=="], + "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.83.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-u7XcvPW6Bk58tY5iWs2ESb0vJjoE/kuSpHxopbwp/p3ZtWVQXZ6wor5w3ssVTHOqd/v8b+QdhSFWQ4grEUNWpA=="], - "@unocss/preset-uno": ["@unocss/preset-uno@66.1.1", "https://registry.npmmirror.com/@unocss/preset-uno/-/preset-uno-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/preset-wind3": "66.1.1" } }, "sha512-2gfayXo7He9ecCIp4KzpRpCjc6bFtukAahdLf5WoW66GRxoTDAsOuWQitG+B2IiExIX0fci8uahFudMNyLpjMA=="], + "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.83.0", "", { "os": "win32", "cpu": "x64" }, "sha512-LZRubd7ph13QmAg4fFecTYVZkiYbROR2Htaxh/ufWRkDhPOm2wrwaEYR89e0YpPFD3dqBrPoxS7myBw5hmYA7Q=="], - "@unocss/preset-web-fonts": ["@unocss/preset-web-fonts@66.1.1", "https://registry.npmmirror.com/@unocss/preset-web-fonts/-/preset-web-fonts-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "ofetch": "^1.4.1" } }, "sha512-vVjidprhFWsZ0ClRIfGhH3evsdtDgXPSoyv8MlN8dP5RqkpH817h5PqmInxHkYeC5Mg/HsUy5HA0NryBQix0vQ=="], + "@pagefind/darwin-arm64": ["@pagefind/darwin-arm64@1.5.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ=="], - "@unocss/preset-wind": ["@unocss/preset-wind@66.1.1", "https://registry.npmmirror.com/@unocss/preset-wind/-/preset-wind-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/preset-wind3": "66.1.1" } }, "sha512-+C66yMgJe6/Xu3ZoP+8XMqL5N3RkLIZVVbVXtnhSvCF8qd4rJ+d4/odeQ8M/WUcQXSysIckkDfnYC2FGSTEakw=="], + "@pagefind/darwin-x64": ["@pagefind/darwin-x64@1.5.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw=="], - "@unocss/preset-wind3": ["@unocss/preset-wind3@66.1.1", "https://registry.npmmirror.com/@unocss/preset-wind3/-/preset-wind3-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/preset-mini": "66.1.1", "@unocss/rule-utils": "66.1.1" } }, "sha512-Z8SqXaubPJHltD0+dneYei0spxH+spzGNiOWI7qffsByxvc6B/kOdJFOhVWE5DhYO33KJWyGxZdXzCq7Xxdm9Q=="], + "@pagefind/freebsd-x64": ["@pagefind/freebsd-x64@1.5.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA=="], - "@unocss/preset-wind4": ["@unocss/preset-wind4@66.1.1", "https://registry.npmmirror.com/@unocss/preset-wind4/-/preset-wind4-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/extractor-arbitrary-variants": "66.1.1", "@unocss/rule-utils": "66.1.1" } }, "sha512-p7YU0xcYF/+DUcsV//QkrXVEvORefSmXNOHnZ3HqawWdOABQJD/pu3QMk64jnEdrjQg07s4Wd1Zh5DAhSXFmLw=="], + "@pagefind/linux-arm64": ["@pagefind/linux-arm64@1.5.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw=="], - "@unocss/reset": ["@unocss/reset@66.1.1", "https://registry.npmmirror.com/@unocss/reset/-/reset-66.1.1.tgz", {}, "sha512-WrI3sStMd/EXTcb3SaTVH10Wc9NKutW4+/HktQy470wEpncXdvihrXgCYwJH6LEEL4KOto3o+KKSD5xenWE7Aw=="], + "@pagefind/linux-x64": ["@pagefind/linux-x64@1.5.2", "", { "os": "linux", "cpu": "x64" }, "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA=="], - "@unocss/rule-utils": ["@unocss/rule-utils@66.1.1", "https://registry.npmmirror.com/@unocss/rule-utils/-/rule-utils-66.1.1.tgz", { "dependencies": { "@unocss/core": "^66.1.1", "magic-string": "^0.30.17" } }, "sha512-a7xe3FsvsI6T6u8QtXcQF22jnElB68X92aHjuSRt512gRjhhu/5kSzLJbMkv9RsclHJbmjnz6OUkk/mlTTxcFg=="], + "@pagefind/windows-arm64": ["@pagefind/windows-arm64@1.5.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g=="], - "@unocss/transformer-attributify-jsx": ["@unocss/transformer-attributify-jsx@66.1.1", "https://registry.npmmirror.com/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1" } }, "sha512-HE/O9xdPLrf20ZynvYsJOUwPQagExDUQSVdo9zYPwoUQ7O+Ep5uwRBp1vpT/suZfU87RwWSvKSFOHmFoKiJBCA=="], + "@pagefind/windows-x64": ["@pagefind/windows-x64@1.5.2", "", { "os": "win32", "cpu": "x64" }, "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg=="], - "@unocss/transformer-compile-class": ["@unocss/transformer-compile-class@66.1.1", "https://registry.npmmirror.com/@unocss/transformer-compile-class/-/transformer-compile-class-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1" } }, "sha512-tptWeOEaR56XNLeJy+MtoTagYCH5giRYrlaOdQPX57NDnRqRB0KJYHew2YpgH6j6eZ1WbQ4WK8j1PzAmr1FVgg=="], + "@poppinss/colors": ["@poppinss/colors@4.1.6", "", { "dependencies": { "kleur": "^4.1.5" } }, "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg=="], - "@unocss/transformer-directives": ["@unocss/transformer-directives@66.1.1", "https://registry.npmmirror.com/@unocss/transformer-directives/-/transformer-directives-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1", "@unocss/rule-utils": "66.1.1", "css-tree": "^3.1.0" } }, "sha512-qj2oUc9P+cY6PD+vTmbyb830GTofKm1IMeT+lhH4eyMX3lpfbDxj1LTjyJzouhK8s5VD56gWXx8wFdTuaEQ2Ww=="], + "@poppinss/dumper": ["@poppinss/dumper@0.6.5", "", { "dependencies": { "@poppinss/colors": "^4.1.5", "@sindresorhus/is": "^7.0.2", "supports-color": "^10.0.0" } }, "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw=="], - "@unocss/transformer-variant-group": ["@unocss/transformer-variant-group@66.1.1", "https://registry.npmmirror.com/@unocss/transformer-variant-group/-/transformer-variant-group-66.1.1.tgz", { "dependencies": { "@unocss/core": "66.1.1" } }, "sha512-opU9y9c6iGUtTXPa+bDfkihSAth+5PVO9hLbPWlDIiN6mDF7WHzAbnhg0Q+FixjAI+n772XWKoLdrPn3yM2NZA=="], + "@poppinss/exception": ["@poppinss/exception@1.2.3", "", {}, "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw=="], - "@unocss/vite": ["@unocss/vite@66.1.1", "https://registry.npmmirror.com/@unocss/vite/-/vite-66.1.1.tgz", { "dependencies": { "@ampproject/remapping": "^2.3.0", "@unocss/config": "66.1.1", "@unocss/core": "66.1.1", "@unocss/inspector": "66.1.1", "chokidar": "^3.6.0", "magic-string": "^0.30.17", "pathe": "^2.0.3", "tinyglobby": "^0.2.13", "unplugin-utils": "^0.2.4" }, "peerDependencies": { "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0" } }, "sha512-+ddMVpMxvm+2r8Je3YJRGYiZ/p/7LPD69VKT3vjFG3lT3IbfXtt18q6kYwBi+9lcnI68qgh3/s4qXQ2Q/iX5NQ=="], + "@rolldown/binding-android-arm-eabi": ["@rolldown/binding-android-arm-eabi@1.2.9", "", { "os": "android", "cpu": "arm" }, "sha512-tNISae1QEf/vkb3xkRcjV5SEdzPE97We5IVaa2Z8jSszQPZ8U60B/YCYpw4QI7VidYsBtKavczXf+DyDs9WGxw=="], - "@vitejs/plugin-react": ["@vitejs/plugin-react@4.4.1", "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", { "dependencies": { "@babel/core": "^7.26.10", "@babel/plugin-transform-react-jsx-self": "^7.25.9", "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w=="], + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.9", "", { "os": "android", "cpu": "arm64" }, "sha512-YC8YsI30o606GTZi0VyzYlsDKFP8W61i/QzayHDkLbNEz/IShqAmTa+hsJRj13xTHA0H+6fk4b2UmGn+Q/cMlg=="], - "@vue/compiler-core": ["@vue/compiler-core@3.5.13", "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz", { "dependencies": { "@babel/parser": "^7.25.3", "@vue/shared": "3.5.13", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q=="], + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.9", "", { "os": "darwin", "cpu": "arm64" }, "sha512-IwhlH3qK5urrY8hZiEgGkHKEFN901p/p2bjxCxJlr4GyNnF7wYpUvK+Y43uaRYuC4hpfjzbR3SJC3arX1jGvmw=="], - "@vue/compiler-dom": ["@vue/compiler-dom@3.5.13", "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", { "dependencies": { "@vue/compiler-core": "3.5.13", "@vue/shared": "3.5.13" } }, "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA=="], + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.9", "", { "os": "darwin", "cpu": "x64" }, "sha512-XxpJfVzFh+jilRxIXUqcfYAYcunIc/XEzIizsOL1fcJee5Sf7H3mH8WlLmfHfluz5amqR88QQo9izKtmMlavAw=="], - "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.13", "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", { "dependencies": { "@babel/parser": "^7.25.3", "@vue/compiler-core": "3.5.13", "@vue/compiler-dom": "3.5.13", "@vue/compiler-ssr": "3.5.13", "@vue/shared": "3.5.13", "estree-walker": "^2.0.2", "magic-string": "^0.30.11", "postcss": "^8.4.48", "source-map-js": "^1.2.0" } }, "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ=="], + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.9", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kSfvhmgeWyfkbT3p/1s5vSgboogoah2zkm9fX2zjg2hHxSV7T4KhMWRUUaRk4OXNqoD3QAUeRqLcs1aZOK4U1g=="], - "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.13", "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", { "dependencies": { "@vue/compiler-dom": "3.5.13", "@vue/shared": "3.5.13" } }, "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA=="], + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.9", "", { "os": "linux", "cpu": "arm" }, "sha512-1RVzG17pxqbTfYLC352JlLt6kKLG+6Hr30n8DlIJqsnV5luUDd2Qdx9Ayw1Cabfyb1K9k0jXEZ7evxkRoT+uiw=="], - "@vue/reactivity": ["@vue/reactivity@3.5.13", "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz", { "dependencies": { "@vue/shared": "3.5.13" } }, "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg=="], + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-BXqPvZ2drqVD+/Z8UpKwcs4Mp7grM+eGFku4CAEKrEtcbAsUpzREphK1sogCRZGreVPiMkiiBtw0n3TPteuqvw=="], - "@vue/runtime-core": ["@vue/runtime-core@3.5.13", "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz", { "dependencies": { "@vue/reactivity": "3.5.13", "@vue/shared": "3.5.13" } }, "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw=="], + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-11vWvo8YDwLzukt27J3aYDWU+gg2P7J+ZOmiJ0hkF5BXZDW7pVya7r40MXDy6ya0i9KamoENSVKIugvJNgFXIA=="], - "@vue/runtime-dom": ["@vue/runtime-dom@3.5.13", "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", { "dependencies": { "@vue/reactivity": "3.5.13", "@vue/runtime-core": "3.5.13", "@vue/shared": "3.5.13", "csstype": "^3.1.3" } }, "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog=="], + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.9", "", { "os": "linux", "cpu": "ppc64" }, "sha512-a1tijMkdwsIARtc0F39ApURROkf3NwqinI6TOiSSWCTR7dT96dffNvMUtDHnq64wKNTIZOIlzKrFvvFUznJiyw=="], - "@vue/server-renderer": ["@vue/server-renderer@3.5.13", "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz", { "dependencies": { "@vue/compiler-ssr": "3.5.13", "@vue/shared": "3.5.13" }, "peerDependencies": { "vue": "3.5.13" } }, "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA=="], + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.9", "", { "os": "linux", "cpu": "s390x" }, "sha512-x6SQNdAvv4c3hWqTMaWuawzMX9myaCs/yEmlGsxJzkdClnHW7FbrjQuSiRDhuSYzEYoEMhsaJy9qHG/XNemJPQ=="], - "@vue/shared": ["@vue/shared@3.5.13", "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz", {}, "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ=="], + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.9", "", { "os": "linux", "cpu": "x64" }, "sha512-9s0AZ8BFK5/n7B/TBoa2yJE3gI3KURrbXcPBlsAsvjU4VeJKgE90y1YtNxyEUIcHPQkg6/yfF3qihUrcM/Kf0Q=="], - "acorn": ["acorn@8.14.1", "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.9", "", { "os": "linux", "cpu": "x64" }, "sha512-P7VWAmV+WdJluH7ovnRGoiv2i8To7GAZ+kGzfGup635cyL7SyYl3lSUaA3Gp5THf0n/Co5EyEqb2zbqq+nMOHQ=="], - "acorn-jsx": ["acorn-jsx@5.3.2", "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.9", "", { "os": "none", "cpu": "arm64" }, "sha512-1qixtsE4BK8h+yS3BfmZ09UhA7O/N4IACva6YBr7EBvCJraByTuRcgOTaiA62Tm0vey3UcKXLOaoGHtYmNGEVg=="], - "ansi-align": ["ansi-align@3.0.1", "https://registry.npmmirror.com/ansi-align/-/ansi-align-3.0.1.tgz", { "dependencies": { "string-width": "^4.1.0" } }, "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w=="], + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.9", "", { "os": "win32", "cpu": "arm64" }, "sha512-ok8IQjcEPs1AKZfuEUznVBrJw+gK4soq+bx8b1X2XoMqVClarc1q5JDmVtWXY1xfr6ZuHTAsPXHTgTrqKTZeww=="], - "ansi-regex": ["ansi-regex@6.1.0", "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.9", "", { "os": "win32", "cpu": "x64" }, "sha512-Ip2mXoU0hM0boq3Rf+ekuT653OROSo6aSYcPT1VHE4q52KvyxgFkQgrgb/IEsxOuvQ2fZZbs8khJAyCEPM24/g=="], - "ansi-styles": ["ansi-styles@6.2.1", "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], - "anymatch": ["anymatch@3.1.3", "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + "@rollup/pluginutils": ["@rollup/pluginutils@5.4.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg=="], - "arg": ["arg@5.0.2", "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.63.4", "", { "os": "android", "cpu": "arm" }, "sha512-I+BSHzTAhKN2n7ZwGZsegGcZjDpLqFOMAtJz/u6uFGe0pUFbq56dEHjqJV/ZUdRJtNXNxA+hREUatZBvMR3Oiw=="], - "argparse": ["argparse@2.0.1", "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.63.4", "", { "os": "android", "cpu": "arm64" }, "sha512-pu3BdjS2LtEzRu2elmGzS3fIeWSZy4BMDIaLNwjorO76+k2d0LMluijhsDx3KQyQBQ/lLUZCQA9/s6csvUfuhw=="], - "aria-query": ["aria-query@5.3.2", "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.2.tgz", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.63.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-xfSrj9MHnWK9GaSqT9U0ImHtH/N8WZlHLx4cZHiuLcqs640hvZ3hLPd5UR2AZS57FaE8HrRUSpltbZdWRxHiDA=="], - "array-iterate": ["array-iterate@2.0.1", "https://registry.npmmirror.com/array-iterate/-/array-iterate-2.0.1.tgz", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.63.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-bqU99PLJb/dqb3S0GIMdeuyAEETSUgZBoqXYd3Sd+WCsV+MmPhnN6JrotWyir31+QgH7EvvE5/mwGJlEoci8Fw=="], - "astring": ["astring@1.9.0", "https://registry.npmmirror.com/astring/-/astring-1.9.0.tgz", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.63.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-JinsFZ5G40oXQb+sUuiA5x689vhr6dDYK0H0NL+rwKdL6CqnmYN8PE4ZwfRSoIjrCxqTQG/SLfTtSvHeGxoVlw=="], - "astro": ["astro@5.7.10", "https://registry.npmmirror.com/astro/-/astro-5.7.10.tgz", { "dependencies": { "@astrojs/compiler": "^2.11.0", "@astrojs/internal-helpers": "0.6.1", "@astrojs/markdown-remark": "6.3.1", "@astrojs/telemetry": "3.2.1", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.4", "acorn": "^8.14.1", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.2.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.0.2", "cssesc": "^3.0.0", "debug": "^4.4.0", "deterministic-object-hash": "^2.0.2", "devalue": "^5.1.1", "diff": "^5.2.0", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.6.0", "esbuild": "^0.25.0", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.1.1", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.17", "magicast": "^0.3.5", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "package-manager-detector": "^1.1.0", "picomatch": "^4.0.2", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.1", "shiki": "^3.2.1", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.12", "tsconfck": "^3.1.5", "ultrahtml": "^1.6.0", "unifont": "~0.4.1", "unist-util-visit": "^5.0.0", "unstorage": "^1.15.0", "vfile": "^6.0.3", "vite": "^6.3.4", "vitefu": "^1.0.6", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.1", "zod": "^3.24.2", "zod-to-json-schema": "^3.24.5", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.33.3" }, "bin": { "astro": "astro.js" } }, "sha512-9TQcFZqP2w6//JXXUHfw8/5PX7KUx9EkG5O3m+hISuyeUztvjY1q5+p7+C5HiXyg24Zs3KkpieoL5BGRXGCAGA=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.63.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GAdA4UxpiNm27cLHr2GqXBpAD0x9FqwYBY7/YSP0Ss0/PNi4k8gbviqpIpYbVSRBaS2ZcegXEzgTQMbRNCwxCw=="], - "axobject-query": ["axobject-query@4.1.0", "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.1.0.tgz", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.63.4", "", { "os": "linux", "cpu": "arm" }, "sha512-qDd6NoA1znaLjp4jR5U/KWCdLAKDJNB8W9ChbbDaKbo0xA+Atln5HK6LFCZ4oJQpemtRZA288DCirFRjrspptw=="], - "bail": ["bail@2.0.2", "https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.63.4", "", { "os": "linux", "cpu": "arm" }, "sha512-WtB5Tz5KTNINb8ZA+8sQ7bmjuS1JrRT7YverYIhUGdWWDlpzVWmIwuZE+jidkEXUn1l0zrEkaIMa8dHF3NGcsA=="], - "base-64": ["base-64@1.0.0", "https://registry.npmmirror.com/base-64/-/base-64-1.0.0.tgz", {}, "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.63.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-VcQ3L1tjnkKzWjryAVaFhHEWcqOfICX9uxVVoDzm2t0DpgKRHd2zOpVrJc0xsWeBZcBFyYROCIBdyR/fS174pg=="], - "base64-js": ["base64-js@1.5.1", "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.63.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-6+ZQX6P5s0cMDN2Ypb8Lbm2+/sZYmZjdaYny992ujUU9UKi/4CWoJWsl1pNvjWJHNHGK51m+jKGLlh1ylb2ifQ=="], - "binary-extensions": ["binary-extensions@2.3.0", "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-D72ZnvkFkBXOfzMMQLcwfPLyGkKb7HZ9/mf97B7v6/P5Lbv4oFOtSY/uHbS8lH6uKUOxoKiuokdb50XZSzzbJw=="], - "blob-to-buffer": ["blob-to-buffer@1.2.9", "https://registry.npmmirror.com/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz", {}, "sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA=="], + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-piU6BxeqA3O9KSu3kRCIQQtNqFFaTu21SEV4FwaRZowpnj3bLaWPZHw+xFqCs0XlJ+aOH3PTRWGoglH+mKA/OA=="], - "boxen": ["boxen@8.0.1", "https://registry.npmmirror.com/boxen/-/boxen-8.0.1.tgz", { "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^8.0.0", "chalk": "^5.3.0", "cli-boxes": "^3.0.0", "string-width": "^7.2.0", "type-fest": "^4.21.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0" } }, "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.63.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/5PGpHwqt2EEEOUs1XwzubE/ucr0dWDQ+to3zqi4Ds7EWpwtQ79wXc4JBoxqj/OwpawTsKWzJxHfSuBOq3DrWA=="], - "braces": ["braces@3.0.3", "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.63.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cX3beZDLWt7G2oJF+nhChiT+qtaihs+S2xi7ziGmVB+2pwPng6D0Ed0HmElQOgv2UsUmSJJLGwpBao/3TDx3VA=="], - "brotli": ["brotli@1.3.3", "https://registry.npmmirror.com/brotli/-/brotli-1.3.3.tgz", { "dependencies": { "base64-js": "^1.1.2" } }, "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-1uz2mGWHyptR7DgHHrlbdRAjXK7v7elGZ9lMja910/RP+ZYbX6xAmCiU9UZSX4hqmgtHMv6lr5l3kq1HIOpcag=="], - "browserslist": ["browserslist@4.24.5", "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.5.tgz", { "dependencies": { "caniuse-lite": "^1.0.30001716", "electron-to-chromium": "^1.5.149", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-nLS8topojxyz7SRpKR2IODRpQ0XPZ+xaOXvT3+hqK/Uy8Lo5HFgkkIBiIrCu5tL5YqzTvgovGw55PwpahTAGig=="], - "cac": ["cac@6.7.14", "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.63.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-gs7DRKotr3l3q+jGPQBjH0ng1FjlEDm5ueQrkw5JtQvtLyEIcLASqAEaor56BhkKRzk+IcQzrcanBdb/bBQn8g=="], - "camelcase": ["camelcase@8.0.0", "https://registry.npmmirror.com/camelcase/-/camelcase-8.0.0.tgz", {}, "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.63.4", "", { "os": "linux", "cpu": "x64" }, "sha512-791ET7W17NnScOZM7h4dX5hYspxE28htPFsb1awY/NRR8+PRNkS53e475rDdxXXDrP+kwnCcNWg9CX5ztn/Aqw=="], - "caniuse-lite": ["caniuse-lite@1.0.30001717", "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", {}, "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.63.4", "", { "os": "linux", "cpu": "x64" }, "sha512-iwZQRcmj7g88g3tzefIrQY7qvmuA/cfYwhrDtTBhsmukO4U2huVO5W+86XacUMRvdSFVAc6kZUZy21JaRwiB9w=="], - "ccount": ["ccount@2.0.1", "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.63.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-dVHFp9gRWrdTpnqQuGfCwd7hOQDatK1VCP2iWhLY/cGrOQs/ucFzJ6A5SRqbXX12ZDI8EUuejSM5kwg+ja7Png=="], - "chalk": ["chalk@5.4.1", "https://registry.npmmirror.com/chalk/-/chalk-5.4.1.tgz", {}, "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.63.4", "", { "os": "none", "cpu": "arm64" }, "sha512-t3NlauOW6gxZVVFcBEnO62Cb4wbyDFL416gTg1uFI/2tgqYQlf69FbSE115Ajre9I+c26Lk4mcmdFUsS/DGifQ=="], - "character-entities": ["character-entities@2.0.2", "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.63.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-xWuIaSye5FWZF8+UYtVEcHtRJDN5kN9Kfgxx3Kq8XIov9KSKbc1fiqQCm90SKrgQbUXZelbnUhnlUJmfSE7P9A=="], - "character-entities-html4": ["character-entities-html4@2.1.0", "https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.63.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-9ALJJUOg/ZflMJepVo2PlgsGxSaxN7SQ4Z8GoZfVlarWr6r3rkHUNsd/zAio7p4YMtChSMXPionxej4Hkf6CXQ=="], - "character-entities-legacy": ["character-entities-legacy@3.0.0", "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.63.4", "", { "os": "win32", "cpu": "x64" }, "sha512-blj9z5qx/Pv4WU0W1NMFDB97e0JH5ed+aZGywW8WCvp/NhWX/4PFAq5uu6Q0AebNn+Vo6KzUYDT++JzTT5ojlQ=="], - "character-reference-invalid": ["character-reference-invalid@2.0.1", "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.63.4", "", { "os": "win32", "cpu": "x64" }, "sha512-Erx822VRBwLa124shbj+wNXe//BOgMEctDV0m1aqTQdNO1S69DgNUCFKC1RCeZfixs1J31l6igk1ziyXErbigQ=="], - "chokidar": ["chokidar@3.6.0", "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + "@shikijs/core": ["@shikijs/core@4.4.3", "", { "dependencies": { "@shikijs/primitive": "4.4.3", "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5", "hast-util-to-html": "^9.0.5" } }, "sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg=="], - "ci-info": ["ci-info@4.2.0", "https://registry.npmmirror.com/ci-info/-/ci-info-4.2.0.tgz", {}, "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg=="], + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.6" } }, "sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ=="], - "cli-boxes": ["cli-boxes@3.0.0", "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-3.0.0.tgz", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="], + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w=="], - "clone": ["clone@2.1.2", "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="], + "@shikijs/langs": ["@shikijs/langs@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3" } }, "sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A=="], - "clsx": ["clsx@2.1.1", "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + "@shikijs/primitive": ["@shikijs/primitive@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ=="], - "collapse-white-space": ["collapse-white-space@2.1.0", "https://registry.npmmirror.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz", {}, "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw=="], + "@shikijs/themes": ["@shikijs/themes@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3" } }, "sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw=="], - "color": ["color@4.2.3", "https://registry.npmmirror.com/color/-/color-4.2.3.tgz", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], + "@shikijs/types": ["@shikijs/types@4.4.3", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g=="], - "color-convert": ["color-convert@2.0.1", "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], - "color-name": ["color-name@1.1.4", "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "@sindresorhus/is": ["@sindresorhus/is@7.2.0", "", {}, "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw=="], - "color-string": ["color-string@1.9.1", "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="], + "@speed-highlight/core": ["@speed-highlight/core@1.2.24", "", {}, "sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw=="], - "colorette": ["colorette@2.0.20", "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="], + "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], - "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + "@tanstack/history": ["@tanstack/history@1.162.4", "", {}, "sha512-utTS5L2OkeYUzXGohL1Z8sefu1GLNOJcxe8Hd6iIdc/Xo1K1nDB2JEp4iSFhvYh33xKC9V91TxrS8qfrpoKobQ=="], - "common-ancestor-path": ["common-ancestor-path@1.0.1", "https://registry.npmmirror.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", {}, "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w=="], + "@tanstack/query-core": ["@tanstack/query-core@5.103.1", "", {}, "sha512-rms8HqTGp6zA00dM+cUQ2eBcgzNJefuu5CAMB37i/6MiGT1zulPOytCFu2a0qjLqVR2n1jENPj9woqFQNuCzWA=="], - "confbox": ["confbox@0.2.2", "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], + "@tanstack/react-query": ["@tanstack/react-query@5.103.1", "", { "dependencies": { "@tanstack/query-core": "5.103.1" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-rmAPPApNEK17VXRJhtE1rja53n23VV5w30C0saCgJhhX+EpdUnVqMGV/s5nnzV43X75KTHKzuoiuxSzGTBIkag=="], - "consola": ["consola@3.4.2", "https://registry.npmmirror.com/consola/-/consola-3.4.2.tgz", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], + "@tanstack/react-router": ["@tanstack/react-router@1.170.38", "", { "dependencies": { "@tanstack/history": "1.162.4", "@tanstack/react-store": "^0.11.0", "@tanstack/router-core": "1.171.32", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-iHM9b0aDJbuvftmkiQXawzoqsdV68p2Re2safbVLCnxafe+iLKV++2i3hI/BMAP6uR92/Mjw94JKJJfD7pbwHQ=="], - "convert-source-map": ["convert-source-map@2.0.0", "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "@tanstack/react-start": ["@tanstack/react-start@1.168.56", "", { "dependencies": { "@tanstack/react-router": "1.170.38", "@tanstack/react-start-client": "1.168.36", "@tanstack/react-start-rsc": "0.1.55", "@tanstack/react-start-server": "1.167.43", "@tanstack/router-utils": "1.162.3", "@tanstack/start-client-core": "1.170.32", "@tanstack/start-plugin-core": "1.171.46", "@tanstack/start-server-core": "1.169.37", "pathe": "^2.0.3" }, "peerDependencies": { "@rsbuild/core": "^2.0.0", "@vitejs/plugin-rsc": "*", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0", "vite": ">=7.0.0" }, "optionalPeers": ["@rsbuild/core", "@vitejs/plugin-rsc", "vite"] }, "sha512-b/jVJS+yt7J0IKwXfVoA2mlhIi92sWfwCYrCVked0WERzgbYAad6xrOwNTljz9OKyeajofGrmMdKJgRzK1Lt2w=="], - "cookie": ["cookie@1.0.2", "https://registry.npmmirror.com/cookie/-/cookie-1.0.2.tgz", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], + "@tanstack/react-start-client": ["@tanstack/react-start-client@1.168.36", "", { "dependencies": { "@tanstack/react-router": "1.170.38", "@tanstack/router-core": "1.171.32", "@tanstack/start-client-core": "1.170.32" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-TRXZKag/Ng0TqVfcN4cbEDVJhEZYosHZ9/VAEhK3PK/YqznytK+bcoonE4jP5NCXMdH2YRTMsrWKrApEuWz0Cg=="], - "cookie-es": ["cookie-es@1.2.2", "https://registry.npmmirror.com/cookie-es/-/cookie-es-1.2.2.tgz", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], + "@tanstack/react-start-rsc": ["@tanstack/react-start-rsc@0.1.55", "", { "dependencies": { "@tanstack/react-router": "1.170.38", "@tanstack/router-core": "1.171.32", "@tanstack/router-utils": "1.162.3", "@tanstack/start-client-core": "1.170.32", "@tanstack/start-fn-stubs": "1.162.0", "@tanstack/start-plugin-core": "1.171.46", "@tanstack/start-storage-context": "1.167.34", "pathe": "^2.0.3" }, "peerDependencies": { "@rspack/core": ">=2.0.0-0", "@vitejs/plugin-rsc": ">=0.5.30", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0", "react-server-dom-rspack": ">=0.0.2" }, "optionalPeers": ["@rspack/core", "@vitejs/plugin-rsc", "react-server-dom-rspack"] }, "sha512-qfW89LMrewtMLHMCumMP3+3mf2gPezFE7FZ7CHPJis4paxt2A6Jl7eCpE6whYgc5DFiifUv9qdfbC22HIP0HAw=="], - "cross-fetch": ["cross-fetch@3.2.0", "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.2.0.tgz", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + "@tanstack/react-start-server": ["@tanstack/react-start-server@1.167.43", "", { "dependencies": { "@tanstack/react-router": "1.170.38", "@tanstack/router-core": "1.171.32", "@tanstack/start-server-core": "1.169.37" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-/Fc1mOEBAyXmqxnihIkS1DrCcJX8ffrJ+xyc8nnFmO9YuCdrnZJskd48R1ZiOhM7u3vCPzDxUycIhKo8HlKn2g=="], - "crossws": ["crossws@0.3.4", "https://registry.npmmirror.com/crossws/-/crossws-0.3.4.tgz", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw=="], + "@tanstack/react-store": ["@tanstack/react-store@0.11.1", "", { "dependencies": { "@tanstack/store": "0.11.1", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-HaIGKI3YLmjBYIvy5DFDY23oNaYZIsTZfngey07Uh5iLVJgM3bIGCnZeOFOqzjFld9JHWcaHJnasD/bKoGKwJQ=="], - "css-tree": ["css-tree@3.1.0", "https://registry.npmmirror.com/css-tree/-/css-tree-3.1.0.tgz", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="], + "@tanstack/router-core": ["@tanstack/router-core@1.171.32", "", { "dependencies": { "@tanstack/history": "1.162.4", "cookie-es": "^3.0.0", "seroval": "^1.6.2", "seroval-plugins": "^1.6.2" } }, "sha512-X86Jqk3vB2KJcUfS6oLi7B7yxbaa59QEhZRPPP1fRx3k+Jw/Fu1UYVBcRtdwK/OccQnrlQdVoKvNO3QXmyEBOw=="], - "cssesc": ["cssesc@3.0.0", "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + "@tanstack/router-generator": ["@tanstack/router-generator@1.167.38", "", { "dependencies": { "@babel/types": "^7.29.8", "@tanstack/router-core": "1.171.32", "@tanstack/router-utils": "1.162.3", "@tanstack/virtual-file-routes": "1.162.0", "jiti": "^2.7.0", "magic-string": "^0.30.21", "prettier": "^3.9.6", "zod": "^4.5.4" } }, "sha512-lkqgFleDgfkW+QONVMKBs+ZGDUF0v9R9FkplS/GZvKDFpfnu+tZxmGlV2pryU1TDxyuSyjh56AtIla3NMrlScw=="], - "csstype": ["csstype@3.1.3", "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "@tanstack/router-plugin": ["@tanstack/router-plugin@1.168.40", "", { "dependencies": { "@babel/core": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.8", "@tanstack/router-core": "1.171.32", "@tanstack/router-generator": "1.167.38", "@tanstack/router-utils": "1.162.3", "chokidar": "^5.0.0", "unplugin": "^3.3.0", "zod": "^4.5.4" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2 || ^2.0.0", "@tanstack/react-router": "^1.170.38", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0", "vite-plugin-solid": "^2.11.10 || ^3.0.0-0", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"] }, "sha512-ifiXjjR4uivxwRDhgYAcfyrcu+Mwx+vlG0QjjQ7N5C5sKmzpt5UtsL21TNVvZDSZl2Vae8DcL84Z02fOs8ZZMQ=="], - "debug": ["debug@4.4.0", "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "@tanstack/router-utils": ["@tanstack/router-utils@1.162.3", "", { "dependencies": { "@babel/generator": "^7.29.8", "@babel/parser": "^7.29.8", "@babel/types": "^7.29.8", "ansis": "^4.3.1", "babel-dead-code-elimination": "^1.0.12", "diff": "^8.0.4", "pathe": "^2.0.3", "tinyglobby": "^0.2.17" } }, "sha512-Icb0xGuG1+54IV0WMLRcc3ErTx2HeJWyPG661FkQ8UT6guoBq1FJjFRqlG/JS0xi4mFFkBhvwO7tbLa32f3yxA=="], - "decode-named-character-reference": ["decode-named-character-reference@1.1.0", "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w=="], + "@tanstack/start-client-core": ["@tanstack/start-client-core@1.170.32", "", { "dependencies": { "@tanstack/router-core": "1.171.32", "@tanstack/start-fn-stubs": "1.162.0", "@tanstack/start-storage-context": "1.167.34", "seroval": "^1.6.2" } }, "sha512-kawgeg3Ej/JvGeEN7txFdVN9kXOST9wl7yPojOGESiomwiubHKRdYUS6sBskW91j44H+HirQUppP4+Ha7kjb4A=="], - "defu": ["defu@6.1.4", "https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="], + "@tanstack/start-fn-stubs": ["@tanstack/start-fn-stubs@1.162.0", "", {}, "sha512-QWfUZ3Yo923tdQn38LyKMU8rcTw69zc+T4dAvgTWV4O56SqFRsGfS0lSWIMhJRwXIx/bvdi7nTUBDdZtTHtpTQ=="], - "dequal": ["dequal@2.0.3", "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + "@tanstack/start-plugin-core": ["@tanstack/start-plugin-core@1.171.46", "", { "dependencies": { "@babel/code-frame": "7.29.7", "@babel/core": "^7.29.7", "@babel/types": "^7.29.8", "@jridgewell/remapping": "^2.3.5", "@tanstack/router-core": "1.171.32", "@tanstack/router-generator": "1.167.38", "@tanstack/router-plugin": "1.168.40", "@tanstack/router-utils": "1.162.3", "@tanstack/start-server-core": "1.169.37", "exsolve": "^1.1.1", "lightningcss": "^1.33.0", "pathe": "^2.0.3", "picomatch": "^4.0.7", "seroval": "^1.6.2", "source-map": "^0.7.6", "srvx": "^0.11.22", "tinyglobby": "^0.2.17", "ufo": "^1.6.4", "vitefu": "^1.1.3", "xmlbuilder2": "^4.0.3", "zod": "^4.5.4" }, "peerDependencies": { "@rsbuild/core": "^2.0.0", "vite": ">=7.0.0" }, "optionalPeers": ["@rsbuild/core", "vite"] }, "sha512-d/cDPZNDdRl824mOamt6USO1ja5JAaIwkuT2FIBRkBdrKZgQ8GJWv5pqpkXMbKANc49V8bUBBOTjgiCdC7YsPw=="], - "destr": ["destr@2.0.5", "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + "@tanstack/start-server-core": ["@tanstack/start-server-core@1.169.37", "", { "dependencies": { "@tanstack/history": "1.162.4", "@tanstack/router-core": "1.171.32", "@tanstack/start-client-core": "1.170.32", "@tanstack/start-storage-context": "1.167.34", "fetchdts": "^0.1.6", "h3-v2": "npm:h3@2.0.1-rc.20", "seroval": "^1.6.2" } }, "sha512-CjYMXg2XISMEJt9UVR4lbMRsnRyWPrdyuF8iuJ4gxTc1sVNRciwMVpMPVGQG2KuIma3ewlNxw8+Tpx2tnS3zRA=="], - "detect-libc": ["detect-libc@2.0.4", "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.4.tgz", {}, "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA=="], + "@tanstack/start-storage-context": ["@tanstack/start-storage-context@1.167.34", "", { "dependencies": { "@tanstack/router-core": "1.171.32" } }, "sha512-cRPE0kjt1CnOIhepmNOvRFwCGhDAnCRohPD3HmzqJJThPkixLBRuLDvIYp4hRPtM1TJ9hiKbYl24IxAhjZO5TA=="], - "deterministic-object-hash": ["deterministic-object-hash@2.0.2", "https://registry.npmmirror.com/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz", { "dependencies": { "base-64": "^1.0.0" } }, "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ=="], + "@tanstack/store": ["@tanstack/store@0.11.1", "", {}, "sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA=="], - "devalue": ["devalue@5.1.1", "https://registry.npmmirror.com/devalue/-/devalue-5.1.1.tgz", {}, "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw=="], + "@tanstack/virtual-file-routes": ["@tanstack/virtual-file-routes@1.162.0", "", {}, "sha512-uhOeFyxLcU41HzvrxsGpiWdcMbScY1EDgbZ5K7DVRMYInbLYWAC0EA/kx9wXAoSM8q82bUG2hRl8+EAjE6XAbA=="], - "devlop": ["devlop@1.1.0", "https://registry.npmmirror.com/devlop/-/devlop-1.1.0.tgz", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + "@types/bun": ["@types/bun@1.4.2", "", { "dependencies": { "bun-types": "1.4.2" } }, "sha512-GimotNn7+ZV0uVArItBbriZsR1oNf0+WTzPkdcFrzShI7k2norL0uzEaJT8T33dWr7O/c9ZDuAFQrctKCi72oQ=="], - "dfa": ["dfa@1.2.0", "https://registry.npmmirror.com/dfa/-/dfa-1.2.0.tgz", {}, "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="], + "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], - "diff": ["diff@5.2.0", "https://registry.npmmirror.com/diff/-/diff-5.2.0.tgz", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="], + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], - "dlv": ["dlv@1.1.3", "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], + "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], - "dset": ["dset@3.1.4", "https://registry.npmmirror.com/dset/-/dset-3.1.4.tgz", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], - "duplexer": ["duplexer@0.1.2", "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", {}, "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="], + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], - "electron-to-chromium": ["electron-to-chromium@1.5.149", "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.149.tgz", {}, "sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ=="], + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], - "emoji-regex": ["emoji-regex@10.4.0", "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.4.0.tgz", {}, "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw=="], + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], - "entities": ["entities@6.0.0", "https://registry.npmmirror.com/entities/-/entities-6.0.0.tgz", {}, "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw=="], + "@types/mdx": ["@types/mdx@2.0.14", "", {}, "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg=="], - "es-module-lexer": ["es-module-lexer@1.7.0", "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "esast-util-from-estree": ["esast-util-from-estree@2.0.0", "https://registry.npmmirror.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="], + "@types/node": ["@types/node@26.6.2", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g=="], - "esast-util-from-js": ["esast-util-from-js@2.0.1", "https://registry.npmmirror.com/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="], + "@types/react": ["@types/react@19.3.0", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg=="], - "esbuild": ["esbuild@0.25.3", "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.3.tgz", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.3", "@esbuild/android-arm": "0.25.3", "@esbuild/android-arm64": "0.25.3", "@esbuild/android-x64": "0.25.3", "@esbuild/darwin-arm64": "0.25.3", "@esbuild/darwin-x64": "0.25.3", "@esbuild/freebsd-arm64": "0.25.3", "@esbuild/freebsd-x64": "0.25.3", "@esbuild/linux-arm": "0.25.3", "@esbuild/linux-arm64": "0.25.3", "@esbuild/linux-ia32": "0.25.3", "@esbuild/linux-loong64": "0.25.3", "@esbuild/linux-mips64el": "0.25.3", "@esbuild/linux-ppc64": "0.25.3", "@esbuild/linux-riscv64": "0.25.3", "@esbuild/linux-s390x": "0.25.3", "@esbuild/linux-x64": "0.25.3", "@esbuild/netbsd-arm64": "0.25.3", "@esbuild/netbsd-x64": "0.25.3", "@esbuild/openbsd-arm64": "0.25.3", "@esbuild/openbsd-x64": "0.25.3", "@esbuild/sunos-x64": "0.25.3", "@esbuild/win32-arm64": "0.25.3", "@esbuild/win32-ia32": "0.25.3", "@esbuild/win32-x64": "0.25.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q=="], + "@types/react-dom": ["@types/react-dom@19.3.0", "", { "peerDependencies": { "@types/react": "^19.3.0" } }, "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q=="], - "escalade": ["escalade@3.2.0", "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], - "escape-string-regexp": ["escape-string-regexp@5.0.0", "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + "@typescript/typescript-aix-ppc64": ["@typescript/typescript-aix-ppc64@7.0.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=="], - "estree-util-attach-comments": ["estree-util-attach-comments@3.0.0", "https://registry.npmmirror.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="], + "@typescript/typescript-darwin-arm64": ["@typescript/typescript-darwin-arm64@7.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA=="], - "estree-util-build-jsx": ["estree-util-build-jsx@3.0.1", "https://registry.npmmirror.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" } }, "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ=="], + "@typescript/typescript-darwin-x64": ["@typescript/typescript-darwin-x64@7.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA=="], - "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "https://registry.npmmirror.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], + "@typescript/typescript-freebsd-arm64": ["@typescript/typescript-freebsd-arm64@7.0.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ=="], - "estree-util-scope": ["estree-util-scope@1.0.0", "https://registry.npmmirror.com/estree-util-scope/-/estree-util-scope-1.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ=="], + "@typescript/typescript-freebsd-x64": ["@typescript/typescript-freebsd-x64@7.0.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw=="], - "estree-util-to-js": ["estree-util-to-js@2.0.0", "https://registry.npmmirror.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="], + "@typescript/typescript-linux-arm": ["@typescript/typescript-linux-arm@7.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ=="], - "estree-util-visit": ["estree-util-visit@2.0.0", "https://registry.npmmirror.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="], + "@typescript/typescript-linux-arm64": ["@typescript/typescript-linux-arm64@7.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ=="], - "estree-walker": ["estree-walker@3.0.3", "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + "@typescript/typescript-linux-loong64": ["@typescript/typescript-linux-loong64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ=="], - "eventemitter3": ["eventemitter3@5.0.1", "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="], + "@typescript/typescript-linux-mips64el": ["@typescript/typescript-linux-mips64el@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA=="], - "exsolve": ["exsolve@1.0.5", "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.5.tgz", {}, "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg=="], + "@typescript/typescript-linux-ppc64": ["@typescript/typescript-linux-ppc64@7.0.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA=="], - "extend": ["extend@3.0.2", "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + "@typescript/typescript-linux-riscv64": ["@typescript/typescript-linux-riscv64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ=="], - "fast-deep-equal": ["fast-deep-equal@3.1.3", "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + "@typescript/typescript-linux-s390x": ["@typescript/typescript-linux-s390x@7.0.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw=="], - "fast-xml-parser": ["fast-xml-parser@4.5.3", "https://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", { "dependencies": { "strnum": "^1.1.1" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig=="], + "@typescript/typescript-linux-x64": ["@typescript/typescript-linux-x64@7.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A=="], - "fdir": ["fdir@6.4.4", "https://registry.npmmirror.com/fdir/-/fdir-6.4.4.tgz", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg=="], + "@typescript/typescript-netbsd-arm64": ["@typescript/typescript-netbsd-arm64@7.0.2", "", { "os": "none", "cpu": "arm64" }, "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA=="], - "fill-range": ["fill-range@7.1.1", "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + "@typescript/typescript-netbsd-x64": ["@typescript/typescript-netbsd-x64@7.0.2", "", { "os": "none", "cpu": "x64" }, "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA=="], - "flattie": ["flattie@1.1.1", "https://registry.npmmirror.com/flattie/-/flattie-1.1.1.tgz", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], + "@typescript/typescript-openbsd-arm64": ["@typescript/typescript-openbsd-arm64@7.0.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ=="], - "fontkit": ["fontkit@2.0.4", "https://registry.npmmirror.com/fontkit/-/fontkit-2.0.4.tgz", { "dependencies": { "@swc/helpers": "^0.5.12", "brotli": "^1.3.2", "clone": "^2.1.2", "dfa": "^1.2.0", "fast-deep-equal": "^3.1.3", "restructure": "^3.0.0", "tiny-inflate": "^1.0.3", "unicode-properties": "^1.4.0", "unicode-trie": "^2.0.0" } }, "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g=="], + "@typescript/typescript-openbsd-x64": ["@typescript/typescript-openbsd-x64@7.0.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg=="], - "fsevents": ["fsevents@2.3.3", "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "@typescript/typescript-sunos-x64": ["@typescript/typescript-sunos-x64@7.0.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g=="], - "gensync": ["gensync@1.0.0-beta.2", "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "@typescript/typescript-win32-arm64": ["@typescript/typescript-win32-arm64@7.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ=="], - "get-east-asian-width": ["get-east-asian-width@1.3.0", "https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", {}, "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ=="], + "@typescript/typescript-win32-x64": ["@typescript/typescript-win32-x64@7.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=="], - "github-slugger": ["github-slugger@2.0.0", "https://registry.npmmirror.com/github-slugger/-/github-slugger-2.0.0.tgz", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], + "@ungap/structured-clone": ["@ungap/structured-clone@1.4.0", "", {}, "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ=="], - "glob-parent": ["glob-parent@5.1.2", "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@6.1.1", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "oxc-transform-react": "^0.145.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler", "oxc-transform-react"] }, "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw=="], - "globals": ["globals@15.15.0", "https://registry.npmmirror.com/globals/-/globals-15.15.0.tgz", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + "@vitest/expect": ["@vitest/expect@4.1.0", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.0", "@vitest/utils": "4.1.0", "chai": "^6.2.2", "tinyrainbow": "^3.0.3" } }, "sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA=="], - "gzip-size": ["gzip-size@6.0.0", "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", { "dependencies": { "duplexer": "^0.1.2" } }, "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q=="], + "@vitest/mocker": ["@vitest/mocker@4.1.0", "", { "dependencies": { "@vitest/spy": "4.1.0", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0" }, "optionalPeers": ["msw", "vite"] }, "sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw=="], - "h3": ["h3@1.15.3", "https://registry.npmmirror.com/h3/-/h3-1.15.3.tgz", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.4", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.0", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ=="], + "@vitest/pretty-format": ["@vitest/pretty-format@4.1.0", "", { "dependencies": { "tinyrainbow": "^3.0.3" } }, "sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A=="], - "hast-util-from-html": ["hast-util-from-html@2.0.3", "https://registry.npmmirror.com/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], + "@vitest/runner": ["@vitest/runner@4.1.11", "", { "dependencies": { "@vitest/utils": "4.1.11", "pathe": "^2.0.3" } }, "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw=="], - "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], + "@vitest/snapshot": ["@vitest/snapshot@4.1.11", "", { "dependencies": { "@vitest/pretty-format": "4.1.11", "@vitest/utils": "4.1.11", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog=="], - "hast-util-is-element": ["hast-util-is-element@3.0.0", "https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g=="], + "@vitest/spy": ["@vitest/spy@4.1.0", "", {}, "sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw=="], - "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + "@vitest/utils": ["@vitest/utils@4.1.0", "", { "dependencies": { "@vitest/pretty-format": "4.1.0", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.0.3" } }, "sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw=="], - "hast-util-raw": ["hast-util-raw@9.1.0", "https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw=="], + "acorn": ["acorn@8.18.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ=="], - "hast-util-to-estree": ["hast-util-to-estree@3.1.3", "https://registry.npmmirror.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w=="], + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], - "hast-util-to-html": ["hast-util-to-html@9.0.5", "https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + "ansis": ["ansis@4.4.0", "", {}, "sha512-9k3v7xcHwgdO/DruxGIg4HtjvlAZlcnsX/mzqUb1t3NkYnl9kK2UJ+Gq0io+vQf7iT//BD/HB/NBkUR1LWxoeA=="], - "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "https://registry.npmmirror.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="], + "argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "hast-util-to-parse5": ["hast-util-to-parse5@8.0.0", "https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw=="], + "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], - "hast-util-to-text": ["hast-util-to-text@4.0.2", "https://registry.npmmirror.com/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "hast-util-is-element": "^3.0.0", "unist-util-find-after": "^5.0.0" } }, "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A=="], + "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], - "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + "babel-dead-code-elimination": ["babel-dead-code-elimination@1.0.12", "", { "dependencies": { "@babel/core": "^7.23.7", "@babel/parser": "^7.23.6", "@babel/traverse": "^7.23.7", "@babel/types": "^7.23.6" } }, "sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig=="], - "hastscript": ["hastscript@9.0.1", "https://registry.npmmirror.com/hastscript/-/hastscript-9.0.1.tgz", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], - "html-escaper": ["html-escaper@3.0.3", "https://registry.npmmirror.com/html-escaper/-/html-escaper-3.0.3.tgz", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.11.25", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw=="], - "html-void-elements": ["html-void-elements@3.0.0", "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-3.0.0.tgz", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + "better-auth": ["better-auth@1.7.5", "", { "dependencies": { "@better-auth/core": "1.7.5", "@better-auth/drizzle-adapter": "1.7.5", "@better-auth/kysely-adapter": "1.7.5", "@better-auth/memory-adapter": "1.7.5", "@better-auth/mongo-adapter": "1.7.5", "@better-auth/prisma-adapter": "1.7.5", "@better-auth/telemetry": "1.7.5", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.2", "@noble/ciphers": "^2.2.0", "@noble/hashes": "^2.2.0", "better-call": "1.4.0", "defu": "^6.1.4", "jose": "^6.2.3", "kysely": "^0.28.17 || ^0.29.0", "nanostores": "^1.3.0", "zod": "^4.5.4" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "drizzle-kit": ">=0.31.4 || >=1.0.0-beta.1", "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-aKE0Zt2EPTpFvmq4/oATNyG/mAfc6JUqWkW9pzGlrVnzUb0lso7GJ9BPxD6JPhLqYV1a9zOAb0uAz1Q5fm+eHA=="], - "http-cache-semantics": ["http-cache-semantics@4.1.1", "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", {}, "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="], + "better-call": ["better-call@1.4.0", "", { "dependencies": { "@better-auth/utils": "^0.5.0", "@better-fetch/fetch": "^1.3.1", "rou3": "^0.9.1", "set-cookie-parser": "^3.1.2" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-bBKOT4vv1kZLDgxVePdilk/Jwkn+dtRRsmi3DzHcDP+WnswyVl6dR59l2HEeP/0cB+bDoopASAesWDPIdd/zZA=="], - "import-meta-resolve": ["import-meta-resolve@4.1.0", "https://registry.npmmirror.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="], + "blake3-wasm": ["blake3-wasm@2.1.5", "", {}, "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="], - "inline-style-parser": ["inline-style-parser@0.2.4", "https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz", {}, "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q=="], + "browserslist": ["browserslist@4.29.0", "", { "dependencies": { "baseline-browser-mapping": "^2.11.23", "caniuse-lite": "^1.0.30001810", "electron-to-chromium": "^1.5.427", "node-releases": "^2.0.55", "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA=="], - "iron-webcrypto": ["iron-webcrypto@1.2.1", "https://registry.npmmirror.com/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "is-alphabetical": ["is-alphabetical@2.0.1", "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], + "bun-types": ["bun-types@1.4.2", "", { "dependencies": { "@types/node": "*" } }, "sha512-bxV1FgK7yBIzjRe5zBozIM4Bem11ZJcCXSrjWRG3YWLt8yFDePu4cLjpebO8OvPeIE9trbyPF4fuj3Cia4Fj3w=="], - "is-alphanumerical": ["is-alphanumerical@2.0.1", "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], + "caniuse-lite": ["caniuse-lite@1.0.30001810", "", {}, "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg=="], - "is-arrayish": ["is-arrayish@0.3.2", "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", {}, "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="], + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], - "is-binary-path": ["is-binary-path@2.1.0", "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], - "is-decimal": ["is-decimal@2.0.1", "https://registry.npmmirror.com/is-decimal/-/is-decimal-2.0.1.tgz", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], - "is-docker": ["is-docker@3.0.0", "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], - "is-extglob": ["is-extglob@2.1.1", "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], - "is-glob": ["is-glob@4.0.3", "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], - "is-hexadecimal": ["is-hexadecimal@2.0.1", "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="], + "cjs-module-lexer": ["cjs-module-lexer@1.2.3", "", {}, "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="], - "is-inside-container": ["is-inside-container@1.0.0", "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], + "collapse-white-space": ["collapse-white-space@2.1.0", "", {}, "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw=="], - "is-number": ["is-number@7.0.0", "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], - "is-plain-obj": ["is-plain-obj@4.1.0", "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], - "is-wsl": ["is-wsl@3.1.0", "https://registry.npmmirror.com/is-wsl/-/is-wsl-3.1.0.tgz", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="], + "cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], - "jiti": ["jiti@2.4.2", "https://registry.npmmirror.com/jiti/-/jiti-2.4.2.tgz", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="], + "cookie-es": ["cookie-es@3.1.1", "", {}, "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg=="], - "js-tokens": ["js-tokens@4.0.0", "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "js-yaml": ["js-yaml@4.1.0", "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - "jsesc": ["jsesc@3.1.0", "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], - "json5": ["json5@2.2.3", "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="], - "kleur": ["kleur@4.1.5", "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], - "kolorist": ["kolorist@1.8.0", "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], - "lightningcss": ["lightningcss@1.29.2", "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.29.2.tgz", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.29.2", "lightningcss-darwin-x64": "1.29.2", "lightningcss-freebsd-x64": "1.29.2", "lightningcss-linux-arm-gnueabihf": "1.29.2", "lightningcss-linux-arm64-gnu": "1.29.2", "lightningcss-linux-arm64-musl": "1.29.2", "lightningcss-linux-x64-gnu": "1.29.2", "lightningcss-linux-x64-musl": "1.29.2", "lightningcss-win32-arm64-msvc": "1.29.2", "lightningcss-win32-x64-msvc": "1.29.2" } }, "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA=="], + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], - "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.29.2", "https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA=="], + "diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="], - "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.29.2", "https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w=="], + "drizzle-kit": ["drizzle-kit@0.31.10", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "tsx": "^4.21.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw=="], - "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.29.2", "https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg=="], + "drizzle-orm": ["drizzle-orm@0.45.2", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "prisma": "*", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "prisma", "sql.js", "sqlite3"] }, "sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q=="], - "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.29.2", "https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", { "os": "linux", "cpu": "arm" }, "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg=="], + "electron-to-chromium": ["electron-to-chromium@1.5.433", "", {}, "sha512-5lCAbyZBjtmUt/RAGHRqrL2q0oEFRThDAsZHHDn9XHa89Qw7gMYOeSicBTy+AHfvo0r6vwsZvqNJTQIQy1BLzA=="], - "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.29.2", "https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ=="], + "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], - "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.29.2", "https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ=="], + "error-stack-parser-es": ["error-stack-parser-es@1.0.5", "", {}, "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA=="], - "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.29.2", "https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", { "os": "linux", "cpu": "x64" }, "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg=="], + "es-module-lexer": ["es-module-lexer@2.3.2", "", {}, "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw=="], - "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.29.2", "https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", { "os": "linux", "cpu": "x64" }, "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w=="], + "esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="], - "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.29.2", "https://registry.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw=="], + "esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="], - "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.29.2", "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", { "os": "win32", "cpu": "x64" }, "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA=="], + "esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], - "local-pkg": ["local-pkg@1.1.1", "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.1.tgz", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.0.1", "quansync": "^0.2.8" } }, "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg=="], + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - "longest-streak": ["longest-streak@3.1.0", "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + "escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], - "lru-cache": ["lru-cache@10.4.3", "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - "magic-string": ["magic-string@0.30.17", "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], + "estree-util-attach-comments": ["estree-util-attach-comments@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="], - "magicast": ["magicast@0.3.5", "https://registry.npmmirror.com/magicast/-/magicast-0.3.5.tgz", { "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", "source-map-js": "^1.2.0" } }, "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ=="], + "estree-util-build-jsx": ["estree-util-build-jsx@3.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" } }, "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ=="], - "markdown-extensions": ["markdown-extensions@2.0.0", "https://registry.npmmirror.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="], + "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], - "markdown-table": ["markdown-table@3.0.4", "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.4.tgz", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], + "estree-util-scope": ["estree-util-scope@1.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA=="], - "mdast-util-definitions": ["mdast-util-definitions@6.0.0", "https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="], + "estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="], - "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], + "estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="], - "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="], + "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], - "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], + "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], - "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="], + "exsolve": ["exsolve@1.1.1", "", {}, "sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g=="], - "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], - "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], + "extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="], - "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], + "fault": ["fault@2.0.1", "", { "dependencies": { "format": "^0.2.0" } }, "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ=="], - "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], - "mdast-util-mdx": ["mdast-util-mdx@3.0.0", "https://registry.npmmirror.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w=="], + "fetchdts": ["fetchdts@0.1.7", "", {}, "sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA=="], - "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "https://registry.npmmirror.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="], + "format": ["format@0.2.2", "", {}, "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="], - "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "https://registry.npmmirror.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="], + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "https://registry.npmmirror.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="], + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + "get-tsconfig": ["get-tsconfig@4.14.3", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA=="], - "mdast-util-to-hast": ["mdast-util-to-hast@13.2.0", "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA=="], + "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], - "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + "gray-matter": ["gray-matter@4.0.3", "", { "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", "section-matter": "^1.0.0", "strip-bom-string": "^1.0.0" } }, "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q=="], - "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + "h3-v2": ["h3@2.0.1-rc.20", "", { "dependencies": { "rou3": "^0.8.1", "srvx": "^0.11.13" }, "peerDependencies": { "crossws": "^0.4.1" }, "optionalPeers": ["crossws"], "bin": { "h3": "bin/h3.mjs" } }, "sha512-28ljodXuUp0fZovdiSRq4G9OgrxCztrJe5VdYzXAB7ueRvI7pIUqLU14Xi3XqdYJ/khXjfpUOOD2EQa6CmBgsg=="], - "mdn-data": ["mdn-data@2.12.2", "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.12.2.tgz", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], + "hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], - "micromark": ["micromark@4.0.2", "https://registry.npmmirror.com/micromark/-/micromark-4.0.2.tgz", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], - "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + "hast-util-heading-rank": ["hast-util-heading-rank@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA=="], - "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], - "micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="], + "hast-util-to-estree": ["hast-util-to-estree@3.1.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w=="], - "micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="], + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], - "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="], + "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="], - "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="], + "hast-util-to-string": ["hast-util-to-string@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A=="], - "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="], + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], - "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="], + "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], - "micromark-extension-mdx-expression": ["micromark-extension-mdx-expression@3.0.1", "https://registry.npmmirror.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q=="], + "html-url-attributes": ["html-url-attributes@3.0.1", "", {}, "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ=="], - "micromark-extension-mdx-jsx": ["micromark-extension-mdx-jsx@3.0.2", "https://registry.npmmirror.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ=="], + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], - "micromark-extension-mdx-md": ["micromark-extension-mdx-md@2.0.0", "https://registry.npmmirror.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ=="], + "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], - "micromark-extension-mdxjs": ["micromark-extension-mdxjs@3.0.0", "https://registry.npmmirror.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", { "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ=="], + "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], - "micromark-extension-mdxjs-esm": ["micromark-extension-mdxjs-esm@3.0.0", "https://registry.npmmirror.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A=="], + "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], - "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], - "micromark-factory-label": ["micromark-factory-label@2.0.1", "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + "is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="], - "micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "https://registry.npmmirror.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="], + "is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="], - "micromark-factory-space": ["micromark-factory-space@2.0.1", "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], - "micromark-factory-title": ["micromark-factory-title@2.0.1", "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + "isbot": ["isbot@5.2.2", "", {}, "sha512-iQcBXcd+Rv/pkubRyGh2utW2j1oPG5hZY6TUhVPpqK4G+o3IbxpJNx04hgksjc/N7GK5pEorUxDeg31cFgEk/w=="], - "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], - "micromark-util-character": ["micromark-util-character@2.1.1", "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + "jose": ["jose@6.2.12", "", {}, "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw=="], - "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + "js-yaml": ["js-yaml@3.15.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w=="], - "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], - "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], - "micromark-util-encode": ["micromark-util-encode@2.0.1", "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], - "micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "https://registry.npmmirror.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", { "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="], + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], - "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + "kysely": ["kysely@0.29.6", "", {}, "sha512-hHaB8C/rfzDDtr/t8YZwxAuPJTT0zHyaPoVzcXwDYhYNAgH/4sIfVhi/XLLIY+bL/FqaIJnjATDbi8ObSELmxg=="], - "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + "lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="], - "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="], - "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="], - "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="], - "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="], - "micromark-util-types": ["micromark-util-types@2.0.2", "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="], - "mlly": ["mlly@1.7.4", "https://registry.npmmirror.com/mlly/-/mlly-1.7.4.tgz", { "dependencies": { "acorn": "^8.14.0", "pathe": "^2.0.1", "pkg-types": "^1.3.0", "ufo": "^1.5.4" } }, "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw=="], + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="], - "mrmime": ["mrmime@2.0.1", "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.1.tgz", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="], - "ms": ["ms@2.1.3", "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="], - "nanoid": ["nanoid@3.3.11", "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="], - "neotraverse": ["neotraverse@0.6.18", "https://registry.npmmirror.com/neotraverse/-/neotraverse-0.6.18.tgz", {}, "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA=="], + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="], - "nlcst-to-string": ["nlcst-to-string@4.0.0", "https://registry.npmmirror.com/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="], + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="], - "node-fetch": ["node-fetch@2.7.0", "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], - "node-fetch-native": ["node-fetch-native@1.6.6", "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.6.tgz", {}, "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ=="], + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - "node-mock-http": ["node-mock-http@1.0.0", "https://registry.npmmirror.com/node-mock-http/-/node-mock-http-1.0.0.tgz", {}, "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ=="], + "lucide-react": ["lucide-react@1.47.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-o8C23aXpNQypRY73W7fW02EyvWJinEMXgKeGjFoKym0zj3Q73hD97A1IQps1g8C14HTGsOpZL0Am+xjfgFZAbg=="], - "node-releases": ["node-releases@2.0.19", "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "normalize-path": ["normalize-path@3.0.0", "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "markdown-extensions": ["markdown-extensions@2.0.0", "", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="], - "ofetch": ["ofetch@1.4.1", "https://registry.npmmirror.com/ofetch/-/ofetch-1.4.1.tgz", { "dependencies": { "destr": "^2.0.3", "node-fetch-native": "^1.6.4", "ufo": "^1.5.4" } }, "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw=="], + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], - "ohash": ["ohash@2.0.11", "https://registry.npmmirror.com/ohash/-/ohash-2.0.11.tgz", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], - "oniguruma-parser": ["oniguruma-parser@0.12.1", "https://registry.npmmirror.com/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="], + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="], - "oniguruma-to-es": ["oniguruma-to-es@4.3.3", "https://registry.npmmirror.com/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="], + "mdast-util-frontmatter": ["mdast-util-frontmatter@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "escape-string-regexp": "^5.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-extension-frontmatter": "^2.0.0" } }, "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA=="], - "p-limit": ["p-limit@6.2.0", "https://registry.npmmirror.com/p-limit/-/p-limit-6.2.0.tgz", { "dependencies": { "yocto-queue": "^1.1.1" } }, "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA=="], + "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], - "p-queue": ["p-queue@8.1.0", "https://registry.npmmirror.com/p-queue/-/p-queue-8.1.0.tgz", { "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^6.1.2" } }, "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw=="], + "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="], - "p-timeout": ["p-timeout@6.1.4", "https://registry.npmmirror.com/p-timeout/-/p-timeout-6.1.4.tgz", {}, "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg=="], + "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], - "package-manager-detector": ["package-manager-detector@1.3.0", "https://registry.npmmirror.com/package-manager-detector/-/package-manager-detector-1.3.0.tgz", {}, "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ=="], + "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], - "pako": ["pako@0.2.9", "https://registry.npmmirror.com/pako/-/pako-0.2.9.tgz", {}, "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="], + "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], - "parse-entities": ["parse-entities@4.0.2", "https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.2.tgz", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], - "parse-latin": ["parse-latin@7.0.0", "https://registry.npmmirror.com/parse-latin/-/parse-latin-7.0.0.tgz", { "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", "nlcst-to-string": "^4.0.0", "unist-util-modify-children": "^4.0.0", "unist-util-visit-children": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ=="], + "mdast-util-mdx": ["mdast-util-mdx@3.0.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w=="], - "parse5": ["parse5@7.3.0", "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="], - "pathe": ["pathe@2.0.3", "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="], - "perfect-debounce": ["perfect-debounce@1.0.0", "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", {}, "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="], + "mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="], - "picocolors": ["picocolors@1.1.1", "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], - "picomatch": ["picomatch@4.0.2", "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="], + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], - "pkg-types": ["pkg-types@2.1.0", "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.1.0.tgz", { "dependencies": { "confbox": "^0.2.1", "exsolve": "^1.0.1", "pathe": "^2.0.3" } }, "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A=="], + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], - "postcss": ["postcss@8.5.3", "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], - "prismjs": ["prismjs@1.30.0", "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], - "prompts": ["prompts@2.4.2", "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], - "property-information": ["property-information@7.0.0", "https://registry.npmmirror.com/property-information/-/property-information-7.0.0.tgz", {}, "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg=="], + "micromark-extension-frontmatter": ["micromark-extension-frontmatter@2.0.0", "", { "dependencies": { "fault": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg=="], - "quansync": ["quansync@0.2.10", "https://registry.npmmirror.com/quansync/-/quansync-0.2.10.tgz", {}, "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A=="], + "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], - "radix3": ["radix3@1.1.2", "https://registry.npmmirror.com/radix3/-/radix3-1.1.2.tgz", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], + "micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="], - "react": ["react@19.1.0", "https://registry.npmmirror.com/react/-/react-19.1.0.tgz", {}, "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg=="], + "micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="], - "react-dom": ["react-dom@19.1.0", "https://registry.npmmirror.com/react-dom/-/react-dom-19.1.0.tgz", { "dependencies": { "scheduler": "^0.26.0" }, "peerDependencies": { "react": "^19.1.0" } }, "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g=="], + "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="], - "react-refresh": ["react-refresh@0.17.0", "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.17.0.tgz", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], + "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.2", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA=="], - "readdirp": ["readdirp@3.6.0", "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="], - "recma-build-jsx": ["recma-build-jsx@1.0.0", "https://registry.npmmirror.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="], + "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="], - "recma-jsx": ["recma-jsx@1.0.0", "https://registry.npmmirror.com/recma-jsx/-/recma-jsx-1.0.0.tgz", { "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" } }, "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q=="], + "micromark-extension-mdx-expression": ["micromark-extension-mdx-expression@3.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q=="], - "recma-parse": ["recma-parse@1.0.0", "https://registry.npmmirror.com/recma-parse/-/recma-parse-1.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ=="], + "micromark-extension-mdx-jsx": ["micromark-extension-mdx-jsx@3.0.2", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ=="], - "recma-stringify": ["recma-stringify@1.0.0", "https://registry.npmmirror.com/recma-stringify/-/recma-stringify-1.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g=="], + "micromark-extension-mdx-md": ["micromark-extension-mdx-md@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ=="], - "regex": ["regex@6.0.1", "https://registry.npmmirror.com/regex/-/regex-6.0.1.tgz", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA=="], + "micromark-extension-mdxjs": ["micromark-extension-mdxjs@3.0.0", "", { "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ=="], - "regex-recursion": ["regex-recursion@6.0.2", "https://registry.npmmirror.com/regex-recursion/-/regex-recursion-6.0.2.tgz", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + "micromark-extension-mdxjs-esm": ["micromark-extension-mdxjs-esm@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A=="], - "regex-utilities": ["regex-utilities@2.3.0", "https://registry.npmmirror.com/regex-utilities/-/regex-utilities-2.3.0.tgz", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], - "rehype": ["rehype@13.0.2", "https://registry.npmmirror.com/rehype/-/rehype-13.0.2.tgz", { "dependencies": { "@types/hast": "^3.0.0", "rehype-parse": "^9.0.0", "rehype-stringify": "^10.0.0", "unified": "^11.0.0" } }, "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A=="], + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], - "rehype-parse": ["rehype-parse@9.0.1", "https://registry.npmmirror.com/rehype-parse/-/rehype-parse-9.0.1.tgz", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", "unified": "^11.0.0" } }, "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag=="], + "micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="], - "rehype-raw": ["rehype-raw@7.0.0", "https://registry.npmmirror.com/rehype-raw/-/rehype-raw-7.0.0.tgz", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="], + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], - "rehype-recma": ["rehype-recma@1.0.0", "https://registry.npmmirror.com/rehype-recma/-/rehype-recma-1.0.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "hast-util-to-estree": "^3.0.0" } }, "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw=="], + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], - "rehype-stringify": ["rehype-stringify@10.0.1", "https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-10.0.1.tgz", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", "unified": "^11.0.0" } }, "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA=="], + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], - "remark-gfm": ["remark-gfm@4.0.1", "https://registry.npmmirror.com/remark-gfm/-/remark-gfm-4.0.1.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], - "remark-mdx": ["remark-mdx@3.1.0", "https://registry.npmmirror.com/remark-mdx/-/remark-mdx-3.1.0.tgz", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA=="], + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], - "remark-parse": ["remark-parse@11.0.0", "https://registry.npmmirror.com/remark-parse/-/remark-parse-11.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], - "remark-rehype": ["remark-rehype@11.1.2", "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-11.1.2.tgz", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], - "remark-smartypants": ["remark-smartypants@3.0.2", "https://registry.npmmirror.com/remark-smartypants/-/remark-smartypants-3.0.2.tgz", { "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", "unified": "^11.0.4", "unist-util-visit": "^5.0.0" } }, "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA=="], + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], - "remark-stringify": ["remark-stringify@11.0.0", "https://registry.npmmirror.com/remark-stringify/-/remark-stringify-11.0.0.tgz", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], - "restructure": ["restructure@3.0.2", "https://registry.npmmirror.com/restructure/-/restructure-3.0.2.tgz", {}, "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw=="], + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], - "retext": ["retext@9.0.0", "https://registry.npmmirror.com/retext/-/retext-9.0.0.tgz", { "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", "retext-stringify": "^4.0.0", "unified": "^11.0.0" } }, "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA=="], + "micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="], - "retext-latin": ["retext-latin@4.0.0", "https://registry.npmmirror.com/retext-latin/-/retext-latin-4.0.0.tgz", { "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", "unified": "^11.0.0" } }, "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA=="], + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], - "retext-smartypants": ["retext-smartypants@6.2.0", "https://registry.npmmirror.com/retext-smartypants/-/retext-smartypants-6.2.0.tgz", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ=="], + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], - "retext-stringify": ["retext-stringify@4.0.0", "https://registry.npmmirror.com/retext-stringify/-/retext-stringify-4.0.0.tgz", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" } }, "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA=="], + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], - "rollup": ["rollup@4.40.1", "https://registry.npmmirror.com/rollup/-/rollup-4.40.1.tgz", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.40.1", "@rollup/rollup-android-arm64": "4.40.1", "@rollup/rollup-darwin-arm64": "4.40.1", "@rollup/rollup-darwin-x64": "4.40.1", "@rollup/rollup-freebsd-arm64": "4.40.1", "@rollup/rollup-freebsd-x64": "4.40.1", "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", "@rollup/rollup-linux-arm-musleabihf": "4.40.1", "@rollup/rollup-linux-arm64-gnu": "4.40.1", "@rollup/rollup-linux-arm64-musl": "4.40.1", "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", "@rollup/rollup-linux-riscv64-gnu": "4.40.1", "@rollup/rollup-linux-riscv64-musl": "4.40.1", "@rollup/rollup-linux-s390x-gnu": "4.40.1", "@rollup/rollup-linux-x64-gnu": "4.40.1", "@rollup/rollup-linux-x64-musl": "4.40.1", "@rollup/rollup-win32-arm64-msvc": "4.40.1", "@rollup/rollup-win32-ia32-msvc": "4.40.1", "@rollup/rollup-win32-x64-msvc": "4.40.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw=="], + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], - "sax": ["sax@1.4.1", "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], - "scheduler": ["scheduler@0.26.0", "https://registry.npmmirror.com/scheduler/-/scheduler-0.26.0.tgz", {}, "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA=="], + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], - "semver": ["semver@7.7.1", "https://registry.npmmirror.com/semver/-/semver-7.7.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], - "sharp": ["sharp@0.33.5", "https://registry.npmmirror.com/sharp/-/sharp-0.33.5.tgz", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="], + "miniflare": ["miniflare@5.20260918.0-alpha", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "sharp": "0.35.4", "undici": "7.29.0", "workerd": "1.20260918.1", "ws": "8.21.0", "youch": "4.1.0-beta.10" } }, "sha512-vyIes7yW/OTzHtz4GhcBCTohZfqk2eQNiIkngZ07VRA5Qu24aNgW/TrFwlPkMLMjWDQ8R4JJBBHR/KX+liSDtg=="], - "shiki": ["shiki@3.3.0", "https://registry.npmmirror.com/shiki/-/shiki-3.3.0.tgz", { "dependencies": { "@shikijs/core": "3.3.0", "@shikijs/engine-javascript": "3.3.0", "@shikijs/engine-oniguruma": "3.3.0", "@shikijs/langs": "3.3.0", "@shikijs/themes": "3.3.0", "@shikijs/types": "3.3.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-j0Z1tG5vlOFGW8JVj0Cpuatzvshes7VJy5ncDmmMaYcmnGW0Js1N81TOW98ivTFNZfKRn9uwEg/aIm638o368g=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "simple-swizzle": ["simple-swizzle@0.2.2", "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="], + "nanoid": ["nanoid@3.3.19", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug=="], - "sirv": ["sirv@3.0.1", "https://registry.npmmirror.com/sirv/-/sirv-3.0.1.tgz", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="], + "nanostores": ["nanostores@1.5.3", "", {}, "sha512-rQLB6eV4f2AW/n3L0JmwCROpaisYy9EDEADvEFSd1C/qG8hB6O5TPlh9A791JRbJr4CnMQBzptDcvD9OR1+6WA=="], - "sisteransi": ["sisteransi@1.0.5", "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + "node-releases": ["node-releases@2.0.56", "", {}, "sha512-x0InOIyzgdk+eyaWaRJFH5snEtiImgBgblZ2CyPrLmqqcuMQkEvcDPHbzqbD8eDsSeJbVOjn+crzyzHaM4D+/A=="], - "sitemap": ["sitemap@8.0.0", "https://registry.npmmirror.com/sitemap/-/sitemap-8.0.0.tgz", { "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", "arg": "^5.0.0", "sax": "^1.2.4" }, "bin": { "sitemap": "dist/cli.js" } }, "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A=="], + "obug": ["obug@2.2.1", "", {}, "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q=="], - "smol-toml": ["smol-toml@1.3.4", "https://registry.npmmirror.com/smol-toml/-/smol-toml-1.3.4.tgz", {}, "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA=="], + "oniguruma-parser": ["oniguruma-parser@0.12.2", "", {}, "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw=="], - "source-map": ["source-map@0.7.4", "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="], + "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], - "source-map-js": ["source-map-js@1.2.1", "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "oxfmt": ["oxfmt@0.68.0", "", { "dependencies": { "tinypool": "2.1.2" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.68.0", "@oxfmt/binding-android-arm64": "0.68.0", "@oxfmt/binding-darwin-arm64": "0.68.0", "@oxfmt/binding-darwin-x64": "0.68.0", "@oxfmt/binding-freebsd-x64": "0.68.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.68.0", "@oxfmt/binding-linux-arm-musleabihf": "0.68.0", "@oxfmt/binding-linux-arm64-gnu": "0.68.0", "@oxfmt/binding-linux-arm64-musl": "0.68.0", "@oxfmt/binding-linux-ppc64-gnu": "0.68.0", "@oxfmt/binding-linux-riscv64-gnu": "0.68.0", "@oxfmt/binding-linux-riscv64-musl": "0.68.0", "@oxfmt/binding-linux-s390x-gnu": "0.68.0", "@oxfmt/binding-linux-x64-gnu": "0.68.0", "@oxfmt/binding-linux-x64-musl": "0.68.0", "@oxfmt/binding-openharmony-arm64": "0.68.0", "@oxfmt/binding-win32-arm64-msvc": "0.68.0", "@oxfmt/binding-win32-ia32-msvc": "0.68.0", "@oxfmt/binding-win32-x64-msvc": "0.68.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-Z0XMofcXCGUXbcpBHnWyUiX93BGiw1B+lcHNbQDWEtOhX06ewoFfu4zXkyiLhRrNnMq0twqXRHUcJetf+GsiQQ=="], - "space-separated-tokens": ["space-separated-tokens@2.0.2", "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "oxlint": ["oxlint@1.83.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.83.0", "@oxlint/binding-android-arm64": "1.83.0", "@oxlint/binding-darwin-arm64": "1.83.0", "@oxlint/binding-darwin-x64": "1.83.0", "@oxlint/binding-freebsd-x64": "1.83.0", "@oxlint/binding-linux-arm-gnueabihf": "1.83.0", "@oxlint/binding-linux-arm-musleabihf": "1.83.0", "@oxlint/binding-linux-arm64-gnu": "1.83.0", "@oxlint/binding-linux-arm64-musl": "1.83.0", "@oxlint/binding-linux-ppc64-gnu": "1.83.0", "@oxlint/binding-linux-riscv64-gnu": "1.83.0", "@oxlint/binding-linux-riscv64-musl": "1.83.0", "@oxlint/binding-linux-s390x-gnu": "1.83.0", "@oxlint/binding-linux-x64-gnu": "1.83.0", "@oxlint/binding-linux-x64-musl": "1.83.0", "@oxlint/binding-openharmony-arm64": "1.83.0", "@oxlint/binding-win32-arm64-msvc": "1.83.0", "@oxlint/binding-win32-ia32-msvc": "1.83.0", "@oxlint/binding-win32-x64-msvc": "1.83.0" }, "peerDependencies": { "oxlint-tsgolint": ">=7.0.2001", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-cyDzSzaw3uzP0TeCeq3lLRPPoaUxkbB4ZOXj+kn+5r+BX9V+4bNVGk9lxer+WrgcpebH4JxLlJ3KQjveVztOLQ=="], - "stream-replace-string": ["stream-replace-string@2.0.0", "https://registry.npmmirror.com/stream-replace-string/-/stream-replace-string-2.0.0.tgz", {}, "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w=="], + "pagefind": ["pagefind@1.5.2", "", { "optionalDependencies": { "@pagefind/darwin-arm64": "1.5.2", "@pagefind/darwin-x64": "1.5.2", "@pagefind/freebsd-x64": "1.5.2", "@pagefind/linux-arm64": "1.5.2", "@pagefind/linux-x64": "1.5.2", "@pagefind/windows-arm64": "1.5.2", "@pagefind/windows-x64": "1.5.2" }, "bin": { "pagefind": "lib/runner/bin.cjs" } }, "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q=="], - "string-width": ["string-width@7.2.0", "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], - "stringify-entities": ["stringify-entities@4.0.4", "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.4.tgz", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + "parse-numeric-range": ["parse-numeric-range@1.3.0", "", {}, "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ=="], - "strip-ansi": ["strip-ansi@7.1.0", "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="], + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], - "strnum": ["strnum@1.1.2", "https://registry.npmmirror.com/strnum/-/strnum-1.1.2.tgz", {}, "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA=="], + "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], - "style-to-js": ["style-to-js@1.1.16", "https://registry.npmmirror.com/style-to-js/-/style-to-js-1.1.16.tgz", { "dependencies": { "style-to-object": "1.0.8" } }, "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw=="], + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "style-to-object": ["style-to-object@1.0.8", "https://registry.npmmirror.com/style-to-object/-/style-to-object-1.0.8.tgz", { "dependencies": { "inline-style-parser": "0.2.4" } }, "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "tiny-inflate": ["tiny-inflate@1.0.3", "https://registry.npmmirror.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], + "picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="], - "tinyexec": ["tinyexec@0.3.2", "https://registry.npmmirror.com/tinyexec/-/tinyexec-0.3.2.tgz", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + "postcss": ["postcss@8.5.28", "", { "dependencies": { "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A=="], - "tinyglobby": ["tinyglobby@0.2.13", "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.13.tgz", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw=="], + "prettier": ["prettier@3.9.8", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A=="], - "to-regex-range": ["to-regex-range@5.0.1", "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], - "totalist": ["totalist@3.0.1", "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], + "react": ["react@19.3.0", "", {}, "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog=="], - "tr46": ["tr46@0.0.3", "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "react-dom": ["react-dom@19.3.0", "", { "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { "react": "^19.3.0" } }, "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q=="], - "trim-lines": ["trim-lines@3.0.1", "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + "react-markdown": ["react-markdown@10.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "html-url-attributes": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "unified": "^11.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" }, "peerDependencies": { "@types/react": ">=18", "react": ">=18" } }, "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ=="], - "trough": ["trough@2.2.0", "https://registry.npmmirror.com/trough/-/trough-2.2.0.tgz", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + "readdirp": ["readdirp@5.1.1", "", {}, "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA=="], - "tsconfck": ["tsconfck@3.1.5", "https://registry.npmmirror.com/tsconfck/-/tsconfck-3.1.5.tgz", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg=="], + "recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="], - "tslib": ["tslib@2.8.1", "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "recma-jsx": ["recma-jsx@1.0.1", "", { "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" }, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w=="], - "type-fest": ["type-fest@4.40.1", "https://registry.npmmirror.com/type-fest/-/type-fest-4.40.1.tgz", {}, "sha512-9YvLNnORDpI+vghLU/Nf+zSv0kL47KbVJ1o3sKgoTefl6i+zebxbiDQWoe/oWWqPhIgQdRZRT1KA9sCPL810SA=="], + "recma-parse": ["recma-parse@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ=="], - "typescript": ["typescript@5.8.3", "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + "recma-stringify": ["recma-stringify@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g=="], - "ufo": ["ufo@1.6.1", "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], - "ultrahtml": ["ultrahtml@1.6.0", "https://registry.npmmirror.com/ultrahtml/-/ultrahtml-1.6.0.tgz", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="], + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], - "unconfig": ["unconfig@7.3.2", "https://registry.npmmirror.com/unconfig/-/unconfig-7.3.2.tgz", { "dependencies": { "@quansync/fs": "^0.1.1", "defu": "^6.1.4", "jiti": "^2.4.2", "quansync": "^0.2.8" } }, "sha512-nqG5NNL2wFVGZ0NA/aCFw0oJ2pxSf1lwg4Z5ill8wd7K4KX/rQbHlwbh+bjctXL5Ly1xtzHenHGOK0b+lG6JVg=="], + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], - "uncrypto": ["uncrypto@0.1.3", "https://registry.npmmirror.com/uncrypto/-/uncrypto-0.1.3.tgz", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + "rehype-parse": ["rehype-parse@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", "unified": "^11.0.0" } }, "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag=="], - "unicode-properties": ["unicode-properties@1.4.1", "https://registry.npmmirror.com/unicode-properties/-/unicode-properties-1.4.1.tgz", { "dependencies": { "base64-js": "^1.3.0", "unicode-trie": "^2.0.0" } }, "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg=="], + "rehype-pretty-code": ["rehype-pretty-code@0.14.5", "", { "dependencies": { "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.0", "parse-numeric-range": "^1.3.0", "rehype-parse": "^9.0.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "sha512-+DhMMNMgOwmE0xu2RmagN63nR0GRObPIQ9TuoNdUYYIDcCr8nWXU1CJUG6yca7vg99Gp5d+62A/+ZvksmsQXjA=="], - "unicode-trie": ["unicode-trie@2.0.0", "https://registry.npmmirror.com/unicode-trie/-/unicode-trie-2.0.0.tgz", { "dependencies": { "pako": "^0.2.5", "tiny-inflate": "^1.0.0" } }, "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ=="], + "rehype-recma": ["rehype-recma@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "hast-util-to-estree": "^3.0.0" } }, "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw=="], - "unified": ["unified@11.0.5", "https://registry.npmmirror.com/unified/-/unified-11.0.5.tgz", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + "rehype-slug": ["rehype-slug@6.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "github-slugger": "^2.0.0", "hast-util-heading-rank": "^3.0.0", "hast-util-to-string": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A=="], - "unifont": ["unifont@0.4.1", "https://registry.npmmirror.com/unifont/-/unifont-0.4.1.tgz", { "dependencies": { "css-tree": "^3.0.0", "ohash": "^2.0.0" } }, "sha512-zKSY9qO8svWYns+FGKjyVdLvpGPwqmsCjeJLN1xndMiqxHWBAhoWDMYMG960MxeV48clBmG+fDP59dHY1VoZvg=="], + "remark-frontmatter": ["remark-frontmatter@5.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-frontmatter": "^2.0.0", "micromark-extension-frontmatter": "^2.0.0", "unified": "^11.0.0" } }, "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ=="], - "unist-util-find-after": ["unist-util-find-after@5.0.0", "https://registry.npmmirror.com/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="], + "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], - "unist-util-is": ["unist-util-is@6.0.0", "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-6.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw=="], + "remark-mdx": ["remark-mdx@3.1.1", "", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg=="], - "unist-util-modify-children": ["unist-util-modify-children@4.0.0", "https://registry.npmmirror.com/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" } }, "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw=="], + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], - "unist-util-position": ["unist-util-position@5.0.0", "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-5.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], - "unist-util-position-from-estree": ["unist-util-position-from-estree@2.0.0", "https://registry.npmmirror.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ=="], + "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], - "unist-util-remove-position": ["unist-util-remove-position@5.0.0", "https://registry.npmmirror.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q=="], + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], - "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + "rolldown": ["rolldown@1.2.9", "", { "dependencies": { "@oxc-project/types": "=0.150.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm-eabi": "1.2.9", "@rolldown/binding-android-arm64": "1.2.9", "@rolldown/binding-darwin-arm64": "1.2.9", "@rolldown/binding-darwin-x64": "1.2.9", "@rolldown/binding-freebsd-x64": "1.2.9", "@rolldown/binding-linux-arm-gnueabihf": "1.2.9", "@rolldown/binding-linux-arm64-gnu": "1.2.9", "@rolldown/binding-linux-arm64-musl": "1.2.9", "@rolldown/binding-linux-ppc64-gnu": "1.2.9", "@rolldown/binding-linux-s390x-gnu": "1.2.9", "@rolldown/binding-linux-x64-gnu": "1.2.9", "@rolldown/binding-linux-x64-musl": "1.2.9", "@rolldown/binding-openharmony-arm64": "1.2.9", "@rolldown/binding-win32-arm64-msvc": "1.2.9", "@rolldown/binding-win32-x64-msvc": "1.2.9" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-hx/Pv0N1haXRb11qkfnK5MXB/iqr7i0yjWQqmO9uHqZpBgQSqzc8UsSnEpalsh+j1I8qQ2CkXAkJC8Br3dKSlg=="], - "unist-util-visit": ["unist-util-visit@5.0.0", "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg=="], + "rollup": ["rollup@4.63.4", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "@rollup/rollup-android-arm-eabi": "4.63.4", "@rollup/rollup-android-arm64": "4.63.4", "@rollup/rollup-darwin-arm64": "4.63.4", "@rollup/rollup-darwin-x64": "4.63.4", "@rollup/rollup-freebsd-arm64": "4.63.4", "@rollup/rollup-freebsd-x64": "4.63.4", "@rollup/rollup-linux-arm-gnueabihf": "4.63.4", "@rollup/rollup-linux-arm-musleabihf": "4.63.4", "@rollup/rollup-linux-arm64-gnu": "4.63.4", "@rollup/rollup-linux-arm64-musl": "4.63.4", "@rollup/rollup-linux-loong64-gnu": "4.63.4", "@rollup/rollup-linux-loong64-musl": "4.63.4", "@rollup/rollup-linux-ppc64-gnu": "4.63.4", "@rollup/rollup-linux-ppc64-musl": "4.63.4", "@rollup/rollup-linux-riscv64-gnu": "4.63.4", "@rollup/rollup-linux-riscv64-musl": "4.63.4", "@rollup/rollup-linux-s390x-gnu": "4.63.4", "@rollup/rollup-linux-x64-gnu": "4.63.4", "@rollup/rollup-linux-x64-musl": "4.63.4", "@rollup/rollup-openbsd-x64": "4.63.4", "@rollup/rollup-openharmony-arm64": "4.63.4", "@rollup/rollup-win32-arm64-msvc": "4.63.4", "@rollup/rollup-win32-ia32-msvc": "4.63.4", "@rollup/rollup-win32-x64-gnu": "4.63.4", "@rollup/rollup-win32-x64-msvc": "4.63.4", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ=="], - "unist-util-visit-children": ["unist-util-visit-children@3.0.0", "https://registry.npmmirror.com/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA=="], + "rou3": ["rou3@0.9.2", "", {}, "sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ=="], - "unist-util-visit-parents": ["unist-util-visit-parents@6.0.1", "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw=="], + "scheduler": ["scheduler@0.28.0", "", {}, "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw=="], - "unocss": ["unocss@66.1.1", "https://registry.npmmirror.com/unocss/-/unocss-66.1.1.tgz", { "dependencies": { "@unocss/astro": "66.1.1", "@unocss/cli": "66.1.1", "@unocss/core": "66.1.1", "@unocss/postcss": "66.1.1", "@unocss/preset-attributify": "66.1.1", "@unocss/preset-icons": "66.1.1", "@unocss/preset-mini": "66.1.1", "@unocss/preset-tagify": "66.1.1", "@unocss/preset-typography": "66.1.1", "@unocss/preset-uno": "66.1.1", "@unocss/preset-web-fonts": "66.1.1", "@unocss/preset-wind": "66.1.1", "@unocss/preset-wind3": "66.1.1", "@unocss/preset-wind4": "66.1.1", "@unocss/transformer-attributify-jsx": "66.1.1", "@unocss/transformer-compile-class": "66.1.1", "@unocss/transformer-directives": "66.1.1", "@unocss/transformer-variant-group": "66.1.1", "@unocss/vite": "66.1.1" }, "peerDependencies": { "@unocss/webpack": "66.1.1", "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0" }, "optionalPeers": ["@unocss/webpack", "vite"] }, "sha512-GD/y7AsvbO6bG9Zu+5xf6UNIPyIwOUffTqLgFaWXHOqO6xXpbH9SWz2B+ATMdjwsRGr/JJHn3pLFo8lHGsHKsQ=="], + "section-matter": ["section-matter@1.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA=="], - "unplugin-utils": ["unplugin-utils@0.2.4", "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.4.tgz", { "dependencies": { "pathe": "^2.0.2", "picomatch": "^4.0.2" } }, "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA=="], + "semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], - "unstorage": ["unstorage@1.16.0", "https://registry.npmmirror.com/unstorage/-/unstorage-1.16.0.tgz", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.2", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.6", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA=="], + "seroval": ["seroval@1.6.7", "", {}, "sha512-AeDcLh0yO2SFm9W71essgnSzLV9DI8ZH0x0knXn2DMnUZj728mpLbxjlbB6IqKCmqh8JA3cEqRyGoNkt584JcQ=="], - "update-browserslist-db": ["update-browserslist-db@1.1.3", "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], + "seroval-plugins": ["seroval-plugins@1.6.7", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-4Nk35ttD3DTDJW4hgw5StsVAPeU6qnDFnULAouw6tQ7oLTV/ICXrWpsXo2EE52eSP2joUMazbVf52mFEcADqRw=="], - "vfile": ["vfile@6.0.3", "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + "set-cookie-parser": ["set-cookie-parser@3.1.2", "", {}, "sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw=="], - "vfile-location": ["vfile-location@5.0.3", "https://registry.npmmirror.com/vfile-location/-/vfile-location-5.0.3.tgz", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], + "sharp": ["sharp@0.35.4", "", { "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.4", "@img/sharp-darwin-x64": "0.35.4", "@img/sharp-freebsd-wasm32": "0.35.4", "@img/sharp-libvips-darwin-arm64": "1.3.3", "@img/sharp-libvips-darwin-x64": "1.3.3", "@img/sharp-libvips-linux-arm": "1.3.3", "@img/sharp-libvips-linux-arm64": "1.3.3", "@img/sharp-libvips-linux-ppc64": "1.3.3", "@img/sharp-libvips-linux-riscv64": "1.3.3", "@img/sharp-libvips-linux-s390x": "1.3.3", "@img/sharp-libvips-linux-x64": "1.3.3", "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", "@img/sharp-libvips-linuxmusl-x64": "1.3.3", "@img/sharp-linux-arm": "0.35.4", "@img/sharp-linux-arm64": "0.35.4", "@img/sharp-linux-ppc64": "0.35.4", "@img/sharp-linux-riscv64": "0.35.4", "@img/sharp-linux-s390x": "0.35.4", "@img/sharp-linux-x64": "0.35.4", "@img/sharp-linuxmusl-arm64": "0.35.4", "@img/sharp-linuxmusl-x64": "0.35.4", "@img/sharp-webcontainers-wasm32": "0.35.4", "@img/sharp-win32-arm64": "0.35.4", "@img/sharp-win32-ia32": "0.35.4", "@img/sharp-win32-x64": "0.35.4" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA=="], - "vfile-message": ["vfile-message@4.0.2", "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.2.tgz", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw=="], + "shiki": ["shiki@4.4.3", "", { "dependencies": { "@shikijs/core": "4.4.3", "@shikijs/engine-javascript": "4.4.3", "@shikijs/engine-oniguruma": "4.4.3", "@shikijs/langs": "4.4.3", "@shikijs/themes": "4.4.3", "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g=="], - "vite": ["vite@6.3.4", "https://registry.npmmirror.com/vite/-/vite-6.3.4.tgz", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw=="], + "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], - "vitefu": ["vitefu@1.0.6", "https://registry.npmmirror.com/vitefu/-/vitefu-1.0.6.tgz", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="], + "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], - "vue": ["vue@3.5.13", "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz", { "dependencies": { "@vue/compiler-dom": "3.5.13", "@vue/compiler-sfc": "3.5.13", "@vue/runtime-dom": "3.5.13", "@vue/server-renderer": "3.5.13", "@vue/shared": "3.5.13" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - "vue-flow-layout": ["vue-flow-layout@0.1.1", "https://registry.npmmirror.com/vue-flow-layout/-/vue-flow-layout-0.1.1.tgz", { "peerDependencies": { "vue": "^3.4.37" } }, "sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA=="], + "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "web-namespaces": ["web-namespaces@2.0.1", "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], - "webidl-conversions": ["webidl-conversions@3.0.1", "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "whatwg-url": ["whatwg-url@5.0.0", "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "srvx": ["srvx@0.11.22", "", { "bin": { "srvx": "bin/srvx.mjs" } }, "sha512-LqZxxBDMKuMAZzFzJnDCkFOrs9MZQZr0LvHiO/SuSZVdQaXD7xQ5UWTUxheJrQPve1qk9MG2B/yttUvJxw8egQ=="], - "which-pm-runs": ["which-pm-runs@1.1.0", "https://registry.npmmirror.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="], + "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], - "widest-line": ["widest-line@5.0.0", "https://registry.npmmirror.com/widest-line/-/widest-line-5.0.0.tgz", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="], + "std-env": ["std-env@4.2.0", "", {}, "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw=="], - "wrap-ansi": ["wrap-ansi@9.0.0", "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q=="], + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], - "xxhash-wasm": ["xxhash-wasm@1.1.0", "https://registry.npmmirror.com/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], + "strip-bom-string": ["strip-bom-string@1.0.0", "", {}, "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g=="], - "yallist": ["yallist@3.1.1", "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="], - "yargs-parser": ["yargs-parser@21.1.1", "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], - "yocto-queue": ["yocto-queue@1.2.1", "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.2.1.tgz", {}, "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg=="], + "supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], - "yocto-spinner": ["yocto-spinner@0.2.2", "https://registry.npmmirror.com/yocto-spinner/-/yocto-spinner-0.2.2.tgz", { "dependencies": { "yoctocolors": "^2.1.1" } }, "sha512-21rPcM3e4vCpOXThiFRByX8amU5By1R0wNS8Oex+DP3YgC8xdU0vEJ/K8cbPLiIJVosSSysgcFof6s6MSD5/Vw=="], + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], - "yoctocolors": ["yoctocolors@2.1.1", "https://registry.npmmirror.com/yoctocolors/-/yoctocolors-2.1.1.tgz", {}, "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ=="], + "tinyexec": ["tinyexec@1.3.0", "", {}, "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ=="], - "zod": ["zod@3.24.3", "https://registry.npmmirror.com/zod/-/zod-3.24.3.tgz", {}, "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg=="], + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], - "zod-to-json-schema": ["zod-to-json-schema@3.24.5", "https://registry.npmmirror.com/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="], + "tinypool": ["tinypool@2.1.2", "", {}, "sha512-9YodfrxS9g9IbFr/KOjE5bAeJ0p61n3bW6mqvy0jtoeKd1kTW1Cxm0oulm6KX2lyM9Gl6WIe8nEbY7LWv5ZJww=="], - "zod-to-ts": ["zod-to-ts@1.2.0", "https://registry.npmmirror.com/zod-to-ts/-/zod-to-ts-1.2.0.tgz", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="], + "tinyrainbow": ["tinyrainbow@3.1.1", "", {}, "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw=="], - "zwitch": ["zwitch@2.0.4", "https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], - "@antfu/install-pkg/tinyexec": ["tinyexec@1.0.1", "https://registry.npmmirror.com/tinyexec/-/tinyexec-1.0.1.tgz", {}, "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw=="], + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], - "@babel/core/semver": ["semver@6.3.1", "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "tsx": ["tsx@4.23.15", "", { "dependencies": { "esbuild": "~0.28.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-Yiex1Ovn8z2xPpOWckIiysV1SSyRMY9BkLF++q0yKiDxCqRhosKfMg3janKkiLBwZ5c/YryloKwGZcrEmtwxKw=="], - "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "typescript": ["typescript@7.0.2", "", { "optionalDependencies": { "@typescript/typescript-aix-ppc64": "7.0.2", "@typescript/typescript-darwin-arm64": "7.0.2", "@typescript/typescript-darwin-x64": "7.0.2", "@typescript/typescript-freebsd-arm64": "7.0.2", "@typescript/typescript-freebsd-x64": "7.0.2", "@typescript/typescript-linux-arm": "7.0.2", "@typescript/typescript-linux-arm64": "7.0.2", "@typescript/typescript-linux-loong64": "7.0.2", "@typescript/typescript-linux-mips64el": "7.0.2", "@typescript/typescript-linux-ppc64": "7.0.2", "@typescript/typescript-linux-riscv64": "7.0.2", "@typescript/typescript-linux-s390x": "7.0.2", "@typescript/typescript-linux-x64": "7.0.2", "@typescript/typescript-netbsd-arm64": "7.0.2", "@typescript/typescript-netbsd-x64": "7.0.2", "@typescript/typescript-openbsd-arm64": "7.0.2", "@typescript/typescript-openbsd-x64": "7.0.2", "@typescript/typescript-sunos-x64": "7.0.2", "@typescript/typescript-win32-arm64": "7.0.2", "@typescript/typescript-win32-x64": "7.0.2" }, "bin": { "tsc": "bin/tsc" } }, "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA=="], - "@babel/traverse/globals": ["globals@11.12.0", "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", {}, "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="], + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], - "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "undici": ["undici@7.29.0", "", {}, "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw=="], - "@vue/compiler-core/entities": ["entities@4.5.0", "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + "undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], - "@vue/compiler-core/estree-walker": ["estree-walker@2.0.2", "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "unenv": ["unenv@2.0.0-rc.24", "", { "dependencies": { "pathe": "^2.0.3" } }, "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw=="], - "@vue/compiler-sfc/estree-walker": ["estree-walker@2.0.2", "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], - "ansi-align/string-width": ["string-width@4.2.3", "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], - "anymatch/picomatch": ["picomatch@2.3.1", "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], - "hast-util-to-parse5/property-information": ["property-information@6.5.0", "https://registry.npmmirror.com/property-information/-/property-information-6.5.0.tgz", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], + "unist-util-position-from-estree": ["unist-util-position-from-estree@2.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ=="], - "mlly/pkg-types": ["pkg-types@1.3.1", "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], - "parse-entities/@types/unist": ["@types/unist@2.0.11", "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], - "prompts/kleur": ["kleur@3.0.3", "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], - "readdirp/picomatch": ["picomatch@2.3.1", "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "unplugin": ["unplugin@3.4.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "picomatch": "^4.0.7", "webpack-virtual-modules": "^0.6.2" }, "peerDependencies": { "@farmfe/core": "*", "@rsbuild/core": "*", "@rspack/core": "*", "bun-types-no-globals": "*", "esbuild": "*", "rolldown": "*", "rollup": "*", "unloader": "*", "vite": "*", "webpack": "*" }, "optionalPeers": ["@farmfe/core", "@rsbuild/core", "@rspack/core", "bun-types-no-globals", "esbuild", "rolldown", "rollup", "unloader", "vite", "webpack"] }, "sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w=="], - "unstorage/chokidar": ["chokidar@4.0.3", "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + "update-browserslist-db": ["update-browserslist-db@1.3.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ=="], - "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "use-sync-external-store": ["use-sync-external-store@1.7.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A=="], - "ansi-align/string-width/strip-ansi": ["strip-ansi@6.0.1", "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], - "mlly/pkg-types/confbox": ["confbox@0.1.8", "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], - "unstorage/chokidar/readdirp": ["readdirp@4.1.2", "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], - "ansi-align/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "vite": ["vite@8.3.0", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", "postcss": "^8.5.28", "rolldown": "~1.2.6", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.7.1", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ=="], + + "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], + + "vitest": ["vitest@4.1.0", "", { "dependencies": { "@vitest/expect": "4.1.0", "@vitest/mocker": "4.1.0", "@vitest/pretty-format": "4.1.0", "@vitest/runner": "4.1.0", "@vitest/snapshot": "4.1.0", "@vitest/spy": "4.1.0", "@vitest/utils": "4.1.0", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.0.3", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.0", "@vitest/browser-preview": "4.1.0", "@vitest/browser-webdriverio": "4.1.0", "@vitest/ui": "4.1.0", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw=="], + + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + + "webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="], + + "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + + "workerd": ["workerd@1.20260918.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260918.1", "@cloudflare/workerd-darwin-arm64": "1.20260918.1", "@cloudflare/workerd-linux-64": "1.20260918.1", "@cloudflare/workerd-linux-arm64": "1.20260918.1", "@cloudflare/workerd-windows-64": "1.20260918.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-NsjfQlBNQ0iEniv/STOy4zbp8s5k60PzL1Ter02Eg44arbDhHtf6UOs03E31XDRmmBFxSIkAZuCyld3RKH1wqA=="], + + "wrangler": ["wrangler@4.135.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", "blake3-wasm": "2.1.5", "esbuild": "0.28.1", "miniflare": "5.20260918.0-alpha", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20260918.1" }, "optionalDependencies": { "fsevents": "2.3.3" }, "peerDependencies": { "@cloudflare/workers-types": "^5.20260918.1" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js", "cf-wrangler": "bin/cf-wrangler.js" } }, "sha512-WrNBQSfIG6YcILJcodYr5ty8vgkzGsV8YX+kfd+uZ5/Bd8cUW0GnUIRKAVfn5kYKqh1m/BPcji9h1d7mE8euFw=="], + + "ws": ["ws@8.21.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g=="], + + "xmlbuilder2": ["xmlbuilder2@4.0.3", "", { "dependencies": { "@oozcitak/dom": "^2.0.2", "@oozcitak/infra": "^2.0.2", "@oozcitak/util": "^10.0.0", "js-yaml": "^4.1.1" } }, "sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "youch": ["youch@4.1.0-beta.10", "", { "dependencies": { "@poppinss/colors": "^4.1.5", "@poppinss/dumper": "^0.6.4", "@speed-highlight/core": "^1.2.7", "cookie": "^1.0.2", "youch-core": "^0.3.3" } }, "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ=="], + + "youch-core": ["youch-core@0.3.3", "", { "dependencies": { "@poppinss/exception": "^1.2.2", "error-stack-parser-es": "^1.0.5" } }, "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA=="], + + "zod": ["zod@4.6.5", "", {}, "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@babel/generator/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@cloudflare/vitest-plugin/zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], + + "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], + + "@jridgewell/gen-mapping/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@jridgewell/remapping/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "@vitest/runner/@vitest/utils": ["@vitest/utils@4.1.11", "", { "dependencies": { "@vitest/pretty-format": "4.1.11", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ=="], + + "@vitest/snapshot/@vitest/pretty-format": ["@vitest/pretty-format@4.1.11", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw=="], + + "@vitest/snapshot/@vitest/utils": ["@vitest/utils@4.1.11", "", { "dependencies": { "@vitest/pretty-format": "4.1.11", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ=="], + + "better-call/@better-auth/utils": ["@better-auth/utils@0.5.0", "", { "dependencies": { "@noble/hashes": "^2.0.1" } }, "sha512-BL8W4EfIZFwlu0r54m3v1ztjDhu6dDe/amLTm0xybmbZaNgYUqhD3SjpAsnq0q8YD6/ki4iwIgxJNLP/N3TxiA=="], + + "drizzle-kit/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "h3-v2/rou3": ["rou3@0.8.1", "", {}, "sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA=="], + + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + + "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "vitest/@vitest/runner": ["@vitest/runner@4.1.0", "", { "dependencies": { "@vitest/utils": "4.1.0", "pathe": "^2.0.3" } }, "sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ=="], + + "vitest/@vitest/snapshot": ["@vitest/snapshot@4.1.0", "", { "dependencies": { "@vitest/pretty-format": "4.1.0", "@vitest/utils": "4.1.0", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg=="], + + "xmlbuilder2/js-yaml": ["js-yaml@4.3.2", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.18.20", "", { "os": "android", "cpu": "x64" }, "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.18.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.18.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.18.20", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.18.20", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.18.20", "", { "os": "linux", "cpu": "arm" }, "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.18.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.18.20", "", { "os": "linux", "cpu": "ia32" }, "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.18.20", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.18.20", "", { "os": "linux", "cpu": "s390x" }, "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.18.20", "", { "os": "linux", "cpu": "x64" }, "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.18.20", "", { "os": "none", "cpu": "x64" }, "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.18.20", "", { "os": "openbsd", "cpu": "x64" }, "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.18.20", "", { "os": "sunos", "cpu": "x64" }, "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.18.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], + + "@vitest/runner/@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@4.1.11", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw=="], + + "drizzle-kit/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "drizzle-kit/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "drizzle-kit/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "drizzle-kit/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "drizzle-kit/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "drizzle-kit/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "drizzle-kit/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "drizzle-kit/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "drizzle-kit/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "drizzle-kit/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "drizzle-kit/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "drizzle-kit/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "drizzle-kit/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "drizzle-kit/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "drizzle-kit/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "drizzle-kit/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "drizzle-kit/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "drizzle-kit/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "drizzle-kit/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "drizzle-kit/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "drizzle-kit/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "drizzle-kit/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "drizzle-kit/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "drizzle-kit/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "drizzle-kit/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "drizzle-kit/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + + "xmlbuilder2/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], } } diff --git a/content/blog/documentation.md b/content/blog/documentation.md new file mode 100644 index 0000000..300f5fa --- /dev/null +++ b/content/blog/documentation.md @@ -0,0 +1,23 @@ +--- +id: blog-documentation +slug: docs-as-part-of-code +title: 让文档成为开发的一部分 +description: 好文档不是项目结束后的补充,而是下一次顺利开始的入口。 +date: 2026-09-15 +tags: [工程实践, 文档] +sample: true +--- + +项目放下一个月后,最难的往往不是写代码,而是重新想起来怎么启动它。 + +## 写给未来的自己 + +从三个问题开始:如何运行?为什么这样设计?发生故障时怎么办?把这些答案放在容易找到的地方。 + +## 让机器维护确定的信息 + +命令、路由和环境变量名称可以从代码生成。架构取舍需要人来解释。将两者分开,才能避免自动化覆盖重要的决策。 + +## 与代码一起审查 + +接口变了,文档也应该在同一个变更中更新。检查链接和生成结果很有用,但仍然需要确认文字描述是否符合实际行为。 diff --git a/content/blog/draft-example.md b/content/blog/draft-example.md new file mode 100644 index 0000000..7f916d1 --- /dev/null +++ b/content/blog/draft-example.md @@ -0,0 +1,11 @@ +--- +id: draft-not-published +slug: draft-not-published +title: 未发布草稿示例 +description: 此内容仅用于验证草稿隔离。 +date: 2026-09-20 +draft: true +sample: true +--- + +PRIVATE_DRAFT_SENTINEL_7f381c 这段内容不能进入生产产物。 diff --git a/content/blog/edge-runtime.md b/content/blog/edge-runtime.md new file mode 100644 index 0000000..9bb8a7d --- /dev/null +++ b/content/blog/edge-runtime.md @@ -0,0 +1,31 @@ +--- +id: blog-edge-runtime +slug: understand-edge-runtime +title: 理解边缘运行时:代码到底在哪里执行? +description: 从浏览器、构建工具到 Cloudflare Workers,理清一段代码的运行边界。 +date: 2026-09-18 +tags: [Cloudflare, Web 开发] +sample: true +--- + +同一个 TypeScript 项目里,代码可能运行在完全不同的环境中。理解这个边界,比记住某个框架的 API 更重要。 + +## 浏览器负责交互 + +页面点击、表单输入和主题切换都发生在浏览器中。不要将密钥放在客户端环境变量里,也不要只靠隐藏按钮来控制权限。 + +## 构建工具负责准备内容 + +Markdown 编译、搜索索引、代码打包在构建阶段完成。这个阶段可以读取仓库文件,但产物必须排除草稿和敏感信息。 + +## Worker 负责动态请求 + +用户登录、评论写入和后台审核由 Worker 处理。它通过 binding 访问数据库,每次写入都需要重新检查权限。 + +```typescript +export async function readCount(db: D1Database) { + return db.prepare("SELECT COUNT(*) AS count FROM comment").first(); +} +``` + +让每一层只承担明确的职责,项目会更容易测试,也更容易长期维护。 diff --git a/content/blog/start-small.mdx b/content/blog/start-small.mdx new file mode 100644 index 0000000..e27c1b6 --- /dev/null +++ b/content/blog/start-small.mdx @@ -0,0 +1,39 @@ +--- +id: blog-start-small +slug: start-small +title: 从一个小项目开始,把想法变成作品 +description: 不必等到准备好所有知识。找到一个真实的小问题,做出一个能用的版本,然后不断打磨。 +date: 2026-09-20 +tags: [学习方法, 独立开发] +sample: true +--- + +学习编程的路上,我们很容易收藏太多教程,却迟迟没有开始自己的项目。一个小而完整的作品,往往比一份漫长的学习清单更能带来进步。 + +## 先找到一个小问题 + +从每天遇到的不便出发:整理书签、记录读书笔记,或为自己的开源项目写一份清晰的文档。把目标写成一句话,让第一版只解决这一个问题。 + +> 一个有用的起点:让今天的自己比昨天少重复做一件事。 + +## 做出可以使用的第一版 + +从数据、交互和反馈三个部分拆解需求。先让核心流程跑通,再改善体验。 + +```typescript +interface Idea { + problem: string; + firstStep: string; +} + +const idea: Idea = { + problem: "学习笔记散落在不同地方", + firstStep: "做一个可以搜索的笔记列表", +}; +``` + +## 把过程也记录下来 + +为什么选这个技术?遇到了什么问题?下次会怎么做?这些真实的问题,就是技术博客最好的素材。 + +每一次提交,都是一次可见的进步。你可以从 [门户项目](/projects/semicoder) 看起,或者阅读 [开发文档](/docs/semicoder/getting-started)。 diff --git a/content/docs/getting-started.md b/content/docs/getting-started.md new file mode 100644 index 0000000..c4a0e52 --- /dev/null +++ b/content/docs/getting-started.md @@ -0,0 +1,29 @@ +--- +id: docs-semicoder-start +slug: getting-started +project: semicoder +title: 快速开始 +description: 了解新手程序员门户的内容结构与开发流程。 +date: 2026-09-20 +order: 1 +sample: true +--- + +## 准备环境 + +安装 Bun 和 Node.js,克隆仓库后安装锁定的依赖。 + +```bash +bun install --frozen-lockfile +bun run prepare +bun run db:local +bun run dev +``` + +## 浏览项目 + +首页连接博客、项目与文档。公开内容不依赖登录即可浏览。需要参与讨论时,通过 GitHub 登录。 + +## 下一步 + +阅读 [内容维护](/docs/semicoder/writing) 了解如何添加文章和项目文档。 diff --git a/content/docs/writing.md b/content/docs/writing.md new file mode 100644 index 0000000..8ed3d78 --- /dev/null +++ b/content/docs/writing.md @@ -0,0 +1,28 @@ +--- +id: docs-semicoder-writing +slug: writing +project: semicoder +title: 内容维护 +description: 用 Markdown 和 MDX 发布文章,为每一份内容设置稳定身份。 +date: 2026-09-20 +order: 2 +sample: true +--- + +## 添加内容 + +博客、项目和文档分别放入 content 下的对应目录。每份内容需要标题、简介、日期、slug 和永久稳定的 ID。 + +## 草稿与发布 + +将 draft 设为 true 可以保留未完成的内容。生产构建会排除草稿,包括搜索与订阅资源。 + +## 验证修改 + +```bash +bun run content:generate +bun run check +bun run build +``` + +更改 URL 时添加 aliases 重定向,保留原有 ID,让已有讨论继续关联同一篇内容。 diff --git a/content/projects/semicoder.mdx b/content/projects/semicoder.mdx new file mode 100644 index 0000000..46c1bec --- /dev/null +++ b/content/projects/semicoder.mdx @@ -0,0 +1,28 @@ +--- +id: project-semicoder +slug: semicoder +title: Semicoder +description: 一个不断生长的个人技术门户,把文章、作品与项目文档连接在一起。 +date: 2026-09-20 +tags: [全栈开发, 开源] +stack: [TanStack Start, Cloudflare, Bun] +status: 构建中 +source: https://github.com/potato47/semicoder +sample: true +--- + +## 关于这个项目 + +Semicoder 是「新手程序员」的门户建设项目。这个页面是项目展示模板,内容将随着建设进展持续更新。 + +## 设计目标 + +- 阅读体验清晰,内容可以长期维护。 +- 静态内容与动态评论共存。 +- 开发规范、自动检查和部署流程从第一天建立。 + +## 技术路线 + +TanStack Start 负责应用层,Cloudflare Workers 处理动态请求,D1 保存评论与账号,Bun 组织开发工具链。 + +从 [快速开始](/docs/semicoder/getting-started) 了解项目结构。 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..ce4626c --- /dev/null +++ b/docs/README.md @@ -0,0 +1,13 @@ +# 工程文档 + +- [产品与路线图](product.md) +- [架构](architecture.md) +- [开发与质量](development.md) +- [内容发布](content.md) +- [认证与数据](data.md) +- [部署与恢复](deployment.md) +- [架构决策](adr/0001-platform.md) +- [生成的技术清单](generated.md) +- [免费演示版首发验收](releases/2026-09-20.md) + +代码是可推导信息的来源。执行 `bun run docs:generate` 更新技术清单,执行 `bun run docs:check` 验证。手写文档随代码更新;CI 不自动改写或提交文档。 diff --git a/docs/adr/0001-platform.md b/docs/adr/0001-platform.md new file mode 100644 index 0000000..cab0da2 --- /dev/null +++ b/docs/adr/0001-platform.md @@ -0,0 +1,11 @@ +# ADR 0001:Cloudflare 全栈个人门户 + +状态:接受。日期:2026-09-20。 + +采用 TanStack Start / React、Bun 工具链、Cloudflare Workers / D1、Drizzle 和 Better Auth。接受 Start RC,依赖以锁文件为准。公开内容预渲染,动态业务使用 server functions。 + +采用 Oxlint 与 Oxfmt,保留独立 TypeScript strict 检查。首版不引入 Biome、独立 ESLint/Prettier 命令、微服务、R2、文档多版本或通知服务。 + +内容 Git 驱动,动态数据 D1。Pagefind 负责中文公开搜索。稳定内容 ID 关联评论,避免 URL 调整导致讨论丢失。 + +依据:Cloudflare 官方 Start/Vite 集成;TanStack Start 官方概览;Oxc 官方 CLI 和格式支持。风险通过锁定依赖、workerd 集成测试和预发布验证管理。 diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..ae3a53e --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,15 @@ +# 架构 + +单仓库、单 TanStack Start 应用、单 Cloudflare Worker。TanStack Router 提供类型化导航,TanStack Query 管理动态状态。CSS Modules 和 CSS 变量提供视觉系统。公开页面预渲染,动态会话和评论在 hydration 后读取。 + +内容从 `content/` 经构建脚本校验和编译 MDX,生成模块清单、HTML 搜索输入、RSS、sitemap 和重定向清单。生产生成阶段排除草稿;只有显式本地预览才包含草稿。Pagefind 索引由公开内容生成并作为静态资源部署。 + +客户端通过 Start server functions 调用服务端,`src/server/` 封装会话、D1、审核和防刷。数据库访问不进入客户端包。公共 HTML 无会话信息,动态接口和后台使用 private/no-store。Worker 入口处理 canonical 域名、重定向、安全响应头和健康检查。 + +内容 ID 为稳定主键,slug 只决定 URL。历史 URL 在 frontmatter aliases 中显式保留。正文不存入 D1。D1 使用 Drizzle schema 与可审计 SQL 迁移。评论和审核写入通过 D1 batch 保持原子性。 + +本地 Vite Cloudflare 插件在 workerd 中运行后端;Bun 只用于工具链。预发布和生产资源隔离。无密钥时正文仍可阅读,登录和评论显示可理解的配置状态。 + +免费套餐采用 Assets 优先路由,公开页面和搜索资源不经过 Worker。只有认证、server functions、后台和健康检查优先执行 Worker。静态安全响应头与预发布 noindex 放在 `public/_headers`;历史路径由内容生成 `_redirects`,www 跳转和 HTTPS 由域名规则执行。动态请求额度耗尽不应阻断已发布正文。 + +后台预渲染不含用户信息的登录界面,入口仍经过 Worker 添加 private/no-store;管理数据仅在客户端会话确认后通过管理员接口加载,避免每次打开后台都执行 React 服务端渲染。 diff --git a/docs/content.md b/docs/content.md new file mode 100644 index 0000000..9f90697 --- /dev/null +++ b/docs/content.md @@ -0,0 +1,13 @@ +# 内容发布 + +在 `content/blog`、`content/projects`、`content/docs` 创建 Markdown 或 MDX。frontmatter 必填 id、title、description、slug、date;文档另填 project 和 order。id 永久稳定,slug 用小写英文与连字符。项目包含 stack 和 status,可包含 source、demo。所有示例内容注明 sample: true。 + +`draft: true` 内容不进入生产模块、页面、RSS、sitemap 或搜索。`CONTENT_PREVIEW=true bun run dev` 只用于本地草稿预览,不得用于生产部署。旧 URL 填入 aliases,例如 `/posts/old-slug`。执行 `bun run content:check` 验证引用、链接和 ID。 + +博客与项目默认 comments: true,文档默认关闭。相对资源使用 public 下的绝对站内路径。MDX 只允许经过仓库审查的代码;访客评论只能使用安全 Markdown,不能执行 MDX 或 HTML。 + +公开内容有目录、代码高亮和阅读时间;文档按项目及 order 排序。内容修改通过 PR,构建后发布,无网页正文编辑器。 + +内容校验同时验证生成入口、清单和正文模块,拒绝残留草稿模块。构建产物还需通过 `bun run build:check` 的草稿隔离和实际中文搜索检查。 + +历史 URL 同时生成 Assets `_redirects`,避免为重定向调用 Worker。搜索优先使用 Pagefind;检测到浏览器缺少中文分词词典时,按需加载仅含公开内容的静态备用索引,提供字面匹配及类型筛选,不增加服务器请求处理。 diff --git a/docs/data.md b/docs/data.md new file mode 100644 index 0000000..564d97c --- /dev/null +++ b/docs/data.md @@ -0,0 +1,13 @@ +# 认证与数据 + +Better Auth 使用 GitHub OAuth,认证入口 `/api/auth/*`。会话保存在 D1,管理员由 `ADMIN_GITHUB_IDS` 中的 GitHub 数字账号 ID 决定,不根据用户名、邮箱或客户端标记提权。每次写入重新检查会话与封禁状态。 + +认证配置实例按 Workers 环境复用,减少重复初始化 CPU;会话与权限仍逐请求检查,不在内存缓存授权结果。认证限流仅信任 Cloudflare 注入的 `CF-Connecting-IP`,避免所有访客落入共享限流桶。 + +认证表由 Better Auth 配置匹配的 Drizzle schema 定义。业务表保存用户审核状态、评论、审核记录、限流桶。公开评论仅返回 approved 和 deleted 占位;hidden/pending 永不进入公共响应。用户可在个人待审区查看自己的 pending 评论。 + +首次被批准前的新评论均 pending;首次批准原子设置 trusted 状态。后续新增直接 approved,编辑一律重新 pending。回复只能挂在同一内容的根评论下;删除清空正文但保留结构。审核带版本检查,防止审核过程中正文变化。封禁阻止写入并隐藏该用户既有评论;解除封禁不自动恢复旧评论。 + +所有写入进行 Origin 校验、Zod 校验、权限校验、D1 持久限流。创建和编辑还需 Turnstile Siteverify 校验 action/hostname,token 过期或重用不能通过。requestId 提供提交幂等性。审计不记录 OAuth token 或原始 IP。 + +SQL 迁移提交 Git,使用 Wrangler 在指定环境执行。禁止生产 schema push。数据库默认使用主库一致读,不开启异地只读副本。评论批处理使用 D1 batch 原子执行。 diff --git a/docs/deployment.md b/docs/deployment.md new file mode 100644 index 0000000..8d35797 --- /dev/null +++ b/docs/deployment.md @@ -0,0 +1,43 @@ +# 部署与恢复 + +## 环境 + +本地使用 Wrangler 本地 D1。预发布和生产分别创建 D1,填入 `wrangler.jsonc` 相应环境的 database_id。占位 ID 不可直接部署。预发布使用 `staging.semicoder.dev`,生产使用 `semicoder.dev` 和 `www.semicoder.dev`。Cloudflare 域名规则将 www 308 跳转至根域名并保留路径和查询参数,SSL/TLS 开启 Always Use HTTPS。Worker 仅为动态路径提供同样的重定向兜底。 + +每个环境分别创建 GitHub OAuth App,callback 为 `https://域名/api/auth/callback/github`。配置 Turnstile 域名列表。通过 Wrangler secret put 设置 BETTER_AUTH_SECRET、GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET、TURNSTILE_SECRET_KEY、ADMIN_GITHUB_IDS;SITE_URL 和 TURNSTILE_SITE_KEY 为公开配置。管理员 ID 必须为 GitHub provider 数字 ID。密钥不得提交。 + +## 发布 + +GitHub Actions 使用 staging / production environments,分别设置 CLOUDFLARE_API_TOKEN、CLOUDFLARE_ACCOUNT_ID 和所需 Worker secrets。Token 按 Worker/D1 最小权限配置。production environment 应设审核保护。外部 PR 不运行带密钥部署。 + +PR 执行安装、生成、只读检查、测试和构建。主分支顺序执行预发布迁移、构建、部署、冒烟;通过后执行生产迁移、构建、部署、冒烟。登录密钥通过 Cloudflare 预先配置,不传入构建。上线前用真实 GitHub 账号验证登录、评论、审批、封禁与注销。 + +## 观察与费用 + +当前使用 Workers / D1 / Turnstile 免费套餐,不自动升级。Worker 不设置自定义 `cpu_ms`,遵循免费版每请求 10ms CPU、账户共享每天 10 万次动态请求限制。静态页面与资源走 Assets;`run_worker_first` 仅列出动态路径,避免静态访问消耗额度。D1 账户共享每日 500 万行读取、10 万行写入,单库 500MB,总计 5GB;Time Travel 免费恢复窗口为 7 天。额度按账户共享,预发布与生产并非各一份。 + +开启 Workers observability,关注错误率、CPU、D1 读写、请求量和 429;日志禁止写入密钥、会话、评论正文。免费额度耗尽会导致动态请求失败,不自动产生超额账单;正文和浏览器搜索应继续可用。上线需实测 OAuth 回调、会话、评论和审核,不能用本地测试推断 CPU 额度合格。需要付费扩容时另行确认。 + +预发布和生产冒烟会验证页面品牌、安全响应头、健康检查、认证与后台 no-store;生产另验证 HTTP → HTTPS、www 308 保留路径和查询参数,避免旧站返回 200 被误判为发布成功。 + +原计划的可配置用量阈值邮件告警未作为免费方案的已交付能力:[官方通知清单](https://developers.cloudflare.com/notifications/notification-available/#billing) 将 Usage Based Billing 列为 Professional 或以上。当前使用控制台指标与 Workers 日志排查,不为告警升级套餐;也未设置定期巡检任务。 + +## 回滚与恢复 + +迁移前记录 D1 Time Travel bookmark,并导出 SQL 到私有安全存储。采用向后兼容的增量迁移,旧 Worker 可继续读取新 schema。代码回滚使用 Wrangler deployments list 与 rollback 指定前一个版本;不会回滚 D1。 + +数据恢复必须先暂停写入,确认受影响时间范围,再将备份恢复到独立数据库核对计数和抽样数据,最后切换 binding;不能为回滚代码直接抹除评论数据。发布记录写清 commit、Worker version、迁移和恢复点。正式上线前在预发布执行一次恢复演练并记录结果。 + +D1 导出可能先写入子表,再创建被引用的父表,直接导入空库会报 `no such table: main.user`。恢复时使用仅依赖 Python 3 标准库的辅助脚本先排列建表语句,保留原 SQL 数据;只导入全新隔离数据库,不能导入仍在提供服务的数据库: + +```sh +umask 077 +bunx wrangler d1 export DB --env staging --remote --output /private/tmp/staging-backup.sql > /private/tmp/staging-export.log +python3 scripts/prepare-restore.py /private/tmp/staging-backup.sql /private/tmp/staging-restore.sql +bunx wrangler d1 execute DB --env staging --local --persist-to /private/tmp/semicoder-restore-drill --file /private/tmp/staging-restore.sql +bunx wrangler d1 execute DB --env staging --local --persist-to /private/tmp/semicoder-restore-drill --command 'SELECT COUNT(*) AS users FROM user; SELECT COUNT(*) AS comments FROM comment; SELECT COUNT(*) AS audits FROM audit; PRAGMA foreign_key_check;' +``` + +路径必须选用新的私有目录;SQL、导出日志、数据库文件包含认证数据,禁止提交仓库,演练结束后安全清理。真实恢复还需逐表核对、抽样与登录验证,再切换绑定。[首发验收记录](releases/2026-09-20.md) 包含本次演练范围。 + +从旧 Pages 迁移时既要移除根域名 CNAME,也要解除旧 Pages 项目的自定义域,否则请求可能仍落到旧应用。原记录为 proxied CNAME `semicoder.dev → semicoder.pages.dev`;旧 Pages 项目和 Git 标签 `archive/astro-before-rebuild` 保留。需要回退旧站时先解除新 Worker 根域名绑定,再恢复 Pages 自定义域和对应 CNAME;邮件 MX/TXT 不变。 diff --git a/docs/development.md b/docs/development.md new file mode 100644 index 0000000..e41bc68 --- /dev/null +++ b/docs/development.md @@ -0,0 +1,11 @@ +# 开发与质量 + +使用 Bun 1.4.2 与 Node 24。执行 `bun install --frozen-lockfile`、`bun run prepare`、`bun run db:local`、`bun run dev`。复制 `.dev.vars.example` 为 `.dev.vars` 后按需填入本地密钥;无 OAuth 密钥也可开发内容页面。 + +Oxlint 检查 JS/TS、React Hooks 与可访问性;warning 阻断 CI。Oxfmt 是唯一格式入口:两空格、分号、双引号、100 列、LF、保留 Markdown 换行。Markdown/MDX 由 npm 版 Oxfmt 内置引擎处理,保留 Node 环境。TypeScript strict 单独执行类型检查,未启用 type-aware lint。 + +`bun run check` 汇总只读检查。`bun run test` 验证内容和纯逻辑,`bun run test:workers` 验证实际 D1 行为,`bun run build` 构建 Worker、预渲染页面及中文搜索。`bun run fmt` 和 `bun run lint:fix` 只用于本地修复。 + +新增生成文件须明确加入排除范围并增加一致性检查,不可忽略整个业务目录。CI 安装和生成类型后执行检查,不自动修复、提交或放宽规则。文档影响映射见 `impact.json`;PR 必须更新对应文档,或提供带原因的 `docs-impact: none — ...` 声明。 + +构建后执行 `bun run build:check`:扫描客户端产物中的草稿标识和正文,并加载实际 Pagefind WebAssembly 索引验证公开内容的中文搜索及类型筛选。CI 和部署脚本均执行此检查。 diff --git a/docs/generated.md b/docs/generated.md new file mode 100644 index 0000000..a4147f0 --- /dev/null +++ b/docs/generated.md @@ -0,0 +1,74 @@ +# 生成的技术清单 + +由 `bun run docs:generate` 生成。不要手工编辑,不包含配置值或密钥。 + +## 命令 + +| 命令 | 实际执行 | +| --- | --- | +| `bun run dev` | `bun run content:generate && vite --host 127.0.0.1` | +| `bun run prepare` | `bun run content:generate && wrangler types` | +| `bun run build` | `bun run content:generate && vite build` | +| `bun run build:check` | `node scripts/build-check.ts` | +| `bun run preview` | `vite preview --host 127.0.0.1` | +| `bun run lint` | `oxlint --max-warnings=0` | +| `bun run lint:fix` | `oxlint --fix` | +| `bun run fmt` | `oxfmt` | +| `bun run fmt:check` | `oxfmt --check` | +| `bun run typecheck` | `tsc --noEmit` | +| `bun run content:generate` | `bun scripts/content.ts` | +| `bun run content:check` | `bun scripts/content.ts --check` | +| `bun run docs:generate` | `bun scripts/docs.ts` | +| `bun run docs:check` | `bun scripts/docs.ts --check` | +| `bun run docs:impact` | `bun scripts/docs-impact.ts` | +| `bun run check` | `bun run lint && bun run fmt:check && bun run typecheck && bun run content:check && bun run docs:check` | +| `bun run test` | `bun test tests/unit` | +| `bun run test:workers` | `vitest run` | +| `bun run db:local` | `wrangler d1 migrations apply DB --local` | +| `bun run db:generate` | `drizzle-kit generate` | +| `bun run deploy:staging` | `bun scripts/deploy.ts staging` | +| `bun run deploy:production` | `bun scripts/deploy.ts production` | +| `bun run smoke` | `bun scripts/smoke.ts` | + +## 路由 + +- `/` +- `/about` +- `/admin` +- `/api/auth/$` +- `/blog/` +- `/blog/$slug` +- `/docs/` +- `/docs/$project/$slug` +- `/privacy` +- `/projects/` +- `/projects/$slug` +- `/rules` +- `/search` +- `/healthz`(Worker) +- `/rss.xml`、`/sitemap.xml`、`/robots.txt`(构建产物) + +## 环境变量名称 + +- `ADMIN_GITHUB_IDS` +- `APP_ENV` +- `BETTER_AUTH_SECRET` +- `GITHUB_CLIENT_ID` +- `GITHUB_CLIENT_SECRET` +- `SITE_URL` +- `TURNSTILE_SECRET_KEY` +- `TURNSTILE_SITE_KEY` + +## 数据表 + +| 表 | 列 | +| --- | --- | +| account | id, account_id, provider_id, user_id, access_token, refresh_token, id_token, access_token_expires_at, refresh_token_expires_at, scope, password, created_at, updated_at | +| audit | id, actor_id, action, target_id, created_at | +| auth_rate_limit | id, key, count, last_request | +| comment | id, content_id, user_id, parent_id, body, status, version, request_id, created_at, updated_at | +| profile | user_id, trusted, banned | +| rate_limit | key, count, expires_at | +| session | id, token, expires_at, created_at, updated_at, ip_address, user_agent, user_id | +| user | id, name, email, email_verified, image, created_at, updated_at | +| verification | id, identifier, value, expires_at, created_at, updated_at | diff --git a/docs/impact.json b/docs/impact.json new file mode 100644 index 0000000..afb6bca --- /dev/null +++ b/docs/impact.json @@ -0,0 +1,11 @@ +{ + "src/server/": ["docs/data.md"], + "src/routes/": ["docs/architecture.md"], + "scripts/content": ["docs/content.md"], + "content/": ["docs/content.md"], + "drizzle/": ["docs/data.md", "docs/deployment.md"], + "wrangler.jsonc": ["docs/deployment.md"], + ".github/": ["docs/deployment.md"], + ".ox": ["docs/development.md"], + "package.json": ["docs/development.md"] +} diff --git a/docs/product.md b/docs/product.md new file mode 100644 index 0000000..0a9a489 --- /dev/null +++ b/docs/product.md @@ -0,0 +1,11 @@ +# 产品与路线图 + +新手程序员(semicoder.dev)是中文个人技术门户。技术出版风、响应式布局、浅深色主题。内容仓库驱动,评论后台管理。 + +首版交付首页、博客、项目、每项目最新文档、中文搜索、GitHub 登录评论和审核后台。包含 RSS、sitemap、隐私与评论规则。示例内容必须明确标记。 + +实施顺序:规范基线 → Workers 技术闭环 → 内容门户 → 评论审核 → 生产上线。 + +后续:真实内容替换、R2 媒体管理、通知、工具应用、多版本文档。首版不建设多人投稿、支付和 AI 助手。 + +上线门槛:质量检查、生产构建、Workers 权限测试、浏览器验证通过;配置真实域名、数据库、GitHub OAuth、Turnstile 和管理员 ID。真实登录及恢复演练须在拥有环境凭据后单独记录,不能由本地模拟代替。 diff --git a/docs/releases/2026-09-20.md b/docs/releases/2026-09-20.md new file mode 100644 index 0000000..f125aff --- /dev/null +++ b/docs/releases/2026-09-20.md @@ -0,0 +1,32 @@ +# 2026-09-20 免费方案演示版首发 + +用户确认先发布演示版本,之后替换真实内容。六条公开内容保留 `sample: true` 和页面示例标识。生产为 ,预发布为 ;预发布禁止索引。未升级 Workers、D1 或 Turnstile 套餐。 + +## 发布标识 + +- 分支:`codex/portal-rebuild`;旧实现:`archive/astro-before-rebuild`(`d92d03a`)。本次从本地工作树发布,发布时重建代码尚未提交。 +- 生产 Worker:`semicoder-production`,版本 `0f114fbf-b834-4059-80e6-b6e68ddc22ef`。 +- 预发布 Worker:`semicoder-staging`,版本 `48656305-3875-4432-8e93-57f2b2d30b91`。生产另含退出按钮的移动端图标改进。 +- 两个隔离 D1 均应用 `0000_sturdy_quicksilver.sql`。OAuth 应用、Turnstile 和密钥均分别配置;管理员通过 GitHub 不可变 ID 识别。 +- 根域名已从旧 Pages 切换至 Worker;开启 HTTPS,www 使用 308 保留路径和查询参数。 + +## 已验证 + +- Oxlint 零 warning、Oxfmt、TypeScript、内容与文档校验;Bun 6 个测试、Workers/D1 11 个测试;生产构建和实际中文索引检查。 +- 故意引入 lint 与格式错误时对应命令失败,修复后恢复;草稿哨兵未进入客户端、搜索、RSS 或 sitemap。 +- 预发布真实 GitHub OAuth、Turnstile、首次评论待审、批准、编辑重审、再次批准、可信用户回复、删除根评论后保留回复与占位。 +- 越权、封禁、过期/伪造会话、重复提交、限流由 Workers 集成测试覆盖;不将模拟测试描述为真实多账号浏览器验证。 +- 正式站实际 GitHub 登录及管理员后台、中文“编程”搜索、桌面布局、390px 移动端无横向溢出、深色主题和键盘焦点。 +- 正式域名冒烟:门户各入口、RSS、sitemap、健康检查、404、认证与后台 no-store、安全响应头、HTTPS 和 www 跳转。 + +## 恢复演练与性能边界 + +预发布导出快照恢复至独立本地 D1,修正导出语句的建表/插入顺序后导入成功。快照及恢复库均为 user 1、comment 1、audit 1,外键检查无违规。演练未覆盖远端新库切换和生产灾难恢复;生产数据库未被覆盖。后续在评论继续写入后,在线库计数高于该快照属于正常现象。 + +后台改为不含用户数据的预渲染界面,动态授权仍由服务端执行;观察到两个 `/admin` 请求 CPU 均为 1ms。优化后的预发布 23 次服务端函数采样 CPU 中位数约 11ms、最大 68ms,未记录失败。这不能证明长期满足免费版每请求 10ms 限制;真实流量需继续观察资源超限与错误率。 + +## 尚未完成的运维项 + +- GitHub Actions 工作流已写入仓库工作树,但本次未推送和运行云端 CI,也未配置仓库的部署 token / environment 审核保护。本次生产由本机 Wrangler 发布,不应描述为 CI 自动发布成功。 +- 免费方案未配置用量阈值邮件告警;保留指标和日志,具体套餐限制见部署手册。 +- 正式内容待用户提供后按稳定 ID 替换,避免评论归属随 slug 改动丢失。 diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 0000000..55693a0 --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "drizzle-kit"; +export default defineConfig({ + schema: "./src/server/db/schema.ts", + out: "./drizzle", + dialect: "sqlite", +}); diff --git a/drizzle/0000_sturdy_quicksilver.sql b/drizzle/0000_sturdy_quicksilver.sql new file mode 100644 index 0000000..b249a7e --- /dev/null +++ b/drizzle/0000_sturdy_quicksilver.sql @@ -0,0 +1,100 @@ +CREATE TABLE `account` ( + `id` text PRIMARY KEY NOT NULL, + `account_id` text NOT NULL, + `provider_id` text NOT NULL, + `user_id` text NOT NULL, + `access_token` text, + `refresh_token` text, + `id_token` text, + `access_token_expires_at` integer, + `refresh_token_expires_at` integer, + `scope` text, + `password` text, + `created_at` integer NOT NULL, + `updated_at` integer NOT NULL, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE UNIQUE INDEX `account_provider_unique` ON `account` (`provider_id`,`account_id`);--> statement-breakpoint +CREATE INDEX `account_user_idx` ON `account` (`user_id`);--> statement-breakpoint +CREATE TABLE `audit` ( + `id` text PRIMARY KEY NOT NULL, + `actor_id` text NOT NULL, + `action` text NOT NULL, + `target_id` text NOT NULL, + `created_at` integer NOT NULL +); +--> statement-breakpoint +CREATE TABLE `auth_rate_limit` ( + `id` text PRIMARY KEY NOT NULL, + `key` text NOT NULL, + `count` integer NOT NULL, + `last_request` integer NOT NULL +); +--> statement-breakpoint +CREATE UNIQUE INDEX `auth_rate_limit_key_unique` ON `auth_rate_limit` (`key`);--> statement-breakpoint +CREATE TABLE `comment` ( + `id` text PRIMARY KEY NOT NULL, + `content_id` text NOT NULL, + `user_id` text NOT NULL, + `parent_id` text, + `body` text NOT NULL, + `status` text NOT NULL, + `version` integer DEFAULT 1 NOT NULL, + `request_id` text NOT NULL, + `created_at` integer NOT NULL, + `updated_at` integer NOT NULL, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +CREATE INDEX `comment_content_idx` ON `comment` (`content_id`,`status`,`created_at`);--> statement-breakpoint +CREATE INDEX `comment_parent_idx` ON `comment` (`parent_id`);--> statement-breakpoint +CREATE UNIQUE INDEX `comment_request_unique` ON `comment` (`user_id`,`request_id`);--> statement-breakpoint +CREATE TABLE `profile` ( + `user_id` text PRIMARY KEY NOT NULL, + `trusted` integer DEFAULT false NOT NULL, + `banned` integer DEFAULT false NOT NULL, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `rate_limit` ( + `key` text PRIMARY KEY NOT NULL, + `count` integer NOT NULL, + `expires_at` integer NOT NULL +); +--> statement-breakpoint +CREATE TABLE `session` ( + `id` text PRIMARY KEY NOT NULL, + `token` text NOT NULL, + `expires_at` integer NOT NULL, + `created_at` integer NOT NULL, + `updated_at` integer NOT NULL, + `ip_address` text, + `user_agent` text, + `user_id` text NOT NULL, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE UNIQUE INDEX `session_token_unique` ON `session` (`token`);--> statement-breakpoint +CREATE INDEX `session_user_idx` ON `session` (`user_id`);--> statement-breakpoint +CREATE TABLE `user` ( + `id` text PRIMARY KEY NOT NULL, + `name` text NOT NULL, + `email` text NOT NULL, + `email_verified` integer DEFAULT false NOT NULL, + `image` text, + `created_at` integer NOT NULL, + `updated_at` integer NOT NULL +); +--> statement-breakpoint +CREATE UNIQUE INDEX `user_email_unique` ON `user` (`email`);--> statement-breakpoint +CREATE TABLE `verification` ( + `id` text PRIMARY KEY NOT NULL, + `identifier` text NOT NULL, + `value` text NOT NULL, + `expires_at` integer NOT NULL, + `created_at` integer NOT NULL, + `updated_at` integer NOT NULL +); +--> statement-breakpoint +CREATE INDEX `verification_identifier_idx` ON `verification` (`identifier`); \ No newline at end of file diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json new file mode 100644 index 0000000..91d0465 --- /dev/null +++ b/drizzle/meta/0000_snapshot.json @@ -0,0 +1,621 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "d2dc8b3f-7418-4703-8e71-72a8bb27cd6d", + "prevId": "00000000-0000-0000-0000-000000000000", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "account_provider_unique": { + "name": "account_provider_unique", + "columns": ["provider_id", "account_id"], + "isUnique": true + }, + "account_user_idx": { + "name": "account_user_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "audit": { + "name": "audit", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "actor_id": { + "name": "actor_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_id": { + "name": "target_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "auth_rate_limit": { + "name": "auth_rate_limit", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "auth_rate_limit_key_unique": { + "name": "auth_rate_limit_key_unique", + "columns": ["key"], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "comment": { + "name": "comment", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "content_id": { + "name": "content_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "parent_id": { + "name": "parent_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "body": { + "name": "body", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "version": { + "name": "version", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "request_id": { + "name": "request_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "comment_content_idx": { + "name": "comment_content_idx", + "columns": ["content_id", "status", "created_at"], + "isUnique": false + }, + "comment_parent_idx": { + "name": "comment_parent_idx", + "columns": ["parent_id"], + "isUnique": false + }, + "comment_request_unique": { + "name": "comment_request_unique", + "columns": ["user_id", "request_id"], + "isUnique": true + } + }, + "foreignKeys": { + "comment_user_id_user_id_fk": { + "name": "comment_user_id_user_id_fk", + "tableFrom": "comment", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "profile": { + "name": "profile", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "trusted": { + "name": "trusted", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "banned": { + "name": "banned", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "profile_user_id_user_id_fk": { + "name": "profile_user_id_user_id_fk", + "tableFrom": "profile", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "key": { + "name": "key", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "session_token_unique": { + "name": "session_token_unique", + "columns": ["token"], + "isUnique": true + }, + "session_user_idx": { + "name": "session_user_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_email_unique": { + "name": "user_email_unique", + "columns": ["email"], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "verification_identifier_idx": { + "name": "verification_identifier_idx", + "columns": ["identifier"], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json new file mode 100644 index 0000000..32c1a06 --- /dev/null +++ b/drizzle/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "7", + "dialect": "sqlite", + "entries": [ + { + "idx": 0, + "version": "6", + "when": 1789907201601, + "tag": "0000_sturdy_quicksilver", + "breakpoints": true + } + ] +} diff --git a/package.json b/package.json index dcb923b..28b14ac 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,73 @@ { - "name": "semicoder", - "type": "module", - "version": "0.0.1", - "scripts": { - "dev": "astro dev", - "build": "astro build", - "preview": "astro preview", - "astro": "astro" - }, - "dependencies": { - "@astrojs/react": "^4.2.7", - "@astrojs/rss": "^4.0.11", - "astro": "^5.7.10", - "@astrojs/mdx": "^4.2.6", - "@astrojs/sitemap": "^3.4.0", - "react": "^19.1.0", - "react-dom": "^19.1.0" - }, - "devDependencies": { - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.3", - "unocss": "^66.1.1" - } + "name": "semicoder", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "bun run content:generate && vite --host 127.0.0.1", + "prepare": "bun run content:generate && wrangler types", + "build": "bun run content:generate && vite build", + "build:check": "node scripts/build-check.ts", + "preview": "vite preview --host 127.0.0.1", + "lint": "oxlint --max-warnings=0", + "lint:fix": "oxlint --fix", + "fmt": "oxfmt", + "fmt:check": "oxfmt --check", + "typecheck": "tsc --noEmit", + "content:generate": "bun scripts/content.ts", + "content:check": "bun scripts/content.ts --check", + "docs:generate": "bun scripts/docs.ts", + "docs:check": "bun scripts/docs.ts --check", + "docs:impact": "bun scripts/docs-impact.ts", + "check": "bun run lint && bun run fmt:check && bun run typecheck && bun run content:check && bun run docs:check", + "test": "bun test tests/unit", + "test:workers": "vitest run", + "db:local": "wrangler d1 migrations apply DB --local", + "db:generate": "drizzle-kit generate", + "deploy:staging": "bun scripts/deploy.ts staging", + "deploy:production": "bun scripts/deploy.ts production", + "smoke": "bun scripts/smoke.ts" + }, + "dependencies": { + "@tanstack/react-query": "5.103.1", + "@tanstack/react-router": "1.170.38", + "@tanstack/react-start": "1.168.56", + "better-auth": "1.7.5", + "drizzle-orm": "0.45.2", + "lucide-react": "1.47.0", + "react": "19.3.0", + "react-dom": "19.3.0", + "react-markdown": "10.1.0", + "remark-gfm": "4.0.1", + "zod": "4.6.5" + }, + "devDependencies": { + "@cloudflare/vite-plugin": "1.56.0", + "@cloudflare/vitest-plugin": "1.1.13", + "@cloudflare/workers-types": "5.20260920.1", + "@mdx-js/mdx": "3.1.1", + "@mdx-js/rollup": "3.1.1", + "@types/bun": "1.4.2", + "@types/node": "26.6.2", + "@types/react": "19.3.0", + "@types/react-dom": "19.3.0", + "@vitejs/plugin-react": "6.1.1", + "drizzle-kit": "0.31.10", + "gray-matter": "4.0.3", + "jsonc-parser": "3.3.1", + "oxfmt": "0.68.0", + "oxlint": "1.83.0", + "pagefind": "1.5.2", + "rehype-pretty-code": "0.14.5", + "rehype-slug": "6.0.0", + "remark-frontmatter": "5.0.0", + "typescript": "7.0.2", + "vite": "8.3.0", + "vitest": "4.1.0", + "wrangler": "4.135.0" + }, + "engines": { + "node": ">=22.12.0" + }, + "packageManager": "bun@1.4.2" } diff --git a/public/_headers b/public/_headers new file mode 100644 index 0000000..89233eb --- /dev/null +++ b/public/_headers @@ -0,0 +1,11 @@ +/* + X-Content-Type-Options: nosniff + Referrer-Policy: strict-origin-when-cross-origin + X-Frame-Options: DENY + Permissions-Policy: camera=(), microphone=(), geolocation=() + +https://staging.semicoder.dev/* + X-Robots-Tag: noindex, nofollow + +https://:worker.:account.workers.dev/* + X-Robots-Tag: noindex, nofollow diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 0000000..37e4e6f --- /dev/null +++ b/public/_redirects @@ -0,0 +1 @@ +# Generated from content aliases. diff --git a/public/blog-placeholder-1.jpg b/public/blog-placeholder-1.jpg deleted file mode 100644 index 74d4009b527342f03264c9caefd390aa5247b376..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32040 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 diff --git a/public/blog-placeholder-2.jpg b/public/blog-placeholder-2.jpg deleted file mode 100644 index c4214b0e639a782769ea329846e51ec066b7976e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33136 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͘pX%<6>2&FO; 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 diff --git a/public/blog-placeholder-3.jpg b/public/blog-placeholder-3.jpg deleted file mode 100644 index fbe2ac0cb0c744ddfa28d406c0e90956a3398aaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28687 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%0DiGW1X5wzY-YA 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 TVJ6o-Ra1Fns$2dL{aO4U($WiW diff --git a/public/blog-placeholder-4.jpg b/public/blog-placeholder-4.jpg deleted file mode 100644 index f4fc88e293c2d70d1b193101df252bf45ca57760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38690 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 T|DXOxj{SQDa(JEk*X+Lm3zv-d diff --git a/public/blog-placeholder-5.jpg b/public/blog-placeholder-5.jpg deleted file mode 100644 index c5646746c08c6521843002a7491abebe6ccdf6d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34890 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 IdcP0<*;<)SP5=M^ diff --git a/public/blog-placeholder-about.jpg b/public/blog-placeholder-about.jpg deleted file mode 100644 index cf5f68532f3ec832627250e7cc25c71cb034b263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21606 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 diff --git a/public/favicon.svg b/public/favicon.svg index f157bd1..af68d02 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,9 +1 @@ - - - - +s diff --git a/public/fonts.css b/public/fonts.css new file mode 100644 index 0000000..34bc55c --- /dev/null +++ b/public/fonts.css @@ -0,0 +1 @@ +/* System fonts keep the portal fast and avoid external font requests. */ diff --git a/public/fonts/atkinson-bold.woff b/public/fonts/atkinson-bold.woff deleted file mode 100644 index e7f8977eca89348892bc93330dc44763d2bcb5ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23780 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 TgZPdR1Wjq(Awr&0Te9!ymo0-qdNv>p)%*kYM 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 iK{P#$jT~-jX-b_^Z新手程序员https://semicoder.dev保持好奇,认真构建。记录编程路上的思考、实践与作品。从一个小项目开始,把想法变成作品https://semicoder.dev/blog/start-smallblog-start-small不必等到准备好所有知识。找到一个真实的小问题,做出一个能用的版本,然后不断打磨。Sun, 20 Sep 2026 00:00:00 GMT理解边缘运行时:代码到底在哪里执行?https://semicoder.dev/blog/understand-edge-runtimeblog-edge-runtime从浏览器、构建工具到 Cloudflare Workers,理清一段代码的运行边界。Fri, 18 Sep 2026 00:00:00 GMT让文档成为开发的一部分https://semicoder.dev/blog/docs-as-part-of-codeblog-documentation好文档不是项目结束后的补充,而是下一次顺利开始的入口。Tue, 15 Sep 2026 00:00:00 GMT \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..e45eec8 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1 @@ +https://semicoder.dev/https://semicoder.dev/bloghttps://semicoder.dev/projectshttps://semicoder.dev/docshttps://semicoder.dev/abouthttps://semicoder.dev/searchhttps://semicoder.dev/privacyhttps://semicoder.dev/ruleshttps://semicoder.dev/blog/start-smallhttps://semicoder.dev/projects/semicoderhttps://semicoder.dev/docs/semicoder/getting-startedhttps://semicoder.dev/docs/semicoder/writinghttps://semicoder.dev/blog/understand-edge-runtimehttps://semicoder.dev/blog/docs-as-part-of-code \ No newline at end of file diff --git a/scripts/build-check.ts b/scripts/build-check.ts new file mode 100644 index 0000000..5c07c5b --- /dev/null +++ b/scripts/build-check.ts @@ -0,0 +1,77 @@ +import { readFile, readdir } from "node:fs/promises"; +import { resolve, join, sep } from "node:path"; +import { pathToFileURL, fileURLToPath } from "node:url"; +import matter from "gray-matter"; +import type { ContentEntry } from "../src/lib/site.ts"; + +const root = resolve("dist/client"); +const entries: ContentEntry[] = JSON.parse(await readFile("src/generated/manifest.json", "utf8")); +const privateMarkers: string[] = []; +for (const kind of ["blog", "projects", "docs"]) { + for (const filename of await readdir(`content/${kind}`)) { + if (!/\.mdx?$/.test(filename)) continue; + const { data, content } = matter(await readFile(`content/${kind}/${filename}`, "utf8")); + if (data.draft) + privateMarkers.push(data.id, ...content.split("\n").filter((x) => x.length > 30)); + } +} +async function scan(directory: string): Promise { + for (const file of await readdir(directory, { withFileTypes: true })) { + const path = join(directory, file.name); + if (file.isDirectory()) await scan(path); + else if (/\.(html|js|json|xml|txt|map)$/.test(path)) { + const text = await readFile(path, "utf8"); + if (privateMarkers.some((marker) => text.includes(marker))) + throw new Error(`公开构建产物泄露草稿:${path}`); + } + } +} +await scan(root); +// Pagefind's actual WebAssembly runtime loads its generated assets through fetch. +// This adapter keeps the build check offline and confines reads to the built search directory. +const searchRoot = join(root, "pagefind"); +const loadSearchAsset = async (input: RequestInfo | URL) => { + const url = new URL( + typeof input === "string" ? input : input instanceof URL ? input.href : input.url, + ); + const path = fileURLToPath(url); + if (!path.startsWith(searchRoot + sep)) throw new Error("搜索资源越界"); + return new Response(await readFile(path), { + headers: { + "content-type": path.endsWith(".wasm") ? "application/wasm" : "application/octet-stream", + }, + }); +}; +Object.defineProperty(globalThis, "fetch", { value: loadSearchAsset, configurable: true }); +interface SearchIndex { + options(options: { baseUrl: string }): Promise; + search( + query: string, + options?: { filters: { type: string } }, + ): Promise<{ + results: { data(): Promise<{ url: string }> }[]; + }>; + destroy(): Promise; +} +const index: SearchIndex = await import(pathToFileURL(join(searchRoot, "pagefind.js")).href); +try { + await index.options({ baseUrl: "/" }); + for (const entry of entries) { + const found = await index.search(entry.title, { filters: { type: entry.kind } }); + const hits = await Promise.all(found.results.map((result) => result.data())); + if (!hits.some((hit) => hit.url.replace(/\/$/, "") === entry.path)) + throw new Error(`中文搜索或类型筛选不可用:${entry.path}`); + if ( + hits.some( + (hit) => + !entries.some( + (item) => item.path === hit.url.replace(/\/$/, "") && item.kind === entry.kind, + ), + ) + ) + throw new Error("搜索结果包含未发布内容或错误类型"); + } +} finally { + await index.destroy(); +} +console.log(`✓ 构建草稿隔离、${entries.length} 篇内容的中文搜索和类型筛选通过`); diff --git a/scripts/content.ts b/scripts/content.ts new file mode 100644 index 0000000..e79ac12 --- /dev/null +++ b/scripts/content.ts @@ -0,0 +1,238 @@ +import { mkdir, readdir, readFile, writeFile, rm } from "node:fs/promises"; +import { existsSync } from "node:fs"; +import { join } from "node:path"; +import matter from "gray-matter"; +import { z } from "zod"; +import { compile } from "@mdx-js/mdx"; +import * as pagefind from "pagefind"; +import type { ContentEntry, ContentKind } from "../src/lib/site"; +import { site } from "../src/lib/site"; + +const schema = z.object({ + id: z.string().regex(/^[a-z0-9][a-z0-9-]+$/), + title: z.string().min(1), + description: z.string().min(1), + slug: z.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/), + date: z.coerce.date().transform((d) => d.toISOString().slice(0, 10)), + updated: z.coerce + .date() + .transform((d) => d.toISOString().slice(0, 10)) + .optional(), + tags: z.array(z.string()).default([]), + comments: z.boolean().optional(), + sample: z.boolean().default(false), + draft: z.boolean().default(false), + project: z.string().optional(), + order: z.number().default(0), + stack: z.array(z.string()).default([]), + status: z.enum(["构建中", "已发布", "已归档"]).optional(), + source: z.url().optional(), + demo: z.url().optional(), + aliases: z.array(z.string().regex(/^\/(?!\/)[a-zA-Z0-9/_-]+$/)).default([]), +}); +export function contentPath(kind: ContentKind, data: { slug: string; project?: string }) { + return kind === "docs" ? `/docs/${data.project}/${data.slug}` : `/${kind}/${data.slug}`; +} +export function xml(value: string) { + return value.replace( + /[<>&"']/g, + (c) => ({ "<": "<", ">": ">", "&": "&", '"': """, "'": "'" })[c]!, + ); +} +export async function loadContent(preview = false) { + const all: { entry: ContentEntry; body: string }[] = []; + const ids = new Set(); + const paths = new Set(); + for (const kind of ["blog", "projects", "docs"] as const) { + for (const file of (await readdir(`content/${kind}`)).sort()) { + if (!/\.mdx?$/.test(file)) continue; + const filename = `content/${kind}/${file}`; + const { data: raw, content: body } = matter(await readFile(filename, "utf8")); + const data = schema.parse(raw); + if (kind === "docs" && !data.project) throw new Error(`${filename}: 文档需要 project`); + const path = contentPath(kind, data); + if (ids.has(data.id) || paths.has(path)) throw new Error(`${filename}: ID 或路径重复`); + ids.add(data.id); + paths.add(path); + await compile(body); + const counts = new Map(); + const toc = [...body.replace(/```[\s\S]*?```/g, "").matchAll(/^(#{2,3})\s+(.+)$/gm)].map( + (m) => { + const text = m[2].replace(/[*`]/g, ""); + const base = text + .toLowerCase() + .replace(/[^\p{L}\p{N}\s-]/gu, "") + .replace(/\s/g, "-"); + const n = counts.get(base) ?? 0; + counts.set(base, n + 1); + return { id: n ? `${base}-${n}` : base, text, depth: m[1].length }; + }, + ); + const entry: ContentEntry = { + ...data, + kind, + path, + file: filename, + comments: data.comments ?? kind !== "docs", + toc, + readingTime: Math.max(1, Math.ceil(body.length / 450)), + }; + all.push({ entry, body }); + } + } + for (const { entry } of all) { + if ( + entry.kind === "docs" && + !all.some((x) => x.entry.kind === "projects" && x.entry.slug === entry.project) + ) + throw new Error(`${entry.file}: 项目引用不存在`); + for (const alias of entry.aliases) { + if ( + paths.has(alias) || + [ + "/", + "/blog", + "/projects", + "/docs", + "/search", + "/admin", + "/about", + "/privacy", + "/rules", + ].includes(alias) + ) + throw new Error(`重定向冲突 ${alias}`); + paths.add(alias); + } + } + const visible = all.filter((x) => preview || !x.entry.draft); + const publicPaths = new Set([ + "/", + "/blog", + "/projects", + "/docs", + "/search", + "/about", + "/privacy", + "/rules", + ...visible.map((x) => x.entry.path), + ...visible.flatMap((x) => x.entry.aliases), + ]); + for (const { entry, body } of visible) { + if ( + entry.kind === "docs" && + !visible.some((x) => x.entry.kind === "projects" && x.entry.slug === entry.project) + ) + throw new Error(`公开文档不能引用草稿项目:${entry.file}`); + for (const m of body.matchAll(/!?\[[^\]]*\]\(([^\s)]+)(?:\s+[^)]*)?\)/g)) { + const href = m[1]; + if (/^(https?:|mailto:|#)/.test(href)) continue; + const target = href.split(/[?#]/)[0]; + if ( + !target.startsWith("/") || + (!publicPaths.has(target) && !existsSync(join("public", target))) + ) + throw new Error(`${entry.file}: 无效站内链接 ${href}`); + } + } + return visible.sort( + (a, b) => b.entry.date.localeCompare(a.entry.date) || a.entry.order - b.entry.order, + ); +} +export async function generate(check = false) { + const preview = process.env.CONTENT_PREVIEW === "true"; + if (preview && (process.env.CI || process.env.CLOUDFLARE_ENV)) + throw new Error("部署不能启用草稿预览"); + const rows = await loadContent(preview); + const entries = rows.map((x) => x.entry); + const manifest = JSON.stringify(entries, null, 2) + "\n"; + const redirects = + "# Generated from content aliases.\n" + + entries.flatMap((x) => x.aliases.map((alias) => `${alias} ${x.path} 308\n`)).join(""); + const contentModule = `// Generated by scripts/content.ts. Do not edit.\nimport type { ContentEntry } from "../lib/site";\n${rows.map((x, i) => `import C${i} from "./mdx/${x.entry.id}.mdx";`).join("\n")}\nexport const entries: ContentEntry[] = ${JSON.stringify(entries)};\nexport const components = {${rows.map((x, i) => `${JSON.stringify(x.entry.id)}: C${i}`).join(",")}};\n`; + if (check) { + if ( + !existsSync("src/generated/manifest.json") || + (await readFile("src/generated/manifest.json", "utf8")) !== manifest + ) + throw new Error("内容清单过期,请运行 bun run content:generate"); + if ((await readFile("src/generated/content.ts", "utf8")) !== contentModule) + throw new Error("内容入口过期,请运行 bun run content:generate"); + if ((await readFile("public/_redirects", "utf8")) !== redirects) + throw new Error("重定向清单过期,请运行 bun run content:generate"); + const modules = (await readdir("src/generated/mdx")).sort(); + if (JSON.stringify(modules) !== JSON.stringify(entries.map((x) => `${x.id}.mdx`).sort())) + throw new Error("生成目录包含缺失或多余内容,请运行 bun run content:generate"); + for (const { entry, body } of rows) + if ((await readFile(`src/generated/mdx/${entry.id}.mdx`, "utf8")) !== body) + throw new Error(`内容模块过期 ${entry.id}`); + console.log(`✓ ${rows.length} 篇内容校验通过`); + return; + } + await mkdir("src/generated/mdx", { recursive: true }); + await rm("src/generated/mdx", { recursive: true, force: true }); + await mkdir("src/generated/mdx", { recursive: true }); + await writeFile("src/generated/manifest.json", manifest); + for (const { entry, body } of rows) await writeFile(`src/generated/mdx/${entry.id}.mdx`, body); + await writeFile("src/generated/content.ts", contentModule); + await writeFile("public/_redirects", redirects); + const { index } = await pagefind.createIndex({ forceLanguage: "zh-cn" }); + if (!index) throw new Error("Pagefind 初始化失败"); + for (const { entry, body } of rows) { + const result = await index.addCustomRecord({ + url: entry.path, + content: `${entry.title}\n${entry.description}\n${body.replace(/import .*\n/g, "")}`, + language: "zh-cn", + meta: { title: entry.title, description: entry.description }, + filters: { type: [entry.kind] }, + }); + if (result.errors.length) throw new Error(result.errors.join(",")); + } + await rm("public/pagefind", { recursive: true, force: true }); + const result = await index.writeFiles({ outputPath: "public/pagefind" }); + if (result.errors.length) throw new Error(result.errors.join(",")); + await pagefind.close(); + await writeFile( + "public/pagefind/fallback.json", + JSON.stringify( + rows.map(({ entry, body }) => ({ + url: entry.path, + kind: entry.kind, + title: entry.title, + description: entry.description, + text: body.replace(/<[^>]*>/g, "").replace(/\s+/g, " "), + })), + ), + ); + const paths = [ + "/", + "/blog", + "/projects", + "/docs", + "/about", + "/search", + "/privacy", + "/rules", + ...entries.map((x) => x.path), + ]; + await writeFile( + "public/sitemap.xml", + `${paths.map((p) => `${site.url}${xml(p)}`).join("")}`, + ); + await writeFile( + "public/rss.xml", + `${site.name}${site.url}${site.description}${entries + .filter((x) => x.kind === "blog") + .map( + (x) => + `${xml(x.title)}${site.url}${x.path}${x.id}${xml(x.description)}${new Date(x.date).toUTCString()}`, + ) + .join("")}`, + ); + await writeFile( + "public/robots.txt", + `User-agent: *\nAllow: /\nDisallow: /admin\nDisallow: /api/\nDisallow: /_serverFn/\nSitemap: ${site.url}/sitemap.xml\n`, + ); + console.log(`✓ 已生成 ${entries.length} 篇内容、中文搜索和订阅资源`); +} +if (import.meta.main) await generate(process.argv.includes("--check")); diff --git a/scripts/deploy.ts b/scripts/deploy.ts new file mode 100644 index 0000000..62569a3 --- /dev/null +++ b/scripts/deploy.ts @@ -0,0 +1,27 @@ +import { readFile } from "node:fs/promises"; +import { parse } from "jsonc-parser"; +const target = process.argv[2]; +if (target !== "staging" && target !== "production") + throw new Error("必须指定 staging 或 production"); +if (process.env.CONTENT_PREVIEW) throw new Error("部署不可启用草稿预览"); +const config = parse(await readFile("wrangler.jsonc", "utf8")).env[target]; +if ( + !config.d1_databases[0].database_id || + config.d1_databases[0].database_id.startsWith("00000000") +) + throw new Error("请先配置目标环境的真实 D1 database_id,见 docs/deployment.md"); +if (!config.vars.TURNSTILE_SITE_KEY) throw new Error("请先配置 Turnstile site key"); +async function run(cmd: string[], env: Record = {}) { + const p = Bun.spawn(cmd, { + stdout: "inherit", + stderr: "inherit", + env: { ...process.env, ...env }, + }); + if ((await p.exited) !== 0) throw new Error(`失败:${cmd.join(" ")}`); +} +await run(["bun", "run", "check"]); +await run(["bun", "run", "build"], { CLOUDFLARE_ENV: target }); +await run(["bun", "run", "build:check"]); +await run(["bunx", "wrangler", "d1", "migrations", "apply", "DB", "--remote", "--env", target]); +await run(["bunx", "wrangler", "deploy", "--env", target]); +await run(["bun", "scripts/smoke.ts", config.vars.SITE_URL]); diff --git a/scripts/docs-impact.ts b/scripts/docs-impact.ts new file mode 100644 index 0000000..093219d --- /dev/null +++ b/scripts/docs-impact.ts @@ -0,0 +1,26 @@ +import { readFile } from "node:fs/promises"; +const base = process.env.DOCS_BASE_SHA; +if (!base) { + console.log("未指定比较基线,文档影响检查仅在 PR 中运行"); + process.exit(0); +} +if (!/^[a-f0-9]{40}$/.test(base)) throw new Error("无效比较基线"); +const proc = Bun.spawn(["git", "diff", "--name-only", `${base}...HEAD`], { + stdout: "pipe", + stderr: "inherit", +}); +const files = (await new Response(proc.stdout).text()).trim().split("\n"); +if ((await proc.exited) !== 0) throw new Error("无法读取 PR 差异"); +const mapping: Record = JSON.parse(await readFile("docs/impact.json", "utf8")); +const required = new Set( + Object.entries(mapping) + .filter(([prefix]) => files.some((f) => f.startsWith(prefix))) + .flatMap(([, docs]) => docs), +); +const missing = [...required].filter((doc) => !files.includes(doc)); +const reason = (process.env.PR_BODY ?? "").match(/docs-impact:\s*none\s*[—–-]\s*(\S[^\n]{9,})/i); +if (missing.length && !reason) + throw new Error( + `请同步更新文档:${missing.join(", ")};无文档影响时在 PR 中提供 docs-impact: none — 至少十个字符的具体原因`, + ); +console.log(missing.length ? "文档影响已声明,等待人工审查理由" : "✓ 文档影响检查通过"); diff --git a/scripts/docs.ts b/scripts/docs.ts new file mode 100644 index 0000000..8f901f2 --- /dev/null +++ b/scripts/docs.ts @@ -0,0 +1,61 @@ +import { readFile, writeFile, readdir } from "node:fs/promises"; +import { existsSync } from "node:fs"; +import { dirname, resolve } from "node:path"; +import { parse } from "jsonc-parser"; +import { getTableConfig } from "drizzle-orm/sqlite-core"; +import * as tables from "../src/server/db/schema"; +const pkg = JSON.parse(await readFile("package.json", "utf8")); +const config = parse(await readFile("wrangler.jsonc", "utf8")); +const routes: string[] = []; +for (const file of (await readdir("src/routes")).sort()) { + const text = await readFile(`src/routes/${file}`, "utf8"); + for (const m of text.matchAll(/createFileRoute\(["']([^"']+)["']\)/g)) routes.push(m[1]); +} +const secretNames = (await readFile(".dev.vars.example", "utf8")) + .split("\n") + .filter((x) => x.includes("=")) + .map((x) => x.split("=")[0]); +const tableRows = Object.values(tables) + .map((t) => getTableConfig(t)) + .sort((a, b) => a.name.localeCompare(b.name)); +const expected = `# 生成的技术清单\n\n由 \`bun run docs:generate\` 生成。不要手工编辑,不包含配置值或密钥。\n\n## 命令\n\n| 命令 | 实际执行 |\n| --- | --- |\n${Object.entries( + pkg.scripts, +) + .map(([k, v]) => `| \`bun run ${k}\` | \`${v}\` |`) + .join("\n")}\n\n## 路由\n\n${routes + .sort() + .map((r) => `- \`${r}\``) + .join( + "\n", + )}\n- \`/healthz\`(Worker)\n- \`/rss.xml\`、\`/sitemap.xml\`、\`/robots.txt\`(构建产物)\n\n## 环境变量名称\n\n${[ + ...Object.keys(config.vars), + ...secretNames, +] + .sort() + .map((k) => `- \`${k}\``) + .join( + "\n", + )}\n\n## 数据表\n\n| 表 | 列 |\n| --- | --- |\n${tableRows.map((t) => `| ${t.name} | ${t.columns.map((c) => c.name).join(", ")} |`).join("\n")}\n`; +if (process.argv.includes("--check")) { + if ( + !existsSync("docs/generated.md") || + (await readFile("docs/generated.md", "utf8")) !== expected + ) + throw new Error("技术清单已过期,运行 bun run docs:generate"); + for (const filename of [ + "AGENTS.md", + "README.md", + ...(await Array.fromAsync(new Bun.Glob("docs/**/*.md").scan("."))), + ]) { + const text = await readFile(filename, "utf8"); + for (const m of text.matchAll(/\[[^\]]*\]\(([^\s)]+)\)/g)) { + if (/^(https?:|mailto:|#|\/)/.test(m[1])) continue; + const target = resolve(dirname(filename), m[1].split("#")[0]); + if (!existsSync(target)) throw new Error(`${filename}: 链接不存在 ${m[1]}`); + } + } + console.log("✓ 文档链接和生成内容一致"); +} else { + await writeFile("docs/generated.md", expected); + console.log("✓ 已生成技术清单"); +} diff --git a/scripts/prepare-restore.py b/scripts/prepare-restore.py new file mode 100644 index 0000000..c530041 --- /dev/null +++ b/scripts/prepare-restore.py @@ -0,0 +1,38 @@ +"""Prepare a trusted D1 SQL export for restoration into a new, empty database.""" + +import os +import sqlite3 +import sys +from pathlib import Path + + +def prepare(source: str) -> str: + statements = [] + pending = "" + for line in source.splitlines(keepends=True): + pending += line + if sqlite3.complete_statement(pending): + statements.append(pending.strip()) + pending = "" + if pending.strip(): + raise ValueError("Incomplete SQL statement in export") + schema = [] + data = [] + for statement in statements: + # D1 exports child table data before some referenced tables exist. + # Deferred checks require every table to exist before inserting rows. + (schema if statement.upper().startswith("CREATE ") else data).append(statement) + if not schema: + raise ValueError("Export contains no schema") + return "PRAGMA defer_foreign_keys=TRUE;\n" + "\n".join(schema + data) + "\n" + + +if __name__ == "__main__": + if len(sys.argv) != 3: + raise SystemExit("Usage: python3 scripts/prepare-restore.py INPUT.sql OUTPUT.sql") + output = prepare(Path(sys.argv[1]).read_text()) + # Never overwrite a backup; restored SQL contains private authentication data. + descriptor = os.open(sys.argv[2], os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o600) + with os.fdopen(descriptor, "w") as target: + target.write(output) + print("Prepared restore SQL; original backup unchanged.") diff --git a/scripts/smoke.ts b/scripts/smoke.ts new file mode 100644 index 0000000..0af4b7e --- /dev/null +++ b/scripts/smoke.ts @@ -0,0 +1,53 @@ +export {}; +const base = process.argv[2] ?? "http://localhost:3000"; +for (const path of [ + "/", + "/blog", + "/projects", + "/docs", + "/search", + "/rss.xml", + "/sitemap.xml", + "/healthz", +]) { + const response = await fetch(new URL(path, base)); + if (!response.ok) throw new Error(`${path} 返回 ${response.status}`); + if (!path.includes(".") && path !== "/healthz") { + if (!(await response.text()).includes("新手程序员")) + throw new Error(`${path} 未返回新门户页面,请检查旧站绑定和缓存`); + if (response.headers.get("x-content-type-options") !== "nosniff") + throw new Error(`${path} 缺少静态安全响应头`); + } + if ( + path === "/healthz" && + base.startsWith("https:") && + ((await response.json()) as { status: string }).status !== "ready" + ) + throw new Error("线上动态服务尚未就绪"); + console.log(`✓ ${path} ${response.status}`); +} +const missing = await fetch(new URL("/this-page-does-not-exist", base)); +if (missing.status !== 404) throw new Error(`404 页面返回 ${missing.status}`); +const session = await fetch(new URL("/api/auth/get-session", base)); +if (!session.ok || !session.headers.get("content-type")?.includes("application/json")) + throw new Error("认证接口未返回有效 JSON 响应"); +if (!session.headers.get("cache-control")?.includes("no-store")) + throw new Error("认证接口缺少 no-store"); +const admin = await fetch(new URL("/admin", base)); +if (!admin.ok || !admin.headers.get("cache-control")?.includes("no-store")) + throw new Error("后台页面不可用或缺少 no-store"); +if (new URL(base).hostname === "semicoder.dev") { + const redirect = await fetch("https://www.semicoder.dev/blog?source=smoke", { + redirect: "manual", + }); + if ( + redirect.status !== 308 || + redirect.headers.get("location") !== "https://semicoder.dev/blog?source=smoke" + ) + throw new Error("www 重定向未保留路径和查询参数"); + const https = await fetch("http://semicoder.dev/", { redirect: "manual" }); + if (![301, 308].includes(https.status) || https.headers.get("location") !== base + "/") + throw new Error("HTTP 未跳转至 HTTPS"); + console.log("✓ HTTPS 与 www 规范域名跳转"); +} +console.log("✓ 404、安全响应头与认证/后台缓存隔离"); diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro deleted file mode 100644 index 6f5c5c8..0000000 --- a/src/components/BaseHead.astro +++ /dev/null @@ -1,55 +0,0 @@ ---- -// Import the global.css file here so that it is included on -// all pages through the use of the component. -import '../styles/global.css'; -import { SITE_TITLE } from '../consts'; - -interface Props { - title: string; - description: string; - image?: string; -} - -const canonicalURL = new URL(Astro.url.pathname, Astro.site); - -const { title, description, image = '/blog-placeholder-1.jpg' } = Astro.props; ---- - - - - - - - - - - - - - - - - - -{title} - - - - - - - - - - - - - - - - diff --git a/src/components/ContentCards.module.css b/src/components/ContentCards.module.css new file mode 100644 index 0000000..89a53eb --- /dev/null +++ b/src/components/ContentCards.module.css @@ -0,0 +1,183 @@ +.article { + display: grid; + grid-template-columns: 32px 1fr 26px; + gap: 16px; + padding: 27px 0; + border-top: 1px solid var(--line); +} +.number { + font: + 11px ui-monospace, + monospace; + color: var(--muted); + padding-top: 4px; +} +.meta { + display: flex; + align-items: center; + gap: 10px; + font-size: 11px; + color: var(--muted); + margin-bottom: 11px; +} +.meta > span:first-child { + color: var(--green); +} +.article h3 { + font-size: 20px; + line-height: 1.6; + margin: 0 0 8px; + letter-spacing: -0.02em; +} +.article p { + font-size: 13px; + line-height: 1.8; + color: var(--muted); + margin: 0; +} +.articleBottom { + margin-top: 15px; + display: flex; + gap: 20px; + font-size: 10px; + color: var(--muted); +} +.arrow { + padding-top: 25px; + color: var(--muted); +} +.project { + border: 1px solid var(--line); + border-radius: 12px; + overflow: hidden; + background: var(--surface); +} +.visual { + position: relative; + background: #232a25; + min-height: 225px; + padding: 16px 22px; + color: #dce5da; +} +.windowBar { + display: flex; + gap: 5px; + align-items: center; +} +.windowBar > span { + height: 6px; + width: 6px; + background: #5e685e; + border-radius: 50%; +} +.windowBar small { + font: 9px monospace; + color: #94a08f; + margin-left: auto; +} +.codeArt { + font: + 12px/1.85 ui-monospace, + monospace; + padding: 25px 10px; +} +.codeOrange { + color: #e8a075; +} +.codeGreen { + color: #a5b891; +} +.codeDim { + color: #7e8e7a; +} +.indent { + padding-left: 24px; +} +.buildBadge { + font: 8px monospace; + letter-spacing: 1.5px; + color: #9aa995; + position: absolute; + right: 20px; + bottom: 18px; +} +.buildBadge span { + display: inline-block; + width: 4px; + height: 4px; + border-radius: 50%; + background: #acc49d; + margin-right: 8px; +} +.projectBody { + padding: 24px; +} +.projectMeta { + display: flex; + align-items: center; + justify-content: space-between; +} +.projectIcon { + display: grid; + place-items: center; + width: 36px; + height: 36px; + border: 1px solid var(--line); + border-radius: 8px; +} +.project h3 { + margin: 18px 0 10px; + font-size: 23px; +} +.project h3 a { + display: flex; + justify-content: space-between; +} +.project p { + font-size: 13px; + line-height: 1.9; + color: var(--muted); +} +.stack { + display: flex; + flex-wrap: wrap; + gap: 7px; + font-size: 10px; + color: var(--muted); +} +.stack span { + padding: 5px 8px; + background: var(--paper); + border-radius: 4px; +} +.projectFooter { + margin-top: 23px; + padding-top: 17px; + border-top: 1px solid var(--line); + display: flex; + align-items: center; + justify-content: space-between; + font-size: 11px; + color: var(--muted); +} +.projectFooter a { + display: flex; + align-items: center; + gap: 7px; +} +@media (max-width: 650px) { + .article { + grid-template-columns: 1fr 22px; + gap: 10px; + } + .number { + display: none; + } + .article h3 { + font-size: 18px; + } + .meta { + flex-wrap: wrap; + font-size: 10px; + } +} diff --git a/src/components/ContentCards.tsx b/src/components/ContentCards.tsx new file mode 100644 index 0000000..c4f379d --- /dev/null +++ b/src/components/ContentCards.tsx @@ -0,0 +1,99 @@ +import { ArrowUpRight, Code2, ArrowRight } from "lucide-react"; +import type { ContentEntry } from "../lib/site"; +import { formatDate } from "../lib/site"; +import styles from "./ContentCards.module.css"; +export function ArticleList({ items }: { items: ContentEntry[] }) { + return ( +

+ {items.map((item, i) => ( + + ))} +
+ ); +} +export function ProjectCard({ item }: { item: ContentEntry }) { + return ( +
+ +
+
+ + + + {item.status} +
+

+ + {item.title} + + +

+

{item.description}

+
+ {item.stack.map((x) => ( + {x} + ))} +
+
+ {item.sample ? 示例项目介绍 : 开源项目} + + 查看项目 + +
+
+
+ ); +} diff --git a/src/components/ContentPage.module.css b/src/components/ContentPage.module.css new file mode 100644 index 0000000..ac98ace --- /dev/null +++ b/src/components/ContentPage.module.css @@ -0,0 +1,145 @@ +.heading { + padding: 45px 0 35px; + border-bottom: 1px solid var(--line); + max-width: 960px; +} +.back { + display: flex; + gap: 8px; + align-items: center; + font-size: 12px; + color: var(--muted); + margin-bottom: 30px; +} +.heading h1 { + font-size: 42px; + line-height: 1.5; + margin: 18px 0 15px; + max-width: 850px; +} +.heading > p { + font-size: 16px; + line-height: 1.9; + color: var(--muted); + max-width: 750px; +} +.meta { + display: flex; + gap: 13px; + align-items: center; + font-size: 11px; + color: var(--muted); + margin-top: 24px; +} +.meta > span { + display: flex; + gap: 6px; + align-items: center; +} +.layout { + display: grid; + grid-template-columns: minmax(0, 740px) minmax(180px, 1fr); + gap: 70px; + padding-top: 25px; +} +.sidebar { + padding-top: 24px; + align-self: start; + position: sticky; + top: 25px; +} +.sidebar .eyebrow { + font-size: 9px; +} +.sidebar nav { + display: flex; + flex-direction: column; + gap: 15px; + font-size: 12px; + color: var(--muted); + margin: 24px 0 35px; + border-left: 1px solid var(--line); + padding-left: 18px; +} +.sidebar a[aria-current] { + color: var(--accent); +} +.sidebarNote { + border: 1px solid var(--line); + padding: 22px; + line-height: 1.9; + font-size: 15px; + background: var(--accent-soft); + border-radius: 5px; + margin-top: 35px; +} +.sidebarNote span { + display: block; + color: var(--accent); + margin-top: 15px; + font-size: 25px; +} +.articleFooter { + display: flex; + justify-content: space-between; + border-top: 1px solid var(--line); + border-bottom: 1px solid var(--line); + margin-top: 45px; + padding: 20px 0; + color: var(--muted); + font-size: 11px; +} +.articleFooter a { + display: flex; + align-items: center; + gap: 4px; +} +.pagination { + display: flex; + justify-content: space-between; + margin-top: 25px; +} +@media (max-width: 850px) { + .layout { + grid-template-columns: 1fr; + gap: 20px; + } + .sidebar { + position: static; + order: -1; + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; + border-bottom: 1px solid var(--line); + padding: 0 0 20px; + } + .sidebar nav { + flex-direction: row; + flex-wrap: wrap; + margin: 10px 0; + padding-left: 10px; + } + .sidebarNote { + display: none; + } + .heading h1 { + font-size: 32px; + } + .heading > p { + font-size: 14px; + } +} +@media (max-width: 450px) { + .heading h1 { + font-size: 27px; + } + .meta { + flex-wrap: wrap; + font-size: 10px; + } + .articleFooter { + gap: 15px; + flex-wrap: wrap; + } +} diff --git a/src/components/ContentPage.tsx b/src/components/ContentPage.tsx new file mode 100644 index 0000000..37a4d3b --- /dev/null +++ b/src/components/ContentPage.tsx @@ -0,0 +1,126 @@ +import { ArrowLeft, ArrowRight, ArrowUpRight, BookOpen, Clock, GitFork } from "lucide-react"; +import { entries, components } from "../generated/content"; +import type { ContentEntry } from "../lib/site"; +import { formatDate, site } from "../lib/site"; +import { Comments } from "../features/Comments"; +import styles from "./ContentPage.module.css"; +export function ContentPage({ entry }: { entry: ContentEntry }) { + const Component = components[entry.id as keyof typeof components]; + const documents = entries + .filter((x) => x.kind === "docs" && x.project === (entry.project ?? entry.slug)) + .sort((a, b) => a.order - b.order); + const index = documents.findIndex((x) => x.id === entry.id); + const kindName = { blog: "博客", projects: "项目", docs: "文档" }[entry.kind]; + return ( + <> +
+ + + {kindName} + +
+ {entry.tags.map((t) => ( + + {t} + + ))} + {entry.sample && 示例内容 · 展示与开发用途} + {entry.draft && 草稿预览} +
+

{entry.title}

+

{entry.description}

+
+ 新手程序员 + · + + · + + + {entry.readingTime} 分钟阅读 + +
+ {entry.kind === "projects" && ( +
+ {entry.source && ( + + + 查看源码 + + + )} + {entry.demo && ( + + 在线演示 ↗ + + )} + {documents[0] && ( + + + 阅读文档 + + )} +
+ )} +
+
+
+
+ +
+
+ 保持好奇,持续构建。 + + 在 GitHub 编辑 + +
+ {entry.kind === "docs" && ( +
+ {documents[index - 1] ? ( + + + {documents[index - 1].title} + + ) : ( + + )} + {documents[index + 1] && ( + + {documents[index + 1].title} + + + )} +
+ )} + {entry.comments && } +
+ +
+ + ); +} diff --git a/src/components/Footer.astro b/src/components/Footer.astro deleted file mode 100644 index 96c2fce..0000000 --- a/src/components/Footer.astro +++ /dev/null @@ -1,62 +0,0 @@ ---- -const today = new Date(); ---- - - - diff --git a/src/components/FormattedDate.astro b/src/components/FormattedDate.astro deleted file mode 100644 index 1bcce73..0000000 --- a/src/components/FormattedDate.astro +++ /dev/null @@ -1,17 +0,0 @@ ---- -interface Props { - date: Date; -} - -const { date } = Astro.props; ---- - - diff --git a/src/components/Header.astro b/src/components/Header.astro deleted file mode 100644 index fc9cdef..0000000 --- a/src/components/Header.astro +++ /dev/null @@ -1,85 +0,0 @@ ---- -import HeaderLink from './HeaderLink.astro'; -import { SITE_TITLE } from '../consts'; ---- - -
- -
- diff --git a/src/components/HeaderLink.astro b/src/components/HeaderLink.astro deleted file mode 100644 index 41da846..0000000 --- a/src/components/HeaderLink.astro +++ /dev/null @@ -1,24 +0,0 @@ ---- -import type { HTMLAttributes } from 'astro/types'; - -type Props = HTMLAttributes<'a'>; - -const { href, class: className, ...props } = Astro.props; -const pathname = Astro.url.pathname.replace(import.meta.env.BASE_URL, ''); -const subpath = pathname.match(/[^\/]+/g); -const isActive = href === pathname || href === '/' + (subpath?.[0] || ''); ---- - - - - - diff --git a/src/components/Shell.module.css b/src/components/Shell.module.css new file mode 100644 index 0000000..de1c223 --- /dev/null +++ b/src/components/Shell.module.css @@ -0,0 +1,223 @@ +.header { + max-width: 1280px; + margin: auto; + height: 100px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 48px; + border-bottom: 1px solid var(--line); + gap: 36px; +} +.brand { + display: flex; + align-items: center; + gap: 12px; + text-decoration: none; +} +.logo { + background: var(--ink); + color: var(--paper); + width: 43px; + height: 43px; + border-radius: 9px; + display: flex; + align-items: center; + justify-content: center; + font: 700 29px monospace; + letter-spacing: -3px; + padding-right: 5px; +} +.logo span { + color: var(--accent); +} +.brand strong { + font-size: 17px; + letter-spacing: 1.5px; + display: block; +} +.dot { + color: var(--accent); +} +.brand small { + font-size: 10px; + letter-spacing: 4px; + color: var(--muted); + display: block; + margin-top: 3px; +} +.nav { + display: flex; + gap: 30px; + font-size: 14px; +} +.nav a { + position: relative; + color: var(--muted); + padding: 38px 0; +} +.nav a:hover, +.nav .active { + color: var(--ink); +} +.nav .active:after { + content: ""; + position: absolute; + bottom: 22px; + left: 50%; + width: 4px; + height: 4px; + background: var(--accent); + border-radius: 50%; +} +.actions { + display: flex; + align-items: center; + gap: 8px; +} +.login { + border: 1px solid var(--line); + background: transparent; + display: flex; + gap: 7px; + align-items: center; + padding: 8px 12px; + border-radius: 6px; + font-size: 12px; +} +.login:disabled { + opacity: 0.5; + cursor: not-allowed; +} +.account { + font-size: 12px; + max-width: 85px; + overflow: hidden; + text-overflow: ellipsis; +} +.menu { + display: none !important; +} +.main { + max-width: 1280px; + padding: 0 48px; + margin: auto; + min-height: 65vh; +} +.footer { + max-width: 1280px; + margin: 80px auto 0; + padding: 0 48px; +} +.footerTop { + padding: 38px 0; + display: flex; + align-items: center; + justify-content: space-between; + border-top: 1px solid var(--line); + border-bottom: 1px solid var(--line); +} +.footerBrand { + font-size: 23px; + font-weight: 650; +} +.footerBrand span { + color: var(--accent); + margin-left: 14px; +} +.footerTop p { + font-size: 13px; + color: var(--muted); + margin: 12px 0 0; +} +.footerBottom { + padding: 25px 0 32px; + display: flex; + justify-content: space-between; + color: var(--muted); + font-size: 11px; + gap: 16px; +} +.footerBottom > div { + display: flex; + gap: 22px; +} +.built span { + color: var(--green); + margin-left: 6px; + font-size: 8px; +} +@media (max-width: 900px) { + .header { + gap: 16px; + padding: 0 24px; + } + .nav { + gap: 18px; + } + .main, + .footer { + padding: 0 24px; + } + .brand strong { + font-size: 14px; + } + .account { + display: none; + } +} +@media (max-width: 650px) { + .header { + height: 80px; + padding: 0 20px; + } + .main, + .footer { + padding: 0 20px; + } + .menu { + display: grid !important; + } + .nav { + display: none; + position: absolute; + top: 80px; + left: 0; + right: 0; + background: var(--paper); + z-index: 20; + padding: 20px; + border-bottom: 1px solid var(--line); + } + .nav.open { + display: flex; + flex-wrap: wrap; + } + .nav a { + padding: 12px; + } + .nav .active:after { + bottom: 3px; + } + .login { + font-size: 0; + padding: 8px; + } + .login svg { + width: 17px; + } + .footerTop { + align-items: flex-start; + gap: 20px; + flex-direction: column; + } + .footerBottom { + flex-wrap: wrap; + } + .built { + display: none; + } + .brand small { + letter-spacing: 3px; + } +} diff --git a/src/components/Shell.tsx b/src/components/Shell.tsx new file mode 100644 index 0000000..77b6417 --- /dev/null +++ b/src/components/Shell.tsx @@ -0,0 +1,151 @@ +import { useState, type ReactNode } from "react"; +import { Link } from "@tanstack/react-router"; +import { useQueryClient } from "@tanstack/react-query"; +import { Search, Sun, Moon, Menu, X, ArrowUpRight, GitFork, Rss, LogOut } from "lucide-react"; +import { authClient, signIn, useSessionInfo } from "../lib/client"; +import styles from "./Shell.module.css"; +export function Shell({ children }: { children: ReactNode }) { + const [open, setOpen] = useState(false), + [loginError, setLoginError] = useState(""); + const { data: session } = useSessionInfo(); + const query = useQueryClient(); + function toggleTheme() { + const value = document.documentElement.dataset.theme === "dark" ? "light" : "dark"; + document.documentElement.dataset.theme = value; + try { + localStorage.setItem("theme", value); + } catch { + /* Theme still works when storage is unavailable. */ + } + } + async function login() { + try { + setLoginError(""); + await signIn(); + } catch { + setLoginError("登录暂时不可用,请稍后重试"); + } + } + return ( + <> + + 跳到正文 + +
+ + + s_ + + + + SEMICODER. + + 新手程序员 + + + +
+ + + + + {session?.actor ? ( + <> + + {session.actor.name} + + + + ) : ( + + )} + +
+
+ {loginError && ( +

+ {loginError} +

+ )} +
+ {children} +
+ + + ); +} diff --git a/src/consts.ts b/src/consts.ts deleted file mode 100644 index 69e1b82..0000000 --- a/src/consts.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Place any global data in this file. -// You can import this data from anywhere in your site by using the `import` keyword. - -export const SITE_TITLE = 'Semicoder'; -export const SITE_DESCRIPTION = 'Semicoder'; -export const SITE_URL = 'https://semicoder.dev'; \ No newline at end of file diff --git a/src/content.config.ts b/src/content.config.ts deleted file mode 100644 index 1230503..0000000 --- a/src/content.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { glob } from 'astro/loaders'; -import { defineCollection, z } from 'astro:content'; - -const posts = defineCollection({ - // Load Markdown and MDX files in the `src/content/posts/` directory. - loader: glob({ base: './src/content/posts', pattern: '**/*.{md,mdx}' }), - // Type-check frontmatter using a schema - schema: z.object({ - title: z.string(), - description: z.string(), - tags: z.array(z.string()).optional(), - // Transform string to Date object - pubDate: z.coerce.date(), - updatedDate: z.coerce.date().optional(), - heroImage: z.string().optional(), - }), -}); - -export const collections = { posts }; diff --git a/src/content/posts/first-post.md b/src/content/posts/first-post.md deleted file mode 100644 index efa4524..0000000 --- a/src/content/posts/first-post.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 'First post' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 08 2022' -heroImage: '/blog-placeholder-3.jpg' -tags: ['test'] ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. - -Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi. - -Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim. - -Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi. - -Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna. diff --git a/src/content/posts/markdown-style-guide.md b/src/content/posts/markdown-style-guide.md deleted file mode 100644 index 4ffdd99..0000000 --- a/src/content/posts/markdown-style-guide.md +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: 'Markdown Style Guide' -description: 'Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro.' -pubDate: 'Jun 19 2024' -heroImage: '/blog-placeholder-1.jpg' -tags: [] ---- - -Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro. - -## Headings - -The following HTML `

`—`

` elements represent six levels of section headings. `

` is the highest section level while `

` is the lowest. - -# H1 - -## H2 - -### H3 - -#### H4 - -##### H5 - -###### H6 - -## Paragraph - -Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat. - -Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat. - -## Images - -### Syntax - -```markdown -![Alt text](./full/or/relative/path/of/image) -``` - -### Output - -![blog placeholder](/blog-placeholder-about.jpg) - -## Blockquotes - -The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations. - -### Blockquote without attribution - -#### Syntax - -```markdown -> Tiam, ad mint andaepu dandae nostion secatur sequo quae. -> **Note** that you can use _Markdown syntax_ within a blockquote. -``` - -#### Output - -> Tiam, ad mint andaepu dandae nostion secatur sequo quae. -> **Note** that you can use _Markdown syntax_ within a blockquote. - -### Blockquote with attribution - -#### Syntax - -```markdown -> Don't communicate by sharing memory, share memory by communicating.
-> — Rob Pike[^1] -``` - -#### Output - -> Don't communicate by sharing memory, share memory by communicating.
-> — Rob Pike[^1] - -[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. - -## Tables - -### Syntax - -```markdown -| Italics | Bold | Code | -| --------- | -------- | ------ | -| _italics_ | **bold** | `code` | -``` - -### Output - -| Italics | Bold | Code | -| --------- | -------- | ------ | -| _italics_ | **bold** | `code` | - -## Code Blocks - -### Syntax - -we can use 3 backticks ``` in new line and write snippet and close with 3 backticks on new line and to highlight language specific syntax, write one word of language name after first 3 backticks, for eg. html, javascript, css, markdown, typescript, txt, bash - -````markdown -```html - - - - - Example HTML5 Document - - -

Test

- - -``` -```` - -### Output - -```html - - - - - Example HTML5 Document - - -

Test

- - -``` - -## List Types - -### Ordered List - -#### Syntax - -```markdown -1. First item -2. Second item -3. Third item -``` - -#### Output - -1. First item -2. Second item -3. Third item - -### Unordered List - -#### Syntax - -```markdown -- List item -- Another item -- And another item -``` - -#### Output - -- List item -- Another item -- And another item - -### Nested list - -#### Syntax - -```markdown -- Fruit - - Apple - - Orange - - Banana -- Dairy - - Milk - - Cheese -``` - -#### Output - -- Fruit - - Apple - - Orange - - Banana -- Dairy - - Milk - - Cheese - -## Other Elements — abbr, sub, sup, kbd, mark - -### Syntax - -```markdown -GIF is a bitmap image format. - -H2O - -Xn + Yn = Zn - -Press CTRL + ALT + Delete to end the session. - -Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. -``` - -### Output - -GIF is a bitmap image format. - -H2O - -Xn + Yn = Zn - -Press CTRL + ALT + Delete to end the session. - -Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. diff --git a/src/content/posts/second-post.md b/src/content/posts/second-post.md deleted file mode 100644 index 8c8dd60..0000000 --- a/src/content/posts/second-post.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 'Second post' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 15 2022' -heroImage: '/blog-placeholder-4.jpg' -tags: [] ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. - -Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi. - -Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim. - -Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi. - -Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna. diff --git a/src/content/posts/third-post.md b/src/content/posts/third-post.md deleted file mode 100644 index a06bd93..0000000 --- a/src/content/posts/third-post.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 'Third post' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 22 2022' -heroImage: '/blog-placeholder-2.jpg' -tags: [] ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. - -Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi. - -Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim. - -Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi. - -Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna. diff --git a/src/content/posts/using-mdx.mdx b/src/content/posts/using-mdx.mdx deleted file mode 100644 index f8a9410..0000000 --- a/src/content/posts/using-mdx.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 'Using MDX' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jun 01 2024' -heroImage: '/blog-placeholder-5.jpg' -tags: [] ---- - -This theme comes with the [@astrojs/mdx](https://docs.astro.build/en/guides/integrations-guide/mdx/) integration installed and configured in your `astro.config.mjs` config file. If you prefer not to use MDX, you can disable support by removing the integration from your config file. - -## Why MDX? - -MDX is a special flavor of Markdown that supports embedded JavaScript & JSX syntax. This unlocks the ability to [mix JavaScript and UI Components into your Markdown content](https://docs.astro.build/en/guides/markdown-content/#mdx-features) for things like interactive charts or alerts. - -If you have existing content authored in MDX, this integration will hopefully make migrating to Astro a breeze. - -## Example - -Here is how you import and use a UI component inside of MDX. -When you open this page in the browser, you should see the clickable button below. - -import HeaderLink from '../../components/HeaderLink.astro'; - - - Embedded component in MDX - - -## More Links - -- [MDX Syntax Documentation](https://mdxjs.com/docs/what-is-mdx) -- [Astro Usage Documentation](https://docs.astro.build/en/guides/markdown-content/#markdown-and-mdx-pages) -- **Note:** [Client Directives](https://docs.astro.build/en/reference/directives-reference/#client-directives) are still required to create interactive components. Otherwise, all components in your MDX will render as static HTML (no JavaScript) by default. diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..8b7dd7b --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,5 @@ +declare module "*.mdx" { + import type { ComponentType } from "react"; + const MDXContent: ComponentType; + export default MDXContent; +} diff --git a/src/features/Comments.module.css b/src/features/Comments.module.css new file mode 100644 index 0000000..9377aae --- /dev/null +++ b/src/features/Comments.module.css @@ -0,0 +1,132 @@ +.section { + margin-top: 50px; +} +.section h2 { + display: flex; + gap: 9px; + align-items: center; +} +.hint { + font-size: 13px; + color: var(--muted); +} +.empty { + font-size: 13px; + color: var(--muted); + text-align: center; + padding: 35px; + background: var(--surface); + border: 1px dashed var(--line); + border-radius: 8px; + margin: 25px 0; +} +.login { + display: flex; + align-items: center; + gap: 16px; + padding: 23px; + border: 1px solid var(--line); + border-radius: 8px; + margin-top: 20px; + background: var(--surface); +} +.login strong { + font-size: 13px; +} +.login p { + font-size: 11px; + color: var(--muted); + margin: 7px 0 0; + line-height: 1.8; +} +.login button { + margin-left: auto; + white-space: nowrap; +} +.comment { + padding: 20px 0; + border-top: 1px solid var(--line); +} +.commentHead { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} +.avatar { + width: 28px; + height: 28px; + border-radius: 50%; + display: grid; + place-items: center; + background: var(--accent-soft); + color: var(--accent); + font-size: 12px; +} +.commentHead strong { + font-size: 12px; +} +.commentHead time { + font-size: 10px; + color: var(--muted); +} +.markdown { + font-size: 14px; +} +.markdown p { + margin: 10px 0; +} +.commentActions { + display: flex; + gap: 14px; +} +.commentActions button { + border: 0; + background: transparent; + color: var(--muted); + font-size: 11px; + padding: 4px 0; +} +.reply { + margin-left: 30px; + padding-left: 15px; + border-left: 2px solid var(--line); +} +.pending { + margin-top: 20px; +} +.form { + margin-top: 25px; +} +.form > label { + display: inline-block; + font-size: 13px; + margin: 0 12px 12px 0; +} +.form textarea { + resize: vertical; + line-height: 1.8; +} +.formFooter { + display: flex; + align-items: center; + justify-content: space-between; + margin: 12px 0; + font-size: 11px; + color: var(--muted); +} +@media (max-width: 550px) { + .login { + flex-wrap: wrap; + padding: 18px; + } + .login > svg { + display: none; + } + .login button { + margin-left: 0; + } + .reply { + margin-left: 10px; + } +} diff --git a/src/features/Comments.tsx b/src/features/Comments.tsx new file mode 100644 index 0000000..444473f --- /dev/null +++ b/src/features/Comments.tsx @@ -0,0 +1,260 @@ +import { useState, useRef, type FormEvent } from "react"; +import { useQuery, useQueryClient } from "@tanstack/react-query"; +import ReactMarkdown from "react-markdown"; +import remarkGfm from "remark-gfm"; +import { MessageSquare, GitFork } from "lucide-react"; +import { useSessionInfo, useMounted, unwrap, signIn } from "../lib/client"; +import { getComments, postComment, updateComment, removeComment } from "../server/functions"; +import type { CommentRow } from "../server/comments"; +import { Turnstile } from "./Turnstile"; +import styles from "./Comments.module.css"; +export function Comments({ contentId }: { contentId: string }) { + const mounted = useMounted(), + { data: session } = useSessionInfo(), + queryClient = useQueryClient(); + const [page, setPage] = useState(0), + [body, setBody] = useState(""), + [token, setToken] = useState(""), + [widget, setWidget] = useState(0), + [busy, setBusy] = useState(false), + [message, setMessage] = useState(""); + const [reply, setReply] = useState(null), + [editing, setEditing] = useState(null); + const requestId = useRef(null); + const comments = useQuery({ + queryKey: ["comments", contentId, page, session?.actor?.id], + queryFn: async () => unwrap(await getComments({ data: { contentId, page } })), + enabled: mounted, + retry: false, + }); + async function refresh() { + await queryClient.invalidateQueries({ queryKey: ["comments", contentId] }); + } + async function submit(event: FormEvent) { + event.preventDefault(); + if (busy || !token) return; + setBusy(true); + setMessage(""); + try { + requestId.current ??= crypto.randomUUID(); + if (editing) + unwrap( + await updateComment({ data: { id: editing.id, version: editing.version, body, token } }), + ); + else + unwrap( + await postComment({ + data: { + contentId, + body, + parentId: reply?.id ?? null, + requestId: requestId.current, + token, + }, + }), + ); + setBody(""); + setReply(null); + setEditing(null); + requestId.current = null; + setMessage("评论已提交。待审核内容通过后会公开展示。"); + await refresh(); + } catch (error) { + setMessage(error instanceof Error ? error.message : "提交失败,请稍后重试"); + } finally { + setBusy(false); + setToken(""); + setWidget((x) => x + 1); + } + } + async function remove(id: string) { + if (!window.confirm("删除这条评论?已有回复将保留。")) return; + setMessage(""); + try { + unwrap(await removeComment({ data: { id } })); + await refresh(); + } catch (error) { + setMessage(error instanceof Error ? error.message : "删除失败"); + } + } + function renderComment(c: CommentRow, child = false) { + const own = c.user_id === session?.actor?.id; + return ( +
+
+ {c.name.slice(0, 1).toUpperCase()} + {c.name} + + {c.status === "pending" && 待审核 · 仅你可见} +
+ {c.status === "deleted" ? ( +

此评论已删除

+ ) : ( +
+ ( + + {children} + + ), + }} + > + {c.body} + +
+ )} +
+ {session?.actor && !child && c.status !== "pending" && ( + + )} + {own && c.status !== "deleted" && ( + <> + + + + )} +
+
+ ); + } + return ( +
+
+

+ 一起讨论 +

+ 评论规则 ↗ +
+

分享你的想法,让每一次交流都有收获。

+ {comments.isError ? ( +
+ 评论暂时无法加载,正文不受影响。 + +
+ ) : comments.data?.roots.length ? ( + <> + {comments.data.roots.map((c) => ( +
+ {renderComment(c)} + {comments.data.replies + .filter((r) => r.parent_id === c.id) + .map((r) => renderComment(r, true))} +
+ ))} +
+ + 第 {page + 1} 页 + +
+ + ) : ( +

还没有公开评论。欢迎留下第一个想法。

+ )} + {!!comments.data?.mine.length && ( +
{comments.data.mine.map((c) => renderComment(c))}
+ )} + {!session?.actor ? ( +
+ +
+ 用 GitHub 加入讨论 +

+ {session?.configured + ? "首次评论审核通过后会公开显示。" + : "评论功能正在准备中,你可以先阅读和浏览内容。"} +

+
+ +
+ ) : ( +
+ + {(reply || editing) && ( + + )} +