From b7addb5c7a35911156d4ca5ede31c2ef69434a0a Mon Sep 17 00:00:00 2001 From: Kaxi <1042864399@qq.com> Date: Sun, 31 May 2026 21:27:39 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .env.example | 3 + .gitignore | 10 + CLAUDE.md | 70 + README.md | 73 + app.vue | 13 + assets/css/main.css | 218 + components/blog/Giscus.vue | 51 + components/blog/PostCard.vue | 111 + components/blog/PostToc.vue | 104 + components/content/ProseImg.vue | 21 + components/layout/Footer.vue | 13 + components/layout/NavBar.vue | 73 + components/layout/ThemeToggle.vue | 44 + composables/usePostSearch.ts | 127 + config/site.ts | 62 + content.config.ts | 20 + content/posts/docker-musl-build/img/cover.svg | 1 + .../img/image-20250327100813512.png | Bin 0 -> 53774 bytes content/posts/docker-musl-build/index.md | 132 + content/posts/docker-user-start/img/cover.svg | 1 + content/posts/docker-user-start/index.md | 89 + content/posts/hello-world/img/cover.jpg | Bin 0 -> 16922 bytes content/posts/hello-world/index.md | 93 + .../posts/nuxt-content-lessons/img/cover.jpg | Bin 0 -> 22613 bytes content/posts/nuxt-content-lessons/index.md | 162 + .../nuxt-tailwind-underline-fix/img/cover.png | Bin 0 -> 35672 bytes .../nuxt-tailwind-underline-fix/index.md | 75 + content/posts/sveltekit-intro/img/cover.jpg | Bin 0 -> 43141 bytes content/posts/sveltekit-intro/index.md | 62 + layouts/default.vue | 34 + nuxt.config.ts | 112 + package.json | 29 + pages/[...slug].vue | 11 + pages/about.vue | 98 + pages/cover.vue | 807 ++ pages/friends.vue | 98 + pages/index.vue | 162 + pages/posts/[slug].vue | 93 + pages/posts/index.vue | 176 + pages/sponsor.vue | 63 + pnpm-lock.yaml | 10521 ++++++++++++++++ public/sponsors/qrcode/alipay.svg | 867 ++ public/sponsors/qrcode/wechat.png | Bin 0 -> 72771 bytes public/sponsors/qrcode/wechat.svg | 1041 ++ scripts/new-post.js | 39 + server/routes/api/wyy.ts | 8 + server/routes/posts/[slug]/img/[...file].ts | 39 + tailwind.config.ts | 19 + tsconfig.json | 3 + utils/content-ast.ts | 116 + 50 files changed, 15964 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 README.md create mode 100644 app.vue create mode 100644 assets/css/main.css create mode 100644 components/blog/Giscus.vue create mode 100644 components/blog/PostCard.vue create mode 100644 components/blog/PostToc.vue create mode 100644 components/content/ProseImg.vue create mode 100644 components/layout/Footer.vue create mode 100644 components/layout/NavBar.vue create mode 100644 components/layout/ThemeToggle.vue create mode 100644 composables/usePostSearch.ts create mode 100644 config/site.ts create mode 100644 content.config.ts create mode 100644 content/posts/docker-musl-build/img/cover.svg create mode 100644 content/posts/docker-musl-build/img/image-20250327100813512.png create mode 100644 content/posts/docker-musl-build/index.md create mode 100644 content/posts/docker-user-start/img/cover.svg create mode 100644 content/posts/docker-user-start/index.md create mode 100644 content/posts/hello-world/img/cover.jpg create mode 100644 content/posts/hello-world/index.md create mode 100644 content/posts/nuxt-content-lessons/img/cover.jpg create mode 100644 content/posts/nuxt-content-lessons/index.md create mode 100644 content/posts/nuxt-tailwind-underline-fix/img/cover.png create mode 100644 content/posts/nuxt-tailwind-underline-fix/index.md create mode 100644 content/posts/sveltekit-intro/img/cover.jpg create mode 100644 content/posts/sveltekit-intro/index.md create mode 100644 layouts/default.vue create mode 100644 nuxt.config.ts create mode 100644 package.json create mode 100644 pages/[...slug].vue create mode 100644 pages/about.vue create mode 100644 pages/cover.vue create mode 100644 pages/friends.vue create mode 100644 pages/index.vue create mode 100644 pages/posts/[slug].vue create mode 100644 pages/posts/index.vue create mode 100644 pages/sponsor.vue create mode 100644 pnpm-lock.yaml create mode 100644 public/sponsors/qrcode/alipay.svg create mode 100644 public/sponsors/qrcode/wechat.png create mode 100644 public/sponsors/qrcode/wechat.svg create mode 100644 scripts/new-post.js create mode 100644 server/routes/api/wyy.ts create mode 100644 server/routes/posts/[slug]/img/[...file].ts create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json create mode 100644 utils/content-ast.ts diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..842c123 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +# 站点配置(可选,config/site.ts 中已有默认值) +NUXT_PUBLIC_SITE_URL=https://2x.nz +NUXT_PUBLIC_SITE_NAME=《二叉树树》官方网站 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..131a8b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +node_modules +.nuxt/ +.output/ +*.log +.DS_Store +Thumbs.db +.vscode/ +.idea/ +.env +.env.local diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..6901ea9 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,70 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## 项目概述 + +SuBlog(尼克的小窝)— 个人技术博客,基于 Nuxt 3 + TypeScript,使用 @nuxt/content v3 管理 Markdown 文章。 + +## 常用命令 + +```bash +pnpm dev # 启动开发服务器 +pnpm build # 构建生产版本 +pnpm generate # 静态站点生成 +pnpm preview # 预览构建产物 +pnpm new-post # 创建新文章(自动生成 frontmatter 和图片目录) +``` + +项目使用 pnpm 作为包管理器。 + +## 架构要点 + +### 内容系统 +- 文章放在 `content/posts//index.md`,图片放在同级 `img/` 目录 +- 使用 @nuxt/content v3 的 `queryCollection('posts')` API 查询文章 +- frontmatter 字段:`title`, `published`(日期), `description`, `image`, `draft`, `tags`, `pinned` +- `pinned` 字段控制文章置顶排序 +- 构建时 `nuxt.config.ts` 中的 hook 自动将 `content/posts//img/` 复制到产物目录 +- 开发模式图片通过 `server/routes/posts/[slug]/img/[...file].ts` 读取源文件 + +### 页面路由 +- `pages/index.vue` — 首页(社交卡片、导航、网易云热评、不蒜子计数) +- `pages/posts/index.vue` — 文章列表(搜索、标签过滤、分页) +- `pages/posts/[slug].vue` — 文章详情(Giscus 评论、右侧 TOC 目录) +- `pages/[...slug].vue` — 兜底路由 +- 其他页面:cover(封面制作)、friends(友链)、sponsor(赞助)、about(关于) + +### 组件分层 +- `components/layout/` — NavBar(面包屑导航 + 头像旋转)、Footer、ThemeToggle +- `components/blog/` — PostCard、PostToc(基于 IntersectionObserver 的目录)、Giscus +- `components/content/ProseImg.vue` — 覆盖 @nuxt/content 默认图片组件,支持相对路径解析 + +### 工具层 +- `composables/usePostSearch.ts` — 客户端搜索 composable,支持标题/描述/正文/标签多维过滤和高亮 +- `utils/content-ast.ts` — Nuxt Content v3 AST 工具函数(文本提取、标题提取、slugify、去重) +- `config/site.ts` — 全站配置(站点信息、导航、社交链接、友链、赞助、Giscus) + +### 主题与样式 +- Tailwind CSS + `@tailwindcss/typography`,暗色模式使用 `class` 策略 +- CSS 变量定义在 `assets/css/main.css`(`--color-bg`, `--color-primary` 等) +- 暗色模式通过 `.dark` class 切换 +- 动画类:`anim-fade-in-up`、`anim-delay-N` + +### 服务端 +- `server/routes/api/wyy.ts` — 网易云热评 API 代理 + +## 开发规范 + +### 工作流程 +- 效率至上:快速单元式开发 +- 改完即退:完成代码修改后立即退出,用户会手动测试 +- 单元提交:每个功能/修改单独提交到 Git +- 非用户要求不输出多余内容 + +### 编辑规则 +- 编辑文件仅使用 Read 和 Edit 工具,不使用 Python/PowerShell/Bash 修改文件 +- Edit 工具使用函数签名等唯一字符串做锚点,避免 tab 缩进匹配问题 + +### Git 提交规范 +- `feat:` 新功能 | `fix:` 修复 | `refactor:` 重构 | `style:` 样式 | `perf:` 性能 | `chore:` 构建/工具/配置 diff --git a/README.md b/README.md new file mode 100644 index 0000000..7dc8555 --- /dev/null +++ b/README.md @@ -0,0 +1,73 @@ +# Sublog - Nuxt 3 博客 + +基于 Nuxt 3 的静态博客站点,使用 @nuxt/content 管理 Markdown 文章。 + +## 技术栈 + +- **Nuxt 3** - Vue 3 全栈框架 +- **@nuxt/content** - Markdown 内容管理 +- **Tailwind CSS** - 样式框架 +- **TypeScript** - 类型安全 +- **Giscus** - GitHub Discussions 评论系统 + +## 开发 + +### 启动开发服务器 + +```bash +npm run dev +``` + +### 构建静态站点 + +```bash +npm run generate +``` + +构建产物输出到 `.output/public`,文章图片会自动复制。 + +### 预览构建结果 + +```bash +npm run preview +``` + +## 新建文章 + +```bash +npm run new-post +``` + +会在 `content/posts//` 下创建 `index.md` 和 `img/` 目录。 + +## 项目结构 + +``` +├── config/site.ts # 站点配置(改这一个文件定制全站) +├── content/posts/ # Markdown 文章 +│ └── / +│ ├── index.md # 文章内容 +│ └── img/ # 文章图片 +├── components/ +│ ├── layout/ # 布局组件(NavBar, Footer) +│ └── blog/ # 博客组件(PostCard, PostToc, Giscus) +├── composables/ # 组合式函数 +├── pages/ # 页面路由 +├── layouts/ # 布局模板 +├── server/routes/ # API 路由 +└── utils/ # 工具函数 +``` + +## 配置 + +站点信息集中在 `config/site.ts`: + +- 站点名称、描述、关键词 +- 头像、favicon +- 社交链接 +- 导航菜单 +- Giscus 评论配置 + +## 部署 + +构建后将 `.output/public` 目录部署到任意静态托管服务(Vercel、Netlify、Cloudflare Pages 等)。 diff --git a/app.vue b/app.vue new file mode 100644 index 0000000..54c2b30 --- /dev/null +++ b/app.vue @@ -0,0 +1,13 @@ + + + diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..f296005 --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,218 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* 公告链接下划线 */ +.announcement-text a { + text-decoration: none !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.3) !important; + padding-bottom: 2px; +} +.dark .announcement-text a { + border-bottom-color: rgba(255, 255, 255, 0.5) !important; +} + +/* 主题变量 */ +:root { + --color-bg: #ffffff; + --color-bg-card: #ffffff; + --color-bg-hover: #f3f4f6; + --color-text: #111827; + --color-text-secondary: #6b7280; + --color-border: #e5e7eb; + --color-primary: #3b82f6; + --color-ring: rgba(59, 130, 246, 0.4); +} + +.dark { + --color-bg: #0a0a0a; + --color-bg-card: #171717; + --color-bg-hover: #262626; + --color-text: #f3f4f6; + --color-text-secondary: #9ca3af; + --color-border: #2e2e2e; + --color-primary: #60a5fa; + --color-ring: rgba(96, 165, 250, 0.4); +} + +/* Tailwind-like 工具类 */ +.text-muted-foreground { + color: var(--color-text-secondary); +} + +.text-foreground { + color: var(--color-text); +} + +.text-primary { + color: var(--color-primary); +} + +.bg-primary { + background-color: var(--color-primary); +} + +.bg-muted { + background-color: var(--color-bg-hover); +} + +.border-border { + border-color: var(--color-border); +} + +.border-primary { + border-color: var(--color-primary); +} + +.prose { + --tw-prose-links: var(--color-primary); +} + +.dark .prose { + --tw-prose-body: var(--color-text); + --tw-prose-headings: var(--color-text); + --tw-prose-links: var(--color-primary); + --tw-prose-bold: var(--color-text); + --tw-prose-code: var(--color-text); + --tw-prose-quotes: var(--color-text-secondary); + --tw-prose-quote-borders: var(--color-primary); +} + +body { + background-color: var(--color-bg); + color: var(--color-text); + transition: background-color 0.3s ease, color 0.3s ease; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 入场动画 */ +@keyframes fade-in-up { + from { + opacity: 0; + transform: translateY(16px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes fade-in { + from { opacity: 0; } + to { opacity: 1; } +} + +.anim-fade-in-up { + animation: fade-in-up 0.6s ease-out both; +} + +.anim-fade-in { + animation: fade-in 0.5s ease-out both; +} + +.anim-delay-1 { animation-delay: 0.1s; } +.anim-delay-2 { animation-delay: 0.2s; } +.anim-delay-3 { animation-delay: 0.3s; } +.anim-delay-4 { animation-delay: 0.4s; } +.anim-delay-5 { animation-delay: 0.5s; } + +/* 卡片 */ +.card { + background-color: var(--color-bg-card); + border: 1px solid var(--color-border); + border-radius: 0.75rem; + transition: box-shadow 0.2s ease, border-color 0.2s ease; +} + +.card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); +} + +.dark .card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); +} + +/* 按钮 */ +.btn-pill { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 1rem; + border-radius: 9999px; + border: 1px solid var(--color-border); + background-color: var(--color-bg-card); + color: var(--color-text); + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: background-color 0.15s ease, border-color 0.15s ease; +} + +.btn-pill:hover { + background-color: var(--color-bg-hover); +} + +.btn-primary { + background-color: var(--color-primary); + border-color: var(--color-primary); + color: white; +} + +.btn-primary:hover { + opacity: 0.9; +} + +/* 滚动条 */ +::-webkit-scrollbar { + width: 6px; +} +::-webkit-scrollbar-track { + background: transparent; +} +::-webkit-scrollbar-thumb { + background-color: var(--color-border); + border-radius: 3px; +} + +/* 代码块 */ +pre { + border-radius: 0.75rem; + overflow-x: auto; + padding: 1rem; + font-size: 0.875rem; + background-color: var(--color-bg-card); + border: 1px solid var(--color-border); +} + +code { + font-family: 'JetBrains Mono', 'Fira Code', monospace; +} + +/* 代码高亮背景色(Shiki 不设置 pre 背景,需手动补) */ +pre.shiki, +pre:has(> .shiki) { + background-color: #fff !important; +} +pre.shiki code { + background: transparent !important; +} +.dark pre.shiki, +.dark pre:has(> .shiki) { + background-color: #24292e !important; +} + +/* 隐藏标题锚点链接样式(保留功能,不显示为可点击) */ +.prose h2 > a, +.prose h3 > a, +.prose h4 > a { + color: inherit; + text-decoration: none; + cursor: default; +} +.prose h2 > a:hover, +.prose h3 > a:hover, +.prose h4 > a:hover { + opacity: 1; +} diff --git a/components/blog/Giscus.vue b/components/blog/Giscus.vue new file mode 100644 index 0000000..188ea53 --- /dev/null +++ b/components/blog/Giscus.vue @@ -0,0 +1,51 @@ + + + diff --git a/components/blog/PostCard.vue b/components/blog/PostCard.vue new file mode 100644 index 0000000..3e8f041 --- /dev/null +++ b/components/blog/PostCard.vue @@ -0,0 +1,111 @@ + + + diff --git a/components/blog/PostToc.vue b/components/blog/PostToc.vue new file mode 100644 index 0000000..f42eacd --- /dev/null +++ b/components/blog/PostToc.vue @@ -0,0 +1,104 @@ + + + diff --git a/components/content/ProseImg.vue b/components/content/ProseImg.vue new file mode 100644 index 0000000..b2f5af5 --- /dev/null +++ b/components/content/ProseImg.vue @@ -0,0 +1,21 @@ + + + diff --git a/components/layout/Footer.vue b/components/layout/Footer.vue new file mode 100644 index 0000000..9f54974 --- /dev/null +++ b/components/layout/Footer.vue @@ -0,0 +1,13 @@ + + + diff --git a/components/layout/NavBar.vue b/components/layout/NavBar.vue new file mode 100644 index 0000000..6b9dc55 --- /dev/null +++ b/components/layout/NavBar.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/components/layout/ThemeToggle.vue b/components/layout/ThemeToggle.vue new file mode 100644 index 0000000..479c12e --- /dev/null +++ b/components/layout/ThemeToggle.vue @@ -0,0 +1,44 @@ + + + diff --git a/composables/usePostSearch.ts b/composables/usePostSearch.ts new file mode 100644 index 0000000..3f90ba4 --- /dev/null +++ b/composables/usePostSearch.ts @@ -0,0 +1,127 @@ +import { extractTextFromAst } from '~/utils/content-ast' + +export interface PostSearchFilters { + title: boolean + description: boolean + content: boolean + tags: boolean +} + +export interface PostSearchResult { + post: any + matchedLines: string[] +} + +function parseQueryTerms(query: string): string[] { + const terms: string[] = [] + const re = /"([^"]+)"|(\S+)/g + let m: RegExpExecArray | null + while ((m = re.exec(query)) !== null) { + const t = (m[1] ?? m[2] ?? '').trim().toLowerCase() + if (t) terms.push(t) + } + return terms +} + +function highlightText(text: string, terms: string[]): string { + if (!terms.length) return text + const escaped = terms + .map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')) + .sort((a, b) => b.length - a.length) + const regex = new RegExp(`(${escaped.join('|')})`, 'gi') + return text.replace(regex, '$1') +} + +function getMatchedLines(plainText: string, terms: string[]): string[] { + if (!terms.length || !plainText) return [] + const lines = plainText.split('\n') + const matched: string[] = [] + for (const line of lines) { + const lower = line.toLowerCase() + if (terms.every((t) => lower.includes(t))) { + const trimmed = line.trim() + if ( + trimmed + && trimmed.length > 10 + && !trimmed.startsWith('#') + && !trimmed.startsWith('.') + && !trimmed.includes('{') + && !trimmed.includes('}') + && !trimmed.includes(':') + && !trimmed.includes(';') + && !trimmed.match(/^[a-z][\w-]*[\s]*\{/) + && !trimmed.match(/^\.shiki/) + && !trimmed.match(/^var\(--/) + && !trimmed.match(/^html\b/) + && !trimmed.match(/^pre\b/) + && !trimmed.match(/^@/) + ) { + matched.push(trimmed) + } + } + } + return matched.slice(0, 10) +} + +export function usePostSearch( + allPosts: Ref, + searchQuery: Ref, + filters: Ref, +) { + const searchResults = computed(() => { + if (!allPosts.value || !searchQuery.value.trim()) { + return allPosts.value?.map((p) => ({ post: p, matchedLines: [] })) || [] + } + + const terms = parseQueryTerms(searchQuery.value) + if (!terms.length) return allPosts.value.map((p) => ({ post: p, matchedLines: [] })) + + const results: PostSearchResult[] = [] + + for (const post of allPosts.value) { + const title = (post.title || '').toLowerCase() + const desc = (post.description || '').toLowerCase() + + const matchTitle = filters.value.title && terms.some((t) => title.includes(t)) + const matchDesc = filters.value.description && terms.some((t) => desc.includes(t)) + const matchTags = filters.value.tags && (post.tags || []).some((tag: string) => terms.some((t) => tag.toLowerCase().includes(t))) + + let matchContent = false + let matchedLines: string[] = [] + if (filters.value.content) { + const plainText = extractTextFromAst(post.body?.value || post.body || null).toLowerCase() + matchContent = terms.some((t) => plainText.includes(t)) + if (matchContent) { + matchedLines = getMatchedLines( + extractTextFromAst(post.body?.value || post.body || null), + terms, + ) + } + } + + if (matchTitle || matchDesc || matchContent || matchTags) { + results.push({ post, matchedLines }) + } + } + + return results + }) + + const filteredPosts = computed(() => searchResults.value.map((r) => r.post)) + + function highlight(text: string): string { + if (!searchQuery.value.trim()) return text + return highlightText(text, parseQueryTerms(searchQuery.value)) + } + + function getTerms(): string[] { + return parseQueryTerms(searchQuery.value) + } + + return { + searchResults, + filteredPosts, + highlight, + getTerms, + } +} diff --git a/config/site.ts b/config/site.ts new file mode 100644 index 0000000..40c7164 --- /dev/null +++ b/config/site.ts @@ -0,0 +1,62 @@ +export const siteConfig = { + // 站点信息(改这里定制全站) + name: 'Nixus', + siteName: '尼克的小窝', + title: '《尼克的小窝》官方网站', + subtitle: 'Nixus', + description: '专注于IT/互联网技术分享与实践的个人技术博客', + url: 'https://nixus.top/', + keywords: ['尼克', '博客', 'Nixus Blog', '技术博客'], + + // 头像和图标 + avatar: 'https://q2.qlogo.cn/headimg_dl?dst_uin=1042864399&spec=100', + favicon: 'https://q2.qlogo.cn/headimg_dl?dst_uin=1042864399&spec=100', + ogImage: 'https://q2.qlogo.cn/headimg_dl?dst_uin=1042864399&spec=100', + + // 作者信息 + author: { + name: 'Nixus', + url: 'https://nixus.top/', + }, + bio: 'Protect What You Love.', + + // 社交链接 + socialLinks: [ + { name: 'B站', icon: 'simple-icons:bilibili', url: 'https://space.bilibili.com/296124701', color: '#fb7299' }, + { name: 'QQ', icon: 'simple-icons:qq', url: 'https://qm.qq.com/cgi-bin/qm/qr?k=placeholder&group_code=1042864399', color: '#12B7F5' }, + { name: 'GitHub', icon: 'simple-icons:github', url: 'https://github.com/wishesl', color: '#333333' }, + { name: 'Gitee', icon: 'simple-icons:gitee', url: 'https://gitee.com/blushes', color: '#c71d23' }, + ], + + // 导航菜单 + navLinks: [ + { label: '博客', icon: 'mdi:post-outline', href: '/posts' }, + { label: '封面制作', icon: 'mdi:image-edit-outline', href: '/cover' }, + { label: '友链', icon: 'mdi:link-variant', href: '/friends' }, + { label: '赞助', icon: 'mdi:heart-outline', href: '/sponsor' }, + { label: '关于', icon: 'mdi:information-outline', href: '/about' }, + ], + + // 友链 + friends: [ + { name: '二叉树树', url: 'https://2x.nz', avatar: 'https://q2.qlogo.cn/headimg_dl?dst_uin=2726730791&spec=100', description: '专注于IT/互联网技术分享与实践的个人技术博客' }, + ], + + // 赞助 + sponsors: { + qrcode: { + wechat: '/sponsors/qrcode/wechat.png', + }, + list: [] as { name: string; date: string; amount: string }[], + }, + + // Giscus 评论配置 + giscus: { + repo: 'wishesl/SuBlog', + repoId: 'R_kgDOSsypJg', + category: 'Announcements', + categoryId: 'DIC_kwDOSsypJs4C-Mks', + }, +} + +export type SiteConfig = typeof siteConfig diff --git a/content.config.ts b/content.config.ts new file mode 100644 index 0000000..077e41c --- /dev/null +++ b/content.config.ts @@ -0,0 +1,20 @@ +import { defineCollection, defineContentConfig, z } from '@nuxt/content' + +export default defineContentConfig({ + collections: { + posts: defineCollection({ + type: 'page', + source: '**/*.md', + schema: z.object({ + title: z.string(), + published: z.string(), + description: z.string().optional(), + image: z.string().optional(), + draft: z.boolean().optional(), + pinned: z.boolean().optional(), + tags: z.array(z.string()).optional(), + author: z.string().optional(), + }), + }), + }, +}) diff --git a/content/posts/docker-musl-build/img/cover.svg b/content/posts/docker-musl-build/img/cover.svg new file mode 100644 index 0000000..5ddea68 --- /dev/null +++ b/content/posts/docker-musl-build/img/cover.svg @@ -0,0 +1 @@ +
编译 musl可执行文件
\ No newline at end of file diff --git a/content/posts/docker-musl-build/img/image-20250327100813512.png b/content/posts/docker-musl-build/img/image-20250327100813512.png new file mode 100644 index 0000000000000000000000000000000000000000..75664f099e66510c0d2f7e0efd414700ebf21195 GIT binary patch literal 53774 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μ$ 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⁣j z($h>5n)P%%UlvR+kb+0tW*F(4dI`khqG9#_`h=hOzPgFWg z__q*V7g0U6<#B&1w+;9A5syB4Ph10!g6g}#4#U40i2a^y{u}a^_!q(Kxl9_hUArC&XY1(Rh5YjX!ZYbi< zaqq314X+ayEBl(O@{jj-8fKft&XOfH74nknGnM6K5eBitqG`#-Tv-Qc!FGR+iXls0@ z-km_>)@)5Ln?)^<)K=?m;LnU{jfq>`bEn1Hw0EZ3_;Xp+=@rYw4Qn$br~cYn&nPVm zH;6AdWgX|Mv_OaU5wG0MWZjpf_TgJX93>0{aNh6IK;E7oS`-(ea$=-0ju^_7l9;nOXMt z*r34MtRYuO0BgT{hT=nc97krqnbwAL*z5Dhe94|tr2#38mEjIjl_p1|Sm%6s>1yn; z0*vl`G7OU@!V@A(QzOrwJHA|PY%foWX@lgOT#CY7HY>(|GJuP~!Y={JJbG1O=cu%Z zby+Vht(1atTV+&gzj?q~og(y&>9W~SG+c9S;YxaUG_{Q8deReWukpTs-OerU>NU$E;@I;g z3k95l)b#a3oYRlEklkOq4ad-Sms7tRu;u4r@1|6;b-Hb{$VvW@efJNUkZ?sUUzqg^ z3gyvzfnz2=95fDfZ3WZySnM{ZbXqKDQdV1smu&qRUA?U( z^~3o9`iH_7?qc3mGVSF(Ehqjsc2SMd44*nrQ`_qc*TL8fdA4M1mlhl?-DEs%=I^i4 zu(zk_?70f#n$$YpWq4r&vF@U8od4ZQf?zqgCHwQIa<4~*aYMlp*5@&%{a%%@yVoMx zABCkDKP6p0EqH_yEDLAZkSwm-ZYLA1P!fv7Ds^g7s1k=;K4)$^0hA;tOe{c59W-V+ zRhK8TZUv%nIDP3uF(~7$Pc0)USNj7cK}ggG!Glg+%mRvoK*%?)Np-ifnlX2VRk&Rx z={!>fU1$Y|>aeTXT=pQMt)-R6vIsuTnzkeMp;U0{k!J=XhdaHqvzM^TI>|`;?t`$T zHpgZG`I#79p?;UzH<9n!-5Y;{`|Mx&sCpsm?>)?!-8Lu%t*_zNe6@#S+Jfp4(}j|% z29gN;zCn@T4-yDzJiN2D=EFW|Rs&4CAJ+Cv>_3!MyJ}gaTpf$w25;y_JWrnghjmu} zD_(LCQU&SsJW3gpMgX;7X;Qe|+A7G+Zv=k=Hr#LV+*$JT+R5f!Zu9AAY20M|&6^Vh zQI)==esiNx`=tD5&N^pjQuVs9!~g1BN4Ln4Ao)qqmB6ikKOONB>3a&Cu;jQ=tvQ6Y zh&}ipg0=I|gBYt0-wrG12H4+8-@Wcd_hMa{3x| z8dn=I4a)XWHmofI+Ui7xck+LDey8l}bWLKkk9Q{M0nIRBN`|`QJ>IW>h{5U|@A`H} zc1HVhwnzIKj}KN$3Hg0dNvfG3r_A}?`J3)|3E>ZkhV!CCm|KFwPL~g3b)|)Qmmrsc z=lLISAzd3Iv{*zSvXtjABa(HGiXbK4M-P6&DZ+cQ8Uit%%T%_HrS>+yaTk#c|G14@A9)z9R-D%PwDyaj z4_1*Ckk%^?Ax_`l$5i>rHcLH+x&mPRxhAZfmmEbEi&ofV^l=u!hG1>(Tt9hr3o||% znG0!QZZBprjUIaMxAbRPpjA4*g;UogNZiALA?e>?<|RmGT-^*Q7Alo{ba2gIAlLpR zNot=^oQeva3$a`6j(Fg(v(heSU^o^I-I41nOi9VA-2Rqikxt2_Hf}$*J0nz^Y#eaN z*mrdN8qZyMY(BPWZjLdXW0#E3!i09biKlR4gf{4T+nGXD#SXL^B!5yPP!Ei2e8BG3 zy<2Itxw3@z!29w?o{h&Nf63-M=GGre`zy;`#MthKNhe5FhQdF&y-V(shT2uPdYSH9BmXvMx4C`j_De|l_X)5Q zB)g(|^)5cM4@fn%Jn)d>z5Knd>L2{tEzOxJ9&%QzUB%}Ypg$V^XeJk1J4jq~f!B;p z-F;2c_4>u(ey+zxfDE`ing;dg;@ARFXc~0)j>_%h#An8n#Nao1DNG|T>~v?G?X~C` zxAV-IUimAJo%DEpzBJoN*P5lxT(n&#>k2)gwEs}=G%n)Y`gkL}Vj;7X{KiNbpHw>} z1RZ2wV2UCrMp5{cfWdAEf1Y@MAQD1-SB79TKCXj!YwUkLJX|;h#|sRYWYlT9 z)NH@LCz2Syg9OY3kznKFUlxB>Tb-LBLMzBLAEW>X%mB)f41XxbrH@UAz0k*~``q65 zBx&A~GYJtyM<<6MQE_oA7C$-MPyLE)C| zes48>-{6qF*GpT{;~Dc?j9#LpA`-}?KY1lb36bS7=Ms~C>Y7~!J7v0y^fDFe#}5Sm zMg+audei36j*aPFEZO-Rz0$(r>q~}rEx%LUIf&LwU(#iC_Wk%7{v(~1 zYUj3>;VG@kj`FqV?ueK`4}9UACF^Tek093Axl&ZnMQ&G}?hbqVa0#OBd&qC$D(XMQ~ z+?Vs$RTB}ORdH}Jc>xcQ@9-%C>g0ht-tRe_#&y8T&@KP-l1r~>rdYSIM+bZXDEo5+ z6Mo9t+>AW64|+4o>DaEQ2S}GcwJ;l-zq>lRz6!e7tsN5vX8~WvtF}k*AWxaEyNe+S zkZQ)?OMVJ#H_mp}-^-ortr@-BSV~7FAS1`s*&~pCYBzIlQPOj7zUbzh$5;w>X+LWF z#Scl-D;VZH_WI5IZ$ZJEb{C^DOW$w0gICS{zgiyue~@DTZ;ZhTL_^(mLc^zGA{w*y zUs`~Qn~^`;y%AYUuqtkDIE{=j3_iOY1u_)lLQM6w3^s5VnVtc@DyEtwrYQZ7fV?<# zbq4jT9LP`BP7FjF$rS=5lNNg9XqD^81L>>nW z7fEd|SqeCtMq5d{4iXG_IYi*Ot7>V}z9O%#WH#85?sY(Fk)uI72y0|SM~M*udX}p# z!CP&_%W*0jYc)?oByKrY{ltDy%e8PM_q`kb%KKZPmP&oZHCY;ffP2>;O8PCt-qfrR z5Sv2Z=Z$+u-uktaz)=}9AQU_ zV$tZ=M8EpTQ~)&JkW7(3X80#T5zsuwY$wfsk1hk}s%+lld(x!iG=MPffuD3WCPfxypQ(NT%$t=&A z?;;uD$K1rnKrd(2Jx$E!KsK8piHswh2mwI;ZLxx(rw9oq?+X7 za9YARDR1@t%6FD#x=Q!&pB=iZSk=tjo9dus_jc)6r$Q|%>23WakR_49@+vSS_(&a9 z0Gzf}EsO4&xdd+Vg=#`(2koXe z*4YgP>j}NIGxiQr7`Na;#~O!|TM0ELCy0qvHqS}IH=;F_7LZK!v4r0I--2>?mnfmcO$2;x;2VZ{{*#X7Ad8Yh%PqRzI% zMqm5w>dTL#HhLqVu?bA%R(_ZC-Tk@Giw5T->inJyZ@-uUizKbVf52J8VAJiD2e1V0 zJ?63U#*vF91FpeY$L%A3){oLh&%#{elz7$6-0@*(Q$ifzX!ptKY_@Cn#aN2yxW z3b?oqyO-f;q58W>{*tF`h94I9#GbkX;-XJX_CR86!(FUORw;9mYlu~BeI;3zbedk0 zvqBMt{dO&Dg{{6AR9aZ$~nhW+>e@?k2UOf6*?;E@C979)B zK6M?3r+?9XvEGTH*S*nT=t#xZo1WbSTgrCWg*Ouf;&hzS(=E$_R7YgeG(31FUi(9s7RX!tmu9q6sll))zy9mDa-cVO9a;2xkmZRG zn7Ei|uF{G&ErvXU0%o}3ZuQtuKY-Tkr}xNUIW3-5opqCGGJVx4 z5y|AYGp05T>i)=fFG54#INp=FYSg2}*H9xqwRG}>3=Om3RBah2)30A&>;55qZ^7O{ zGDfFX+&ow5wVf-4=bu98`{MiJ6-Yo^1$-%>7IVx3#0|QC(#u{&c!K0 zTL{lp(XdtTX|E*hCW9OBKV@7qq19=8M#C!+Y*rf=AIuYZqqM*!Ws!#_Z5@oBiSSn2 z(mhYUNySI){7O%$y5OlJ?Fg?147U6lV`a$6;kBfJJ+dNBp6L9U83vT`K;Xzoq-!lW zVR;HHb}|x%ib*lb8he2qSzDNBdB!-SrtjB#z9pxS9P8VoP}M$Oz_!k2`0@8MpqB=< zw{H)@AlcYyb&07XQ(y(r26QX-W-hTh?Cu;=vowl!}4!89|LZiNo) z{VvTeVKg-AoB5|ia!V<#_%K5@?W5{>CYFW~t)ez_Ly-c%FqxUyW~_C+ZzR_Ol?59@ zru(MW)bd8+Cx@>F0rn9OPp$S4e`q2nNc*{pDM{Qbfld7PtD&6 z`Ok>xN?Py>eonm{Zmt{wWG-x`pDL!P4v^LKHS&}URq{!eV1_LCl|>AbTxh+6t9ZXm z&%0H(SX`cUQv$wOxBj0Db46(2!}7cz4nJKv^n<^BN*?utl79=@Q+R1%oFMj+r3LV~ zPNgpwxQ6WneN^>~%yx%g{aXjs6~War{2pB{;rop(DBiDf!fTHZ@F}zlF=SjrKtB0h zyLu9atKit;7a)I)9pqO|yW+}a)H+dFNdLo&CCs>bDoff0dZxX}8wv|m$<=3eIMS{4 zQJM46f7bx}Jn9Wk`Xe?%ZdLfkP<9}Ghm0d1{=@gUCj3E?7dtZt&RUP@MgIvQRq*Ai zAEC_pz~^L!4&6zzpDpAgvtg)ZGWzssp@)lXnRE5yN@d^$2L!PPz(pwud}M69z_IV| z4C(ZhJ>YGj$Fd#YFiYM!O+&cb7QE|5+y(h3z^_K>26j(qfEh2nk#~THVb^{Xt}1nj z*3r$6BW`zFCQ4fL&wmt4t5lSMS0unN5;&j9X!&sNVsE?714pQ_`0leH5(N1AY9#V} zJ?9^8ujRH=!N2~*#Q&D`Ro8+!s{gwE2a>{@ZT^3#!0&$}ssx4=C~|CRfa5QWn@U|9 z1zjCl-{61-ILFOL?JGAyy&o1?D3N}Nx=e4I z8$3`&*Ha~M83H`WB9sNHI}bG>6){z6#$*Wiu2h`rURNy3jh<+y_-qO}jwIh;5ie%^ zq33yz3on)Z~cPV`tzjF zg`3@$FM$9&7@U6~lp1t zM*7}6+e|pJX#~4HxqFSHT1n79Me6JHDs{5LsjyU{JPP)=LIT_-2aH6 zk?@Y z{MUES0ARFYZd)Qt<{jGjs@c$9>vnvs^2X^C-S#Nhi{{xut|wj)TBV4NZjV+gQDRQy469iepltObFBboY1=QK7qf&-7Dw8zeM`a z_iF9K?m$vYvarmf(hHRU!6xG_YFz6koYQ&CdgV^xR*ZwnvWlMA` z%}^F!cVkRMpbA7s`QWhtVKF7*EcrnM<-KVe0KSd8w|-FqzQ#0rYPfg0ogDRmHky|Z zX#3W;9VcM?=ML_U!Wvh<{`wt6{@mC8-W_i-%( z1lT3M+|ZI?W6c8*eDtF`g)}~xhWMwsX_bB!S!TN*;Af0}=>ywu^H*-mWrQrJYI!ww zxHq9D+^07RR-6_6W7}~7jWXiWTkF==7hla&9%g@xQXIIW@uS=8DPO>yfP;npl;#vi zj%6rXmak$J(dVl>s{3|(1}c9w({J$z4?K8JT?>4&&;dVZck9}J0g~5FCGp1Xt)AB= zo?h|gW&~z2o_V-rc}&fG!!LV-I{_3>SG+`iVNGl8x%O#jexaqOBWrmK)_iDPvZ%#S`X94B+%IY`=Sh=+lKQfb;pq7exEK_dN zR*&*!>9{J{#XeTD`(mv3EgyCqa!{d$(1{YiQ)^Xv9FI?5T{d4|>75Rsa?74rlTGBq z{_T>Ly3Q9$JDAH(d=$^4eipWFK678m`6w&=J9Yhk&19E>1@prxhy-e=l^ zgB$(w>}kOl%}uQeS8Wan0&=Pu%}Rhym%6()aigCLbV$gO3-nRJ@*g%$?6=yR@9F3} z4rF3J&UKZ}OG8KNs`0NUR$L0RiB^slAemS2yF#Uj5oesq6nx#>esZ6(5bf8=;-027 zX@xEvh-G$QC2ujPX5LIrA}%4(8z=ACullk1(j1i^s6LMUUj0tNqb&~%dp04M*O44j z*5f-s8d|j@P-KPUWzOVsJ&Jyx-}qo49mKtdyfc4?t`j%dj=Lh@94hTRcF*|_*Uq#m z%&pFbkL|JRvy;t6>alC#`}CYLgEoxs0N+@yWTb1vjk=LVzf}5k@mWDjP`f>iL2#OI zfH_MKX*WX-&wA>ywAC+L03tZGh~Ri$DQ^;9Gdn>u&Wi z>%Irf^~PN8p2zhY-|<+=s27M^=;*7T7%B>=$E~}`-f$DRzm_01Ex-+WxsLnDOx4Ml zQ|EhBiw4zR1MyD!uVaeDqYpEv0Zu+ZNWeWV!WRI%9-b4mrB|?P;l+vNU5CaroTzhd zi$C>{b%su)1l^=92)jqD zDhxL5!hyYK9X*VagLWEeYh5TryO&D9W8V{m#E`OU2zkanl_j0;q%S^1eXmEBf`l`| zTBdCG@fQZ2m!OC8t%aps@RG^YoFwOpYm0ty^a=N*pqdWIHE!5|Z*}WRE&uUjySHvt zUZnkd!k@7f!DPR3=TzmxNSC>Kw(?V7R%9%2oDK6H7sKKFl(jn)r+QS8eS`VjM0_pH zZPanbT1osd;nPY?ua;&8(S2{Vlu`DMV}R6${d*>kp|S>=@$sJyHgO!_b01=(9%lym z8mqXV*{J}WLPMOU)ZRJVxrxFtj8S0KD1Y~YUa>WvIakd42cbFuX`IpC~ zuJ9?^eVaQYLo-fY%PdQE`okO_{-53`k}$3aDD@jMJ(Xl*#jQ_Wep#}SXj3jzoodfM z5+$~sJaNw}?rx(~Qlj(NpB2O0%EZ+$Ju+0`;FG(&h&#UL5Peq=z#K(d=)<+$8KaiXY@> z?08ATvSHjRQ@+CLZfgi#9u^}Q{QDZpS4shlJAZM6XG9fi5vS!+I@{c=n%FiBfgeBi z*cJ#-M*y-Y`-sj7XJ89|a^2cCZ&cvy3~!{=A7|(IT_0a{QPv^1$1Pt62gGN7#M!y# zqT;)%xPXjr^VlWKGqjJ#flD$;VCbkp7Zyj0P82|!p?&xzh{-SO}sR`oFih%q6w zHT?yKlX8)367S^iGq!~flDO?_-lrOOg+31+(`e}GXPSyDE1Zrvk>=$ptledaGT+O{ z`#@fswp!}PsjP}tG0GaY-RR%Bt@dcoO&JZ_+g>Ud4-_zidTg-Oj7~Fm`Ecla;{ZWF zd%)=@KHJ&%AtyNmnl;Hjhlu#DsIURCHlY)}@`u*d$Q^K}Ju~;|`ytNnn_eenV^j@+ zGNj>ixF}T!dO1t^ZA>q#0K{ri%b?{)P^v9!$aocCh$5JY#6pJAoVMAn#l6ZhkBgdc@TI!UiK%;K6(^@o_^h~ESqax{k~CjDPzU3tLbk}b%rM+ zhE~yFQ5ya0HRs`*+-lF2$=?^hAc4_fEr$8L9re!cVL zjR@IoXVR&b?>*41M?T{Fo0EB*5v-W&(a`N*r_bpzx7cPJN#{XYWq9y_S2xhJe)=pcS3^a$_3?q9}e8>V* z{xpFMKW9B(t^{0@8?48zFw=_1w{{opY3f06uGHF}3&1u8KNpO#(#w6gJb;tH40JSm zNw4ypiE|3kb@4eAkc()$Uq4Y_AFx93r{%kCHncRg6jzwL)$Fjrz1E-qEURQbngm&L zyGQA!7;4+r2<2rQ;nVQ)`x=LR#(p`S$v z`MJMf@vi;5QeVDCByGTr7s3{$w(H6(dOLBAbIncZUW;o-VxpfThLVX7qCkRaXT>bL zc&Y!xSdjtUYCtUg8pJaliqG-{tWA2-m$lalJ;-OXX;T>uR{Dn+U+8m1WOPGQ%6Oo^ z$Rozvm09fX?_;P zjr0M<;VR+m;M()COOx-C>2$-%7JvZ^}RKC=_kIC$DwDL(tlRmWx2iDN{l=twFfB z8v5^G2(I-+jH@|v&5o++fg~!N40#P)A7OY_Q+Z4R3E}&4-X*}o!)o|rmXNoS+GwqPV?f1jCJi1yiE9YFj{(OCIaXZ_VQQ^BByy#Nx)i_aqCRTHO zYshiGN~hHfH!w+IHLIALaA*kH>xIF0d?{VxsmcC<6=sODnU8YT08e}>cAr|b8u5BGT<>OE0&sR`??PK9L=w&u?KnR7gNEqA6)Imi{w_$)C!gip3RvlBix7U!8 zw;s&Tv`Olyk|Vh8(Q9W2|8T8Y6s^=ev;TGI);jV{4ZKoAC+i^M`Iido0t0>#A`7_a z(eBM{aaL#FwPlM7bNDKm=9#QYPxW^B7OT+uXcQ1rr&c`KHOoyI=ke0rA=dSTH zmuNoqe905z=2jS}=B(cYPhYn9C^UNKPGjYr?N_wJ4;XJDU)-aKq*;?+3E{BkJu5=Y z7p%IvKb@+eCgtJoow`V-Q|Rs`FNk#ePzMpQ@;XQuu|Q$>6lzS>0&@2q!urpN0u9e(vD%OCnz~*-6JL0cFIl&W z{=HOTO*C+jdrHsMU>%c1JhU|}hY_4oncYCe4q^&w($yob&x{H@4^l=S%Da?#-7Fpb zA!+Xx-9-7-?=<96UX(qw8%t&PsJ#@UJ{G`U&BdSGd?{LZ(lrtMX%F(m%kblHk#Iq~ zxLqRG04sH4HcXP4FMVjAi)u9z-p>?kg-#4}lKjx>qu#XcKp7A1(SV8l7TPlM-3aWc z`wB{2h>lc~D_O;keRw7BaOQ+D9pNOyF;b78eBTo^n8qb^%HPzU!z}%{_vhw%E=ti? zCTNDo0<-yfC?W9FZW5{MHKln#H#5QVI_ATQL+Q8*co`y|HEGy-g;#Rt$AO)GsI72( zxEW2mO)o|^ze-jr#3tT9)C+x1Y6U0bs}b65u%K)qyK+G`5v+wX%jktLK6~$Pw#u7h zjZNT|KrDv6EBcSnJgMnN?b%;Qv9Njj#k?ZZ`ag@QS@lyIJF*_zQ$aj%qgWe$7<0%0 zrW)DmPcekLKP|ohjU<8?>fBT<2+t99UT!+<%T?!XdwZ*KO%8O` zGP$W1ipv?W=NDNtbKJUH7v|L?A@zoLE0r&~*|M^{kYWl8^GZcJTy)N2Y$v=~!Chbu z>>ZhAlC3^hed4=&T^g;?x!0#7VL0FHZmVQNtdViBfoEc z_Ri@}nV4PFOjV}`bzH))To0$+?oteWjUfxyE!PrmaLOh&9k?+>QfN&&y-hJmg)M9Y z5OiXArib?+E*Cd4+Tu+9@=ipwUx1&6@#O+}2ll4&xMfH0+>eU>%o0J^qpAL(A z(252(mC#rzT-~srlau0iPxIFM1vA92`^eSX!lJp8b)IhbM1x@lk#DqBYhD`wY~@y+ z1T|NM>|E{F6Ifn+9M*hBzbbvJSxT&<-V|5)dqWB)orl|75%F4@iO^2^2FR_jy2P%JsS$AtL>liQ9MB^w0N8iOYqIl-`VXzMmp`AU4*fTSbi3?6I-C zI_kb*Z0SOG#uxXtn_c4Gn>`N`c`xZBd1wX04q&hE@pDn*Nbpz?1rsaY^=UWi zr}Y$Cof+BP$Q9|xywuXYrTQvywC;#)`aL~U^;9J(vIpvm!o}pcG%P2W6aXon=^gK! z8sNV9qEjTS|HliMNcvVknQcsa!Z9c*Z!bs(O`Szd#p{dOCB`K!ynAWN1Ft*Zh;(IP ziaHzDH3|mz_`EK)Wq*}hxV_y3h?wf`KFi|Gw=UhkM&VA#0ba!dz^Z>lEAdA@ZO%)( zu+;;vGsWFX_I7?^mNh8EGdW#}X%u8OXxiQi3?DX^_w%>RC@Lybfb7FWr#&_W6>+nnq|MqFJ0j*H_xhA0LD!Dl;2D*ip})^EARpe=UJYckxad ze0InB3bg zHEB6VopTq5ma2u4o3)-KCzD`_b}aSm)$-uDaPVLM5!`-Rv$sZQ%ohG@WiMoHuRCu) z4(8q!R@T|&wJ@H=4x@G@aMn|YbE<6z=yiTGdC;ktjfANXFSGp&e|uh>%hS*~Ib37j zD^vY$yI_es9>K|s%t zDHcl~UVp7Rlj*qjZuw%FPhNY{{m^bfuKOr7SJz)@WNSVwc^?wYbE(0%r9uv+p&x(>Z;>8_Dm>-I-7KhhfGf?Rx`z!2 zV8DLUAAD(0t?Ibq@m#BVKB}9ZP1_i%PuANZgOD&z!gdzGRO4DCsY5TalDTk^*y=59 zSTxcGniU-tSv_C2rC8J%4AQ5eW?g4cyKNpNmO8hKz&g=ctV~5eWkYB*1@h^Z0wE6{q(8Z5RPNU0|$S9LAIH~p4$&%l)`z}9f<~>@60|kU6_jh zRQzZrQ#LucQ}x)rLVL$&j&bUooOPXL)xNJ@8f(SJ6u0f@lpQy&X)gu0PjlUxJ6C$D zxKcc?9f-dG*q-n*NmckLjB@Nx=6}K`=l+pA!VJEH>>L&tW!}KsXvho0w*Pi6KKGw^ z{N;1+j-oKfZe0FPNzM%|d}ttc3V60T|8N-M`?t3NNXg{rlzLQSs)E!jZ^mj5Y8QDt zGT3!2gBxa)Qzb-&6{z7li+%9$7O*2|)wJ_4CAziv*+g>6AX#hkYZ=nQogZv@W>w>Y zY5t|mIM09x46Fz|yuc=Ia8k_j`p6%@?2QtAT=9|HJWp5u+xxEpguANOOh?S18x(Mn<2%bGSD?O)Gq;gW-q z?s(kFrCJ^i39RS!)eR;5fu&y(nlz5sl8-+y$yWH|P`bK;0XQ(X#qKo6UYvxK(4<01 zk=?26MJ_$FUCf6q>y7rVp0e$e?~FXXERn%!Sz0cBll$Q13i#tk45H9H7iItv7g0hD z%qb8k*kl2j0m!z>8-$T$1;aip4 ze_LPl>)w@qR4^$)9pM+DZIjxDJ6vjtmIrmzK^`u7S|=5i{k2lqF5X=;?nvYQHthNi z&e^afN6cPft9Xb>_LMD}MD=Ss`R%W=+>K<1ZHWl+nBqR$+Yj2auKIh~H%vb@UM%=Y zk~h>9iuzu9b0MT+r0MH^Ao#)f`FdSr46M|yZIW-F9VLZ$*v;w2H=X~xC*i8*hwtc! zBV$*|PaVvja~S&Tbwe|seEvw*fQZ>nf15~Mf9~0Biz4&v4TFXFY4qF1-Dk3eN?Q!g zz_yag!asGsrQ}ir0o|RR!m38nH`!5H_X8{ER4|aLetf|2`rJpH11uQUW04FNjz)^w zz$pJ{fd7(&yc32KKYi6qWmutq4t>S{8fxyL-Q!{Mi`Ofza6mja*R?F{r;`-jxoWHg z7OSqUO2#-keliGS)%6Yk@gq-%JHLonFyeU-uzj7gi=b53&m)qM`&Uu8+ov-5$0D_) zR@az$O{#Wsq^hKFRerKkK5(<7aC~o>*FdX^sI?I|ouCa~_ zwp{5+?e$$+VUcJj#Bfo+cG23Ouii(jJ9~{PpqrAelpn+>QVr;Tz?(i4U_N)Gxphj- zRdV&DO*y5?1e7@(#&TRSoP1k_%E`W2ft%&|o)9H$02ULq$1blA<(Ap#q`k zZFY(9u#4{(imvABoz@Pk%iQJas^0N^Gsn*{AU${YU@?{OYL$OW_0Fhr$v^ZncA}+q zNImJjNy`vwx64pY{|b72-XB)aJ|GTB=@zOlZ>ayanH|hUluoYtY~-W!DHZ1d$P{sq zO|4B_6G0G*9gX3XwY*6I(2bJ^7q-ysv=Q&DMY4A%6`4b#VJ3GLs+RS1O3THSEpqlB zl#BsO9-aS?q9az5QD66k*@>XhYh5M?vvJd2QNd8lrE^SHzjjKvGKGMIYOFjodqB02 z+ejSju798Fg=j`rW~9u)J6#7e5>08<>ZEB4XjvlSlNJfSFPKqbYGqe#7iCo$nxCW zu)vQAD^myxz89LctGCiD4G7Y8@E9oeNRSTnQA%nsx^mIY^Sl!Vkv%cmPAF_k@H!sR z35tH>aCwUFW>IUTq(~VH;N$9xx0_f%(2A zbUHF!4)93lUG)NW$Lrp*!zQzKr9Je`9~A~MX1)kWZLVZOPN9r#FCQ)ExKw`bm}M8`s))z9NNA($FRTG=x%hb zCS0snyb=$1g+DjkGq>ne?r(RWH?T5{M)pX%cozd?g-eXE4FR9o_1Yd)pWGr?1p`O_ zcuAqU9WDJu4*(^|EbReC3m38g%EqL?fD1j^nZ7DH!itk=q()4Pu_7iqLvvo+8O#I_ zTilowa8QX(lUe!I;-C%q^n=dw=1?9u3`WrW>rgT3D<PW zEB%F24Le5P=^hX9Dc}yGg>sL(z6?eBiAaE0tE9C$!|LuQ1gw zWiHYim@tpjhuT2p+z-;m5)0as@;m`RV7a$w*+)rGo5Mik(<@7>oywx+uatk*>*v&q zFloaGTL;}iGy5+5z3ti2)K4bJiksyPZiu?ZFSa>W(}HR<*M>2lRJC5 zAXH-VWCIvTsyVG0_o`WJPvMXqfGED!8#R7p3PDv|RU!!|7IdiVmjT`1>sIWygEE9O z5wN@;1G*@^reK^;&5%g*SZ2zs&h)d7o5Vtgq`p2jG53!p&NH7Jylm=_FWnm>vr+ZM zW6R-Ydr0?wvVMwWCWcJ%l=#v@Y;&tdlvX5I!_6{3sQ>ID@t?7`FT5z&@6)Ky<=RAd z;bwt?mOQ5Ozno$I(m_(OCU*N6G=4TBS?fEJc*&!H^VIIKG!^DpS6;wBK#mfrtI$ui zygZ;_)T+8zl?CtW;@Ki zpYO;ak1Bx(`^%dehmuHYe>~s#{<`zLUfrng?9-p!T5etK4_4z#N@5BhWTIItGr^9f z-pf zX7KRbo!}O^(cccHxS0Th_rbz_cib%_x(G%7LAi|ev$^9{Y>h#v63KL!KRBP;&ZcT90N7UhKB^fa$=H3>0X} zeJ|Z>dqEukMm)Qgqr(WyKNj9@9}_JPVC63dzn+216ucG(09Aqy${|OtKZB_7?+PhbvdwRp4J$V6roLIhqUY8wS>r9ZS>E^Y9phJq{@TFauRoT}GpFjU zx~2Pqvt!iiC$q{(^Jghb=Yu`B`DxJI28{tfwk`{Q%#YuHDg%s=Ksqx-NQo41#2wW* z8M#O`ZnNiNxZcK!ud?%4cD8asza1BXxWZVD)0)zJd{@H0u(1p1d;e ze`>5e3lq5RwsPbhOuOy8Sq4uDUAHBMN?Q(c0WH!{FUG#cKG4-PKa%4Bnz{c{x?b}A z1=EbJefoA+nB-lyuJ>b7GTjA7iZ7v{|BZ>Q`6shc{Ot^-rM~2>ES@bMn*IaT(Zaf$ zi`T>VbRk0RafbRjw67AkF@jzLTs5}Qw%%312{upq$7;JwRzs?Ywi**%7{IOH)D&1)HtNQRj9XYnHulxFS6@XgsM!k&i8qr@qzjpr{ zo<3P?Q`5d`JAN28=7`BR;PQ4=w$)EZ&-tJ3x;>y>G^nR~Tdc@}<;}#(Jb4$2-j67W z@^!Op+n#%wCi_3UekeIi68Eg@`YW%^%v-dthzE<%=VMK;Jkt8kyJ@`}1Sba!hW;tR z8tGGHYQLeVZXpkfA5w!GUq7#DB0aQ79?K1)jcs~2w8uQCEviv2u+ZtKg1xRnvx+PDjbef&^mt-P`c!=Hppqni zJ4Q-P#dB{$5*s`|74<;C>$u^)#izzX*gBuXHwE52bqM;Wz|){4)K_P#xdl;Jd5aWU zIU8k%re{>lSOmD3XUngL?;pKM5cU(1-y@gb72bqX6P;u`y zrx?t-y#sm_5ohj2ZeuXKq5WsqXd&PtI=g$|8jYcWyTOE#w&u=JwtbV}?%CQEOPa{< z5ST~rYu$!d)v<-H`n5aS&dbacwo5>%fe2@pjj|3@L(VI9zIP(#VHV7JI{ylA+nHu2 zcf%T{sGGqDiK0JqD+F*bAvCBw<CFzw{h$#>Zu_lQ!hD@WVx@DfkyYVpz z^JZ2l21RONR58yN^|mVdG$l#{|Hx|_nKuk_i{P%7vfE^(sm;6w-%Bi7#%R`qI&$~n z>B*_K`Z2&fC0vL z7^dZCg!4rk37o$8z2_lfLL{TWsddtp#-w~-s_Vp9YBRy9)GkY^9q{N)v;nBNX^ne_ zC;_MUYH-*ZIZtp7r{rzS28blS4|yV`8lR)vo8&T=F%XT(zdz#9Xs+V>qyNflteF79 z$7w>YWxEDd{dQRl{S)RNLz85y`8Q@JCSe|TjtT}=ujaJ}nAbQ&^BpV@ zM9K2%VUSy~O8Z5tv@>Zy+0C)o~OG`VCTuU3Bn$miE1hiOpmz&n8 z686VJn;9qt*~1%b?7+9jR`vdcZH^r?KKF)ZMoQ?umP^@8;Lsvih7T_{+h>@s1r`A*+?hh61UVGJf4q z7r4bq$5QcpyWpCxxp(h#j(!nKqu1#Tpw|Y4*1_Ot{SNd{$QY=GXdk$n2n?fJ)orJDNywtjznkac7zS#uIJKW<2xxj7O8%pZ5lV zkynCgC5SBdp!t7dmd_b6a&-417h#kp4vYic=5GG(aj;v(iqU}^t}TmOe;*@*(b5RzS4StDnX9*NB28Dyrw3~mLwUL6CynX74~05dUZ@cNFg9F9=4fXiUIfPK5WA;kYq1Znr#E8{q)3~Cvs=$Jg+|~nd{MgqjTt}HedOk#5T)pL4Qa@OzUmtWzNy>xtDX% zUydES60QF1iJ_pkof^KTVX#U}k?+PoKCMMD4K+Qu(5mLY(sl5mqS7YaYY_^p%J;vi z;WtQEqyq$DkIJ9j$@ZT3Q&U~)(GpOLnGwZA4+;b#9syf^dHkLI<#z$1(V1N_Kk@If z#z4j8-1-{48R+;h*!3T;stR?`;n9>I&VbeO})d;MSW;(V+Izs^m~T;Q`SNLrh)}B zc-0abi&s)fyGkV4fV=CxLtIYPt!k z-nZuBte+3m3chx1Dm>XMr1o0>@5F^B8z_4m4PS@$*V4d`Q zM&z~E@bP)j<2oHK?owk?c zJ9*s=XL-TaU`LNEa^=g;QW6jogQ48U|}7W*ETU$!utyVuM58yZw@F~9Y) z7%0&fwQo9m0l2)k#LP>gp;1+3tT&7twUlZ$60ap1Fau}Sv8c}_)is>B!d4>X99?`_ zv@cyxgO@b^he}NqH0GY1~spL1GAo=~l2IMOM~g{>{#(#3V^Xv_@0t zA;6MFSI^;hUq2QyU$gG;jDWcWN|$e!s`4`Z@VJwG4RO)QLvi&{fkSK>@=L`V^J~g5 z9v$+FeEH{B7se+VXETX|1#y{P;5|k1ABwtV2SmQq@Bnn17waW7rUK;U9{a<`A_@g7 z-P_E+|BxsFJDgMnDqKMCDp&ZgPMR#$d6zRDTNq3h{hBEkRz8E?jb`H*bWjGrVnETu z#ZUiS32-TuL4k^P)p)ryvW6)1K=X6g4#;d_`ez{fuXi#3I4q8);nRvzVS-v-3-FUp>X zp!eS|54jGUa<2k~i04=X1V-%jziHMAebFi1T7Emb(IstHz=Z7$R5ck1zjWd`u&dE| zzDuIAq%UijeeOVEQeaHCkxPmI3?TK>n;){Oyv9s4Yq02tY}B!YfflQ4v(>|Wf87Ep zA0`uI15cJeu2WGV)^6<30~67zZlb5$xuYk{$vlgWQN=-d;Z}b6dr60Gb0UJR1~%oA zUjt_sJR*-fNq+4o?@t*`@AjAJ2ew*{=*jzddng(OYq{OY-d2cpvL3YT=zq|B5?c=* z(ZE(pi*{HC8c)cFteLc7%$;M(gN6^elIaHf7IA=oUmkdLH#-%94=YC zODA`G&LayNw#PbJqiNt9$CZ7G4_5CwUjELVp~&(q^fQd?7YspUHp?X{|@B|rP{VcWeT`It+@@Lbsuo;B(RIRv?53oU}cu)98! zPaMCWZ|GzE@kNu>KDkQN=JdOkPcBeB{bxQ)%?GE>iAoSn2*{Fe?fug0|R*DjC!R1n~)4N?&Jlf>pInNdP3zDBe_EzAm#$E{K zsISzj(T<(9T$=QWVr#^Uby5|Odn0g3xuS6|^>PMaH;iSsU(CzqRrAhUfF)+#vj+^O z3bk^{Bt84`Z&cYat^AB;%la<;RHNF7HDZ}~i<`}?zaUn+)R zzP5Ig^a#T?ia{R=|Eub|r+Mdu<`!=ZZv?cJv;Oq+GYCG-t=tz+1>G-x1vwv%SZ-mV zno8-_cRzjnXY`BA$fGRo2l$(N++=fym-6xYL2zdeSM$8``=w=;a@pIZH`V>MGuld` z&7(cSeRzh4D2->7(~Tm6FA}F<^Oyx&g$3AL>S$Gqw!Wo4g-=t0o1eM+T$Bvy3w(XI z-Qaw_@Ay@7q`r-#erkX?Y58;=rft_OnIrKNi&M|-ubCisoo@*lMo%Z&FCy~abuzN1+_ojNvLqNzISwwoI4iQDQ$lEua62fBy_7d zdaRL=LmNABlBuDe;C6lJ0Mt582{yR&y3Is)V3cmK?x-z%&2BL|A!N@mXDHHigTm`>M1_0u2p8uA)0y!7FM;-dU*~-r zXqbDVm&T=c#QVp-BP0K-^8EiD>HfdKVXAh>zfj3VAGA8mQD*ExgXt8k2!!?MTzs3P zp<_$$&W zH2LLS|2)Bp+-1v5Lhrs?mh^=ZJe*hnA6TG$gyS-1vvn z6^#dHL7B9l4H5+GYDpVIOD(kQr!DBz+|i)8D<(-bWC(p{t?zr^{u+g!RVk)T0enEK z^OfF;df3>yJGWK@$znxq5!MEZrmt9NY(UU|;VDnLk{6}rsuYb%W3Lot9@scNAIoHX zQ)A@V#?U3p9bL{HD2)tb^MR;Qh>r4JB5lVX$;fq-G8k{LBy3b=GD`?;eyq#XW%Vyk z{Bu;_dDQ1p)o<6I!mJUYTy^5}pm&H;W?9GgZ=Sg4u3KNtNt$7FV zj4x+cge}RC}Tu z#mJX2az`7Dew4J45)-n+NsQM(hUrUwpcq87;u#Gp=s(6FBTCER-?pzp5d6etcv!8pxHbxsTtd zc6PtZ*LQ5V#bGUj*%=yCn47uBqU!Cper-kKnJXVM3^g7I+EG{bDGN1ypV~LY@EDu#AR5?}LjqIA%zGsc;)puD6l@B^qRw6LBM`E&0 z2c_>xIP?^3jFGFle4F*(f_0j{=|2dBP7|A~Lb5q|M~$HamAcbL_Wtq9o|83Wv<(2s1wm?1-WoWx?)nc$`Tf4^a1R4uN!HRpJI~KUEHv-O z5u@&Bq;!$)D92$QgWU#+=Tf})C^e%7h(V&Du+9VT!;}Zbl>q(0gTVl|U`14XNP-(y zX}x}`5oeV>QDeF5TwjcliZ=Y_X1&Wb%0nSr!7(wO#VA4ic|hi++6rHolQO4l5`uF& z-aN@kllu|p{bD6XJ!P44Boillohxz+&c6@&MqdcjF84${TpK7Krzr!T?A!VEXu{!P zEF407YKY!mISb^XwbAJONw8oM@Ic4-h4imSolCy=?5_HvkY!}^gP&PJ!D~Ox zt|E5jK>t-`_TOR1&rIaaLI#boO~G18kmZ3Xj#>AoN(Zc`!E4IMci4PBDz1M|O%y+( zhPQ!3|D_V9;Dq4)u?D`;RB7K;og<9&^`Z#?prR<{XJL$BUw1#%?Y}dC;u)b64!E6D wTC$JE{iEZ(82$_RaO|zoyZ>{Q_9o-_PlbK go-build:v1 /bin/bash +# eg:docker run -it -d -v .:/data --name logbus-build go-build:v1 /bin/bash + +docker exec -it <容器名称> go build -o +# eg:docker exec -it logbus-build go build -o logbus_musl_1 +``` + +### 额外注意 + +若没科学上网需要设置代理: + +```bash +docker exec -it <容器名称> /bin/bash +go env -w GOPROXY=https://goproxy.cn,direct +go build -ldflags '-linkmode external -extldflags "-static"' -o myapp # 静态编译 +go build # musl 库编译 +``` + +### 运行环境示例 + +```dockerfile +FROM alpine:latest + +LABEL org.opencontainers.image.authors="sutong" + +COPY glog_musl /app/ + +COPY conf.ini /data/ +COPY ipname.ini /data/ + +WORKDIR /app + +RUN chmod 777 /app/glog_musl + +CMD ["./glog_musl", "logsweb", "/data/conf.ini"] + +# docker build -t glog:v1 . +# docker run -p 6801:6801 glog:v1 +``` diff --git a/content/posts/docker-user-start/img/cover.svg b/content/posts/docker-user-start/img/cover.svg new file mode 100644 index 0000000..f1a10e4 --- /dev/null +++ b/content/posts/docker-user-start/img/cover.svg @@ -0,0 +1 @@ +
构建时指定用户启动
\ No newline at end of file diff --git a/content/posts/docker-user-start/index.md b/content/posts/docker-user-start/index.md new file mode 100644 index 0000000..82f6dae --- /dev/null +++ b/content/posts/docker-user-start/index.md @@ -0,0 +1,89 @@ +--- +title: Docker 构建时指定用户启动 +published: 2025-04-01 +image: /posts/docker-user-start/img/cover.svg +description: 解决 Docker 容器默认以 root 用户运行导致的权限问题,指定非 root 用户启动应用。 +tags: ['Docker', '运维', 'Linux'] +draft: false +--- + +## 前言 + +我们在 Linux 使用应用时,往往不会直接使用 root 用户作为应用启动项,但 Dockerfile 默认就是 root 用户,导致挂载生成的文件路径往往是 root 权限,非 root 用户访问就很不方便。 + +## 解决方案 + +### 1. 安装用户管理工具 + +若镜像非自带用户管理: + +```dockerfile +# 权限管理 +RUN apk add --no-cache shadow +``` + +### 2. 创建用户并修改权限 + +```dockerfile +# 创建用户组和用户 +RUN addgroup -S && adduser -S -G + +# 修改目录权限 +RUN chown -R : /data +``` + +### 3. 指定用户启动 + +执行 docker 时加 `--user` 参数: + +```bash +docker run -it --user : +``` + +## 完整示例 + +```dockerfile +FROM alpine:latest + +# 国内源 +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories + +RUN apk update --no-cache +# 权限管理 +RUN apk add --no-cache shadow +# 调试 +RUN apk add --no-cache bash +# 设置时区 +RUN apk add --no-cache tzdata + +ENV TZ=Asia/Shanghai + +# 创建用户组和用户 +RUN addgroup -S glog && adduser -S -G glog glog + +COPY ./glog_static_musl_1 /app/ + +RUN mkdir /data + +VOLUME [ "/data" ] +WORKDIR /data + +# 修改权限 +RUN chown -R glog:glog /data +RUN chown -R glog:glog /app + +# 指定用户启动 +USER glog +CMD [ "/app/glog_static_musl_1", "logsweb", "./conf.ini" ] +``` + +## 总结 + +关键步骤: + +1. `apk add --no-cache shadow` - 安装用户管理工具 +2. `addgroup` + `adduser` - 创建用户 +3. `chown -R` - 修改目录权限 +4. `USER ` - 指定运行用户 + +这样容器内的应用就不再以 root 身份运行,更加安全。 diff --git a/content/posts/hello-world/img/cover.jpg b/content/posts/hello-world/img/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b40d7431b9d088caa7be931450436adfb728a2d GIT binary patch literal 16922 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 literal 0 HcmV?d00001 diff --git a/content/posts/hello-world/index.md b/content/posts/hello-world/index.md new file mode 100644 index 0000000..f239262 --- /dev/null +++ b/content/posts/hello-world/index.md @@ -0,0 +1,93 @@ +--- +title: Hello World - 欢迎来到尼克的小窝 +published: 2026-05-31T08:00:00 +description: 博客上线啦!这篇文章介绍本站的技术架构、功能特性和搭建过程中的一些思考。 +image: /posts/hello-world/img/cover.jpg +pinned: true +tags: ['博客', 'Nuxt'] +draft: false +--- + +## 博客上线啦! + +Hello World!欢迎来到**尼克的小窝**,这是我的第一篇博客文章。 + +经过一段时间的折腾,这个基于 Nuxt 3 的个人博客终于上线了。在这里记录一下这个项目的技术选型和功能特性。 + +## 技术栈 + +本站使用了以下技术: + +| 技术 | 用途 | +|------|------| +| **Nuxt 3** | Vue 3 全栈框架,提供 SSG、路由、API 等能力 | +| **TypeScript** | 类型安全,提升开发体验 | +| **Tailwind CSS v4** | 原子化 CSS,快速构建 UI | +| **@nuxt/content** | Markdown 驱动的内容管理 | +| **Shiki** | 代码语法高亮 | +| **Giscus** | 基于 GitHub Discussions 的评论系统 | + +## 功能特性 + +目前已实现的功能: + +- **博客系统** - Markdown 文章,支持代码高亮、目录导航、搜索 +- **暗色模式** - 跟随系统或手动切换 +- **文章搜索** - 支持标题、描述、正文、标签多维度搜索 +- **标签系统** - 文章标签分类,高频标签快速筛选 +- **友链页面** - 展示友情链接,支持申请 +- **赞助页面** - 微信收款码展示 +- **封面制作** - 在线生成封面图片工具 +- **网易云热评** - 首页随机展示音乐评论 +- **访客统计** - 不蒜子计数器,带数字滚动动画 +- **SEO 优化** - 自动生成站点地图、Open Graph 标签 + +## 代码示例 + +本站的配置非常集中,一个文件搞定全站定制: + +```typescript +// config/site.ts +export const siteConfig = { + siteName: '尼克的小窝', + url: 'https://nixus.top/', + avatar: 'https://q2.qlogo.cn/headimg_dl?dst_uin=xxx&spec=100', + // ... 改这一个文件,全站生效 +} +``` + +文章的 frontmatter 也很简洁: + +```yaml +--- +title: 文章标题 +published: 2026-05-31T08:00:00 +description: 文章简介 +tags: ['标签1', '标签2'] +--- +``` + +## 部署 + +本站使用 SSG 静态生成,构建后直接部署到静态托管即可: + +```bash +npx nuxi generate +``` + +构建产物在 `.output/public` 目录下,可以直接丢到 Nginx、Vercel、Netlify 等平台。 + +## 后续计划 + +- [ ] RSS 订阅 +- [ ] 文章目录优化 +- [ ] 更多小工具 +- [ ] 持续输出内容 + +## 致谢 + +感谢 [二叉树树](https://2x.nz) 的开源项目,本站的 UI 设计参考了他的项目。 + +--- + +**感谢阅读!如果觉得不错,欢迎点个 Star 或者留个评论 (☞゚ヮ゚)☞** diff --git a/content/posts/nuxt-content-lessons/img/cover.jpg b/content/posts/nuxt-content-lessons/img/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d91cee236ca1d2f1392239c291d9e8acf9044749 GIT binary patch literal 22613 zcmb5Vby!?IusFQ9mqm-i;!xb(-K`Xt#bI$uaWC%f6fG28oECR?EtKNkqQ&L6?R)Qc z|NiDVCz&TRXOhfGawao5FUv2RfOT0fJ8J+yQIQ#d3IG6*0l07o05}--_a=cu`j_j% zaMJ(5O<*|V|M0-Wa6I_`0dejo1*{#i6{U>SP2IgCkI^8e>faW zLU=L?fDl&R4Z8uK{)dN?g9Gl@$ z?;WWWWrV2s`8i%z0nz|eWMmX%Bvcd>6f`tcbWD6KObiT6Vq83Id~y;>3UU%MGAdd& z1}bV68Zt6QekK+UP97c}N(Mnu0WJ|XZXT|`Lg3KQ&@eGDiLkJUxIkneuK(Zg(hI;r zg-e9jLx7_Oz~jIn;K04~14v=oL4bq7zdrm+V9G#5LPmiRiT@H{@P9PGKjO=G044$) z03L_{glRWNl?Wd)lqwTr5%d2%05z%syca0ik&9@@w&RUcoi?|pjz%OTgb6{ zxH-SO-SL5|R(2_;xYEz)s+rg(!G?a1_n=E zoOLPA$M1eh)NKlE!ur*j&A<+_uH@M>u;zv z>kFa1Z=XXx`}=*@KeXu)$`hQ$rOthr`W%QSESfJyG=G#Yd@PzNhr5|qG5dzOrF!?q zeF;jT?u_+k3VCI5sa6isSi_qkwr2CXU@60BSM=+V>*y!QQ12=xb%7a}Bf8qLuxCICIS!aT#EwUei6l@eNY-=sqhD*P0#U&?JM@qok{yc(q zKULKPeu{2=-FH`v$|wk(-(UBO_7U-K+o`Uo_E4M(lqNYlydts*VDWXeNovj$nqtc% zCt7;#%+}T!p-yS~>ib)wMUjq7hJu*|2W~Y_2LVTeS?Ie-`_!_e_T7ca>hn?Dt0iN# z4;Dft2Ap<=8U}TapIOG11PqLsQz)F})alo&6W)AoRx!|tvC99fbD=n+WND}LM~>%Y za?(-o?vGG=P2RhymX`d6ZM#~&&(J_@CvxBIsXn25rn~sL<)*I|Q&Uau@!3ap>kWFf zAqIlbMIUcs{h}1>uiIY^YOw;=F&ctGWyc z9Zbb!XfJxPs^$4*pNjqN5}k`VR;S47@Z6g+0y0@{(k(8sde#*mnNPZ<_*T?X+b+U+=S@DW=+Z;lj|W zuU<7C`>{i^ZOomqE+%}X;XZ1~hb=7f#@;BZZH)3s+fQ_z3F0ZgrN8F2E>Y^HWT@UX zt$lZI&d^=d#bIVqxj3w9C+lpXFnKTBC{R6DF?bSIdSbYrfiq*2{^94|eS-33hu?Eh zt;5WnOo6XySjuVTd1taevcImt;zi?C0Y}3XzjSz;!;d$86k!w=a}=I=#R+2PTkcQz zl!EGIg_p$svJU(01&!ModmIl!OM|Zdl%r0s?-BOJUI4?t_iG(K?_CYtd*5|j`aj$m zqqt{PbTG!NscW@$@_YWNb{oR0=x%8E9HH-Pmlhc&>u8vvy$iVs6pp^mZlD$Tl$YL-d}CU zKz=xsC5=TCqhwHYERFn}%Mm#dg>apF9PLbA?dSVXd=vS_%bIFa@gtDy)u2C)>Uqig zq1PD|Gw0W}pR?&I(EffF@L>1-*38~pujncRw%EO`O1iNAk|I3ZfkKwY)9Lf2J*>N@ zwT{#B$Lrjt`(K^dzuNQot%$#=39U4pcYV%}7FJ$N-8cGe`r3BiioZlV$Ek{Q?=Zh5 z_qafA-I=^VvhULG>y$IjQl`e=?~{}nElY-ryTN@Co%@|->dKr`HZo0{mOn<5YZ`W6FRU&ag(B#V{@#Zf;ko?Fd?%l)XW!}lb-S64(%sK) z#(wOk`%MW|t0TvkH^&9k&|jwe*9o4_j@}Ln-uShK?A+w)$_W%s%d2q(0Xo&kbNB`< zk@cekAGN6dSvQD@Noc5wXq2TkXU1ZVS1#IOE2sN&i8o(6o&DB-E4wTi3%;@1ixc`P zz?yToJ*HSQvY+C;r@SPh_1=A-P_?b1D!d-4sfYcunDyhm$6}(XKy{>Cy$m&uHarp# z0EhdpZ&3hv#i%d#;CYs+*CitwXi?dtD?n2f+V9*+kOLEDiBA9k#$ni4l_p{I7wfw8 zNDcC@?hnhI*!*1^E2wz@cr&yh0BRyUQV}fxvAaF#W+U02&Z23Lb|1lY=WIqd+b5w^le>T8Y11 z0iYq$E0svl0+Y~yi7EhUvwup2F(5{w1*xD>r6PvW0%-x%QZRNEczKwW#|i|%{|9i0 z@GwL8uP}HV1YATsAPAodiJFsuLqdbbjFwAMDiLP+p~CDzI3)PXKr4EAn#lU3Y%5T) ze0>jdDwhRbN=hH$Izf9KSM*J|lnt0`0y+r!LIUxctcanpMsb+H=b_bxP~T5 zlMZnxoVHL(i*b==hCoX@k4Y78_>Ws^_VV<6pfV=}G98UClT=Y5>y<^_UJEXP7-z41 zk!Jj=8ciqMv1Ndmcfz7-M*89OGN z{=|$JzH{q+b13xjww5sJo=`V(UpNU9YEx$GK)n;WV}0!;^4V9|(oi{t)^VtX&B@>M zGr*-3HSpO3!jv?;60VgIg@&(vc|0l?mJ3#J9>}-~e0!k9qM}8UEn@`|$FxjbNE&pI zlAW#{EX5+3f#}i;lE#CtHNTKyVPU;$sLtkUuh*d9+_H`xQtWNF*Q}6^Cc`QGg)X<( z7ngv;A{`OUSSUAqj>9I#i6*WX)LLUf+z5%g4vZK9E80 zdtT3)KV^Z7PxdidQ!^pw+%=l-si(+_C%i)iqmtE@U z{fbq(eoHiCQ8cf#e4`^srCvuyp|IcKI-QBKjSMSkK;}GoaIhqPPj(>1Ya;QYA%R}D z`CU!(BvdM_Wga~By_*pNLTaIG_N{Y^mtth34tna=g{Ys3{Dhv1t zCZe~HF7yPOGd>@d6NTlq6MjBExf#OGwbl6VW}_KBlnF*;BXvdGz#s8__@llOojkSE zwrk3gD-RCt4MQn9~?Fb}?n#wXi2CB|Bo6e(7UetnCg73d29`s)>!jUkU{ zQhm4<$)#nPG7W{CU|hyl)&nIJvmxpSv@YwUS+lTkUZ8}@f`8B%PKl1??0#t$m>88I0%%f~RBl&o|suB^q$;;KV2!P)nDw#Sj@{rPXigoWh8Ty38sPokcs z`7XvLVY5G1$#2cx`(nq$t3Bcs*KVO3^+bv&WyQgtZA&g+tX-+8+z6`QQ9ltnX~uA@ znw!s_va?eiwr9q7`{JUtQg@&F*VIP3ercN67R$UZt|nKwJ-8kAv)HiEz8xB}*(p$? z=7ceEZDS9~%GW47eS|j4$hlkUEVr=csG*={p)6MG}NEi9XQ!bcW2 zG1)&R&wb%+y&Aabh-aIwe{$_Bnm=XJMe(@Owj4K+f`sNq`WMCi zZwGo7aPUcbe+no=@`A;iCHyU#-*WO)d-Dhba#6mY!kxfW3Y?8f>KCo51UYArUo2J0*=YtDX+BuzZo;jzhZZvHoHfq!yi zadyln!o9e%)wP4~(1sY|lKExR^`Z6r(!&v1pbNb_hB1rX`#W!xu^i!x1bXTE_p7u8 zyv6J^Y^Im&6Y2W(e9|L$%?z%qu*Bt(lAggwIBSKbAf^lF_Rtjj!h!7FHuQ9)jj{n> z>2G@*mIosU1+aL02_=avb7l!@CGPyZ3uI&T+q|qV;AXmTr+mYC$puR;+_Bj_ z1II^4dDEiyzK~;pI5d%mt68q4`+X6((++CW zbp74X_)A!AyLCr(cj^^y0Uq($mLH$%c@@siRDc}i9P)UxA!|;w+}^&~CFp`$Op#4x zXn0u3E%2a|&|=d{j8ICSbI@&k)$3D%ydNbcS2zV??Bl!0+c{8(s7X#ACT^@(W?AXr z5UvB6?m$v}8>GR)f?n0kY^2eXZZu3i3+__IuXW_aX<{OLBJN4>^>bWfY>M7yPTEK; zR6Ac`GnTMw%Z&D{d{9yM2a3eEn1D!Rjomqy7k3R=? zcfEePI&cg8K9KG;btEu5H8GSzd6xluJkXx@RH;2%^`ggy({zW`?917|;96{4zv z&IBX_xc_96P?FhO%+y_!h#}<=I*;6gM7g82Eg>ErP7!HL-YWX|CLH-Z%lWPHL(-iX zgj0(X#Fd0BIws+u9nT4WkM>4S$qid@TNnfWawmVBl2%5h6yCy$D63bqqHR1>N?qZD4$HmVd}rW8qbN~9DpAA1E=3K#|wP{=)ro31yK!i$uQ`)LGPL7n^y zLtgqkY{P?@Gg$iZ>=^**C`;D2Swm;y=LIpu3BdVAj)5k_nTNR$Rv21bDpkVQDhs*$$>-Mx4JI z{=0R7g$Mpe$M85nTm(ESkR}HwwWK*BjfBR3dWQe2=gvU^(0RV*H-4dzU6nl3U}iiU z4bx;YQWA$Y@DPpphhH%RISu84Iru-Pw_X6&r37IymY|c=d5yLcclDD3%3lO&F?_uz z^%pU6gS&B??eZ4Zog;2}+U0Rm?QBv3s4z2Xq6V9g1EUCybjJFz0dzWo6?IaA=r??(ZvKlg?1VoZqh%AA2t~Ac7#(&Sz~}l6 z;0H*%J`_BVLrVI3b*E+JPej<*z_mWiBC|;XN3-T|tu(VYuQc%U@k?FsCDCV2#7!3Q zH;h1`Fb;6bl^pN+Uta5hbQ7_t(G{!0F1dOeDT}Ra{Eny$98Kx@GdVsvp+`@Bs~o}@ z*`gUs%M_?L-2fV%fsplqR@BgNe2IVZUPQe%R4+AhP_F6_>gtPIo1#ymaM&Ci_To_X}gBLcw6=HaS{;%QljZ zk|s5-#8rNBJXIu**oP7^K5OPRI?Z4Q`kP0##KZ{f<>WUc*{Pc4X#}S{5eQmc3mqQ= zyY3QTBZLp;!$3fQLq>u}M23Ye{sJ64ClCk3g@8*%%^@kFY3`b&5sb&JRftFu_WR-2+9_r8H|#dDA$1WDmK@ znItmChq9t$JtawdMS3(=MK)EQEY_JZg?n8Ui_c`l+8wk#`S~PPEQUULwM)I)V%QWU zK8fDMu4`Q(Q<1${Cb4G*>)2>lRfX~4gi!qh;~SbA+TY;>Ls?-u+Dy(`Ofi2LLYd7` zH+!{2Fo}+PO5(A0rO60~FyGS_ye3E6O!ne1^oW+FsxQiplf#Dwqzhc+5pSHRN9GeB z4zMmns}tg;%q9nfA`7i-Mawc2zNZPX%8vY1{DHvNr3Yhvl&Fm9XL&*7vC-1E=V3QTl2fY^Ew4`@LO3co zJ-jKjDW(^Cl6((FZEk5PniYyidzsqAC7Eoyo4qc=wg-})@ed4XYzDtRJb)a(iTx56 z#NO@PA=cKUCn}*P4jiD)JXEBeyH^{sS7d&Z28sG1FJ!p7>@mscj0de}1#<>%VgtXgmr zun3WTawtV|Pe1A~VvTdU+bBTkj8#1qDx3QD0=S4=EM1TpEm~#ZemlvNq{y3{ULRra z$z`t2%_pd*8vheNKjh?^Vsz{1OXcw1tbF0JFb4v!xQP zu$ax8`gCSX>-N1t9jS3{5=Kd)a~UyW+}zW?C&OYWq(#r+*>$6O_HD%D3}V0f`X zvXw?(n%aljmg$o00dR5wJu2;bMtz(*oo3`BFInY#9ckYN?oD22_GGfCui?7S?4+aS zl{cXBK*ic?`WJu&3r}GwHaj#!VE#0P?ZZd}6QhGTr<#pPoCCco@s+mx?*Kztcf)T1 zgEIxLIKn*cOZOSI^i}s{)ps0`?t%dkX;9y-%GPGv-A7pl-?gtBUtNZ~P=r>O=eG?W ziG2Jpa=yfC#$6pK^7g6d%_}`&XsbH%HvV{2egIh-f@~ZK0{SwnTWzvR{hs>Qzng2Z z2$GbyL2U%f(`D~q9&CM4H10>Kr)g!!KXh}*fsy88jq5Lf>bDEg%-=KK`By+HUI`jr z=zG6A%+mILi}#e;wPgxt(a`*@ zISiUsx9!u!KHrFMpylSI+zm9$f6VFBhyAfF z;0NRVb!DKn(=3@=_1p`fqu@W+AuKqK2oDDjTUh@K6vN?wfSi)B6*ZVDi9@0gI&-Gc zbG~Wj^4|v-<~kGy4QF}i7#)OVeu;F_H$iHXaVa~HDc5>~;9(M*CWxzhV{IFYByxxM zR$iKL&T(R#iJQ+vlLzdv%cGfYsI=1R!r6E&hkR>{$6{elkd%pkEJN|hVR~LCByD=g z>|g+UVK-(Mv< z$fsOPNBHR=eK$ADh#cL;7pvIomD|#q{nM5~@rc6Uaw+MU?Ksg~Y|Np+?3zKoKdCnD z^&44IDVIhF{z^73wqw*zL_Lm+DB^f)AyFZ+`5rT6R8XHr7-5Jpz9o?8r@{r=1Y!#g zcmE#_D@nlt_3lH&C3C3;cz>#ed5Bf83&k3$m7wGrHofuqfec^&eluJP8uFa-D_}zp zjkVHRSUYeF-|l$_IFXZZeqnLF>WV+InnSt*+~V^Xkk#5PEG)L*3{OlSMlBrA@MrPC z9ce5JDdAZkZeZcygQ#sKC)#(!e%unALqp?JpyE=f0j`{vMiGn2MyT8|FC<9$bPRSO zacmTMVihP8Ea_rL1(O z6OUX)EyfIADC4E|gk>xT? zBI(my1Dd51US|Y^^okw{^s2XHWKm1B$EG4Yj2#ToY0W)WsWcQNKAD)|CQADNr#JR|(JK<2yvT=?Y{PY~Ce zSSDvW#y-p~yxFRQ&#>F=+UgW3TNCC<|IAe1h`Yn@V9sO-IRQljZ9Sr#)iiR7>LNjq zCX^9k$lFmD#Vy96b5M6M93L-+Vxx9&b+io93TYUqy;akjKLdF{`?a(AN_=-B6dz|r zi$qsrS#_n@*POWHv&ssim7WM8m<{jRq>upq19HSrH*_uyrKQ3Fn8HwC`<8_qiY}AB zu^-J^l1by+ucBFmL88`7Paxmhdr7#ac%atp+epk6KETZ28M%g7NE<;zESt!~P>)DM zp6sf&MpUW8^V9q>SqjoBZ^1JK!LlGYha!S1?YWx=vHG6|453BJWMnv(obBGxCza{+ ztuy^3_td+rAJ1$h``5mI{=o#zZKNJ<<~u?^NO|SLw-W&`+rv72KSe@QDye$jR}AlB6Ra(h;a%lq9Pq$zk2Y4)(0N57S()5)4IssV zs&qvnvN_|-sRp75%gZ7`Kf@R_*;IZ;d)Bsw5XhYtMlD8+} zv+$M_9;CyDoTzrT9G>#N$JfA*6qSy!$%_aqgqu=W-s7KQCOx7?j2SRKmiSBRq|Q)k zuP_ZP8jevHzQu_7P=Kk9+bK7|90l6wLLPaG{Rv{(*oa}s<1QPBu${c)Y&*905M>st z@(6FSzhR^a^-J@Nzg?5J%91&66GOhYtw<+z43nV{AYS`byeb9mSG;Ekw;6%2H1NX` zBFQZ7k>ia!Bv$%Wyc{1*FMH6%>27&m{3V{qB{9^>2gJCITZN0OEGyfNfgqgJw#b_7)8?Y_x3l3YhqAu91mDr92rf%tu+zs8@G2u6#e=Q;BkHdQR7jUrQATy2u*A(g-+|g4y~+#V zyTx!-&gv?^WYNwt92zVkfz)u zyt+@F;h@u|=drNh99jGdWqE026sNQu@iD?Ap!WiM+;_5X8i#Mg%aj^LqUq;~I*w>3 z_L0<$x)>a)zd7W*1vXCM zs?#6in$aIHx}~isx{W#*-9}e~wO-jv95Nv3@bwRL49=*BKsjf#%Gf`36;$&rWILon zu={G)blp%tB~KlNHAlX^fs5DmPx|P*=zk?@VQ!4wZ#&o#we*bX^MIC9A{YfPzATD( zL)I|wA$7U7J5#Zh%8@39#yFS1 zhhxT)v;2l69lQ0u$aD@=`|W9y)URT+p@|^A;|}q<7Y=hI#W-a}0w>S?g}?vf8B>Vpjf~h0PhB14RUe*uj<4 z3qVdkok+Z>)|AouzzzFJ(r%7FL`yvMmG-TaZEg2?i2Nuy;R~SLPZj1Wlzbi*2*qY! zd8Of&RX2R7SVV9$44WIS>#qa51)fBbp^yIqaYCTWI%b%Jyd*3Raw+ zg`Mj+|He<|IKwZ1H*U*aZ1Ed@ML?5or5n?_{MUM^3hAIc6nA053q$B3=EzVFvT<&t z-PQ8JyRY0&2W-5zI4=PCSIDc=cHrNJ$eeM_hJk5SMfC}Cam1oo@}JJB@848YE}}gZ zc{13Yh>o_Pnp(^@o-t_Vcex5ecAg5Tjl+`28-`T}9tt=u(%FkpEyf>EH&J>EdgrhL zA4qNt&iY>ftwU`$f({fT&H=9^z?;mi*oX4p{9M@2yg0A=Wz2@OmLFV3m>*O<8RF8p(VE%6t>(?2I$J$o9wmuX*tvH2S`kScuz@34_-z zj!`WVTdM-BQ%gJzblPYdaYB%h9j7Ex4=zr%AI)}AKwN{>ybE@z7 zVcd}3`(Y;}w%6#!eL532eIk;WenpMJoX{2Q%BVWZT_}-hfHYm0jci-@IC649p#v@$ zmrJ5_%_8&_pJ>Mpi*yoArtp$3=XWVU$?Tv?dfq4uehzi-4Ip;jv|&HPzROH@9Kc@J zE)5K-VeeWar7VB#_JH47%i;q0TpvH${sP#Uih8h=znC1_7;m);G&hn`zv0(=BB)YG zRiLAJdqBKAIe5)s&@x9YoUrU*ai3FU?0UDib;T~-?G+b|cA-v#r2SjnR@NIW<;$zR zo#6+JEPqXEmZ*#w*{BB=fs0FI?yDBUXC5)}JQT-_#Kwu;9DWwMjdR3#4yar;%z#j%sT6+@Kwy}(UgxfTr%ZvAmuv{Y}WsqPwnWzEywKm8nY zXG`R?&~sXBrW!Y&?@C8-`OT&!Ni2LFt#)U%eto37O-q>ZD0q352w%I-CAL%$+(yb_ zDrJytb`waGi!q(6nbuYgn^tlOd0k1T=-wT1-{U_(jr03$HM(rW?M`Z@R)TVDg}bbu zQ$ONnG??8*FqCa0IE|WG%;d)=9M-LEeBFZh1!w~idh0$akJFp#rv9|>p)*XZV6C7Ea z!HyTc1aJ6*pB!G5Y09@H8(PS159TyD7af}Yc-$sjso^X&{~a)R1eyI=hza5KVnbvd zi;nf;BIE*9Cts<{e|i+$JYg^)wqYz~%iK+W{dWIzRBZk}TW_akMqqG2`8|ol`zuxd zqs&~k_gV)@Vqd~cO9o#6v4he`J%I?QN9XQ;=B3o0_A&2BO+(4LWZ7o|kq^8VY;Pz$ zlt&2mhm+fu`_6b;tzXmg1ST7t^AtalipAW;dq7SaH}++d%)M|}^XM}lYcTz_AIa|z z!RP#eNG5@N*;>;-{B51X{0d&{tiIl$3ml=F5LvN^=J5g56%d(*HplE3*`cb};629j zF%&u{ttk&5L?7m2Rosf$DPR4(7~wlBpRW$EegPyY$-Dp_(E`suya0|5WM2T?Q)R$# z@k#ZbuzQBPuKztn{x38F1ZxbQApy=7q=awmBbP+`f_)*WO)T5K`A&}8bU!YhjjFW2 zd;R!0vP|hK{4q>=Z1pqbP-*YjKdAl%5TfKI<{P@lbW=We=b)I_KGK?qg!;q+qTJ^SGvRh7buk0N-@gC?#qA2s1Nn9CmQ=C5 z?N4wNutkn#y>{FkNGL_}*1s`tBY@K-!FknJ&lL7p%cq8(t7@Czs)_g{)Ffjs0}>CZ zWqMgKEGR{mR>cudIL85;&7nFZz6OJlt;yOduE|2uKO={x{&QEOVV0Pp$B;JK zwE9GPk$@@P05}BzLIlw#X+U>3KoSEp5gXxhiJ(e7F}JvMTN-;^j9uk zQg|HFRDBY4x+MO|q&9fr-t!naeIR8e{!qzuGkvHMI<%4>VE~Sjg4D`oTE9J1neN&UicaI-o!-W>- zum2Pl$%F-r|BDsF0dPQ^K$t6)ibKLRSi_~~U#R$R2opFk(BEgN@*brIZKt!{P;doP zv07@^@@R7&=3SCH#qKsg6G3bni!^Uu^%L?sA6>OdsN6`*OEmHP#i)*UOZd#HH|(Y^ zGc~));bX~9gdMK=GYJ|IDh#O-bQ^M4HDr@swHg>inyR3Em-Xrwp-EEryAs+*B@cPA z;@6l&H|&xe@9n(8Zd}xG6^|paRx7mH9R%d8)T-~o{;;t6o*fU$Q;-U*)(L}t?~EjN z$e8~YrS(|7?%_o4u?oc|+WrxB-rYK}>R4uwr`BAzA=v=l#pWE!QN(c!qrG(ZO#a&J zc3One`p)EM4rv&4jV+RJj4I*?sCJ_Ff!(h*d~v=~Z;Zk)f19hEn-ufUB33#nI-95p ze=iq)SepYH(FfPMOPe2+@A!6Wv6@#MEt{7HxrYKU8we8Jk@DZ#*(;OiHIp^u=(6yK z5R0m*$Fs5II5zVh?QI68>oTnN{`G{}=*p@3V6!Ah^Va?lK6D#jyArQX;3P`zR;t zF7>L?eph^tFg&;K@7&I@-%B)*5Oi(Oyii?TUuS}S)^Kvp;rN}uG2LU7Ml@rF(UK{Z zv*yI7X*&nUC^O&%U@D%_z!v~{T&;ls#$;DHFD2TWh3bB+*Sz|~|ASqbydJZ%Y%WY1 zdnt#{ayi=%f#_oef?7>V#F0_VF2ntWW|-i5W!DiUamVY1qy$U$)^DFUo(g2%t!~_z zBAD)i)|N%qvn<3!m1v&EKe@Ql{c$JSHvDbLj(7IS)wjyO?db*J7$3iKz54L=$68_Y zZQu?AS3Irg%0rTW?1Q1SS)6h%N;mhoxJ=-y{xFW<#npy)Ncr(1ppf@sS{F2acdRR@ zhroWEjpx|%_4bIC2+XI=dl0R6K*q1V*$(Dmun@e9D_1pphzo&}DfjIMm+QM_JbZZUmD)h&VmFQk(g}(wz{4_<* z5%pfbg)?jDr?-ekC2cSx8$-yxh%(yRYd5M9b-@%XQ;WYq1n$z!a_I@v;x=;;VF-}1 z@HCp03*mUk_j4MpHMebB;qW%@R=j;bG4@)v$f}^|b&?Rt4Y^dXq0Scwgct5S?+C-v z=p;}to^w}M~KI{Sol>Uf)Yp>Iq9^?kS25M|pKt7gR zLbbkRp(3fX1EW9saehVGEpiBsaTtk=UT|+NW3-!Sfe#`pWDfhW{z*}3^&Jsivu7m# z)YNZ$ES+ZOoj$d1-DpSGN7mM{12)OPUkLBL!N{QiYtdi?zzsLrJsk#WA0{--!zDGx zmn*)TjVvc_Oi`PLaH%3xs~y$xt!z{BcZP9ud2G)516db}-Cg$aN)2aBdCjay+W8_E zc^-SiU|dFd&my_v*-!$0r0>RYaQeB_7D%W7VTA4Nc^LmyloJu_Y&=+oI;_r^;Hz` zLYEs^?XZ<)tmraGqpRYqc;(FT47oL*2o~c8qSiLbhD8@L+zBC@ptw{ zj?NB`zno=-9!?*U^&g+e*uhs9pW+til+KKd!alsU3@oPxml>(;lzOFaqV_dwyU*%| zz9lSv7iE*HGLsXfFH<-ouw@>MLZpJt`MpTc^*wtx5$|+s(3hI&%sg_lR%P&{m5qkX zLSK-&H$<;}Y~iC)F3u9yt%W`vd*sCA+O>*H#b#ULj!SY%qtz~({?Euyv#;iO0h_oR zF2gjhwEQ5E0ul6PH0&{voh&gWHpKA)8$m|oOx{(%11z>b1W=jL;5Po9R+~6%9P+qt zD&*QwOuP^MxVc8;yVl>gSa{$K>QraX!}WTpFB=2NZZd30e82mR+v-8HV}e-HQ7R(v z2)N|Xl`$D(Y@1@ET;P^>iBZ3Cm?a{fa`3`istMz)zWpsyDk6`L*X|$X(M|#Cw_qzZ z4_+q(diDR@ZdV#;Vzyhe!!&ABKzMYnz?V3k)`s1%Wu z!HZmzY09#B&Hnl-1Bd7q>}iD;7BQ?__NPy;Ux|v&WHu*9wk>92C-VI}vp&W|VN=`_ zubMrN7Mxw+ly^}7^y-$#EDHwu%)PRbAL>N}nZ4%nX&Y;Z6AdpLden zf5u!~`|O;G78vcfIqV_Sj*r40N$sa`^XK_o%cma;xnYKJ8RyC;G+)7;^(|sfCh2-2 z^7ij=q|WxKYniQE48$bqX4lknd4yorc4P}2sSgR39QJKWZ^o9>?2{8?v0E){!_*XJ zEC|26Len4yYN)!hGs3?%G%+)5>2GzsBz_yi0tB9wgIBaVclPv+B~Yj-=vGwWjgpFn z2`hd25oB)@{5a=b_jKj_l8!?phNORtn^m5&R142zVv48?Q_zj6ri8re#)>D7!r&QS z)ZEUP6&%(?B-~7R84ThL(s=&1*JoLTIyxnAja1|v3tedA5h-Q;BGp$W#|kT)go>a zr5Uq~^1}n9`aC?TbY1PDk3G}I|&X#z?T|D-!rSByRo#s6xg#v)@9M_Ajzv%o;V^1jz1@-NY2;h_CX23 zl15%$TOSR2-KRfDXkH#}f-0nvGj7but$~$#pUU_p#^oVYbdPl&t5`VnXU zO_p+3Xe8ZtU}aMla!!zgx?Q^2N%&sP90FKI!!W3>bIzer|C?3s>$XgSBjKPnud?y( zcjKnVJ=xmPv0CAaO1~1`;-9NV{`Ab|+l*FbS`4&C8TuYJd) z(9W^OZezbY%x|FWq%MXY;mzET^~zg7UnMLMkBNcOj|46_@qM-DxoVMsT8VY-lIQW} zZ{w`=wMkt@HyGh@u-gZ}r&jS(0nIKmW!Eb2asojTWC!F;Z zt7nv`#t(c%7Q?j9KnN+JdLv-%>ZSCl-HxbU1XjYmyGljaLoQL&!4|jTVrlt+R1X0X ziHDejXWBIiu{MZ%u;d6bICmo4um+;#eK> zqGCeW))tcsOJ!BNTn$aqUoPNVz1-Bs;&+xPTbD5+_zHnit~6>pAZ1W*v>u7(D#dpr zF3?}hM(^OZB(RI#3>JB1uO3D-$%(yGV#W1PZV>l0VHIEu@gJF%*jvVU!{$82#JCV6 z1a-u|@_9xbf@@C095|TpMQYNH(>_0O%b5E@HI$cB7rvrK!@LG6!EOAi-3gX5JC5v*EOh=-X=317%qAVyqra>>bpimxiPT+W#@qUqYV;3&o zU<6ft+_c50`dMKLr)xLFYcqjlvp~MlP1qnBK=Q-ti{f#RhLuc1n_yaEgxl`SV@VEg z5n4+7=Q7g$PFVve{g8SHXyX9F{YwSk+$oUv6>J{n*?i9uUArJnv1eO#56s) zh?%8>Y6y5yEMWOX&4lnMgW;pRq}Y1I0D?yD z5$>JAA79)n&(dU2z8Kxj#!QK)E=Vj(47Ipy_^MSJKM`8`Fs7C0N_hh;{){dIZwyam z<~gYHi}Lqv1k*Qw%gY-pH;h0`;uSxn*Ju-C?24|!`iEE^m{nlUYmDuZ0e+FQN)9=9 zFOpkEa9<7AF>Rdsg;2k!plFJ&2V)r$hXF8UUC5ZTFv5?yN^O`or5cHFtj&y;C}QGn zZdkrzIhZ}{nlLN0QHRc;3OvFuTcc`fR4Mf;GM-?flK74VPq*AN>SVEAq>gzfH`v1G^Eo zz$O0x*kDczC|SIu!$a<1;QNggRP`)2W5q`GnlYI*?iQtc)OCd*&r$e7kj!~c&s2VSsfG@Kh8hddB1^plj_9!4?_dKT%9*9|rxIiy3%t9h6pu8Vb#J^IOG7xS3 zO{@e?{{TcQHXd#yTKLvnj9h3XDs6DYf!*FE=KB!%6daJ5t9-F81JuNzI3R-ys#`JA z^>~#_6!Ne-FPMn*&8`E=;wJTez;u7?veGartiX?Pf((Tge!^eON)X&1?40~DcKgj1 z{Z!;x>ih$^jw|mlSpA@T50WcGd_UAbc|YwHF2DZpMO_tkg7yqsZJ~$IBL4vPFsCVg zAaQ;pZqlA#rNM3RjR0QA-hL6UEP$jT`Ac^1)TLRyL_2rcEN0&BAk97&3Mc~r=|jF? zuBXD{OrIo~F=>GZ4wcto{a$|N4<%%{Ao1T-P|N$hN4kTh0>TkH+*ns&S)74*M7tQqqd<1^S{X>$c z8^5>ItN!K2BP!7NU@pv8wi}g;AT? za-Hg?4A-+W;eRk=L)77>HIqln*o)t4G4_@!IUfSQxHJWIXgsC<;b0t<4|>;C`h`7! z+n9JCge4WT-AlET;vDJqC{STuy%S(A7hTlSCOjiXFKv>YGU@;?_3uWZB z<*8&Bgu~sJtjFjcYH-ca8Etv1ow|0FG<`ubl^eg{K`&Q{YeIa&x^Kf5SoZ@sUr}g~ zF5N74ZI-m-+P}+${Z^Oi90wi$0NoQ{uXVSpTwCfMpCkZo3hqoev+ggt`<|b}3 zqh(^1h8{OG;}-{w6(Dbi>p!Vl4*^sGf>wn1jI~dar}oIq$-5gsjZYYwLXKA958Fs3 zXTAtW1BS3qgT!n__Yv10C}{7=aiJaRBJ5vUSYj7o20cV6OSphiS9n8|(>PdS!{rOQ z`e20$cbZo(DFjO2lFSIFfwpL(?NYhB} zUB@uX^1}DH2KaX(JtNrw*V7Wkqv{R~yxL%N8r<1??TrxjjLKdiVIiy^xWhTX*Z6@3 zD|A~bi97@&f?r|>&%{5}ez1380}6Qt-|8We?ti#~k{zr4LMAQwr@_MCT9w*Yd0)b_ zn6YK_1!cHO;67zWL-i`xz`%9(Kw>#FBzG39zoJ*Q@{u8ry%qle+FQ%*i@)C-Wj(>| zA`DgX&-c>@$@k0)m4n~hKvbe~%ZKeHP!UJn0c){x`$13xD_&~%%+M!`ob>mYT|YJ* zv<}t(08yF$0AKM3k?gn^H?<`t6WnIm^EhdTm>&M+vM~#@^(lX(xPiX-sF=zx5GQNp z3zs}bGo%}ji8$zcs97c5V{rLEU))Jce8c=sAn}w_R6Iqi!If5s+Q^q%_r6~Qek);W z_kSh+I+fSPPfUActAc;zPcij7!7cYbXZ~!boA&|Xd`hKv5_q3Prz7-BTfd}Nk{|wf zf6ze^ZMk=a(Ci`mKV1M6h}exJ)mvTY_20j<#`gyZz7mrU>u%5w(&W zS&ugZ*>-F325a~sBd6mtB^BaUHy-@NG#k+eCnuauFg=KE%{l6q|DJpTafPbZnYkjYc!`$2v3h!vFXzp0heN7MFi;#)5Co$2#AFx+4Y410#z z`<80RQ5ACo<|j;abI;sFZsq*2VeBSsi9o3a*vmlS{hbjp4Eml3n*e{l$ZB}sQ^fj|{{YfeuhJWa-dF*}q=783&fu8uA9!U+pkLZm!P4Tl$$E~Z zQHE>Oa)sNo4~?NYjhM&FF!2F4A0+H^4n(vn12WNoK5yLT8*s`RmLo!X{&Po0C7&})kLL7%obLOU!O*zyr8P&J(m)4 zJ*={G^#E_`ZdkPVpi6=Kh5rC@=BVKX`IdpcMp-i4tHnfbBtp6QlqH|M9_m*Fas2FPZ;#3V5YHNFc`3Ac+MHO& z%wRxjryijSqjZB>XDLi$RhR^}?^4`eB^IAc8N4hIepmcLjDhM1XZnZ$t$T%YDlHoG zh%ANMhxH8Oul?-=c{mt_j3w>G$2WZL3}Tc3Ki}LF&D-7t6h^dtu%=HJq0eo?D)Mt# z^h`;JR@?87n6bfT66T1u_KVPO%Lbc4m3I4!U26u$Wb8|^fS%SRx&l#f#i4*m(&}mF z%Mnx+IR(Hk2f4nNRV=o}DueL3bD2!csa*+JiCdRa>Rhgs6bAGay;$ySpz|^G25MYd&}oi#O*?BY3AcCfLm6-5ZVr}2Wy(o z%7va>d`B4~f^XfJ#eJ$S*UK02GGm;ne{$q_>k!GjzNJpc)~!N5+f$tw2%c0aBG_#e zD#N^gT9)*<P6&SIRLY zlJXbjm&3H@k}xD(&@&adDZw2s8gTZ^Z%X#K?(G31z0k%lWpzCnPgk8hB;x zm@315`><{8_={@F#43KKFC@nS<}ZD}aZ{MG^9pMnDWzGgMM~AXqNXw4QEytt<|)tN z@zdv}k1V^~$6MlE%4P9BZ>D)8m}c1NOAk%QcbUU zRUMAy)VOX?>`ED;O1a5~QrIBkkttL>N2!*N0av=r z<5Siv&s#wSrVruq4i4R=%xY+ul}FSnaaWF*i!Z4jl!kwbciaCFqT^P+hE_ZP$a+4lq_1>a@S zEUX{68I@(x5?4S~d5KClWad!!hg;9&Yp*?Tqx={AEDo9K?r|BJ=b&mL^1smLArrW* zz<<>OMg<*?(}Sj^{s1)-!S&LUCB8^9h5CTOZef>Q#$3-G4E7}k*uA3LIH^j^r+R_{ zb-IsAl~bR>`Z4}4XE1*k@U~uM=c2!b%{3l^+dayjnzB(GIjETFMfqPeWSIH9lj<+$ za`fm^c_r@+5oI-WzGcg@Dsv9iaHbV|sd&V`;VUoT_4U(pRUTK)%eqp#+F8t8P?zrma9zMS-{{5C@|+^9|UW#^`n+T7f%%IS`m8tO;$#JIoh@h2U4hv#ZQoI`NypWwc){0qd~U*W&ZmlyaoH!H2f^5$^}GZ5;>5PCD2 zsbr~S#YFy2KO4vV9d2S&tWG~G$4lsLbJ07_FRzZSx?W>9_#2nk6P}AL{{V}}@L%V0 z`tK3^>I7NGO?14r%e~sdDksx-8?PIg~I7M^0i>_z9Nn3^OcoE$Z|kT^Yyl z5oP{0+8r07%bb2jqbgrltxD+4{sh-c=yG6qmF`g(Jrbtomvar6g&acGp@ufenXY12 kRp`Al2%*<` 看起来没问题,但浏览器请求的却是 `/posts/img/sshfs.avif` 而不是 `/posts/sshfs/img/sshfs.avif`。 + +## 排查 + +1. 检查了 `` 标签 —— 没有 +2. 检查了重定向 —— 没有 +3. 直接访问 `/posts/sshfs/img/sshfs.avif` —— 返回 200 OK +4. 直接访问 `/posts/img/sshfs.avif` —— 404 + +服务器路由没问题,问题是**浏览器解析相对路径时基于了错误的基准 URL**。 + +这可能和 Nuxt 的客户端路由有关:SPA 导航时,浏览器的"当前页面"和 Vue Router 的"当前路由"不同步,导致相对路径解析出错。 + +## 最终方案 + +两步解决: + +**第一步:自定义 ProseImg 组件** + +创建 `components/content/ProseImg.vue`,覆盖 Nuxt Content 默认的图片渲染: + +```vue + + + +``` + +**第二步:启用 MDC prose 组件** + +```typescript +// nuxt.config.ts +mdc: { + components: { + prose: true // 让 Nuxt Content 使用自定义 ProseImg + } +} +``` + +# 问题三:content 目录的图片如何服务 + +## 现象 + +原站(SvelteKit)的图片放在 `content/posts/{slug}/img/` 下,markdown 用相对路径引用,一切正常。Nuxt 项目里,content 目录的文件不会被当成静态资源服务。 + +## 方案对比 + +| 方案 | 优点 | 缺点 | +|------|------|------| +| 复制到 public/ | 简单 | 文件重复,需同步 | +| Vite 插件拦截 | 原站方案 | Nuxt 不直接支持 | +| Server Route | 不复制文件 | 需要手动写路由 | + +最终选择 **Server Route**,和原站的 Vite 插件思路一致: + +```typescript +// server/routes/posts/[slug]/img/[...file].ts +export default defineEventHandler(async (event) => { + const url = getRequestURL(event) + const match = url.pathname.match(/^\/posts\/([^/]+)\/img\/(.+)$/) + if (!match) return + + const [, slug, filename] = match + const filePath = resolve('content/posts', slug, 'img', filename) + const data = await readFile(filePath) + setResponseHeader(event, 'content-type', MIME[ext]) + return data +}) +``` + +请求 `/posts/sshfs/img/sshfs.avif` → 读取 `content/posts/sshfs/img/sshfs.avif` → 返回图片。 + +# 总结 + +| 问题 | 根因 | 方案 | +|------|------|------| +| TOC 只有 h2 | `toc.depth` 配置不生效 | 从 body AST 手动提取 | +| 图片路径错误 | SPA 路由导致相对路径解析基准错误 | ProseImg 组件 + mdc.prose 配置 | +| content 图片 404 | content 目录不暴露给浏览器 | Server Route 直接读取返回 | + +Nuxt Content v3 的设计理念是"图片放 public/,用绝对路径"。如果想像 SvelteKit 项目那样把图片和文章放一起,需要额外做不少工作。 + +不过一旦这些坑都踩过,整体开发体验还是很流畅的。Nuxt 的生态系统、自动导入、模块系统都比 SvelteKit 成熟很多。 diff --git a/content/posts/nuxt-tailwind-underline-fix/img/cover.png b/content/posts/nuxt-tailwind-underline-fix/img/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ab7ae839870aa97a5b1be70931bb1b4d3aa1cd GIT binary patch literal 35672 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 Zpbc%MNW@z!!T%hPlU2T+d)3(g{{VFoP5b}= literal 0 HcmV?d00001 diff --git a/content/posts/nuxt-tailwind-underline-fix/index.md b/content/posts/nuxt-tailwind-underline-fix/index.md new file mode 100644 index 0000000..d0fa418 --- /dev/null +++ b/content/posts/nuxt-tailwind-underline-fix/index.md @@ -0,0 +1,75 @@ +--- +title: Nuxt 3 + Tailwind CSS 客户端导航链接下划线闪烁问题 +published: 2026-05-31T18:47:00 +image: /posts/nuxt-tailwind-underline-fix/img/cover.png +description: 记录 Nuxt 3 配合 Tailwind CSS 时,客户端导航导致链接文字出现下划线闪烁的问题及解决方案。 +tags: ['Nuxt', 'Tailwind CSS', 'CSS', '踩坑'] +author: Nixus +--- + +## 问题描述 + +在 Nuxt 3 项目中使用 Tailwind CSS 时,发现一个奇怪的现象: + +- 首次通过客户端导航(点击 ``)跳转到某个页面时,**所有链接文字都会出现下划线** +- 手动刷新页面后,下划线消失,样式恢复正常 + +这个问题在开发模式和生产构建后都会出现。 + +## 原因分析 + +Tailwind CSS 的 Preflight(基于 modern-normalize)会重置链接样式: + +```css +a { + color: inherit; + text-decoration: inherit; +} +``` + +正常情况下,这会让链接继承父元素的 `text-decoration`(通常是 `none`),从而去掉浏览器默认的下划线。 + +问题出在 **Nuxt 的客户端导航机制**: + +1. 用户点击 ``,Vue Router 拦截导航 +2. 新页面组件异步加载并渲染 +3. **在 CSS 完全加载/应用之前,页面已经渲染了** +4. 此时浏览器使用默认样式(链接带下划线) +5. CSS 加载完成后,下划线消失 + +这就是典型的 **FOUC(Flash of Unstyled Content)** 问题。 + +## 为什么刷新就正常了? + +刷新页面时,浏览器会等待所有 CSS 加载完成后再渲染页面(SSR 模式下 HTML 和 CSS 是一起返回的)。所以刷新后样式是正确的。 + +而客户端导航是 JavaScript 驱动的,CSS 的加载和页面的渲染是异步的,就出现了时序差。 + +## 解决方案 + +尝试了多种方案: + +- `@layer base` 覆盖 — 无效,CSS layers 的优先级问题 +- `corePlugins.preflight: false` — 无效,且破坏其他基础样式 +- `features.inlineStyles: true` — 无效 +- 页面过渡动画 — 只是掩盖,不能根治 + +最终有效的方案是在 `app.vue` 中用 `!important` 强制覆盖: + +```vue + +``` + +**关键点:** +- `!important` 是为了对抗 Tailwind CSS layers 的优先级 +- `:not(.prose a)` 排除文章正文区域,保留文章内链接的下划线(可读性需要) + +## 总结 + +这是 Nuxt 3 + Tailwind CSS 的一个已知问题,本质上是 CSS 加载时序导致的 FOUC。`!important` 虽然不够优雅,但在这个场景下是务实的解决方案。 + +如果你有更好的方案,欢迎在 [Issues](https://github.com/wishesl/SuBlog/issues) 提出! diff --git a/content/posts/sveltekit-intro/img/cover.jpg b/content/posts/sveltekit-intro/img/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..76b737108f9f12252baf028427b5d63befa44c9e GIT binary patch literal 43141 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 literal 0 HcmV?d00001 diff --git a/content/posts/sveltekit-intro/index.md b/content/posts/sveltekit-intro/index.md new file mode 100644 index 0000000..aa4f686 --- /dev/null +++ b/content/posts/sveltekit-intro/index.md @@ -0,0 +1,62 @@ +--- +title: SvelteKit 入门:为什么它比你想象的更简单 +published: 2026-05-30 +description: SvelteKit 是一个全栈 Svelte 框架,这篇文章带你了解它的核心概念和优势。 +image: /posts/sveltekit-intro/img/cover.jpg +tags: ['SvelteKit', '前端框架'] +draft: false +--- + +## 什么是 SvelteKit? + +SvelteKit 是 Svelte 的官方全栈框架,类似于 React 之于 Next.js 的关系。它提供了路由、SSR、SSG 等能力,让开发者可以快速构建现代 Web 应用。 + +![SvelteKit Logo](https://raw.githubusercontent.com/sveltejs/branding/master/svelte-logo.svg) + +## 核心特点 + +### 1. 编译时框架 + +Svelte 和 React/Vue 最大的区别在于:**它在编译阶段就把组件转成原生 JS**,运行时没有虚拟 DOM。 + +```typescript +// Svelte 组件(编译后变成直接的 DOM 操作) +let count = 0 +function increment() { + count += 1 +} +``` + +### 2. 文件路由 + +`src/routes/` 目录结构即 URL,不需要手动配置路由表: + +``` +src/routes/ +├── +page.svelte → / +├── about/ +│ └── +page.svelte → /about +└── posts/ + ├── +page.svelte → /posts + └── [slug]/ + └── +page.svelte → /posts/:slug +``` + +### 3. 全栈能力 + +SvelteKit 内置了服务端渲染(SSR)、静态站点生成(SSG)、API 路由等功能,开箱即用。 + +## 和其他框架对比 + +| 特性 | SvelteKit | Next.js | Nuxt | +|------|-----------|---------|------| +| 学习曲线 | 低 | 中 | 中 | +| 包体积 | 小 | 大 | 中 | +| 运行时开销 | 无 | 有 | 有 | +| 生态 | 小 | 大 | 大 | + +## 总结 + +如果你追求**简洁的代码**和**极致的性能**,SvelteKit 是一个非常值得尝试的选择。它的学习曲线平缓,写起来就像在写原生 HTML/CSS/JS。 + +![Svelte 编译过程](https://svelte.dev/svelte-logo-horizontal.svg) diff --git a/layouts/default.vue b/layouts/default.vue new file mode 100644 index 0000000..10d14c9 --- /dev/null +++ b/layouts/default.vue @@ -0,0 +1,34 @@ + + + diff --git a/nuxt.config.ts b/nuxt.config.ts new file mode 100644 index 0000000..49f07c6 --- /dev/null +++ b/nuxt.config.ts @@ -0,0 +1,112 @@ +import { cpSync, existsSync, mkdirSync, readdirSync } from 'node:fs' +import { join } from 'node:path' +import { siteConfig } from './config/site' + +export default defineNuxtConfig({ + compatibilityDate: '2025-01-01', + devtools: { enabled: true }, + + css: ['~/assets/css/main.css'], + + modules: [ + '@nuxtjs/tailwindcss', + '@nuxtjs/color-mode', + '@nuxt/content', + '@nuxtjs/sitemap', + ], + + app: { + head: { + htmlAttrs: { lang: 'zh-CN' }, + charset: 'utf-8', + viewport: 'width=device-width, initial-scale=1', + meta: [ + { name: 'description', content: siteConfig.description }, + { property: 'og:type', content: 'website' }, + { property: 'og:locale', content: 'zh_CN' }, + ], + }, + }, + + colorMode: { + classSuffix: '', + preference: 'system', + fallback: 'light', + }, + + content: { + build: { + markdown: { + toc: { + depth: 3, + }, + highlight: { + theme: { + light: 'github-light', + dark: 'github-dark', + }, + langs: [ + 'javascript', 'js', 'cjs', 'mjs', 'jsx', + 'typescript', 'ts', 'cts', 'mts', 'tsx', + 'vue', 'css', 'html', 'json', + 'bash', 'sh', 'shell', 'zsh', 'shellscript', + 'python', 'py', 'go', 'rust', 'java', 'c', 'cpp', 'csharp', + 'ruby', 'php', 'swift', 'kotlin', 'scala', + 'sql', 'graphql', 'protobuf', + 'yaml', 'yml', 'toml', 'xml', 'ini', + 'markdown', 'md', 'mdc', + 'dockerfile', 'docker', 'makefile', 'nginx', 'apache', + 'diff', 'git-commit', 'git-rebase', + 'powershell', 'batch', 'lua', 'perl', 'r', 'dart', 'elixir', 'erlang', 'haskell' + ], + }, + }, + }, + }, + + mdc: { + components: { + prose: true, + }, + }, + + site: { + url: siteConfig.url, + name: siteConfig.title, + }, + + nitro: { + prerender: { + routes: ['/sitemap.xml'], + }, + }, + + hooks: { + 'nitro:build:public-assets'(nitro: any) { + const root = process.cwd() + const contentDir = join(root, 'content', 'posts') + if (!existsSync(contentDir)) return + + const publicDir = join(root, '.output', 'public', 'posts') + + const posts = readdirSync(contentDir, { withFileTypes: true }) + .filter(d => d.isDirectory()) + .map(d => d.name) + + let copied = 0 + for (const slug of posts) { + const imgDir = join(contentDir, slug, 'img') + if (!existsSync(imgDir)) continue + + const destDir = join(publicDir, slug, 'img') + mkdirSync(destDir, { recursive: true }) + cpSync(imgDir, destDir, { recursive: true }) + copied++ + } + + if (copied > 0) { + console.log(`[content-assets] Copied images for ${copied} posts`) + } + }, + }, +}) diff --git a/package.json b/package.json new file mode 100644 index 0000000..a3ba6ec --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "sublog", + "private": true, + "type": "module", + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare", + "new-post": "node scripts/new-post.js" + }, + "dependencies": { + "@tailwindcss/typography": "^0.5.19", + "nuxt": "^3.17.0", + "vue": "^3.5.0", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@iconify/vue": "^5.0.1", + "@nuxt/content": "^3.14.0", + "@nuxtjs/color-mode": "^4.0.0", + "@nuxtjs/sitemap": "^8.0.0", + "@nuxtjs/tailwindcss": "^6.14.0", + "better-sqlite3": "^12.10.0", + "feed": "^4.2.2", + "typescript": "^5.8.0" + } +} diff --git a/pages/[...slug].vue b/pages/[...slug].vue new file mode 100644 index 0000000..68fabd9 --- /dev/null +++ b/pages/[...slug].vue @@ -0,0 +1,11 @@ + + + diff --git a/pages/about.vue b/pages/about.vue new file mode 100644 index 0000000..9421354 --- /dev/null +++ b/pages/about.vue @@ -0,0 +1,98 @@ + + + diff --git a/pages/cover.vue b/pages/cover.vue new file mode 100644 index 0000000..c6f168d --- /dev/null +++ b/pages/cover.vue @@ -0,0 +1,807 @@ + + + diff --git a/pages/friends.vue b/pages/friends.vue new file mode 100644 index 0000000..b8762a2 --- /dev/null +++ b/pages/friends.vue @@ -0,0 +1,98 @@ + + + diff --git a/pages/index.vue b/pages/index.vue new file mode 100644 index 0000000..005b158 --- /dev/null +++ b/pages/index.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/pages/posts/[slug].vue b/pages/posts/[slug].vue new file mode 100644 index 0000000..7afa3b3 --- /dev/null +++ b/pages/posts/[slug].vue @@ -0,0 +1,93 @@ + + + diff --git a/pages/posts/index.vue b/pages/posts/index.vue new file mode 100644 index 0000000..e794d84 --- /dev/null +++ b/pages/posts/index.vue @@ -0,0 +1,176 @@ + + + diff --git a/pages/sponsor.vue b/pages/sponsor.vue new file mode 100644 index 0000000..d0d1e71 --- /dev/null +++ b/pages/sponsor.vue @@ -0,0 +1,63 @@ + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..2dc09cc --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,10521 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@tailwindcss/typography': + specifier: ^0.5.19 + version: 0.5.19(tailwindcss@3.4.19(yaml@2.9.0)) + nuxt: + specifier: ^3.17.0 + version: 3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0) + vue: + specifier: ^3.5.0 + version: 3.5.35(typescript@5.8.2) + vue-router: + specifier: ^4.5.0 + version: 4.6.4(vue@3.5.35(typescript@5.8.2)) + devDependencies: + '@iconify/vue': + specifier: ^5.0.1 + version: 5.0.1(vue@3.5.35(typescript@5.8.2)) + '@nuxt/content': + specifier: ^3.14.0 + version: 3.14.0(better-sqlite3@12.10.0)(magicast@0.5.3) + '@nuxtjs/color-mode': + specifier: ^4.0.0 + version: 4.0.0(magicast@0.5.3) + '@nuxtjs/sitemap': + specifier: ^8.0.0 + version: 8.0.15(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76) + '@nuxtjs/tailwindcss': + specifier: ^6.14.0 + version: 6.14.0(magicast@0.5.3)(yaml@2.9.0) + better-sqlite3: + specifier: ^12.10.0 + version: 12.10.0 + feed: + specifier: ^4.2.2 + version: 4.2.2 + typescript: + specifier: ^5.8.0 + version: 5.8.2 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@apidevtools/json-schema-ref-parser@14.1.1': + resolution: {integrity: sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg==} + engines: {node: '>= 20'} + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.29.7': + resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + + '@bomb.sh/tab@0.0.15': + resolution: {integrity: sha512-Y90ub44TAvbdO9P8mcD/XPyQjFhiR5xmd4Fk7JErmWmEWEUimNnjWiBrVZ16Tj3GA1rLZ+uvCN2V/pzLawv31g==} + hasBin: true + peerDependencies: + cac: ^6.7.14 + citty: ^0.1.6 || ^0.2.0 + commander: ^13.1.0 + peerDependenciesMeta: + cac: + optional: true + citty: + optional: true + commander: + optional: true + + '@clack/core@1.4.0': + resolution: {integrity: sha512-7Wctjq6f7c1CPz8sPpkwUnz8yRgVANkpNupb81q432FjcJg4l+Sw7XANdNSdWfAKq0IHI0JTcUeK5dxs/HrGPw==} + engines: {node: '>= 20.12.0'} + + '@clack/prompts@1.5.0': + resolution: {integrity: sha512-wKh+wTjmrUoUdkZg8KpJO5X+p9PWV+KE9mePseq9UYWkukgTKsGS47RRL2HstwVcvDQH+PenrPJWII8+MfiiyA==} + engines: {node: '>= 20.12.0'} + + '@cloudflare/kv-asset-handler@0.4.2': + resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} + engines: {node: '>=18.0.0'} + + '@colordx/core@5.4.3': + resolution: {integrity: sha512-kIxYSfA5T8HXjav55UaaH/o/cKivF6jCCGIb8eqtcsfI46wsvlSiT8jMDyrl779qLec3c2c2oHBZo4oAhvbjrQ==} + + '@csstools/selector-resolve-nested@3.0.0': + resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@dxup/nuxt@0.4.1': + resolution: {integrity: sha512-gtYffW6OfWNvoLW+XD3Mx/K8uUq08PMGLYJoDxc92EzZAWqR0FhcR5iaLm5r/OxyGTKz+P5f5Y7Aoir9+SjYaw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@dxup/unimport@0.1.2': + resolution: {integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==} + + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/vue@5.0.1': + resolution: {integrity: sha512-aumwwooJlFJ5H5qYWB6ZTAyM0C8hpfcSVLB9/a3qnH1GGvIJ+FEbpEs4s/HfErYe/M5qZeLjwmESR5fFm3lXEw==} + peerDependencies: + vue: '>=3.0.0' + + '@ioredis/commands@1.10.0': + resolution: {integrity: sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + + '@jridgewell/gen-mapping@0.3.2': + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.4.10': + resolution: {integrity: sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==} + + '@jridgewell/sourcemap-codec@1.4.14': + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@koa/router@12.0.1': + resolution: {integrity: sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==} + engines: {node: '>= 12'} + deprecated: Use v12.0.2 or higher to fix the vulnerability issue + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + + '@mapbox/node-pre-gyp@2.0.0': + resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} + engines: {node: '>=18'} + hasBin: true + + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@nodable/entities@2.1.1': + resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nuxt/cli@3.35.2': + resolution: {integrity: sha512-sCxNnFuYamqippdj+Cj4Nue55yaUvasaneyf2mnowK5/F1TKln/WVqTH18McxQ4baLlIlVapIFovKjJx1L8XMQ==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@nuxt/schema': ^4.4.5 + peerDependenciesMeta: + '@nuxt/schema': + optional: true + + '@nuxt/content@3.14.0': + resolution: {integrity: sha512-gyuOHJQa998ke/Nnxu0LEFJU6QIgsZJPgR4Jz+QAkPNcAkmXE29aMlQr6DWRsg6g7Tv1KxCw4qjavjGxqRe3KQ==} + engines: {node: '>= 20.19.0'} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + '@valibot/to-json-schema': ^1.5.0 + better-sqlite3: ^12.5.0 + sqlite3: '*' + valibot: ^1.2.0 + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@valibot/to-json-schema': + optional: true + better-sqlite3: + optional: true + sqlite3: + optional: true + valibot: + optional: true + + '@nuxt/devalue@2.0.2': + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} + + '@nuxt/devtools-kit@3.2.4': + resolution: {integrity: sha512-Yxy2Xgmq5hf3dQy983V0xh0OJV2mYwRZz9eVIGc3EaribdFGPDNGMMbYqX9qCty3Pbxn/bCF3J0UyPaNlHVayQ==} + peerDependencies: + vite: '>=6.0' + + '@nuxt/devtools-kit@4.0.0-alpha.3': + resolution: {integrity: sha512-ymp4jqS3hFfwRw8uDkv8cpu4kWvhQrX+S4jnA/oOc76s4AXf2HCZZJgrncKxh+txqi1NJj8nsQNBbaqRAo3g4w==} + peerDependencies: + vite: '>=6.0' + + '@nuxt/devtools-wizard@3.2.4': + resolution: {integrity: sha512-5tu2+Quu9XTxwtpzM8CUN0UKn/bzZIfJcoGd+at5Yy1RiUQJ4E52tRK0idW1rMSUDkbkvX3dSnu8Tpj7SAtWdQ==} + hasBin: true + + '@nuxt/devtools@3.2.4': + resolution: {integrity: sha512-VPbFy7hlPzWpEZk4BsuVpNuHq1ZYGV9xezjb7/NGuePuNLqeNn74YZugU+PCtva7OwKhEeTXmMK0Mqo/6+nwNA==} + hasBin: true + peerDependencies: + '@vitejs/devtools': '*' + vite: '>=6.0' + peerDependenciesMeta: + '@vitejs/devtools': + optional: true + + '@nuxt/kit@3.21.6': + resolution: {integrity: sha512-5VOwxUcoM/z6w4c75hQrikHpY+TzjTLZQ+QnuO7KajyGx0IJBLVy1lw25oy79leF+GgyjJJO1cHfUfWeuEDCzA==} + engines: {node: '>=18.12.0'} + + '@nuxt/kit@4.4.6': + resolution: {integrity: sha512-AzsqBJeG7b3whIciyzkz4nBossEotM314KzKAptc8kH07ORBIR8Qh3QYKepo2YZwtxiDP2Y9aqzAztwpSEDHtw==} + engines: {node: '>=18.12.0'} + + '@nuxt/nitro-server@3.21.6': + resolution: {integrity: sha512-tcSZauVgyUNZRCC0zYqauRJpEiHS8In3mXkupDlCYhQQmVNTxzxvBim3U4rR0Ww50ZJzOAtFOADeWTjLjYd3GQ==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + nuxt: ^3.21.6 + + '@nuxt/schema@3.21.6': + resolution: {integrity: sha512-/1m3/q2QtLQ+c+4CDrlwGtNC5nJ3KdK+MTeaRhMN+fNavqeQFdqArfXVYdzUX+ZeqOL0Pt00vJnwKm0VM1I8mQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@nuxt/telemetry@2.8.0': + resolution: {integrity: sha512-zAwXY24KYvpLTmiV+osagd2EHkfs5IF+7oDZYTQoit5r0kPlwaCNlzHp5I/wUAWT4LBw6lG8gZ6bWidAdv/erQ==} + engines: {node: '>=18.12.0'} + hasBin: true + peerDependencies: + '@nuxt/kit': '>=3.0.0' + + '@nuxt/vite-builder@3.21.6': + resolution: {integrity: sha512-JjUJzo/KXgHnpI/podDCBGn93QyfKjcxrFzZkXRXsaUSIXMncrQK4Bs9OKBIWxcpsWxs93a130w1i7qjd2qizA==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + nuxt: 3.21.6 + rolldown: ^1.0.0-beta.38 + rollup-plugin-visualizer: ^6.0.0 || ^7.0.1 + vue: ^3.3.4 + peerDependenciesMeta: + rolldown: + optional: true + rollup-plugin-visualizer: + optional: true + + '@nuxtjs/color-mode@4.0.0': + resolution: {integrity: sha512-xyaVR/TPLdMuRa2VOgH6b75jvmFEsn9QKL6ISldaAw38ooFJfWY1ts2F3ye43wcT/goCbcuvPuskF2f8yUZhlw==} + + '@nuxtjs/mdc@0.22.0': + resolution: {integrity: sha512-4jVc967snO5oOZtVhDnLi2Nu8kSsvGU66bsufKGU/Ixsj5lzA3HdaLMJEkFNs8AXtVXJUbkZ2PhvTttFHo8Kgw==} + + '@nuxtjs/sitemap@8.0.15': + resolution: {integrity: sha512-MPPHUh5ceUsQGY/Hph8xCRj1acsd4Bv/JnayzLK9uqjlN4BQ7RMD3JClGvFNWKJ1nfgVUqxBgndUtXEgBoxs4w==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: '>=3' + peerDependenciesMeta: + zod: + optional: true + + '@nuxtjs/tailwindcss@6.14.0': + resolution: {integrity: sha512-30RyDK++LrUVRgc2A85MktGWIZoRQgeQKjE4CjjD64OXNozyl+4ScHnnYgqVToMM6Ch2ZG2W4wV2J0EN6F0zkQ==} + + '@oxc-minify/binding-android-arm-eabi@0.131.0': + resolution: {integrity: sha512-yLa7y9jjJgUeUUMm6AtjmBIQzK1YU5sYcNJnVVtr6WtoWu5SpuNDZ8u6cl/dhn0g/oQgVlf+E+8WJfsExt8R+Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-minify/binding-android-arm64@0.131.0': + resolution: {integrity: sha512-ShZDYFEVd46qCc9L0D3ZTPLXe/DezTedEj7g6x1Bdlm1WwgQ1pQJgWkqpMGlQhUet5wq4WUpQB/P6afK470Ydg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-minify/binding-darwin-arm64@0.131.0': + resolution: {integrity: sha512-h+5iCSKxpK7SJdAHmY4I+0BBxR+pJQVNJvAIB3KcOVyz8/ybaO2r41URCwV1N3FnPYkIIiMokZ24YYMB6/GrRw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-minify/binding-darwin-x64@0.131.0': + resolution: {integrity: sha512-EIP8KmjqfZeDdhrbG+0GDsiw1/Bi3415uCFokhOm6b8tGG0UdiemVHAz9IQE/sIJgwguXYtg5ydz9oFYVOlOfA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-minify/binding-freebsd-x64@0.131.0': + resolution: {integrity: sha512-2/xcCZfVm24sLFHbI5Rg/t6Ec93pth0NvTgy/J8vXjIOy8Yf5kkO/K1KVtdZBHW+cyLPe7YLLybxMF/BeqM8Kg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-minify/binding-linux-arm-gnueabihf@0.131.0': + resolution: {integrity: sha512-LDQ1Y+QfL5lN54ib1Je2paoh4EsQmmDRvB5Bd9AQIGCP16LI+8jZnB8cjTT3GD1acITDg1aiaBKk9JpBjBA4iw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-minify/binding-linux-arm-musleabihf@0.131.0': + resolution: {integrity: sha512-mz99O2sZoyHnMoksxlZ5Mc+USS/w/uIp1LWQAn42RHAvVdIyQsqPRmTD/pJtW/KnjgpgaB0yDCpI6Xa3ivJppQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-minify/binding-linux-arm64-gnu@0.131.0': + resolution: {integrity: sha512-QjS1N4FwCV67ZylGyfTWoqURzar48dN5WTq/JVrGsiShFKlT9SpuyRsoUGMGJhiKNiI39MsLIHBlBWvoRQG+ng==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-arm64-musl@0.131.0': + resolution: {integrity: sha512-HGzqTov5sAzXyaNfRkQEpl0fRs+PrMYjT8b5jZAw8foQ/qnW+VMWgAr80Q+2j79T5nhXfboSF5SUgB8mcisgHw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-minify/binding-linux-ppc64-gnu@0.131.0': + resolution: {integrity: sha512-zpUZ4pmbDBqaZmRYacxeLHUBxA3fs5K7hi1WSXRVMXC4OjWuVcLsNxeavenKF9i0YtP7Q5n2z12Rz7eEnNWoDA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-riscv64-gnu@0.131.0': + resolution: {integrity: sha512-CYrC4tpW1wolbw/Fox+T0hxW92s1aG/WLi+htkk02JMiCHOWqGQKxUnm37lLiODKR/OwTYht3LB4xNrsS0RtCg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-riscv64-musl@0.131.0': + resolution: {integrity: sha512-ZQNur0zujUjNYgjFF4mcNaeEKWuerY9XkaALYtBsHqNetkj55w0ZwCKYfYKLH2JAdyNF2LuS0s7VGgjXP9EvWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-minify/binding-linux-s390x-gnu@0.131.0': + resolution: {integrity: sha512-tR8oiFSNpcS1mfGY1N3/Hy6TxP2wr5X9FFdn/y8GarN8ST/JMLY5SUiwPiU35NKiC69CDaAsLHXoIKUxK/r8Pw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-x64-gnu@0.131.0': + resolution: {integrity: sha512-KodzbW12zmT/C/w4bGv2aWN7Q5+KVJKbNoAv5hooYeSujj8xSPGWl8pnyj7dJ9nd8j0CVjubEvHQ86rtzV99OA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-x64-musl@0.131.0': + resolution: {integrity: sha512-CNG3/hPE6MxdLikfLq5l0aZMvJ3W5AP1aoVjzQ1Itokv5sbfBcW0fp6Srn8mB86CyAqO9e7dbffZVOWBDVkhgw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-minify/binding-openharmony-arm64@0.131.0': + resolution: {integrity: sha512-UyfimTwMLitJ0+5i5fL9M9U4E+DcIQJpGZWbVxxD3Mp9f7CTyQBIHnS68VEGZe+KQL/Y3IIb3AJ7cZB+ICgTVQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-minify/binding-wasm32-wasi@0.131.0': + resolution: {integrity: sha512-fH7sy51iYnmGv2pEPsS9KEVExHDKI1/nfy/OqYnStW2E5di41CQ1qBjVIvxHOMHcPD8RmKEBCf0zng6d9/vGDg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-minify/binding-win32-arm64-msvc@0.131.0': + resolution: {integrity: sha512-C05v+5eIdvF4YXQ4t+U0JQDl8IWoIabxsmh4inBSGOL0VziELmis3lb5X6JMj208RbQdKhZGJbUkmNWq2B5Kxw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-minify/binding-win32-ia32-msvc@0.131.0': + resolution: {integrity: sha512-bZio0euDmT6Er00I6jng66ftGw5doP/UmCAr2XtBooZMdr7ofTJ4+Bpp+ufguVIeVk5i1vgMPsq7g6FTcxHevg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-minify/binding-win32-x64-msvc@0.131.0': + resolution: {integrity: sha512-Lih6D0rjXStl0eUjzlcCiqr60AI/LuE+Zy29beEeXrXqTjOf8t0mcDX/MN3TZBBncxwUNi6osAEsKj4FRnItmQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-parser/binding-android-arm-eabi@0.131.0': + resolution: {integrity: sha512-t2xicr9pfzkSRYx5aPqZqlLaayIwJTqgQ81Jor31Xep2nGyL2Aq3d0K5wOfeR7VevaSdxaS9dzSQP9xDwn8fDg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-parser/binding-android-arm64@0.131.0': + resolution: {integrity: sha512-nlGIod6gw75x1aEDgLS+srj+JRGY0HHm9MI9YgzE/B64l6d6+H3MSP9NOgp0+HTg8tp4vV9rVfgQGgd+TfVZcA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-parser/binding-darwin-arm64@0.131.0': + resolution: {integrity: sha512-jukuV6xe5RbQKFo7QD34NDCLDZp4PSOm8rmckhNdH/60ymG5zXbDzGBEyc+nTkuLQNama2aSGCt+CPfpjNTqyw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.131.0': + resolution: {integrity: sha512-g3JOo4khe9rslHm5WYaVDWb0HS/M1MLR3I9S8560MkKIcC96VQY00QjOlsuRyfSj/JDXj8i9T7ryPO2RidiXVg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-freebsd-x64@0.131.0': + resolution: {integrity: sha512-1hziITDTxjMePnX+dR9ocVT+EuZkQ8wm4FPAbmbEiKG+Phbo73J1ZnPAA6Y/aGsWF3McOFnQuZIktAFwalkfJQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.131.0': + resolution: {integrity: sha512-9uRxfXwyKG9+MwmGQBo2ncPNwZH5HTmCETFM2WiuDBNDCW4NC5ttSQkwCAMrTAWgwMzVBH1CP8pM0v7nebCWXQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-musleabihf@0.131.0': + resolution: {integrity: sha512-mgbLvzRShXOLBdWGInf08Af4q+pfj1xD8hSgLClDZ9of/BXkB6+LIhTH7fihiDUipqB3yoSkKBWaZ3Ejlf5Yag==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.131.0': + resolution: {integrity: sha512-OPT8++4aN6j2GJ8+3IZHS/byXoZP4aSBn+FoG6rgBJ2fKwPKXWF3MqrFMNW7NKHM28FLY579xYLxJSfgobEqPA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-arm64-musl@0.131.0': + resolution: {integrity: sha512-vtPiwmfVTAXzaxDKsOXG+LwgRAA7WEnaeHzhS5z0GE89gAK18KSXnly7Z6saXXq6L3dVMyK44uoTI03zKxrpmw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-ppc64-gnu@0.131.0': + resolution: {integrity: sha512-8AW8L7w5cGHSdZPcyZX2yR0+GUODsT15rbRjfdD54rv6DMbtuEB19ysLOpKJlRGfH6UNYNpCHaU1uJWgTWf1/w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-gnu@0.131.0': + resolution: {integrity: sha512-vvpjkjEOUsPcsYf8evE4MO3aGx9+3wodXEBOicGNnOwTuAik8eBONNkgSdhkGsAblQmfVHJyanRnpxglddTXIA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-musl@0.131.0': + resolution: {integrity: sha512-AqmcNC3fClXX+fxQ6VGEN1667xVFiRBkY0CZmDMSiaeFUsv1+UkBPYYi48IUKcA9/ivvoKNRzQl2I4//kT9F/w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-s390x-gnu@0.131.0': + resolution: {integrity: sha512-7d3jOMKy7RSQCcDLIci+ySll2FgsOMl/GiRux4q2JNv0zg4EdhFISa9idvrdN/HEUIQQJNg6dmveUeJl2YErGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-gnu@0.131.0': + resolution: {integrity: sha512-JHK/h95qVqVQ+ITER837kcTdwBDFpFaNnOTYGCP0zdUSX/mLKC7tXOoyrTb6vG7iRPwGlcgBil3v2IjYw1FqJA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-musl@0.131.0': + resolution: {integrity: sha512-b2BO82O8azXAyf7EUgOPKu145nWypbNyk07HbU09fkzhm9lEA5oPvaN/M8Nlo7tOErVTa2WOgS4QbOnxAPXdDQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-openharmony-arm64@0.131.0': + resolution: {integrity: sha512-GHO9glZaX7LkX/OGfluEPf1yjg+ehiFbUdowbX6uNWOQhmwKWU4m4+nZ9FJkrHNKuxyI1KKertMdGjVKCApKWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-parser/binding-wasm32-wasi@0.131.0': + resolution: {integrity: sha512-3SkikPaEFoih1N83qLVEDLRLeY4nYsf6JT9SnWiMCQ5lGQdKup6bEuKCqkRiG9dD1IIaFeYz9RjlciPmYoFIWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.131.0': + resolution: {integrity: sha512-Os5bEhryeA2jkH+ZrnZyAC1EP5gs+X4YB1Fjqml7UPD5kU7ecsK1MPEVMfCrdt/GDNpDbavYXiOXOdyJ5b3OPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-ia32-msvc@0.131.0': + resolution: {integrity: sha512-m+jNz9EuF0NXoiptc6B9h5yompZQVW/a5MJeOu5zojfH5yWk82tvF2ccrHkfhgtrS9h9DD5l1Qv8dWlfY7Nz8g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.131.0': + resolution: {integrity: sha512-o14Hk8dAyiEUMFEWEgmAwFZvBt1RzAYLM3xeQ+5315JXgVYhoemivgYcbYVRbsFkS71ShMGlAFE0kPnr460rww==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.131.0': + resolution: {integrity: sha512-PgnWDfV0h+b16XNKbXU7Daib/BFSt/J2mEzfYIBu6JB/wNdlU+kVYXCkGA1A9fWkTbOgbjh4e6NhPeQOYvFhEA==} + + '@oxc-transform/binding-android-arm-eabi@0.131.0': + resolution: {integrity: sha512-rcNvLlbNnxTfYVlZVF+Rev2AyCpJDpwVPphG4HOJxauaT1+w5VxL+kRdxCReof4A8ZsszbvIYlvkqvaJKO4Mog==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-transform/binding-android-arm64@0.131.0': + resolution: {integrity: sha512-/y+EH6QYQB2ZDQNvMlzItc36mw16GZwCDlvGYbQ4GCTE+7ZtSmx9E/rJOYzYyzMghz0c5dhJquRKScXdOZHpnQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-transform/binding-darwin-arm64@0.131.0': + resolution: {integrity: sha512-x1Va8zFomdYghAI0Zkt7kUmG50S65XH1u0EbIDr80M9idfXrQgd08ZGl3ejwRGLBrkbA8tkkmeOu1rWVFf7BXg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.131.0': + resolution: {integrity: sha512-EwacackWpYYXGZsl0Aj4NKvDdLuxWZg7LQDneFyMwuftpAxPQLRkHFwZib7r6wpIJm4NELhHW261A4vZ8OQqXQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-freebsd-x64@0.131.0': + resolution: {integrity: sha512-EhXqWOtL1PWcJ3ktdplV4Wrez2PRuTBSDdB7KF6CN4zuZhohUjxC1bxqDNRbNSX46yaZ27IzJLafah1J6mSA8Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-transform/binding-linux-arm-gnueabihf@0.131.0': + resolution: {integrity: sha512-NfNACr3aqBKeeUh6HCoGGPSjdMkLvyXUZQywCg/DwRkEpqZo55KX65saW1sQdgBcu0SKXrAReTjIm/HDO/OI0Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm-musleabihf@0.131.0': + resolution: {integrity: sha512-ABp6KGhbYFGDaAdB4gGZW12DYa55OF/Cu+6Rw6/Di0skuwpiDwnBOLHWz9VBq0QTcREy/qIUOnKW+vZHQLOT8A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm64-gnu@0.131.0': + resolution: {integrity: sha512-4nKYkHHjRela+jpt+VO4++jxgHoJQFxAeAGtfQ4x11dQMJllzqo3Yu8gfcfLEMsAfflwN/gY+KBbMD/y0exitg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-arm64-musl@0.131.0': + resolution: {integrity: sha512-cW0Ab1s0sxfiyP1+gdd94f0vUjwGzJF4F3DepF3VnR9nFTGMmFLugwtrBS3DYjTnbugiUH3Fp+16yys1FhNzIA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-transform/binding-linux-ppc64-gnu@0.131.0': + resolution: {integrity: sha512-wunAU/lzE1nPGKL47uI0g+4Nsv/12xveOXNu4M70xe85kNBm7mQdMpZIeoVYCxtXew0iHxFKJDT6qK5mYFSA3w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-riscv64-gnu@0.131.0': + resolution: {integrity: sha512-r4sMt4OB4TryDcVWW9KnsXOf/ea7tIGX2QASNrpetzPocsBZqhHIFDbZ8EkBDjmlmWGHg6BgjVx6lLcMXX4Dcw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-riscv64-musl@0.131.0': + resolution: {integrity: sha512-/rLVLItsBjKrnZFLiGrwRB3fs0dAjXZLqY7F42omvacFJjZsceQ3481oQX1bBs3RwoDDyDy/9ZkIN7kYIkv5Gw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-transform/binding-linux-s390x-gnu@0.131.0': + resolution: {integrity: sha512-fUprJgJauI1A7e7cDgY/Z3mwLVtE3aswB4lvS96KpRNDHrwOh8bnCJOWf+0CYveDQzghDVFiZWVDo56pO4Wr9Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-x64-gnu@0.131.0': + resolution: {integrity: sha512-XdbvDT1GPNxrTLXSRt4RU2uCH112q3nINTT05DZqTYYcAxaCPImnMoZe2TlBv5j2376Gk+2pcVnJs6xut47aSw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-x64-musl@0.131.0': + resolution: {integrity: sha512-Du2CxlBfC98EV3hOAmLVSUgP0JgqM9F47lRv9v43T4sGPcQVOjs9wffUybGUUraG9unmBZ4dgpMAqlCq0k3dGw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-transform/binding-openharmony-arm64@0.131.0': + resolution: {integrity: sha512-wTj2FkOgNhgdisnA0a15QQksyj6AH2snmpgYgAtj098i477x5LpHHdqfuk60jsA/QHSjmUc6dm4P88yI5GY4xA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-transform/binding-wasm32-wasi@0.131.0': + resolution: {integrity: sha512-lE9UaZL0KomAlbATiB6FKoJ9no6W49yXs/MujJqY75AkHHMeOCsHSN9HvriyWz2FOIQgV7C5cmNj0jf+IaBtQg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-transform/binding-win32-arm64-msvc@0.131.0': + resolution: {integrity: sha512-8KUfPnuxbEfa9H+OQ5XNPFq9JIEWVCg8kczJaD8PvTprr515mz1lmSLSUoOW8mrLaN0mZaGg6pemuvTawOLoPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-ia32-msvc@0.131.0': + resolution: {integrity: sha512-pXSu2A7L6H//1Uvsg5RJHb91BDZpCTho0r9oAwxPqKJM2LWV7Zph/ikWEIXt/YLbKF3WpkHrKQ5hbQGP9gWmHg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.131.0': + resolution: {integrity: sha512-VXgk106WLl3NpBO/6G2gxkWBHguCJm01mGqAq2Q0l2o7hnbglsND0UWSCtM3a9MlsDimfJkLWFQveZu4UtnRvA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@parcel/watcher-android-arm64@2.5.6': + resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.6': + resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.6': + resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.6': + resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.6': + resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm-musl@2.5.6': + resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-arm64-glibc@2.5.6': + resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm64-musl@2.5.6': + resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-x64-glibc@2.5.6': + resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-x64-musl@2.5.6': + resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@parcel/watcher-wasm@2.5.6': + resolution: {integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.5.6': + resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.6': + resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.6': + resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.6': + resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@poppinss/colors@4.1.6': + resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} + + '@poppinss/dumper@0.7.0': + resolution: {integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==} + + '@poppinss/exception@1.2.3': + resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} + + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + + '@rollup/plugin-alias@6.0.0': + resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} + engines: {node: '>=20.19.0'} + peerDependencies: + rollup: '>=4.0.0' + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@29.0.3': + resolution: {integrity: sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.3': + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@1.0.0': + resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.60.4': + resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.4': + resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.4': + resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.4': + resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.4': + resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.4': + resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.60.4': + resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.60.4': + resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.60.4': + resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.60.4': + resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.60.4': + resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.4': + resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.60.4': + resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.4': + resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.60.4': + resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.60.4': + resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.60.4': + resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.4': + resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.60.4': + resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.4': + resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.4': + resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.4': + resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.4': + resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.4': + resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==} + cpu: [x64] + os: [win32] + + '@shikijs/core@4.1.0': + resolution: {integrity: sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==} + engines: {node: '>=20'} + + '@shikijs/engine-javascript@4.1.0': + resolution: {integrity: sha512-YquhawCUgaBfhsS72e2Y/dI59gCBNPHu3fEO/tvLaXrTssxZrY5ddjtNLTwndrMgPo8b3IscE+xoICDzpTmlFQ==} + engines: {node: '>=20'} + + '@shikijs/engine-oniguruma@4.1.0': + resolution: {integrity: sha512-axLpjVs45YBvvINa+dJF+NPW+KtFkNXsFr4SDw2BMj9GdeMnGxVB9PQb2xXlJYovslt/nz6giedAyOANkfc7hg==} + engines: {node: '>=20'} + + '@shikijs/langs@4.1.0': + resolution: {integrity: sha512-nwOMruEkbgdZfQ/b8CgpNBVOpvG1k0N5tbmgiFeqsan401+x3ILqlzZJowSla4Agmq4hG2Uf2wh5jLTEhR8VSg==} + engines: {node: '>=20'} + + '@shikijs/primitive@4.1.0': + resolution: {integrity: sha512-zx2/2Uwj2q9X3KSyYREEhXO23xBw5WUhP4orK2lE4r+t9JGITmEe0JH+wPmJhqHpOT2bRRs6lAL945+LDvOAGw==} + engines: {node: '>=20'} + + '@shikijs/themes@4.1.0': + resolution: {integrity: sha512-emCcTnUM7yO2wltYbaxm+yLvcCI4+h8XBKc4KmJ7EZUXoSGjcCHifkI//R4OFit9ewpg7H2/9tjOuXrT2v/Knw==} + engines: {node: '>=20'} + + '@shikijs/transformers@4.1.0': + resolution: {integrity: sha512-YbuOcAA3kwqKDU9YSt00dtFLrY5lBXjKU3dWaMATyEyPSqBm9Jqblk/uVICxz7lcjwAHzYaEvIiMWX3mTpogkA==} + engines: {node: '>=20'} + + '@shikijs/types@4.1.0': + resolution: {integrity: sha512-3EQWX54fMpniOrDblzAhiwiJwpiTMW6+B9DWyUd9ska483tbayFYuw47UxwuPknI31bKnySfVQ/QW+jFL4rFdA==} + engines: {node: '>=20'} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@simple-git/args-pathspec@1.0.3': + resolution: {integrity: sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==} + + '@simple-git/argv-parser@1.1.1': + resolution: {integrity: sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw==} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@7.2.0': + resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@speed-highlight/core@1.2.15': + resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} + + '@sqlite.org/sqlite-wasm@3.50.4-build1': + resolution: {integrity: sha512-Qig2Wso7gPkU1PtXwFzndh+CTRzrIFxVGqv6eCetjU7YqxlHItj+GvQYwYTppCRgAPawtRN/4AJcEgB9xDHGug==} + hasBin: true + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@tailwindcss/typography@0.5.19': + resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/parse-path@7.1.0': + resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} + deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@ungap/structured-clone@1.3.1': + resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + + '@unhead/vue@2.1.15': + resolution: {integrity: sha512-SSByXfEjhzPn8gXdEdgpYqpLMPSkLUH2HVE0GxZfOtNsJ0GgOHQs0g9T67ZZ1z0kTELLKdtOtYrzrbv9+ffF7g==} + peerDependencies: + vue: '>=3.5.18' + + '@vercel/nft@1.10.2': + resolution: {integrity: sha512-w+WyX5Ulmj4dtTZrxaulqrjaLZHSbnPzx75SJsTNYmotKsqn1JlLnDJa+lz5hn90HJofhl/2MAtw0mCrgM3qYw==} + engines: {node: '>=20'} + hasBin: true + + '@vitejs/plugin-vue-jsx@5.1.5': + resolution: {integrity: sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@6.0.7': + resolution: {integrity: sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vue: ^3.2.25 + + '@volar/language-core@2.4.28': + resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} + + '@volar/source-map@2.4.28': + resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} + + '@volar/typescript@2.4.28': + resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + + '@vue-macros/common@3.1.2': + resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==} + engines: {node: '>=20.19.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + + '@vue/babel-helper-vue-transform-on@2.0.1': + resolution: {integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==} + + '@vue/babel-plugin-jsx@2.0.1': + resolution: {integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@2.0.1': + resolution: {integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.35': + resolution: {integrity: sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==} + + '@vue/compiler-dom@3.5.35': + resolution: {integrity: sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==} + + '@vue/compiler-sfc@3.5.35': + resolution: {integrity: sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==} + + '@vue/compiler-ssr@3.5.35': + resolution: {integrity: sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/devtools-core@8.1.2': + resolution: {integrity: sha512-ZGGyaSBP4/+bN2Nd9ZHNYAVDRIzMw1rv2RyXWtyZlo6mQal+IDmTvKY4V+DjAEBhaXt30mHmsgYp1yXJ/2tIWg==} + peerDependencies: + vue: ^3.0.0 + + '@vue/devtools-kit@8.1.2': + resolution: {integrity: sha512-f75/upc+GCyjXErpgPGz4582ujS0L/adAltGy+tqXMGUJpgAcfGr6CxnnhpZY8BHuMYt6KpbF8uaFrrQG66rGQ==} + + '@vue/devtools-shared@8.1.2': + resolution: {integrity: sha512-X9RyVFYAdkBe4IUf5v48TxBF/6QPmF8CmWrDAjXzfUHrgQ/HGfTC1A6TqgXqZ03ye66l3AD51BAGD69IvKM9sw==} + + '@vue/language-core@3.3.2': + resolution: {integrity: sha512-CLwjSfHlPLhjd2qhuS3tTFtnOIWHXAM5u4X1DxmzlQ8j5bmOYlKCsSusOP7jCRJnlVg0mCTQtHU3vwFvopZGoQ==} + + '@vue/reactivity@3.5.35': + resolution: {integrity: sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==} + + '@vue/runtime-core@3.5.35': + resolution: {integrity: sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==} + + '@vue/runtime-dom@3.5.35': + resolution: {integrity: sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==} + + '@vue/server-renderer@3.5.35': + resolution: {integrity: sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==} + peerDependencies: + vue: 3.5.35 + + '@vue/shared@3.5.35': + resolution: {integrity: sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==} + + '@webcontainer/env@1.1.1': + resolution: {integrity: sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==} + + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.0.2: + resolution: {integrity: sha512-k2/tQ1+8Zf50dEUJWklUP80LcE/+Ph+OJ6cf2Ff2fD/c/TtCe6ofnCoNMz9UnyxOQYlaAALZtEWETzn+1JjfHg==} + engines: {node: '>= 14'} + + alien-signals@3.2.1: + resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + ansis@4.3.0: + resolution: {integrity: sha512-44mvgtPvohuU/70DdY5Oz2AIrLJ9k6/5x4KmoSvPwO+5Moijo0+N9D0fKbbYZQWP1hNm5CpOf+E01jhxG/r8xg==} + engines: {node: '>=14'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + ast-kit@2.1.2: + resolution: {integrity: sha512-cl76xfBQM6pztbrFWRnxbrDm9EOqDr1BF6+qQnnDZG2Co2LjyUktkN9GTJfBAfdae+DbT2nJf2nCGAdDDN7W2g==} + engines: {node: '>=20.18.0'} + + ast-kit@2.1.3: + resolution: {integrity: sha512-TH+b3Lv6pUjy/Nu0m6A2JULtdzLpmqF9x1Dhj00ZoEiML8qvVA9j1flkzTKNYgdEhWrjDwtWNpyyCUbfQe514g==} + engines: {node: '>=20.19.0'} + + ast-walker-scope@0.8.3: + resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==} + engines: {node: '>=20.19.0'} + + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.5.0: + resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + b4a@1.8.1: + resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.0: + resolution: {integrity: sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + bare-events@2.8.3: + resolution: {integrity: sha512-HdUm8EMQBLaJvGUdidNNbqpA1kYkwNcb+MYxkxCLAPJGQzlv9J0C24h8V65Z4c5GLd/JEALDvpFCQgpLJqc0zw==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.7.1: + resolution: {integrity: sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.9.1: + resolution: {integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.13.1: + resolution: {integrity: sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.3: + resolution: {integrity: sha512-Kccpc7ACfXaxfeInfqKcZtW4pT5YBn1mesc4sCsun6sRwtbJ4h+sNOaksUpYEJUKfN65YWC6Bw2OJEFiKxq8nQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.10.32: + resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} + engines: {node: '>=6.0.0'} + hasBin: true + + better-sqlite3@12.10.0: + resolution: {integrity: sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x || 26.x} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + birpc@2.6.1: + resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} + + birpc@4.0.0: + resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + + bl@2.2.0: + resolution: {integrity: sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} + + brace-expansion@2.1.1: + resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} + + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + c12@3.3.4: + resolution: {integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==} + peerDependencies: + magicast: '*' + peerDependenciesMeta: + magicast: + optional: true + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001793: + resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + citty@0.1.5: + resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + citty@0.2.2: + resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} + + clean-git-ref@2.0.1: + resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + + cluster-key-slot@1.1.1: + resolution: {integrity: sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw==} + engines: {node: '>=0.10.0'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.0: + resolution: {integrity: sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==} + + commander@4.0.0: + resolution: {integrity: sha512-SEa2abMBTZuEjLVYpNrAFoRgxPwG4rXP3+SGY6CM/HZGeDzIA7Pzp+7H3AHDukKEpyy2SoSGGPShKqqfH9T9AQ==} + engines: {node: '>= 6'} + + commander@6.0.0: + resolution: {integrity: sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==} + engines: {node: '>= 6'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compatx@0.2.0: + resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + content-type@1.0.4: + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-es@1.2.3: + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} + + cookie-es@2.0.1: + resolution: {integrity: sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==} + + cookie-es@3.1.1: + resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} + + cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + + croner@10.0.1: + resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} + engines: {node: '>=18.0'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + + crossws@0.4.5: + resolution: {integrity: sha512-wUR89x/Rw7/8t+vn0CmGDYM9TD6VtARGb0LD5jq2wjtMy1vCP4M+sm6N6TigWeTYvnA8MoW29NqqXD0ep0rfBA==} + peerDependencies: + srvx: '>=0.11.5' + peerDependenciesMeta: + srvx: + optional: true + + css-declaration-sorter@7.4.0: + resolution: {integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.2.0: + resolution: {integrity: sha512-7y32czN0VBL8WkevhC/mrHnoHOmQaJ1Wvp8sjRuTz6/n9cjL83jQaUru2MvP7kzjpGVwrSy5CE4XyQObWGIHQQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-default@7.0.17: + resolution: {integrity: sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + cssnano-utils@5.0.3: + resolution: {integrity: sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + cssnano@7.1.9: + resolution: {integrity: sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + db0@0.3.4: + resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + better-sqlite3: '*' + drizzle-orm: '*' + mysql2: '*' + sqlite3: '*' + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + mysql2: + optional: true + sqlite3: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detab@3.0.2: + resolution: {integrity: sha512-7Bp16Bk8sk0Y6gdXiCtnpGbghn8atnTJdd/82aWvS5ESnlcNvgUc10U2NYS0PAiDSGjWiI8qs/Cv1b2uSGdQ8w==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + devalue@5.8.1: + resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff3@0.0.3: + resolution: {integrity: sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==} + + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} + engines: {node: '>=0.3.1'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.2: + resolution: {integrity: sha512-pr8ToPIuwBonzUy42STpc5Cf0m69zsQ7gtCLLvKrTbhVRnRohT2pLiJmGp3PAh16nDVWpYpcRpdjuk1vFmnQUg==} + engines: {node: '>= 4'} + + domutils@3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + + dot-prop@10.1.0: + resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} + engines: {node: '>=20'} + + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.364: + resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} + + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + emoticon@4.1.0: + resolution: {integrity: sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + engine.io-client@6.6.5: + resolution: {integrity: sha512-QCwxUDULPlXv8F6tqMMKx5dNkTe6OaBYRMPYeXKBlyOoKvAmE0ac6pW7fFhSscJ/5SI7666/U/B+MElbsrJlIg==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + enhanced-resolve@5.22.1: + resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==} + engines: {node: '>=10.13.0'} + + entities@4.2.0: + resolution: {integrity: sha512-wEJa03bJgqEwPnkUqYdgmcfUXfm6+4hePQhntIvRy/1/+C4dFuhYHsgKBRjbQ6OWBh42P+VhAoCDO77DUh0e/Q==} + engines: {node: '>=0.12'} + + entities@4.3.0: + resolution: {integrity: sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + entities@8.0.0: + resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + engines: {node: '>=20.19.0'} + + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + externality@1.0.2: + resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-npm-meta@1.5.1: + resolution: {integrity: sha512-tWhw7z4jFuQgZB9tbQyUh5BY9nNd/wimM+fBLfmmJjakkJDNvbJKm0nQ5ruPKC0us1HGg7L6iBk1fxpSzcgSaA==} + hasBin: true + + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + + fast-wrap-ansi@0.2.2: + resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} + + fast-xml-builder@1.2.0: + resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} + + fast-xml-parser@5.8.0: + resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} + hasBin: true + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + flat@6.0.1: + resolution: {integrity: sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==} + engines: {node: '>=18'} + hasBin: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.1.0: + resolution: {integrity: sha512-lXeSPRCndWPaipZbtI4CkvTZpF6OPsy19dkvf7+5AHeJD+w+iAKPc9Q78xWBmX4SdR+8xrtY9jTXs/YDv8q+Ug==} + engines: {node: '>=14'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@9.0.1: + resolution: {integrity: sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==} + engines: {node: '>=10'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + fuse.js@7.3.0: + resolution: {integrity: sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==} + engines: {node: '>=10'} + + fzf@0.5.2: + resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} + engines: {node: '>=18'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + giget@3.2.0: + resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} + hasBin: true + + git-up@8.1.1: + resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} + + git-url-parse@16.1.0: + resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==} + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globby@16.2.0: + resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} + engines: {node: '>=20'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + h3@1.15.11: + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + + hast-util-format@1.1.0: + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + + hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + + hast-util-is-body-ok-link@3.0.1: + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-minify-whitespace@1.0.1: + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-mdast@10.1.2: + resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==} + + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hookable@6.1.1: + resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-whitespace-sensitive-tag-names@3.0.1: + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + + httpxy@0.5.3: + resolution: {integrity: sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw==} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + image-meta@0.2.2: + resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} + + impound@1.1.5: + resolution: {integrity: sha512-5AUn+QE0UofqNHu5f2Skf6Svukdg4ehOIq8O0EtqIx4jta0CDZYBPqpIHt0zrlUTiFVYlLpeH39DoikXBjPKpA==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.0: + resolution: {integrity: sha512-6tyfJkFAmQV64x9Li007PNZgNxqRywig4Rv8PDfzU9kgDBmURaIvjSL2wKyx45LPSIXsvDkFGbOMqMHC1PsORA==} + deprecated: Please update to ini >=1.3.6 to avoid a prototype pollution issue + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ioredis@5.11.0: + resolution: {integrity: sha512-EZBErytyVovD8f6pDfG3Kb37N6Y3lmDA9NNj+4+IP13CzzHGeX+OyeRM2Um13khRzoBSzzL+5lVnCX8V2RLeMg==} + engines: {node: '>=12.22.0'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-absolute-url@4.0.1: + resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-in-ssh@1.0.0: + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} + engines: {node: '>=20'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-ssh@1.4.1: + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-wsl@2.1.1: + resolution: {integrity: sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==} + engines: {node: '>=8'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + + isomorphic-git@1.38.3: + resolution: {integrity: sha512-rOpt0yIW9HD1o6mA4w2f4XP5Lj42QnccbFbhzkby6L+t9c2klQxf9seqyrw5x8JcWWnbuPuN7v7YJ7yvHj9OPA==} + engines: {node: '>=14.17'} + hasBin: true + + jackspeak@3.1.2: + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} + engines: {node: '>=14'} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-schema-to-typescript-lite@15.0.0: + resolution: {integrity: sha512-5mMORSQm9oTLyjM4mWnyNBi2T042Fhg1/0gCIB6X8U/LVpM2A+Nmj2yEyArqVouDmFThDxpEXcnTgSrjkGJRFA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.3.0: + resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} + + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa-convert@2.0.0: + resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + engines: {node: '>= 10'} + + koa-send@5.0.1: + resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + engines: {node: '>= 8'} + + koa-static@5.0.0: + resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + engines: {node: '>= 7.6.0'} + + koa@2.16.4: + resolution: {integrity: sha512-3An0GCLDSR34tsCO4H8Tef8Pp2ngtaZDAZnsWJYelqXUK5wyiHvGItgK/xcSkmHLSTn1Jcho1mRQs2ehRzvKKw==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + + launch-editor@2.14.0: + resolution: {integrity: sha512-Pj3ZOx9dD1BClS7YcSQx0An1PCF9wz4JpvbEmKvDxQtm0jxlkk5NhW8x0SBAKA/acHBKZaqdd5FFOWlXo500JA==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + listhen@1.10.0: + resolution: {integrity: sha512-kfz4C0OrC6IpaVMtYDJtf6PFjurxe9NBBoDAh/o2p587INryFOO4DQ9OetbCdDrWFt1m1CJKvYrzkGsuPHw8nQ==} + hasBin: true + + local-pkg@1.2.1: + resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} + engines: {node: '>=14'} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + lru-cache@11.5.1: + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-regexp@0.11.0: + resolution: {integrity: sha512-LG77Z/gVnwz7oaDpD4heX6ryl+lcr4l1B2gnP4MMvt2pGhGC1Dfj7dl1pXpP4ih+VQFLuAadeKVa+lARAzfW+Q==} + + magic-string-ast@1.0.2: + resolution: {integrity: sha512-8ngQgLhcT0t3YBdn9CGkZqCYlvwW9pm7aWJwd7AxseVWf1RU8ZHCQvG1mt3N5vvUme+pXTcHB8G/7fE666U8Vw==} + engines: {node: '>=20.18.0'} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + magicast@0.5.3: + resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.0.0: + resolution: {integrity: sha512-Ov3aWCYpb31/SkHNRlREvSZsF9ETBW/rXw4PooawZO8qy2MviDq4TI6kxX6zFmGa/zUX36STKIC/IpASQk596w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.0: + resolution: {integrity: sha512-pIgcsGxpHEtTG/rPJRz/HOLSqp5VTuIIjXlPI+6JSDlK2oljApusG6KzpS8AF0ENUMCHlC/IBb5B9xdFiVlm5Q==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + minimark@0.2.0: + resolution: {integrity: sha512-AmtWU9pO0C2/3AM2pikaVhJ//8E5rOpJ7+ioFQfjIq+wCsBeuZoxPd97hBFZ9qrI7DMHZudwGH3r8A7BMnsIew==} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minimisted@2.0.1: + resolution: {integrity: sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + + mocked-exports@0.1.1: + resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanotar@0.3.0: + resolution: {integrity: sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg==} + + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + nitropack@2.13.4: + resolution: {integrity: sha512-tX7bT6zxNeMwkc6hxHiZeUoTOjVrcjoh1Z3cmxOlodIqjl4HISgqfGOmkWSayky3Nv9Z5+KQH52F8nmXJY5AAA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + + node-abi@3.92.0: + resolution: {integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==} + engines: {node: '>=10'} + + node-addon-api@7.0.0: + resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==} + + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} + + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + engines: {node: '>=18'} + + nopt@8.0.0: + resolution: {integrity: sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + + nth-check@2.0.1: + resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==} + + nuxt-component-meta@0.17.2: + resolution: {integrity: sha512-2/mSSqutOX8t+r8cAX1yUYwAPBqicPO5Rfum3XaHVszxKCF4tXEXBiPGfJY9Zn69x/CIeOdw+aM9wmHzQ5Q+lA==} + hasBin: true + + nuxt-site-config-kit@4.0.8: + resolution: {integrity: sha512-7g3giKXt0M2vssCUg8XFfR6+u4U0zywQ8p8i4msy4p+9etteFNrkrCmVHZ83xiWGFbnoTgiaymPjbaQH3KZqAg==} + + nuxt-site-config@4.0.8: + resolution: {integrity: sha512-H7wHoOJ5Z6ZnTqD5vUugaKkWZbejZ9kGmzpr2dheOaC6RdT8JafCfMrmJG7W+cyJiJJ3YmzL+bzPBW2bW6MExA==} + + nuxt@3.21.6: + resolution: {integrity: sha512-jIs488icdWIzzwTQYa4J2WmbhDlBcVDPGc7LBTxezaHwf8C5LKnWZvBkFqREQ8UjMQe5KBnA98pFRUqT6ZDPYA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true + + nuxtseo-shared@5.1.3: + resolution: {integrity: sha512-euCaYANxdjeLzJcxvEczKpLuikxPy/LUT/v69orStKlG2U4pvWaqDv74QO8YMCCmUbAO+8BoRj/SJccu9GcJGQ==} + peerDependencies: + '@nuxt/schema': ^3.16.0 || ^4.0.0 + nuxt: ^3.16.0 || ^4.0.0 + nuxt-site-config: ^3.2.0 || ^4.0.0 + vue: ^3.5.0 + zod: ^3.23.0 || ^4.0.0 + peerDependenciesMeta: + nuxt-site-config: + optional: true + zod: + optional: true + + nypm@0.6.6: + resolution: {integrity: sha512-vRyr0r4cbBapw07Xw8xrj9Teq3o7MUD35rSaTcanDbW+aK2XHDgJFiU6ZTj2GBw7Q12ysdsyFss+Vdz4hQ0Y6Q==} + engines: {node: '>=18'} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + ofetch@2.0.0-alpha.3: + resolution: {integrity: sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + on-change@6.0.2: + resolution: {integrity: sha512-08+12qcOVEA0fS9g/VxKS27HaT94nRutUT77J2dr8zv/unzXopvhBuF8tNLWsoLQ5IgrQ6eptGeGqUYat82U1w==} + engines: {node: '>=20'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + + only@0.0.2: + resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + + open@11.0.0: + resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} + engines: {node: '>=20'} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + oxc-minify@0.131.0: + resolution: {integrity: sha512-Ch0sBbrqZpeNZUMhVDbU2yrTWTVrUT/MkXb9E2DAc+hbhxbbO8D/XklUtfPP86/iqrkvl178+YQvh5u8Of1mUg==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-parser@0.131.0: + resolution: {integrity: sha512-SJ3/7ZPbgie8dr5Z9BI/M51zZbpXba+hRSG0MDzVwMW5CRQg2fjYE0jHGlLX4eeiibGgC/mzoDFKSDHwVZEHRQ==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-transform@0.131.0: + resolution: {integrity: sha512-ml0/elXPNnDnuHo3VHmEMN2fnybmKx7YL+0E+gMQ0fuHRZHXYJzF6YJ01KsCWg6FXY6pbZcjm7DC3xwGHnB/BA==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-walker@1.0.0: + resolution: {integrity: sha512-eMsHflAGfOskpWxtp9xP/f5b96XLEU8ifTd2gOOCkdux9HMxKGy5S1ru0Gh1B3aPu+YbfmWUUVkcb7MrZz3XyQ==} + peerDependencies: + oxc-parser: '>=0.98.0' + rolldown: '>=1.0.0' + peerDependenciesMeta: + oxc-parser: + optional: true + rolldown: + optional: true + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-path@7.1.0: + resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} + + parse-url@9.2.0: + resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} + engines: {node: '>=14.13.0'} + + parse5@7.0.0: + resolution: {integrity: sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==} + + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + engines: {node: '>=14.0.0'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@2.1.0: + resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.1: + resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + + portfinder@1.0.38: + resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} + engines: {node: '>= 10.12'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.10: + resolution: {integrity: sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-convert-values@7.0.12: + resolution: {integrity: sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-comments@7.0.8: + resolution: {integrity: sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-duplicates@7.0.4: + resolution: {integrity: sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-empty@7.0.3: + resolution: {integrity: sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-overridden@7.0.3: + resolution: {integrity: sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + postcss-merge-longhand@7.0.7: + resolution: {integrity: sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-merge-rules@7.0.11: + resolution: {integrity: sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-font-values@7.0.3: + resolution: {integrity: sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-gradients@7.0.5: + resolution: {integrity: sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-params@7.0.9: + resolution: {integrity: sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-selectors@7.1.2: + resolution: {integrity: sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-nesting@13.0.1: + resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-normalize-charset@7.0.3: + resolution: {integrity: sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-display-values@7.0.3: + resolution: {integrity: sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-positions@7.0.4: + resolution: {integrity: sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-repeat-style@7.0.4: + resolution: {integrity: sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-string@7.0.3: + resolution: {integrity: sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-timing-functions@7.0.3: + resolution: {integrity: sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-unicode@7.0.9: + resolution: {integrity: sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-url@7.0.3: + resolution: {integrity: sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-whitespace@7.0.3: + resolution: {integrity: sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-ordered-values@7.0.4: + resolution: {integrity: sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-reduce-initial@7.0.9: + resolution: {integrity: sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-reduce-transforms@7.0.3: + resolution: {integrity: sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + postcss-svgo@7.1.3: + resolution: {integrity: sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.5.13 + + postcss-unique-selectors@7.0.7: + resolution: {integrity: sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + engines: {node: ^10 || ^12 || >=14} + + powershell-utils@0.1.0: + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} + engines: {node: '>=20'} + + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. + hasBin: true + + pretty-bytes@7.1.0: + resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} + engines: {node: '>=20'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + protocols@2.0.2: + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + rc9@3.0.1: + resolution: {integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.2: + resolution: {integrity: sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + rehype-external-links@3.0.0: + resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + + rehype-minify-whitespace@6.0.2: + resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-remark@10.0.1: + resolution: {integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==} + + rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + + rehype-sort-attribute-values@5.0.1: + resolution: {integrity: sha512-lU3ABJO5frbUgV132YS6SL7EISf//irIm9KFMaeu5ixHfgWf6jhe+09Uf/Ef8pOYUJWKOaQJDRJGCXs6cNsdsQ==} + + rehype-sort-attributes@5.0.1: + resolution: {integrity: sha512-Bxo+AKUIELcnnAZwJDt5zUDDRpt4uzhfz9d0PVGhcxYWsbFj5Cv35xuWxu5r1LeYNFNhgGqsr9Q2QiIOM/Qctg==} + + remark-emoji@5.0.2: + resolution: {integrity: sha512-IyIqGELcyK5AVdLFafoiNww+Eaw/F+rGrNSXoKucjo95uL267zrddgxGM83GN1wFIb68pyDuAsY3m5t2Cav1pQ==} + engines: {node: '>=18'} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdc@3.11.0: + resolution: {integrity: sha512-xFrKmGRa+xgsfAZPA2CDaKILSHSOhX2irjJBrrPLxNrxaz2NFI+gXuVjo6Bkbh2vx7fKKTB5S9yyKyIwJh+FsQ==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + replace-in-file@6.3.5: + resolution: {integrity: sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==} + engines: {node: '>=10'} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-path@1.4.0: + resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + engines: {node: '>= 0.8'} + + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup-plugin-visualizer@7.0.1: + resolution: {integrity: sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg==} + engines: {node: '>=22'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta || ^1.0.0-rc + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + + rollup@4.60.4: + resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rou3@0.8.1: + resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} + + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + engines: {node: '>=11.0.0'} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + engines: {node: '>=10'} + hasBin: true + + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + + serialize-javascript@7.0.5: + resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + engines: {node: '>=20.0.0'} + + seroval@1.5.4: + resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==} + engines: {node: '>=10'} + + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.12: + resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} + engines: {node: '>= 0.10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.4: + resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + engines: {node: '>= 0.4'} + + shiki@4.1.0: + resolution: {integrity: sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==} + engines: {node: '>=20'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-git@3.36.0: + resolution: {integrity: sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + site-config-stack@4.0.8: + resolution: {integrity: sha512-Su+57p7CGqd3QSMmaDV+qU9EqWmgAT3SGX4Wurb5VsEBMFC3oXvai8BlrXVUnH1ay9hA1WOn0g0i6+y/RJX5Yw==} + peerDependencies: + vue: ^3.5.30 + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slugify@1.6.9: + resolution: {integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==} + engines: {node: '>=8.0.0'} + + smob@1.6.2: + resolution: {integrity: sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==} + engines: {node: '>=20.0.0'} + + socket.io-client@4.8.3: + resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.6: + resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==} + engines: {node: '>=10.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + srvx@0.11.16: + resolution: {integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==} + engines: {node: '>=20.16.0'} + hasBin: true + + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@4.1.0: + resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + + streamx@2.26.0: + resolution: {integrity: sha512-VvNG1K72Po/xwJzxZFnZ++Tbrv4lwSptsbkFuzXCJAYZvCK5nnxsvXU6ajqkv7chyiI1Y0YXq2Jh8Iy8Y7NF/A==} + + string-width@4.2.0: + resolution: {integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==} + engines: {node: '>=8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + + strnum@2.3.0: + resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} + + structured-clone-es@2.0.0: + resolution: {integrity: sha512-5UuAHmBLXYPCl22xWJrFuGmIhBKQzxISPVz6E7nmTmTcAOpUzlbjKJsRrCE4vADmMQ0dzeCnlWn9XufnAGf76Q==} + + stylehacks@7.0.11: + resolution: {integrity: sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} + engines: {node: '>=16'} + hasBin: true + + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + + tailwind-config-viewer@2.0.4: + resolution: {integrity: sha512-icvcmdMmt9dphvas8wL40qttrHwAnW3QEN4ExJ2zICjwRsPj7gowd1cOceaWG3IfTuM/cTNGQcx+bsjMtmV+cw==} + engines: {node: '>=13'} + hasBin: true + peerDependencies: + tailwindcss: 1 || 2 || 2.0.1-compat || 3 + + tailwindcss@3.4.19: + resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + + tar-fs@2.0.0: + resolution: {integrity: sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==} + + tar-stream@2.0.0: + resolution: {integrity: sha512-n2vtsWshZOVr/SY4KtslPoUlyNh06I2SGgAOCZmquCEjlbV/LjY2CY80rDtdQRHFOYXNlgBDo6Fr3ww2CWPOtA==} + + tar-stream@3.2.0: + resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + + tar@7.5.15: + resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==} + engines: {node: '>=18'} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + + terser@5.48.0: + resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} + engines: {node: '>=10'} + hasBin: true + + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyclip@0.1.13: + resolution: {integrity: sha512-8OqlXQ35euK9+e7L68u8UwcODxkHoIkjbGsgXuARKNyQ5G6xt8nw1YPeMbxMLgCPFkToU+UEK5j05t2t8edKpQ==} + engines: {node: ^16.14.0 || >= 17.3.0} + + tinyexec@1.2.3: + resolution: {integrity: sha512-g62dB+w1/OEFnPvmX0yd/HnetYITOL+1nJW7kitOycOeAvmbWC/nu0fwmmQ/kupNojqExzyC/T++pST/jRJ2mQ==} + engines: {node: '>=18'} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trim-trailing-lines@2.1.0: + resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} + engines: {node: '>=20'} + + type-is@1.6.16: + resolution: {integrity: sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==} + engines: {node: '>= 0.6'} + + type-level-regexp@0.1.17: + resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.5.0: + resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} + + unenv@2.0.0-rc.24: + resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} + + unhead@2.1.15: + resolution: {integrity: sha512-MCt5T90mCWyr3Z6pUCdM9lVRXoMoVBlL7z7U4CYVIiaDiuzad/UCfLuMqz5MeNmpZUgoBCQnrucJimU7EZR+XA==} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + + unicorn-magic@0.4.0: + resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} + engines: {node: '>=20'} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unimport@6.3.0: + resolution: {integrity: sha512-M+Dxk5W9WRd+8j56W9tp8lGW/dmMc7g5zj7BWQnEjKQhryBstqsi1V0izb0zHwSkEN8cSYV7K75/bykairV2tA==} + engines: {node: '>=18.12.0'} + peerDependencies: + oxc-parser: '*' + rolldown: ^1.0.0 + peerDependenciesMeta: + oxc-parser: + optional: true + rolldown: + optional: true + + unist-builder@4.0.0: + resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + universalify@1.0.0: + resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==} + engines: {node: '>= 10.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} + engines: {node: '>=20.19.0'} + + unplugin-vue-router@0.19.2: + resolution: {integrity: sha512-u5dgLBarxE5cyDK/hzJGfpCTLIAyiTXGlo85COuD4Nssj6G7NxS+i9mhCWz/1p/ud1eMwdcUbTXehQe41jYZUA==} + deprecated: 'Merged into vuejs/router. Migrate: https://router.vuejs.org/guide/migration/v4-to-v5.html' + peerDependencies: + '@vue/compiler-sfc': ^3.5.17 + vue-router: ^4.6.0 + peerDependenciesMeta: + vue-router: + optional: true + + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + + unplugin@3.0.0: + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + engines: {node: ^20.19.0 || >=22.12.0} + + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6 || ^7 || ^8 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1 || ^2 || ^3 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untyped@2.0.0: + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + hasBin: true + + unwasm@0.5.3: + resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uqr@0.1.3: + resolution: {integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-dev-rpc@2.0.0: + resolution: {integrity: sha512-yKwbTwdHKSD2k/aGqyWpPHepo45OQc8lH3/6IfT4ZqeKE26ooKvi4WIEKzqWav8v+9Is8u1k8q54hvOmqASazA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 || ^8.0.0 + + vite-hot-client@2.2.0: + resolution: {integrity: sha512-76Zs9zrHbH7M7wqeyooGQKdX+yg0pQ0xuQ1PbFp4z5a0Lzn2e5IPFoCswnmqZ4GiwqB4Jo3WcDAMO9jARTJl8w==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0 + + vite-node@5.3.0: + resolution: {integrity: sha512-8f20COPYJujc3OKPX6OuyBy3ZIv2det4eRRU4GY1y2MjbeGSUmPjedxg1b72KnTagCofwvZ65ThzjxDW2AtQFQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + vite-plugin-checker@0.13.0: + resolution: {integrity: sha512-14EkOZmfinVZNxRmg2uCNDwtqGc/33lU/UEJansHgu27+ad+r6mMBf1Xtnq57jGZWiO/xzwtiEKPYsganw7ZFQ==} + engines: {node: '>=16.11'} + peerDependencies: + '@biomejs/biome': '>=1.7' + eslint: '>=9.39.4' + meow: ^13.2.0 || ^14.0.0 + optionator: ^0.9.4 + oxlint: '>=1' + stylelint: '>=16.26.1' + typescript: '*' + vite: '>=5.4.21' + vls: '*' + vti: '*' + vue-tsc: ~2.2.10 || ^3.0.0 + peerDependenciesMeta: + '@biomejs/biome': + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + oxlint: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + + vite-plugin-inspect@11.4.1: + resolution: {integrity: sha512-ShOFe2PURXGvRS5OrgmOLZOCwDTD7dEBVt0tMpFPKb9AsvqXKCRGM8QgKrUbRbJYFXScHvDPpGRd28rYidC0tA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^6.0.0 || ^7.0.0-0 || ^8.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-vue-tracer@1.4.0: + resolution: {integrity: sha512-0tQCjCqZWVSK6UeRW9S4ABbf47lKQ68zvrT2FNvZmiL+alDydCVyH/T3Jlfbdc3T3C2Iuyyl5aVsMbF8IQIoxA==} + peerDependencies: + vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vue: ^3.5.0 + + vite@7.3.3: + resolution: {integrity: sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-bundle-renderer@2.2.0: + resolution: {integrity: sha512-sz/0WEdYH1KfaOm0XaBmRZOWgYTEvUDt6yPYaUzl4E52qzgWLlknaPPTTZmp6benaPTlQAI/hN1x3tAzZygycg==} + + vue-component-meta@3.3.2: + resolution: {integrity: sha512-n2N/IpZO16it12Marp9bFBWIwkqa+ux9yHIl6yBL1lFEPL2xCML8gQ+/l6gSGIkgZwpkD9hyu/a0GMhR0pHw/Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vue-devtools-stub@0.1.0: + resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + + vue-router@4.6.4: + resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==} + peerDependencies: + vue: ^3.5.0 + + vue@3.5.35: + resolution: {integrity: sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.0: + resolution: {integrity: sha512-GOK494qXZl0XBbr/YPRW2BL6oLfe+d0KDSWndKH7NdxJwJ0fCdhQG46Q2D7BmIS6cN/FJgtju8srRt/jlG9abA==} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-typed-array@1.1.21: + resolution: {integrity: sha512-zbRA8cVm6io/d5W8uIe2hblzN76/Wm3v/yiythQvr+dpBWeqhPSWIDNj4zOyHi4zKbMK6DN34Xsr9jPHJERAEw==} + engines: {node: '>= 0.4'} + + which@2.0.1: + resolution: {integrity: sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w==} + engines: {node: '>= 8'} + hasBin: true + + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.20.1: + resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + wsl-utils@0.3.1: + resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} + engines: {node: '>=20'} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml-naming@0.1.0: + resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + engines: {node: '>=16.0.0'} + + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + engines: {node: '>= 4.0.0'} + + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + + youch@4.1.1: + resolution: {integrity: sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@apidevtools/json-schema-ref-parser@14.1.1': + dependencies: + '@types/json-schema': 7.0.15 + js-yaml: 4.1.1 + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.7': {} + + '@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/core@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.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.7': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-member-expression-to-functions@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/traverse@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@bomb.sh/tab@0.0.15(cac@6.7.14)(citty@0.2.2)': + optionalDependencies: + cac: 6.7.14 + citty: 0.2.2 + + '@clack/core@1.4.0': + dependencies: + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 + + '@clack/prompts@1.5.0': + dependencies: + '@clack/core': 1.4.0 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 + + '@cloudflare/kv-asset-handler@0.4.2': {} + + '@colordx/core@5.4.3': {} + + '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.1)': + dependencies: + postcss-selector-parser: 7.1.1 + + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': + dependencies: + postcss-selector-parser: 7.1.1 + + '@dxup/nuxt@0.4.1(magicast@0.5.3)(typescript@5.8.2)': + dependencies: + '@dxup/unimport': 0.1.2 + '@nuxt/kit': 4.4.6(magicast@0.5.3) + chokidar: 5.0.0 + pathe: 2.0.3 + tinyglobby: 0.2.16 + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - magicast + + '@dxup/unimport@0.1.2': {} + + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/aix-ppc64@0.28.0': + optional: true + + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.28.0': + optional: true + + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-arm@0.28.0': + optional: true + + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/android-x64@0.28.0': + optional: true + + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.28.0': + optional: true + + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.28.0': + optional: true + + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.28.0': + optional: true + + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.28.0': + optional: true + + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.28.0': + optional: true + + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-arm@0.28.0': + optional: true + + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.28.0': + optional: true + + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.28.0': + optional: true + + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.28.0': + optional: true + + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.28.0': + optional: true + + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.28.0': + optional: true + + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.28.0': + optional: true + + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/linux-x64@0.28.0': + optional: true + + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.28.0': + optional: true + + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.28.0': + optional: true + + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.28.0': + optional: true + + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.28.0': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.28.0': + optional: true + + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.28.0': + optional: true + + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.28.0': + optional: true + + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.28.0': + optional: true + + '@esbuild/win32-x64@0.27.7': + optional: true + + '@esbuild/win32-x64@0.28.0': + optional: true + + '@iconify/types@2.0.0': {} + + '@iconify/vue@5.0.1(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@iconify/types': 2.0.0 + vue: 3.5.35(typescript@5.8.2) + + '@ioredis/commands@1.10.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.0 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + + '@jridgewell/gen-mapping@0.3.12': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/gen-mapping@0.3.2': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.10 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.10 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.4.10': {} + + '@jridgewell/sourcemap-codec@1.4.14': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + + '@koa/router@12.0.1': + dependencies: + debug: 4.4.3 + http-errors: 2.0.1 + koa-compose: 4.1.0 + methods: 1.1.2 + path-to-regexp: 6.2.1 + transitivePeerDependencies: + - supports-color + + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + + '@mapbox/node-pre-gyp@2.0.0': + dependencies: + consola: 3.4.2 + detect-libc: 2.1.2 + https-proxy-agent: 7.0.5 + node-fetch: 2.7.0 + nopt: 8.0.0 + semver: 7.8.1 + tar: 7.5.15 + transitivePeerDependencies: + - encoding + - supports-color + + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 + optional: true + + '@nodable/entities@2.1.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@nuxt/cli@3.35.2(@nuxt/schema@3.21.6)(cac@6.7.14)(magicast@0.5.3)': + dependencies: + '@bomb.sh/tab': 0.0.15(cac@6.7.14)(citty@0.2.2) + '@clack/prompts': 1.5.0 + c12: 3.3.4(magicast@0.5.3) + citty: 0.2.2 + confbox: 0.2.4 + consola: 3.4.2 + debug: 4.4.3 + defu: 6.1.7 + exsolve: 1.0.8 + fuse.js: 7.3.0 + fzf: 0.5.2 + giget: 3.2.0 + jiti: 2.7.0 + listhen: 1.10.0(srvx@0.11.16) + nypm: 0.6.6 + ofetch: 1.5.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + scule: 1.3.0 + semver: 7.8.1 + srvx: 0.11.16 + std-env: 4.1.0 + tinyclip: 0.1.13 + tinyexec: 1.2.3 + ufo: 1.6.4 + youch: 4.1.1 + optionalDependencies: + '@nuxt/schema': 3.21.6 + transitivePeerDependencies: + - cac + - commander + - magicast + - supports-color + + '@nuxt/content@3.14.0(better-sqlite3@12.10.0)(magicast@0.5.3)': + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + '@nuxtjs/mdc': 0.22.0(magicast@0.5.3) + '@shikijs/langs': 4.1.0 + '@sqlite.org/sqlite-wasm': 3.50.4-build1 + '@standard-schema/spec': 1.1.0 + '@webcontainer/env': 1.1.1 + c12: 3.3.4(magicast@0.5.3) + chokidar: 5.0.0 + consola: 3.4.2 + db0: 0.3.4(better-sqlite3@12.10.0) + defu: 6.1.7 + destr: 2.0.5 + git-url-parse: 16.1.0 + hookable: 5.5.3 + isomorphic-git: 1.38.3 + jiti: 2.7.0 + json-schema-to-typescript-lite: 15.0.0 + mdast-util-to-hast: 13.2.1 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromatch: 4.0.8 + minimark: 0.2.0 + minimatch: 10.2.5 + nuxt-component-meta: 0.17.2(magicast@0.5.3) + nypm: 0.6.6 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + remark-mdc: 3.11.0 + scule: 1.3.0 + shiki: 4.1.0 + slugify: 1.6.9 + socket.io-client: 4.8.3 + std-env: 4.1.0 + tinyglobby: 0.2.16 + ufo: 1.6.4 + unctx: 2.5.0 + unified: 11.0.5 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.1.0 + unplugin: 3.0.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + optionalDependencies: + better-sqlite3: 12.10.0 + transitivePeerDependencies: + - bufferutil + - drizzle-orm + - magicast + - mysql2 + - supports-color + - utf-8-validate + + '@nuxt/devalue@2.0.2': {} + + '@nuxt/devtools-kit@3.2.4(magicast@0.5.3)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))': + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + execa: 8.0.1 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + transitivePeerDependencies: + - magicast + + '@nuxt/devtools-kit@4.0.0-alpha.3(magicast@0.5.3)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))': + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + tinyexec: 1.2.3 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + transitivePeerDependencies: + - magicast + + '@nuxt/devtools-wizard@3.2.4': + dependencies: + '@clack/prompts': 1.5.0 + consola: 3.4.2 + diff: 8.0.4 + execa: 8.0.1 + magicast: 0.5.3 + pathe: 2.0.3 + pkg-types: 2.3.1 + semver: 7.8.1 + + '@nuxt/devtools@3.2.4(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.3)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + '@nuxt/devtools-wizard': 3.2.4 + '@nuxt/kit': 4.4.6(magicast@0.5.3) + '@vue/devtools-core': 8.1.2(vue@3.5.35(typescript@5.8.2)) + '@vue/devtools-kit': 8.1.2 + birpc: 4.0.0 + consola: 3.4.2 + destr: 2.0.5 + error-stack-parser-es: 1.0.5 + execa: 8.0.1 + fast-npm-meta: 1.5.1 + get-port-please: 3.2.0 + hookable: 6.1.1 + image-meta: 0.2.2 + is-installed-globally: 1.0.0 + launch-editor: 2.14.0 + local-pkg: 1.2.1 + magicast: 0.5.3 + nypm: 0.6.6 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + semver: 7.8.1 + simple-git: 3.36.0 + sirv: 3.0.2 + structured-clone-es: 2.0.0 + tinyglobby: 0.2.16 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.4.6(magicast@0.5.3))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.4.0(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2)) + which: 6.0.1 + ws: 8.21.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + - vue + + '@nuxt/kit@3.21.6(magicast@0.5.3)': + dependencies: + c12: 3.3.4(magicast@0.5.3) + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.8 + ignore: 7.0.5 + jiti: 2.7.0 + klona: 2.0.6 + knitwork: 1.3.0 + mlly: 1.8.2 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + rc9: 3.0.1 + scule: 1.3.0 + semver: 7.8.1 + tinyglobby: 0.2.16 + ufo: 1.6.4 + unctx: 2.5.0 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + + '@nuxt/kit@4.4.6(magicast@0.5.3)': + dependencies: + c12: 3.3.4(magicast@0.5.3) + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.8 + ignore: 7.0.5 + jiti: 2.7.0 + klona: 2.0.6 + mlly: 1.8.2 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + rc9: 3.0.1 + scule: 1.3.0 + semver: 7.8.1 + tinyglobby: 0.2.16 + ufo: 1.6.4 + unctx: 2.5.0 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + + '@nuxt/nitro-server@3.21.6(better-sqlite3@12.10.0)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(oxc-parser@0.131.0)(srvx@0.11.16)(typescript@5.8.2)': + dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/kit': 3.21.6(magicast@0.5.3) + '@unhead/vue': 2.1.15(vue@3.5.35(typescript@5.8.2)) + '@vue/shared': 3.5.35 + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + devalue: 5.8.1 + errx: 0.1.0 + escape-string-regexp: 5.0.0 + exsolve: 1.0.8 + h3: 1.15.11 + impound: 1.1.5 + klona: 2.0.6 + mocked-exports: 0.1.1 + nitropack: 2.13.4(better-sqlite3@12.10.0)(oxc-parser@0.131.0)(srvx@0.11.16) + nuxt: 3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0) + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + rou3: 0.8.1 + std-env: 4.1.0 + ufo: 1.6.4 + unctx: 2.5.0 + unstorage: 1.17.5(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0) + vue: 3.5.35(typescript@5.8.2) + vue-bundle-renderer: 2.2.0 + vue-devtools-stub: 0.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - db0 + - drizzle-orm + - encoding + - idb-keyval + - ioredis + - magicast + - mysql2 + - oxc-parser + - react-native-b4a + - rolldown + - sqlite3 + - srvx + - supports-color + - typescript + - uploadthing + - xml2js + + '@nuxt/schema@3.21.6': + dependencies: + '@vue/shared': 3.5.35 + defu: 6.1.7 + pathe: 2.0.3 + pkg-types: 2.3.1 + std-env: 4.1.0 + + '@nuxt/telemetry@2.8.0(@nuxt/kit@3.21.6(magicast@0.5.3))': + dependencies: + '@nuxt/kit': 3.21.6(magicast@0.5.3) + citty: 0.2.2 + consola: 3.4.2 + ofetch: 2.0.0-alpha.3 + rc9: 3.0.1 + std-env: 4.1.0 + + '@nuxt/vite-builder@3.21.6(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(typescript@5.8.2)(vue@3.5.35(typescript@5.8.2))(yaml@2.9.0)': + dependencies: + '@nuxt/kit': 3.21.6(magicast@0.5.3) + '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) + '@vitejs/plugin-vue': 6.0.7(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2)) + '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2)) + autoprefixer: 10.5.0(postcss@8.5.15) + consola: 3.4.2 + cssnano: 7.1.9(postcss@8.5.15) + defu: 6.1.7 + escape-string-regexp: 5.0.0 + exsolve: 1.0.8 + externality: 1.0.2 + get-port-please: 3.2.0 + jiti: 2.7.0 + knitwork: 1.3.0 + magic-string: 0.30.21 + mlly: 1.8.2 + mocked-exports: 0.1.1 + nuxt: 3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0) + nypm: 0.6.6 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + postcss: 8.5.15 + seroval: 1.5.4 + std-env: 4.1.0 + ufo: 1.6.4 + unenv: 2.0.0-rc.24 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vite-node: 5.3.0(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-checker: 0.13.0(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + vue: 3.5.35(typescript@5.8.2) + vue-bundle-renderer: 2.2.0 + optionalDependencies: + rollup-plugin-visualizer: 7.0.1(rollup@4.60.4) + transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - oxlint + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - vls + - vti + - vue-tsc + - yaml + + '@nuxtjs/color-mode@4.0.0(magicast@0.5.3)': + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + exsolve: 1.0.8 + pathe: 2.0.3 + pkg-types: 2.3.1 + semver: 7.8.1 + transitivePeerDependencies: + - magicast + + '@nuxtjs/mdc@0.22.0(magicast@0.5.3)': + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + '@shikijs/core': 4.1.0 + '@shikijs/engine-javascript': 4.1.0 + '@shikijs/langs': 4.1.0 + '@shikijs/themes': 4.1.0 + '@shikijs/transformers': 4.1.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@vue/compiler-core': 3.5.35 + consola: 3.4.2 + debug: 4.4.3 + defu: 6.1.7 + destr: 2.0.5 + detab: 3.0.2 + github-slugger: 2.0.0 + hast-util-format: 1.1.0 + hast-util-to-mdast: 10.1.2 + hast-util-to-string: 3.0.1 + mdast-util-to-hast: 13.2.1 + micromark-util-sanitize-uri: 2.0.1 + parse5: 8.0.1 + pathe: 2.0.3 + property-information: 7.1.0 + rehype-external-links: 3.0.0 + rehype-minify-whitespace: 6.0.2 + rehype-raw: 7.0.0 + rehype-remark: 10.0.1 + rehype-slug: 6.0.0 + rehype-sort-attribute-values: 5.0.1 + rehype-sort-attributes: 5.0.1 + remark-emoji: 5.0.2 + remark-gfm: 4.0.1 + remark-mdc: 3.11.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-stringify: 11.0.0 + scule: 1.3.0 + shiki: 4.1.0 + ufo: 1.6.4 + unified: 11.0.5 + unist-builder: 4.0.0 + unist-util-visit: 5.1.0 + unwasm: 0.5.3 + vfile: 6.0.3 + transitivePeerDependencies: + - magicast + - supports-color + + '@nuxtjs/sitemap@8.0.15(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76)': + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + consola: 3.4.2 + defu: 6.1.7 + fast-xml-parser: 5.8.0 + nuxt-site-config: 4.0.8(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76) + nuxtseo-shared: 5.1.3(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76))(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76) + ofetch: 1.5.1 + pathe: 2.0.3 + pkg-types: 2.3.1 + radix3: 1.1.2 + ufo: 1.6.4 + ultrahtml: 1.6.0 + optionalDependencies: + zod: 3.25.76 + transitivePeerDependencies: + - '@nuxt/schema' + - magicast + - nuxt + - vite + - vue + + '@nuxtjs/tailwindcss@6.14.0(magicast@0.5.3)(yaml@2.9.0)': + dependencies: + '@nuxt/kit': 3.21.6(magicast@0.5.3) + autoprefixer: 10.5.0(postcss@8.5.15) + c12: 3.3.4(magicast@0.5.3) + consola: 3.4.2 + defu: 6.1.7 + h3: 1.15.11 + klona: 2.0.6 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + postcss: 8.5.15 + postcss-nesting: 13.0.1(postcss@8.5.15) + tailwind-config-viewer: 2.0.4(tailwindcss@3.4.19(yaml@2.9.0)) + tailwindcss: 3.4.19(yaml@2.9.0) + ufo: 1.6.4 + unctx: 2.5.0 + transitivePeerDependencies: + - magicast + - supports-color + - tsx + - yaml + + '@oxc-minify/binding-android-arm-eabi@0.131.0': + optional: true + + '@oxc-minify/binding-android-arm64@0.131.0': + optional: true + + '@oxc-minify/binding-darwin-arm64@0.131.0': + optional: true + + '@oxc-minify/binding-darwin-x64@0.131.0': + optional: true + + '@oxc-minify/binding-freebsd-x64@0.131.0': + optional: true + + '@oxc-minify/binding-linux-arm-gnueabihf@0.131.0': + optional: true + + '@oxc-minify/binding-linux-arm-musleabihf@0.131.0': + optional: true + + '@oxc-minify/binding-linux-arm64-gnu@0.131.0': + optional: true + + '@oxc-minify/binding-linux-arm64-musl@0.131.0': + optional: true + + '@oxc-minify/binding-linux-ppc64-gnu@0.131.0': + optional: true + + '@oxc-minify/binding-linux-riscv64-gnu@0.131.0': + optional: true + + '@oxc-minify/binding-linux-riscv64-musl@0.131.0': + optional: true + + '@oxc-minify/binding-linux-s390x-gnu@0.131.0': + optional: true + + '@oxc-minify/binding-linux-x64-gnu@0.131.0': + optional: true + + '@oxc-minify/binding-linux-x64-musl@0.131.0': + optional: true + + '@oxc-minify/binding-openharmony-arm64@0.131.0': + optional: true + + '@oxc-minify/binding-wasm32-wasi@0.131.0': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@oxc-minify/binding-win32-arm64-msvc@0.131.0': + optional: true + + '@oxc-minify/binding-win32-ia32-msvc@0.131.0': + optional: true + + '@oxc-minify/binding-win32-x64-msvc@0.131.0': + optional: true + + '@oxc-parser/binding-android-arm-eabi@0.131.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.131.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.131.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.131.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.131.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.131.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.131.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.131.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.131.0': + optional: true + + '@oxc-parser/binding-linux-ppc64-gnu@0.131.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.131.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-musl@0.131.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.131.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.131.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.131.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.131.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.131.0': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.131.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.131.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.131.0': + optional: true + + '@oxc-project/types@0.131.0': {} + + '@oxc-transform/binding-android-arm-eabi@0.131.0': + optional: true + + '@oxc-transform/binding-android-arm64@0.131.0': + optional: true + + '@oxc-transform/binding-darwin-arm64@0.131.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.131.0': + optional: true + + '@oxc-transform/binding-freebsd-x64@0.131.0': + optional: true + + '@oxc-transform/binding-linux-arm-gnueabihf@0.131.0': + optional: true + + '@oxc-transform/binding-linux-arm-musleabihf@0.131.0': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.131.0': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.131.0': + optional: true + + '@oxc-transform/binding-linux-ppc64-gnu@0.131.0': + optional: true + + '@oxc-transform/binding-linux-riscv64-gnu@0.131.0': + optional: true + + '@oxc-transform/binding-linux-riscv64-musl@0.131.0': + optional: true + + '@oxc-transform/binding-linux-s390x-gnu@0.131.0': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.131.0': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.131.0': + optional: true + + '@oxc-transform/binding-openharmony-arm64@0.131.0': + optional: true + + '@oxc-transform/binding-wasm32-wasi@0.131.0': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.131.0': + optional: true + + '@oxc-transform/binding-win32-ia32-msvc@0.131.0': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.131.0': + optional: true + + '@parcel/watcher-android-arm64@2.5.6': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.6': + optional: true + + '@parcel/watcher-darwin-x64@2.5.6': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.6': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.6': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.6': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.6': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.6': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.6': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.6': + optional: true + + '@parcel/watcher-wasm@2.5.6': + dependencies: + is-glob: 4.0.3 + picomatch: 4.0.4 + + '@parcel/watcher-win32-arm64@2.5.6': + optional: true + + '@parcel/watcher-win32-ia32@2.5.6': + optional: true + + '@parcel/watcher-win32-x64@2.5.6': + optional: true + + '@parcel/watcher@2.5.6': + dependencies: + detect-libc: 2.1.2 + is-glob: 4.0.3 + node-addon-api: 7.0.0 + picomatch: 4.0.4 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.6 + '@parcel/watcher-darwin-arm64': 2.5.6 + '@parcel/watcher-darwin-x64': 2.5.6 + '@parcel/watcher-freebsd-x64': 2.5.6 + '@parcel/watcher-linux-arm-glibc': 2.5.6 + '@parcel/watcher-linux-arm-musl': 2.5.6 + '@parcel/watcher-linux-arm64-glibc': 2.5.6 + '@parcel/watcher-linux-arm64-musl': 2.5.6 + '@parcel/watcher-linux-x64-glibc': 2.5.6 + '@parcel/watcher-linux-x64-musl': 2.5.6 + '@parcel/watcher-win32-arm64': 2.5.6 + '@parcel/watcher-win32-ia32': 2.5.6 + '@parcel/watcher-win32-x64': 2.5.6 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@polka/url@1.0.0-next.29': {} + + '@poppinss/colors@4.1.6': + dependencies: + kleur: 4.1.5 + + '@poppinss/dumper@0.7.0': + dependencies: + '@poppinss/colors': 4.1.6 + '@sindresorhus/is': 7.2.0 + supports-color: 10.2.2 + + '@poppinss/exception@1.2.3': {} + + '@rolldown/pluginutils@1.0.1': {} + + '@rollup/plugin-alias@6.0.0(rollup@4.60.4)': + optionalDependencies: + rollup: 4.60.4 + + '@rollup/plugin-commonjs@29.0.3(rollup@4.60.4)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.60.4) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.5.0(picomatch@4.0.4) + is-reference: 1.2.1 + magic-string: 0.30.21 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.60.4 + + '@rollup/plugin-inject@5.0.5(rollup@4.60.4)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.60.4) + estree-walker: 2.0.2 + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.60.4 + + '@rollup/plugin-json@6.1.0(rollup@4.60.4)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.60.4) + optionalDependencies: + rollup: 4.60.4 + + '@rollup/plugin-node-resolve@16.0.3(rollup@4.60.4)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.60.4) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.12 + optionalDependencies: + rollup: 4.60.4 + + '@rollup/plugin-replace@6.0.3(rollup@4.60.4)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.60.4) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.60.4 + + '@rollup/plugin-terser@1.0.0(rollup@4.60.4)': + dependencies: + serialize-javascript: 7.0.5 + smob: 1.6.2 + terser: 5.48.0 + optionalDependencies: + rollup: 4.60.4 + + '@rollup/pluginutils@5.4.0(rollup@4.60.4)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.60.4 + + '@rollup/rollup-android-arm-eabi@4.60.4': + optional: true + + '@rollup/rollup-android-arm64@4.60.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.4': + optional: true + + '@rollup/rollup-darwin-x64@4.60.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.4': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.4': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.4': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.4': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.4': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.4': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.4': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.4': + optional: true + + '@shikijs/core@4.1.0': + dependencies: + '@shikijs/primitive': 4.1.0 + '@shikijs/types': 4.1.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@4.1.0': + dependencies: + '@shikijs/types': 4.1.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@4.1.0': + dependencies: + '@shikijs/types': 4.1.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@4.1.0': + dependencies: + '@shikijs/types': 4.1.0 + + '@shikijs/primitive@4.1.0': + dependencies: + '@shikijs/types': 4.1.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/themes@4.1.0': + dependencies: + '@shikijs/types': 4.1.0 + + '@shikijs/transformers@4.1.0': + dependencies: + '@shikijs/core': 4.1.0 + '@shikijs/types': 4.1.0 + + '@shikijs/types@4.1.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@simple-git/args-pathspec@1.0.3': {} + + '@simple-git/argv-parser@1.1.1': + dependencies: + '@simple-git/args-pathspec': 1.0.3 + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/is@7.2.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@socket.io/component-emitter@3.1.2': {} + + '@speed-highlight/core@1.2.15': {} + + '@sqlite.org/sqlite-wasm@3.50.4-build1': {} + + '@standard-schema/spec@1.1.0': {} + + '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.9.0))': + dependencies: + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.19(yaml@2.9.0) + + '@tybys/wasm-util@0.10.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree@1.0.8': {} + + '@types/estree@1.0.9': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@2.1.0': {} + + '@types/parse-path@7.1.0': + dependencies: + parse-path: 7.1.0 + + '@types/resolve@1.20.2': {} + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@ungap/structured-clone@1.3.1': {} + + '@unhead/vue@2.1.15(vue@3.5.35(typescript@5.8.2))': + dependencies: + hookable: 6.1.1 + unhead: 2.1.15 + vue: 3.5.35(typescript@5.8.2) + + '@vercel/nft@1.10.2(rollup@4.60.4)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0 + '@rollup/pluginutils': 5.4.0(rollup@4.60.4) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 13.0.6 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.4 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) + '@rolldown/pluginutils': 1.0.1 + '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.7) + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.35(typescript@5.8.2) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@6.0.7(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@rolldown/pluginutils': 1.0.1 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.35(typescript@5.8.2) + + '@volar/language-core@2.4.28': + dependencies: + '@volar/source-map': 2.4.28 + + '@volar/source-map@2.4.28': {} + + '@volar/typescript@2.4.28': + dependencies: + '@volar/language-core': 2.4.28 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue-macros/common@3.1.2(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@vue/compiler-sfc': 3.5.35 + ast-kit: 2.1.2 + local-pkg: 1.2.1 + magic-string-ast: 1.0.2 + unplugin-utils: 0.3.1 + optionalDependencies: + vue: 3.5.35(typescript@5.8.2) + + '@vue/babel-helper-vue-transform-on@2.0.1': {} + + '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.7)': + dependencies: + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@vue/babel-helper-vue-transform-on': 2.0.1 + '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.7) + '@vue/shared': 3.5.35 + optionalDependencies: + '@babel/core': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.7)': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/parser': 7.29.7 + '@vue/compiler-sfc': 3.5.35 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.35': + dependencies: + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.35 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.35': + dependencies: + '@vue/compiler-core': 3.5.35 + '@vue/shared': 3.5.35 + + '@vue/compiler-sfc@3.5.35': + dependencies: + '@babel/parser': 7.29.7 + '@vue/compiler-core': 3.5.35 + '@vue/compiler-dom': 3.5.35 + '@vue/compiler-ssr': 3.5.35 + '@vue/shared': 3.5.35 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.15 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.35': + dependencies: + '@vue/compiler-dom': 3.5.35 + '@vue/shared': 3.5.35 + + '@vue/devtools-api@6.6.4': {} + + '@vue/devtools-core@8.1.2(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@vue/devtools-kit': 8.1.2 + '@vue/devtools-shared': 8.1.2 + vue: 3.5.35(typescript@5.8.2) + + '@vue/devtools-kit@8.1.2': + dependencies: + '@vue/devtools-shared': 8.1.2 + birpc: 2.6.1 + hookable: 5.5.3 + perfect-debounce: 2.1.0 + + '@vue/devtools-shared@8.1.2': {} + + '@vue/language-core@3.3.2': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.35 + '@vue/shared': 3.5.35 + alien-signals: 3.2.1 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.4 + + '@vue/reactivity@3.5.35': + dependencies: + '@vue/shared': 3.5.35 + + '@vue/runtime-core@3.5.35': + dependencies: + '@vue/reactivity': 3.5.35 + '@vue/shared': 3.5.35 + + '@vue/runtime-dom@3.5.35': + dependencies: + '@vue/reactivity': 3.5.35 + '@vue/runtime-core': 3.5.35 + '@vue/shared': 3.5.35 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.35(vue@3.5.35(typescript@5.8.2))': + dependencies: + '@vue/compiler-ssr': 3.5.35 + '@vue/shared': 3.5.35 + vue: 3.5.35(typescript@5.8.2) + + '@vue/shared@3.5.35': {} + + '@webcontainer/env@1.1.1': {} + + abbrev@2.0.0: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-attributes@1.9.5(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + agent-base@7.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + alien-signals@3.2.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + ansis@4.3.0: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + archiver-utils@5.0.2: + dependencies: + glob: 10.5.0 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.18.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.2 + tar-stream: 3.2.0 + zip-stream: 6.0.1 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + arg@5.0.2: {} + + argparse@2.0.1: {} + + ast-kit@2.1.2: + dependencies: + '@babel/parser': 7.29.7 + pathe: 2.0.3 + + ast-kit@2.1.3: + dependencies: + '@babel/parser': 7.29.7 + pathe: 2.0.3 + + ast-walker-scope@0.8.3: + dependencies: + '@babel/parser': 7.29.7 + ast-kit: 2.1.3 + + async-lock@1.4.1: {} + + async-sema@3.1.1: {} + + async@3.2.6: {} + + at-least-node@1.0.0: {} + + autoprefixer@10.5.0(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001793 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + b4a@1.8.1: {} + + bail@2.0.2: {} + + balanced-match@1.0.0: {} + + balanced-match@4.0.4: {} + + bare-events@2.8.3: {} + + bare-fs@4.7.1: + dependencies: + bare-events: 2.8.3 + bare-path: 3.0.0 + bare-stream: 2.13.1(bare-events@2.8.3) + bare-url: 2.4.3 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.9.1: {} + + bare-path@3.0.0: + dependencies: + bare-os: 3.9.1 + + bare-stream@2.13.1(bare-events@2.8.3): + dependencies: + streamx: 2.26.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.8.3 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.3: + dependencies: + bare-path: 3.0.0 + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.10.32: {} + + better-sqlite3@12.10.0: + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.3 + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + birpc@2.6.1: {} + + birpc@4.0.0: {} + + bl@2.2.0: + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + boolbase@1.0.0: {} + + brace-expansion@1.1.15: + dependencies: + balanced-match: 1.0.0 + concat-map: 0.0.1 + + brace-expansion@2.1.1: + dependencies: + balanced-match: 1.0.0 + + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.32 + caniuse-lite: 1.0.30001793 + electron-to-chromium: 1.5.364 + node-releases: 2.0.46 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + buffer-crc32@1.0.0: {} + + buffer-from@1.1.2: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + + c12@3.3.4(magicast@0.5.3): + dependencies: + chokidar: 5.0.0 + confbox: 0.2.4 + defu: 6.1.7 + dotenv: 17.4.2 + exsolve: 1.0.8 + giget: 3.2.0 + jiti: 2.7.0 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + rc9: 3.0.1 + optionalDependencies: + magicast: 0.5.3 + + cac@6.7.14: {} + + cache-content-type@1.0.1: + dependencies: + mime-types: 2.1.35 + ylru: 1.4.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + camelcase-css@2.0.1: {} + + caniuse-api@3.0.0: + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001793 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001793: {} + + ccount@2.0.1: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + chownr@1.1.4: {} + + chownr@3.0.0: {} + + citty@0.1.5: + dependencies: + consola: 3.4.2 + + citty@0.1.6: + dependencies: + consola: 3.4.2 + + citty@0.2.2: {} + + clean-git-ref@2.0.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.2.0 + wrap-ansi: 9.0.0 + + cluster-key-slot@1.1.1: {} + + co@4.6.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + comma-separated-tokens@2.0.3: {} + + commander@11.1.0: {} + + commander@2.20.0: {} + + commander@4.0.0: {} + + commander@6.0.0: {} + + commondir@1.0.1: {} + + compatx@0.2.0: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + confbox@0.2.4: {} + + consola@3.4.2: {} + + content-disposition@0.5.2: {} + + content-type@1.0.4: {} + + convert-source-map@2.0.0: {} + + cookie-es@1.2.3: {} + + cookie-es@2.0.1: {} + + cookie-es@3.1.1: {} + + cookies@0.9.1: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + core-util-is@1.0.3: {} + + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + + croner@10.0.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.1 + + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + + crossws@0.4.5(srvx@0.11.16): + optionalDependencies: + srvx: 0.11.16 + + css-declaration-sorter@7.4.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.2 + domutils: 3.0.1 + nth-check: 2.0.1 + + css-tree@2.2.0: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + cssnano-preset-default@7.0.17(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + css-declaration-sorter: 7.4.0(postcss@8.5.15) + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 + postcss-calc: 10.1.1(postcss@8.5.15) + postcss-colormin: 7.0.10(postcss@8.5.15) + postcss-convert-values: 7.0.12(postcss@8.5.15) + postcss-discard-comments: 7.0.8(postcss@8.5.15) + postcss-discard-duplicates: 7.0.4(postcss@8.5.15) + postcss-discard-empty: 7.0.3(postcss@8.5.15) + postcss-discard-overridden: 7.0.3(postcss@8.5.15) + postcss-merge-longhand: 7.0.7(postcss@8.5.15) + postcss-merge-rules: 7.0.11(postcss@8.5.15) + postcss-minify-font-values: 7.0.3(postcss@8.5.15) + postcss-minify-gradients: 7.0.5(postcss@8.5.15) + postcss-minify-params: 7.0.9(postcss@8.5.15) + postcss-minify-selectors: 7.1.2(postcss@8.5.15) + postcss-normalize-charset: 7.0.3(postcss@8.5.15) + postcss-normalize-display-values: 7.0.3(postcss@8.5.15) + postcss-normalize-positions: 7.0.4(postcss@8.5.15) + postcss-normalize-repeat-style: 7.0.4(postcss@8.5.15) + postcss-normalize-string: 7.0.3(postcss@8.5.15) + postcss-normalize-timing-functions: 7.0.3(postcss@8.5.15) + postcss-normalize-unicode: 7.0.9(postcss@8.5.15) + postcss-normalize-url: 7.0.3(postcss@8.5.15) + postcss-normalize-whitespace: 7.0.3(postcss@8.5.15) + postcss-ordered-values: 7.0.4(postcss@8.5.15) + postcss-reduce-initial: 7.0.9(postcss@8.5.15) + postcss-reduce-transforms: 7.0.3(postcss@8.5.15) + postcss-svgo: 7.1.3(postcss@8.5.15) + postcss-unique-selectors: 7.0.7(postcss@8.5.15) + + cssnano-utils@5.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + + cssnano@7.1.9(postcss@8.5.15): + dependencies: + cssnano-preset-default: 7.0.17(postcss@8.5.15) + lilconfig: 3.1.3 + postcss: 8.5.15 + + csso@5.0.5: + dependencies: + css-tree: 2.2.0 + + csstype@3.2.3: {} + + db0@0.3.4(better-sqlite3@12.10.0): + optionalDependencies: + better-sqlite3: 12.10.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-equal@1.0.1: {} + + deep-extend@0.6.0: {} + + deepmerge@4.3.1: {} + + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@3.0.0: {} + + defu@6.1.7: {} + + delegates@1.0.0: {} + + denque@2.1.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + dequal@2.0.3: {} + + destr@2.0.5: {} + + destroy@1.2.0: {} + + detab@3.0.2: {} + + detect-libc@2.1.2: {} + + devalue@5.8.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + diff3@0.0.3: {} + + diff@8.0.4: {} + + dlv@1.1.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.2 + entities: 4.2.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.2: + dependencies: + domelementtype: 2.3.0 + + domutils@3.0.1: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.2 + + dot-prop@10.1.0: + dependencies: + type-fest: 5.6.0 + + dotenv@17.4.2: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.364: {} + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + emojilib@2.4.0: {} + + emoticon@4.1.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + engine.io-client@6.6.5: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + engine.io-parser: 5.2.3 + ws: 8.20.1 + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + + enhanced-resolve@5.22.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + + entities@4.2.0: {} + + entities@4.3.0: {} + + entities@7.0.1: {} + + entities@8.0.0: {} + + error-stack-parser-es@1.0.5: {} + + errx@0.1.0: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@2.1.0: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + esbuild@0.28.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@5.0.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + + events-universal@1.0.1: + dependencies: + bare-events: 2.8.3 + transitivePeerDependencies: + - bare-abort-controller + + events@3.3.0: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expand-template@2.0.3: {} + + exsolve@1.0.8: {} + + extend@3.0.2: {} + + externality@1.0.2: + dependencies: + enhanced-resolve: 5.22.1 + mlly: 1.8.2 + pathe: 1.1.2 + ufo: 1.6.4 + + fast-fifo@1.3.2: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-npm-meta@1.5.1: {} + + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-wrap-ansi@0.2.2: + dependencies: + fast-string-width: 3.0.2 + + fast-xml-builder@1.2.0: + dependencies: + path-expression-matcher: 1.5.0 + xml-naming: 0.1.0 + + fast-xml-parser@5.8.0: + dependencies: + '@nodable/entities': 2.1.1 + fast-xml-builder: 1.2.0 + path-expression-matcher: 1.5.0 + strnum: 2.3.0 + xml-naming: 0.1.0 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + feed@4.2.2: + dependencies: + xml-js: 1.6.11 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + flat@6.0.1: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.1.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fraction.js@5.3.4: {} + + fresh@0.5.2: {} + + fresh@2.0.0: {} + + fs-constants@1.0.0: {} + + fs-extra@9.0.1: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 1.0.0 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + fuse.js@7.3.0: {} + + fzf@0.5.2: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.6.0: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-port-please@3.2.0: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + get-stream@8.0.1: {} + + giget@3.2.0: {} + + git-up@8.1.1: + dependencies: + is-ssh: 1.4.1 + parse-url: 9.2.0 + + git-url-parse@16.1.0: + dependencies: + git-up: 8.1.1 + + github-from-package@0.0.0: {} + + github-slugger@2.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.5.0: + dependencies: + foreground-child: 3.1.0 + jackspeak: 3.1.2 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@13.0.6: + dependencies: + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 + + glob@7.2.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + globby@16.2.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + is-path-inside: 4.0.0 + slash: 5.1.0 + unicorn-magic: 0.4.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + gzip-size@7.0.0: + dependencies: + duplexer: 0.1.2 + + h3@1.15.11: + dependencies: + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.4 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + hast-util-embedded@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + + hast-util-format@1.1.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-minify-whitespace: 1.0.1 + hast-util-phrasing: 3.0.1 + hast-util-whitespace: 3.0.0 + html-whitespace-sensitive-tag-names: 3.0.1 + unist-util-visit-parents: 6.0.2 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-heading-rank@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-body-ok-link@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-minify-whitespace@1.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.1 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-phrasing@3.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.1 + hast-util-is-element: 3.0.0 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.1 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.0.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-mdast@10.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.1 + hast-util-phrasing: 3.0.1 + hast-util-to-html: 9.0.5 + hast-util-to-text: 4.0.2 + hast-util-whitespace: 3.0.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-hast: 13.2.1 + mdast-util-to-string: 4.0.0 + rehype-minify-whitespace: 6.0.2 + trim-trailing-lines: 2.1.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + + hookable@5.5.3: {} + + hookable@6.1.1: {} + + html-void-elements@3.0.0: {} + + html-whitespace-sensitive-tag-names@3.0.1: {} + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-shutdown@1.2.2: {} + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + httpxy@0.5.3: {} + + human-signals@5.0.0: {} + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + image-meta@0.2.2: {} + + impound@1.1.5: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + es-module-lexer: 2.1.0 + pathe: 2.0.3 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@1.3.0: {} + + ini@4.1.1: {} + + ioredis@5.11.0: + dependencies: + '@ioredis/commands': 1.10.0 + cluster-key-slot: 1.1.1 + debug: 4.4.3 + denque: 2.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + iron-webcrypto@1.2.1: {} + + is-absolute-url@4.0.1: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-callable@1.2.7: {} + + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + + is-decimal@2.0.1: {} + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-in-ssh@1.0.0: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-installed-globally@1.0.0: + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 + + is-module@1.0.0: {} + + is-number@7.0.0: {} + + is-path-inside@4.0.0: {} + + is-plain-obj@4.1.0: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.9 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + is-ssh@1.4.1: + dependencies: + protocols: 2.0.2 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.21 + + is-wsl@2.1.1: {} + + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isexe@4.0.0: {} + + isomorphic-git@1.38.3: + dependencies: + async-lock: 1.4.1 + clean-git-ref: 2.0.1 + crc-32: 1.2.2 + diff3: 0.0.3 + ignore: 5.3.2 + minimisted: 2.0.1 + pako: 1.0.11 + pify: 4.0.1 + readable-stream: 4.7.0 + sha.js: 2.4.12 + simple-get: 4.0.1 + + jackspeak@3.1.2: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.7: {} + + jiti@2.7.0: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.1: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-schema-to-typescript-lite@15.0.0: + dependencies: + '@apidevtools/json-schema-ref-parser': 14.1.1 + '@types/json-schema': 7.0.15 + + json5@2.2.3: {} + + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + + kleur@4.1.5: {} + + klona@2.0.6: {} + + knitwork@1.3.0: {} + + koa-compose@4.1.0: {} + + koa-convert@2.0.0: + dependencies: + co: 4.6.0 + koa-compose: 4.1.0 + + koa-send@5.0.1: + dependencies: + debug: 4.4.3 + http-errors: 1.8.1 + resolve-path: 1.4.0 + transitivePeerDependencies: + - supports-color + + koa-static@5.0.0: + dependencies: + debug: 3.2.7 + koa-send: 5.0.1 + transitivePeerDependencies: + - supports-color + + koa@2.16.4: + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.2 + content-type: 1.0.4 + cookies: 0.9.1 + debug: 4.4.3 + delegates: 1.0.0 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.1.2 + koa-compose: 4.1.0 + koa-convert: 2.0.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.16 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + launch-editor@2.14.0: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.4 + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + listhen@1.10.0(srvx@0.11.16): + dependencies: + '@parcel/watcher': 2.5.6 + '@parcel/watcher-wasm': 2.5.6 + citty: 0.2.2 + consola: 3.4.2 + crossws: 0.4.5(srvx@0.11.16) + defu: 6.1.7 + get-port-please: 3.2.0 + h3: 1.15.11 + http-shutdown: 1.2.2 + jiti: 2.7.0 + mlly: 1.8.2 + node-forge: 1.4.0 + pathe: 2.0.3 + std-env: 4.1.0 + tinyclip: 0.1.13 + ufo: 1.6.4 + untun: 0.1.3 + uqr: 0.1.3 + transitivePeerDependencies: + - srvx + + local-pkg@1.2.1: + dependencies: + mlly: 1.8.2 + pkg-types: 2.3.1 + quansync: 0.2.11 + + lodash.memoize@4.1.2: {} + + lodash.uniq@4.5.0: {} + + lodash@4.18.1: {} + + longest-streak@3.1.0: {} + + lru-cache@10.2.0: {} + + lru-cache@11.5.1: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-regexp@0.11.0: + dependencies: + magic-string: 0.30.21 + regexp-tree: 0.1.27 + type-level-regexp: 0.1.17 + unplugin: 3.0.0 + + magic-string-ast@1.0.2: + dependencies: + magic-string: 0.30.21 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + magicast@0.5.3: + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + source-map-js: 1.2.1 + + markdown-table@3.0.4: {} + + math-intrinsics@1.1.0: {} + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.0 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.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 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.1 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.28: {} + + mdn-data@2.27.1: {} + + media-typer@0.3.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromark-core-commonmark@2.0.0: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.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.1.1 + micromark-util-chunked: 2.0.1 + 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.1 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + 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.1 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.0 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + 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.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@4.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-response@3.1.0: {} + + minimark@0.2.0: {} + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.15 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.1 + + minimatch@9.0.9: + dependencies: + brace-expansion: 2.1.1 + + minimist@1.2.8: {} + + minimisted@2.0.1: + dependencies: + minimist: 1.2.8 + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + + mkdirp-classic@0.5.3: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mlly@1.8.2: + dependencies: + acorn: 8.16.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + + mocked-exports@0.1.1: {} + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.12: {} + + nanotar@0.3.0: {} + + napi-build-utils@2.0.0: {} + + negotiator@0.6.3: {} + + nitropack@2.13.4(better-sqlite3@12.10.0)(oxc-parser@0.131.0)(srvx@0.11.16): + dependencies: + '@cloudflare/kv-asset-handler': 0.4.2 + '@rollup/plugin-alias': 6.0.0(rollup@4.60.4) + '@rollup/plugin-commonjs': 29.0.3(rollup@4.60.4) + '@rollup/plugin-inject': 5.0.5(rollup@4.60.4) + '@rollup/plugin-json': 6.1.0(rollup@4.60.4) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.4) + '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) + '@rollup/plugin-terser': 1.0.0(rollup@4.60.4) + '@vercel/nft': 1.10.2(rollup@4.60.4) + archiver: 7.0.1 + c12: 3.3.4(magicast@0.5.3) + chokidar: 5.0.0 + citty: 0.2.2 + compatx: 0.2.0 + confbox: 0.2.4 + consola: 3.4.2 + cookie-es: 2.0.1 + croner: 10.0.1 + crossws: 0.3.5 + db0: 0.3.4(better-sqlite3@12.10.0) + defu: 6.1.7 + destr: 2.0.5 + dot-prop: 10.1.0 + esbuild: 0.28.0 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + exsolve: 1.0.8 + globby: 16.2.0 + gzip-size: 7.0.0 + h3: 1.15.11 + hookable: 5.5.3 + httpxy: 0.5.3 + ioredis: 5.11.0 + jiti: 2.7.0 + klona: 2.0.6 + knitwork: 1.3.0 + listhen: 1.10.0(srvx@0.11.16) + magic-string: 0.30.21 + magicast: 0.5.3 + mime: 4.1.0 + mlly: 1.8.2 + node-fetch-native: 1.6.7 + node-mock-http: 1.0.4 + ofetch: 1.5.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + pretty-bytes: 7.1.0 + radix3: 1.1.2 + rollup: 4.60.4 + rollup-plugin-visualizer: 7.0.1(rollup@4.60.4) + scule: 1.3.0 + semver: 7.8.1 + serve-placeholder: 2.0.2 + serve-static: 2.2.1 + source-map: 0.7.6 + std-env: 4.1.0 + ufo: 1.6.4 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.5.0 + unenv: 2.0.0-rc.24 + unimport: 6.3.0(oxc-parser@0.131.0) + unplugin-utils: 0.3.1 + unstorage: 1.17.5(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0) + untyped: 2.0.0 + unwasm: 0.5.3 + youch: 4.1.1 + youch-core: 0.3.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - oxc-parser + - react-native-b4a + - rolldown + - sqlite3 + - srvx + - supports-color + - uploadthing + + node-abi@3.92.0: + dependencies: + semver: 7.8.1 + + node-addon-api@7.0.0: {} + + node-emoji@2.2.0: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + node-fetch-native@1.6.7: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-forge@1.4.0: {} + + node-gyp-build@4.8.4: {} + + node-mock-http@1.0.4: {} + + node-releases@2.0.46: {} + + nopt@8.0.0: + dependencies: + abbrev: 2.0.0 + + normalize-path@3.0.0: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + + nth-check@2.0.1: + dependencies: + boolbase: 1.0.0 + + nuxt-component-meta@0.17.2(magicast@0.5.3): + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + citty: 0.1.6 + mlly: 1.8.2 + ohash: 2.0.11 + scule: 1.3.0 + typescript: 5.9.3 + ufo: 1.6.4 + vue-component-meta: 3.3.2(typescript@5.9.3) + transitivePeerDependencies: + - magicast + + nuxt-site-config-kit@4.0.8(magicast@0.5.3)(vue@3.5.35(typescript@5.8.2)): + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + site-config-stack: 4.0.8(vue@3.5.35(typescript@5.8.2)) + std-env: 4.1.0 + ufo: 1.6.4 + transitivePeerDependencies: + - magicast + - vue + + nuxt-site-config@4.0.8(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76): + dependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + h3: 1.15.11 + nuxt-site-config-kit: 4.0.8(magicast@0.5.3)(vue@3.5.35(typescript@5.8.2)) + nuxtseo-shared: 5.1.3(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76))(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76) + pathe: 2.0.3 + pkg-types: 2.3.1 + site-config-stack: 4.0.8(vue@3.5.35(typescript@5.8.2)) + ufo: 1.6.4 + transitivePeerDependencies: + - '@nuxt/schema' + - magicast + - nuxt + - vite + - vue + - zod + + nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0): + dependencies: + '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@5.8.2) + '@nuxt/cli': 3.35.2(@nuxt/schema@3.21.6)(cac@6.7.14)(magicast@0.5.3) + '@nuxt/devtools': 3.2.4(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2)) + '@nuxt/kit': 3.21.6(magicast@0.5.3) + '@nuxt/nitro-server': 3.21.6(better-sqlite3@12.10.0)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(oxc-parser@0.131.0)(srvx@0.11.16)(typescript@5.8.2) + '@nuxt/schema': 3.21.6 + '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.6(magicast@0.5.3)) + '@nuxt/vite-builder': 3.21.6(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(typescript@5.8.2)(vue@3.5.35(typescript@5.8.2))(yaml@2.9.0) + '@unhead/vue': 2.1.15(vue@3.5.35(typescript@5.8.2)) + '@vue/shared': 3.5.35 + c12: 3.3.4(magicast@0.5.3) + chokidar: 5.0.0 + compatx: 0.2.0 + consola: 3.4.2 + cookie-es: 2.0.1 + defu: 6.1.7 + destr: 2.0.5 + devalue: 5.8.1 + errx: 0.1.0 + escape-string-regexp: 5.0.0 + exsolve: 1.0.8 + h3: 1.15.11 + hookable: 5.5.3 + ignore: 7.0.5 + impound: 1.1.5 + jiti: 2.7.0 + klona: 2.0.6 + knitwork: 1.3.0 + magic-string: 0.30.21 + mlly: 1.8.2 + nanotar: 0.3.0 + nypm: 0.6.6 + ofetch: 1.5.1 + ohash: 2.0.11 + on-change: 6.0.2 + oxc-minify: 0.131.0 + oxc-parser: 0.131.0 + oxc-transform: 0.131.0 + oxc-walker: 1.0.0(oxc-parser@0.131.0) + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + rou3: 0.8.1 + scule: 1.3.0 + semver: 7.8.1 + std-env: 4.1.0 + tinyglobby: 0.2.16 + ufo: 1.6.4 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.5.0 + unimport: 6.3.0(oxc-parser@0.131.0) + unplugin: 3.0.0 + unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.35)(vue-router@4.6.4(vue@3.5.35(typescript@5.8.2)))(vue@3.5.35(typescript@5.8.2)) + untyped: 2.0.0 + vue: 3.5.35(typescript@5.8.2) + vue-router: 4.6.4(vue@3.5.35(typescript@5.8.2)) + optionalDependencies: + '@parcel/watcher': 2.5.6 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - '@vitejs/devtools' + - '@vue/compiler-sfc' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - bufferutil + - cac + - commander + - db0 + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - mysql2 + - optionator + - oxlint + - react-native-b4a + - rolldown + - rollup + - rollup-plugin-visualizer + - sass + - sass-embedded + - sqlite3 + - srvx + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js + - yaml + + nuxtseo-shared@5.1.3(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76))(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76): + dependencies: + '@clack/prompts': 1.5.0 + '@nuxt/devtools-kit': 4.0.0-alpha.3(magicast@0.5.3)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + '@nuxt/kit': 4.4.6(magicast@0.5.3) + '@nuxt/schema': 3.21.6 + birpc: 4.0.0 + consola: 3.4.2 + defu: 6.1.7 + nuxt: 3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0) + ofetch: 1.5.1 + pathe: 2.0.3 + pkg-types: 2.3.1 + radix3: 1.1.2 + sirv: 3.0.2 + std-env: 4.1.0 + ufo: 1.6.4 + vue: 3.5.35(typescript@5.8.2) + optionalDependencies: + nuxt-site-config: 4.0.8(@nuxt/schema@3.21.6)(magicast@0.5.3)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@vue/compiler-sfc@3.5.35)(better-sqlite3@12.10.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0)(magicast@0.5.3)(rollup-plugin-visualizer@7.0.1(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2))(zod@3.25.76) + zod: 3.25.76 + transitivePeerDependencies: + - magicast + - vite + + nypm@0.6.6: + dependencies: + citty: 0.2.2 + pathe: 2.0.3 + tinyexec: 1.2.3 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + obug@2.1.1: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + ofetch@2.0.0-alpha.3: {} + + ohash@2.0.11: {} + + on-change@6.0.2: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + + only@0.0.2: {} + + open@11.0.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-in-ssh: 1.0.0 + is-inside-container: 1.0.0 + powershell-utils: 0.1.0 + wsl-utils: 0.3.1 + + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.1.1 + + oxc-minify@0.131.0: + optionalDependencies: + '@oxc-minify/binding-android-arm-eabi': 0.131.0 + '@oxc-minify/binding-android-arm64': 0.131.0 + '@oxc-minify/binding-darwin-arm64': 0.131.0 + '@oxc-minify/binding-darwin-x64': 0.131.0 + '@oxc-minify/binding-freebsd-x64': 0.131.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.131.0 + '@oxc-minify/binding-linux-arm-musleabihf': 0.131.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.131.0 + '@oxc-minify/binding-linux-arm64-musl': 0.131.0 + '@oxc-minify/binding-linux-ppc64-gnu': 0.131.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.131.0 + '@oxc-minify/binding-linux-riscv64-musl': 0.131.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.131.0 + '@oxc-minify/binding-linux-x64-gnu': 0.131.0 + '@oxc-minify/binding-linux-x64-musl': 0.131.0 + '@oxc-minify/binding-openharmony-arm64': 0.131.0 + '@oxc-minify/binding-wasm32-wasi': 0.131.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.131.0 + '@oxc-minify/binding-win32-ia32-msvc': 0.131.0 + '@oxc-minify/binding-win32-x64-msvc': 0.131.0 + + oxc-parser@0.131.0: + dependencies: + '@oxc-project/types': 0.131.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.131.0 + '@oxc-parser/binding-android-arm64': 0.131.0 + '@oxc-parser/binding-darwin-arm64': 0.131.0 + '@oxc-parser/binding-darwin-x64': 0.131.0 + '@oxc-parser/binding-freebsd-x64': 0.131.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.131.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.131.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.131.0 + '@oxc-parser/binding-linux-arm64-musl': 0.131.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.131.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.131.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.131.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.131.0 + '@oxc-parser/binding-linux-x64-gnu': 0.131.0 + '@oxc-parser/binding-linux-x64-musl': 0.131.0 + '@oxc-parser/binding-openharmony-arm64': 0.131.0 + '@oxc-parser/binding-wasm32-wasi': 0.131.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.131.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.131.0 + '@oxc-parser/binding-win32-x64-msvc': 0.131.0 + + oxc-transform@0.131.0: + optionalDependencies: + '@oxc-transform/binding-android-arm-eabi': 0.131.0 + '@oxc-transform/binding-android-arm64': 0.131.0 + '@oxc-transform/binding-darwin-arm64': 0.131.0 + '@oxc-transform/binding-darwin-x64': 0.131.0 + '@oxc-transform/binding-freebsd-x64': 0.131.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.131.0 + '@oxc-transform/binding-linux-arm-musleabihf': 0.131.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.131.0 + '@oxc-transform/binding-linux-arm64-musl': 0.131.0 + '@oxc-transform/binding-linux-ppc64-gnu': 0.131.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.131.0 + '@oxc-transform/binding-linux-riscv64-musl': 0.131.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.131.0 + '@oxc-transform/binding-linux-x64-gnu': 0.131.0 + '@oxc-transform/binding-linux-x64-musl': 0.131.0 + '@oxc-transform/binding-openharmony-arm64': 0.131.0 + '@oxc-transform/binding-wasm32-wasi': 0.131.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.131.0 + '@oxc-transform/binding-win32-ia32-msvc': 0.131.0 + '@oxc-transform/binding-win32-x64-msvc': 0.131.0 + + oxc-walker@1.0.0(oxc-parser@0.131.0): + dependencies: + magic-regexp: 0.11.0 + optionalDependencies: + oxc-parser: 0.131.0 + + package-json-from-dist@1.0.1: {} + + pako@1.0.11: {} + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.3.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-path@7.1.0: + dependencies: + protocols: 2.0.2 + + parse-url@9.2.0: + dependencies: + '@types/parse-path': 7.1.0 + parse-path: 7.1.0 + + parse5@7.0.0: + dependencies: + entities: 4.3.0 + + parse5@8.0.1: + dependencies: + entities: 8.0.0 + + parseurl@1.3.3: {} + + path-browserify@1.0.1: {} + + path-expression-matcher@1.5.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.0 + minipass: 7.1.3 + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.1 + minipass: 7.1.3 + + path-to-regexp@6.2.1: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + perfect-debounce@2.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.4: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pirates@4.0.7: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + + pkg-types@2.3.1: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + + portfinder@1.0.38: + dependencies: + async: 3.2.6 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + possible-typed-array-names@1.1.0: {} + + postcss-calc@10.1.1(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.10(postcss@8.5.15): + dependencies: + '@colordx/core': 5.4.3 + browserslist: 4.28.2 + caniuse-api: 3.0.0 + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.12(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.8(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + + postcss-discard-duplicates@7.0.4(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + + postcss-discard-empty@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + + postcss-discard-overridden@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + + postcss-import@15.1.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.12 + + postcss-js@4.0.1(postcss@8.5.15): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.15 + + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.9.0): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 1.21.7 + postcss: 8.5.15 + yaml: 2.9.0 + + postcss-merge-longhand@7.0.7(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.11(postcss@8.5.15) + + postcss-merge-rules@7.0.11(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + + postcss-minify-font-values@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.5(postcss@8.5.15): + dependencies: + '@colordx/core': 5.4.3 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.9(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.1.2(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + caniuse-api: 3.0.0 + cssesc: 3.0.0 + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + + postcss-nested@6.2.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser: 6.1.2 + + postcss-nesting@13.0.1(postcss@8.5.15): + dependencies: + '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + + postcss-normalize-charset@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + + postcss-normalize-display-values@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.4(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.4(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.9(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.4(postcss@8.5.15): + dependencies: + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.9(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + caniuse-api: 3.0.0 + postcss: 8.5.15 + + postcss-reduce-transforms@7.0.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.1.3(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + svgo: 4.0.1 + + postcss-unique-selectors@7.0.7(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + powershell-utils@0.1.0: {} + + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.1.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.92.0 + pump: 3.0.4 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.0.0 + tunnel-agent: 0.6.0 + + pretty-bytes@7.1.0: {} + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + property-information@7.1.0: {} + + protocols@2.0.2: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quansync@0.2.11: {} + + queue-microtask@1.2.3: {} + + radix3@1.1.2: {} + + range-parser@1.2.1: {} + + rc9@3.0.1: + dependencies: + defu: 6.1.7 + destr: 2.0.5 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.0 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.2: + dependencies: + minimatch: 5.1.9 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.2 + + readdirp@4.1.2: {} + + readdirp@5.0.0: {} + + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + regexp-tree@0.1.27: {} + + rehype-external-links@3.0.0: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.3.1 + hast-util-is-element: 3.0.0 + is-absolute-url: 4.0.1 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.1.0 + + rehype-minify-whitespace@6.0.2: + dependencies: + '@types/hast': 3.0.4 + hast-util-minify-whitespace: 1.0.1 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-remark@10.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + hast-util-to-mdast: 10.1.2 + unified: 11.0.5 + vfile: 6.0.3 + + rehype-slug@6.0.0: + dependencies: + '@types/hast': 3.0.4 + github-slugger: 2.0.0 + hast-util-heading-rank: 3.0.0 + hast-util-to-string: 3.0.1 + unist-util-visit: 5.1.0 + + rehype-sort-attribute-values@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + unist-util-visit: 5.1.0 + + rehype-sort-attributes@5.0.1: + dependencies: + '@types/hast': 3.0.4 + unist-util-visit: 5.1.0 + + remark-emoji@5.0.2: + dependencies: + '@types/mdast': 4.0.4 + emoticon: 4.1.0 + mdast-util-find-and-replace: 3.0.2 + node-emoji: 2.2.0 + unified: 11.0.5 + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdc@3.11.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + flat: 6.0.1 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark: 4.0.2 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + parse-entities: 4.0.2 + scule: 1.3.0 + stringify-entities: 4.0.4 + unified: 11.0.5 + unist-util-visit: 5.1.0 + unist-util-visit-parents: 6.0.2 + yaml: 2.9.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.0.0 + unified: 11.0.5 + + replace-in-file@6.3.5: + dependencies: + chalk: 4.1.2 + glob: 7.2.0 + yargs: 17.7.2 + + require-directory@2.1.1: {} + + resolve-from@5.0.0: {} + + resolve-path@1.4.0: + dependencies: + http-errors: 1.6.3 + path-is-absolute: 1.0.1 + + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + retry@0.12.0: {} + + reusify@1.1.0: {} + + rollup-plugin-visualizer@7.0.1(rollup@4.60.4): + dependencies: + open: 11.0.0 + picomatch: 4.0.4 + source-map: 0.7.6 + yargs: 18.0.0 + optionalDependencies: + rollup: 4.60.4 + + rollup@4.60.4: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.4 + '@rollup/rollup-android-arm64': 4.60.4 + '@rollup/rollup-darwin-arm64': 4.60.4 + '@rollup/rollup-darwin-x64': 4.60.4 + '@rollup/rollup-freebsd-arm64': 4.60.4 + '@rollup/rollup-freebsd-x64': 4.60.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.4 + '@rollup/rollup-linux-arm-musleabihf': 4.60.4 + '@rollup/rollup-linux-arm64-gnu': 4.60.4 + '@rollup/rollup-linux-arm64-musl': 4.60.4 + '@rollup/rollup-linux-loong64-gnu': 4.60.4 + '@rollup/rollup-linux-loong64-musl': 4.60.4 + '@rollup/rollup-linux-ppc64-gnu': 4.60.4 + '@rollup/rollup-linux-ppc64-musl': 4.60.4 + '@rollup/rollup-linux-riscv64-gnu': 4.60.4 + '@rollup/rollup-linux-riscv64-musl': 4.60.4 + '@rollup/rollup-linux-s390x-gnu': 4.60.4 + '@rollup/rollup-linux-x64-gnu': 4.60.4 + '@rollup/rollup-linux-x64-musl': 4.60.4 + '@rollup/rollup-openbsd-x64': 4.60.4 + '@rollup/rollup-openharmony-arm64': 4.60.4 + '@rollup/rollup-win32-arm64-msvc': 4.60.4 + '@rollup/rollup-win32-ia32-msvc': 4.60.4 + '@rollup/rollup-win32-x64-gnu': 4.60.4 + '@rollup/rollup-win32-x64-msvc': 4.60.4 + fsevents: 2.3.3 + + rou3@0.8.1: {} + + run-applescript@7.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + sax@1.6.0: {} + + scule@1.3.0: {} + + semver@6.3.1: {} + + semver@7.8.1: {} + + send@1.2.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-javascript@7.0.5: {} + + seroval@1.5.4: {} + + serve-placeholder@2.0.2: + dependencies: + defu: 6.1.7 + + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.12: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.4: {} + + shiki@4.1.0: + dependencies: + '@shikijs/core': 4.1.0 + '@shikijs/engine-javascript': 4.1.0 + '@shikijs/engine-oniguruma': 4.1.0 + '@shikijs/langs': 4.1.0 + '@shikijs/themes': 4.1.0 + '@shikijs/types': 4.1.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-git@3.36.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + '@simple-git/args-pathspec': 1.0.3 + '@simple-git/argv-parser': 1.1.1 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + site-config-stack@4.0.8(vue@3.5.35(typescript@5.8.2)): + dependencies: + ufo: 1.6.4 + vue: 3.5.35(typescript@5.8.2) + + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + + slash@5.1.0: {} + + slugify@1.6.9: {} + + smob@1.6.2: {} + + socket.io-client@4.8.3: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + engine.io-client: 6.6.5 + socket.io-parser: 4.2.6 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.6: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + srvx@0.11.16: {} + + standard-as-callback@2.1.0: {} + + statuses@1.5.0: {} + + statuses@2.0.2: {} + + std-env@4.1.0: {} + + streamx@2.26.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + string-width@4.2.0: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.2.2 + + strip-final-newline@3.0.0: {} + + strip-json-comments@2.0.1: {} + + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + + strnum@2.3.0: {} + + structured-clone-es@2.0.0: {} + + stylehacks@7.0.11(postcss@8.5.15): + dependencies: + browserslist: 4.28.2 + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + commander: 4.0.0 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.16 + ts-interface-checker: 0.1.13 + + supports-color@10.2.2: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svgo@4.0.1: + dependencies: + commander: 11.1.0 + css-select: 5.1.0 + css-tree: 3.2.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.6.0 + + tagged-tag@1.0.0: {} + + tailwind-config-viewer@2.0.4(tailwindcss@3.4.19(yaml@2.9.0)): + dependencies: + '@koa/router': 12.0.1 + commander: 6.0.0 + fs-extra: 9.0.1 + koa: 2.16.4 + koa-static: 5.0.0 + open: 7.4.2 + portfinder: 1.0.38 + replace-in-file: 6.3.5 + tailwindcss: 3.4.19(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + + tailwindcss@3.4.19(yaml@2.9.0): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.15 + postcss-import: 15.1.0(postcss@8.5.15) + postcss-js: 4.0.1(postcss@8.5.15) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.9.0) + postcss-nested: 6.2.0(postcss@8.5.15) + postcss-selector-parser: 6.1.2 + resolve: 1.22.12 + sucrase: 3.35.1 + transitivePeerDependencies: + - tsx + - yaml + + tapable@2.3.3: {} + + tar-fs@2.0.0: + dependencies: + chownr: 1.1.4 + mkdirp: 0.5.6 + pump: 3.0.4 + tar-stream: 2.0.0 + + tar-stream@2.0.0: + dependencies: + bl: 2.2.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar-stream@3.2.0: + dependencies: + b4a: 1.8.1 + bare-fs: 4.7.1 + fast-fifo: 1.3.2 + streamx: 2.26.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + tar@7.5.15: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + + teex@1.0.1: + dependencies: + streamx: 2.26.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + terser@5.48.0: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.16.0 + commander: 2.20.0 + source-map-support: 0.5.21 + + text-decoder@1.2.7: + dependencies: + b4a: 1.8.1 + transitivePeerDependencies: + - react-native-b4a + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tiny-invariant@1.3.3: {} + + tinyclip@0.1.13: {} + + tinyexec@1.2.3: {} + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + totalist@3.0.1: {} + + tr46@0.0.3: {} + + trim-lines@3.0.1: {} + + trim-trailing-lines@2.1.0: {} + + trough@2.2.0: {} + + ts-interface-checker@0.1.13: {} + + tslib@2.8.1: + optional: true + + tsscmp@1.0.6: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + type-fest@5.6.0: + dependencies: + tagged-tag: 1.0.0 + + type-is@1.6.16: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + type-level-regexp@0.1.17: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typescript@5.8.2: {} + + typescript@5.9.3: {} + + ufo@1.6.4: {} + + ultrahtml@1.6.0: {} + + uncrypto@0.1.3: {} + + unctx@2.5.0: + dependencies: + acorn: 8.16.0 + estree-walker: 3.0.3 + magic-string: 0.30.21 + unplugin: 2.3.11 + + unenv@2.0.0-rc.24: + dependencies: + pathe: 2.0.3 + + unhead@2.1.15: + dependencies: + hookable: 6.1.1 + + unicode-emoji-modifier-base@1.0.0: {} + + unicorn-magic@0.3.0: {} + + unicorn-magic@0.4.0: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unimport@6.3.0(oxc-parser@0.131.0): + dependencies: + acorn: 8.16.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + pathe: 2.0.3 + picomatch: 4.0.4 + pkg-types: 2.3.1 + scule: 1.3.0 + strip-literal: 3.1.0 + tinyglobby: 0.2.16 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + optionalDependencies: + oxc-parser: 0.131.0 + + unist-builder@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + universalify@1.0.0: {} + + universalify@2.0.1: {} + + unplugin-utils@0.3.1: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.4 + + unplugin-vue-router@0.19.2(@vue/compiler-sfc@3.5.35)(vue-router@4.6.4(vue@3.5.35(typescript@5.8.2)))(vue@3.5.35(typescript@5.8.2)): + dependencies: + '@babel/generator': 7.29.7 + '@vue-macros/common': 3.1.2(vue@3.5.35(typescript@5.8.2)) + '@vue/compiler-sfc': 3.5.35 + '@vue/language-core': 3.3.2 + ast-walker-scope: 0.8.3 + chokidar: 5.0.0 + json5: 2.2.3 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + muggle-string: 0.4.1 + pathe: 2.0.3 + picomatch: 4.0.4 + scule: 1.3.0 + tinyglobby: 0.2.16 + unplugin: 2.3.11 + unplugin-utils: 0.3.1 + yaml: 2.9.0 + optionalDependencies: + vue-router: 4.6.4(vue@3.5.35(typescript@5.8.2)) + transitivePeerDependencies: + - vue + + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.16.0 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + + unplugin@3.0.0: + dependencies: + '@jridgewell/remapping': 2.3.5 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + + unstorage@1.17.5(db0@0.3.4(better-sqlite3@12.10.0))(ioredis@5.11.0): + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.11 + lru-cache: 11.5.1 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.4 + optionalDependencies: + db0: 0.3.4(better-sqlite3@12.10.0) + ioredis: 5.11.0 + + untun@0.1.3: + dependencies: + citty: 0.1.5 + consola: 3.4.2 + pathe: 1.1.2 + + untyped@2.0.0: + dependencies: + citty: 0.1.6 + defu: 6.1.7 + jiti: 2.7.0 + knitwork: 1.3.0 + scule: 1.3.0 + + unwasm@0.5.3: + dependencies: + exsolve: 1.0.8 + knitwork: 1.3.0 + magic-string: 0.30.21 + mlly: 1.8.2 + pathe: 2.0.3 + pkg-types: 2.3.1 + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uqr@0.1.3: {} + + util-deprecate@1.0.2: {} + + vary@1.1.2: {} + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vite-dev-rpc@2.0.0(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + birpc: 4.0.0 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + + vite-hot-client@2.2.0(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + + vite-node@5.3.0(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0): + dependencies: + cac: 6.7.14 + es-module-lexer: 2.1.0 + obug: 2.1.1 + pathe: 2.0.3 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + + vite-plugin-checker@0.13.0(typescript@5.8.2)(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + '@babel/code-frame': 7.29.7 + chokidar: 4.0.3 + npm-run-path: 6.0.0 + picocolors: 1.1.1 + picomatch: 4.0.4 + proper-lockfile: 4.1.2 + tiny-invariant: 1.3.3 + tinyglobby: 0.2.16 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vscode-uri: 3.1.0 + optionalDependencies: + typescript: 5.8.2 + + vite-plugin-inspect@11.4.1(@nuxt/kit@4.4.6(magicast@0.5.3))(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + ansis: 4.3.0 + error-stack-parser-es: 1.0.5 + obug: 2.1.1 + ohash: 2.0.11 + open: 11.0.0 + perfect-debounce: 2.1.0 + sirv: 3.0.2 + unplugin-utils: 0.3.1 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + optionalDependencies: + '@nuxt/kit': 4.4.6(magicast@0.5.3) + + vite-plugin-vue-tracer@1.4.0(vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@5.8.2)): + dependencies: + estree-walker: 3.0.3 + exsolve: 1.0.8 + magic-string: 0.30.21 + pathe: 2.0.3 + source-map-js: 1.2.1 + vite: 7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + vue: 3.5.35(typescript@5.8.2) + + vite@7.3.3(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.15 + rollup: 4.60.4 + tinyglobby: 0.2.16 + optionalDependencies: + fsevents: 2.3.3 + jiti: 2.7.0 + terser: 5.48.0 + yaml: 2.9.0 + + vscode-uri@3.1.0: {} + + vue-bundle-renderer@2.2.0: + dependencies: + ufo: 1.6.4 + + vue-component-meta@3.3.2(typescript@5.9.3): + dependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.3.2 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.9.3 + + vue-devtools-stub@0.1.0: {} + + vue-router@4.6.4(vue@3.5.35(typescript@5.8.2)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.35(typescript@5.8.2) + + vue@3.5.35(typescript@5.8.2): + dependencies: + '@vue/compiler-dom': 3.5.35 + '@vue/compiler-sfc': 3.5.35 + '@vue/runtime-dom': 3.5.35 + '@vue/server-renderer': 3.5.35(vue@3.5.35(typescript@5.8.2)) + '@vue/shared': 3.5.35 + optionalDependencies: + typescript: 5.8.2 + + web-namespaces@2.0.1: {} + + webidl-conversions@3.0.0: {} + + webpack-virtual-modules@0.6.2: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.0 + + which-typed-array@1.1.21: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.1: + dependencies: + isexe: 2.0.0 + + which@6.0.1: + dependencies: + isexe: 4.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.2.0 + + wrappy@1.0.2: {} + + ws@8.20.1: {} + + ws@8.21.0: {} + + wsl-utils@0.3.1: + dependencies: + is-wsl: 3.1.1 + powershell-utils: 0.1.0 + + xml-js@1.6.11: + dependencies: + sax: 1.6.0 + + xml-naming@0.1.0: {} + + xmlhttprequest-ssl@2.1.2: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@5.0.0: {} + + yaml@2.9.0: {} + + yargs-parser@21.1.1: {} + + yargs-parser@22.0.0: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + + ylru@1.4.0: {} + + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.3 + error-stack-parser-es: 1.0.5 + + youch@4.1.1: + dependencies: + '@poppinss/colors': 4.1.6 + '@poppinss/dumper': 0.7.0 + '@speed-highlight/core': 1.2.15 + cookie-es: 3.1.1 + youch-core: 0.3.3 + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod@3.25.76: {} + + zwitch@2.0.4: {} diff --git a/public/sponsors/qrcode/alipay.svg b/public/sponsors/qrcode/alipay.svg new file mode 100644 index 0000000..fbeb73c --- /dev/null +++ b/public/sponsors/qrcode/alipay.svg @@ -0,0 +1,867 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/sponsors/qrcode/wechat.png b/public/sponsors/qrcode/wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..2062822308838c2fab41c4f0a6baf437cf30c96d GIT binary patch literal 72771 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

LMOE2GBkZ@UwI ztKEYN?DwvPJ@PZXGxW|u%{L`HVZP_7OefvKoF!)1r_+c2cU|V|>u(w?r>=Nf=Dd^Z zOC^`esz|!`N=4^#42ROB{CE8?wJ)_Cf5j{Qq!NG7o30V@whx=-YUloLmVX4%(!fTA z>{eh|wMkawosW9Fr~R`Bl73*>NN%pEFB z^FH0#99OcL4CE-0v+gpR^QN$e;CEWoW<^eCnbUjkjz3;k&h`O9x?g>^JNx%|YanZ% zSxBI(`6Q3lA+}L;8LLy z)McK|Sz;a62kxz})f?`?31G{>z_ZwX%L?&1Ljk`85UX85R|mORX;$Icnt4kNL*&iG zRqLVG_w$W-)>=G6)TR4lb>7EKuY4pe{Kg($cVm&C%{%Gc@M0SOOdgdbhYi;Ch~#eC ziz3pd*`JyE@b!A0vInW{=P`XPu;Tha)=*sV2A8EhpD#$ZIaTxgfXwwB2UWK=@$=P~ zcR7a^`Lc05Wv}kX-Ef_=>m#PIe20O2ty!aqcAwY;qq(=E^}SS=-jynjd48c-0$s1f zhz}pQZ<3LIdrK_e?OAVCJx(F7MCV(lCX`SmM}GGyC;hu$rM8tO6@flkcHOxfxuKqM(sB>!OUKd5+H7G0k5tVekIB-Mdt8HtD#e4XMuM9+Mez4dA~;vYbLMR zoQKyPz1jkFvJ3Z)J57r99By1HF>Ma8c$TVVQTg}nVgh9^%lQv#4@36$L?gdQ2WH{y z-Eo!Wk=p7N_S%-Vvu-%;Dta+bE7;}I4e@3+T)pW%Ua9a6axKF;uZ)r9i~F-EMY z#%J$B>4!Oy|6$GS>gD_1hfx#XZTgqXr+Tb4y)4h0PX0@-nm^ob-S2 z=`}MRk#ByQeZ;0+dE$)ZJbJyM)6ZDxgi}d2Lc1Za(@QC8d?PRXS6IGsX zQ75#ER25IWcY};C%Oa*XG>zygT`%=*X}qg9ht!KCtL>gF4Gs7CMEl&JuoiZ^Ag(4j z?|9R6(oXSfsus`0U+IwW-9ugj^luyCgx@YIp`utLrC#ciD~W}OIr^J2;&9KN;p z5;J<6w=j6vN8wsx-&*8rN?!~O8=+If&XqXXU2gfamhZb20DJ1YWpjpPoyHB{QHVFMf2Mj^+;7cN*FPUzH>UV2{Pp}{cggfxWlU81mXr+1lZI8o zOiHVX0%94Nn_mpbdjj6zx|VSEe5m8G!y6{%W!BYkEQsnAub6fWyjAd897lWNdC+LfMGCLa$r9oiNv*FX1La{RQ*V8o(BZ!1l1f3P!i4_h)|*(~4*g{bFHOVfy`IYn+HD`J`v2bePTSd= zsIc@Ldu4=JnPpw=m2AsYd_qOO;yt(g_IKoU3=>{uR|Bv$rSOeI$wRe17i2vNEKd!3 z&J>5%J@>Z5tfNFk`(@7DS#cqC@ei%Cxsny1`xMsvsYb4DW%h2LQ4O*a?Tj6nZjN0X zMpnhC2GUc~U9nBk>Ep8VYMW^V!@O6$CYg+@Z`O}=yZqYNc-fvSUsZn%Gt8iAJIc#} zZ`uD#%jne&4$oI(UN)QKXZEGdUroWg21aU^NRi$bNm7H2f}Ga>1NXPD@Ql z1`P|D7dFMtad%Vq$9T%VgB9PDVLRbgZ|b-ziaLR7dWW7fO@_-n4qq=84u<{An7fuQ z9QsZ1hnhjB!RmWli=qeAp;{;6L;40?dFz%u8WX4Q^m3h}Ee!K_nI0Glwdyq9ZybJD zw>32ule=ENI2XLh5Xp9n++sz)cxvjU7W;b&T`>s>&d1GS;*gk8;MO(N8Kh8BBA~Ej zlqM|@(Nc?!W(W@!emwAYVo>R&!QHDapU0hdd&jL*nvf!B`=25J=d>nwb06J@!^d?` z?T6fCg8M?W0eKNI+goGV`c``)qUyA}Rz!qM&vai}bZ_1BfNMY;0jeU}9F0vp?mMYo>Xo97;C zdlu`sy2@pC4U#C|sO|NCSIqF+qWcqJOou!^lQCE5E!0wIZac|$1y@lsGkU!rb~7_W zt{y|&jLfTd=Shnao7QXHZB>8JJPkGSvO!@t?zUbqYI1+dmV!_{UOrqm*ccc2O`H6b zaJPQ`l$dvnpjkKI!#{7|W&dC<^jlpkNs-kWHQDXo^|!Kb@#|mHC|sut|2aK1C`iMj z`1ZT<+vr!f-;xDCdTz_=dGEz@o=DMl^~0x| z+hae)UtfK?RAbljGHHx8lsu};UOefW7mnLN+=1Ael3d`qI|7PAH0Hf8?`QW-IUT&A zT@pzhD_-zO8W~=D;cLf4m|+?c)lsAuTXo4!=;p>YPSNnK;>2mkM-`K0l2clmdPSo7 zYFX#nD+KHnLw9!xLx)IrcZYO1AYJbs&pGe=eb>cY{F+#Mt-bbo z?&l7**JhH)p#-%eg+2;U1^kyWW&>=dGW~*1>R2X~)0envogVI}E2o>|LT&Em>e8Dt zkJCfE83bVLoTw$kGU&b$ct=EyHq+Stvc;%OwV3s2TCDT=5FQ*N#n2g0=lZxzAK{`+4LX9>4Vv6SCazC;DWey$8luP^Ss3$3gmi<~!xM|EF zGVM+nxwwd!`ItCyjqMxn;(G&3%xc;q>=a?fe6fM#v2H`oXyVCy)TdF5p`XB7GW1B! zRYAM^R{b(E-~VT@M z_!PDirR{i{0)LU$cA!}~n?$n7HoWPnY^+(ick5%(Gu#=Ig2#?p+TqNx9CG5hpR3-p z1(!dbaHiqw{$N$tY%KO~>-*31pIG19+ndtyQBCutyswU-a49$_E{}L>5!cenBuV-= zhCk>@>ybJGS@k%ro0G9*1VuqPsE{~*znsrx%Ax|jF6P8y7tJ&8;Mu124tic=c0P1s zO4@PAeOP@a6AXzX-1dqE98#>sf+8NX@vq$m|p;u4K%xIIuRnoh7#PL31 z1;`a0%U=*Xo=3P%;TG=eM6q%b<>1z!2usTW9P>cZc&87!FFJ?PXC|zpm>LhOwzMKt zqt|c*CKQjj?CzZH-Q6c6cJzCSg8!CHOP3|5YB@FQmFAZvQ3!n!BR1%Do6arS((MB` zrt;UyNZW9z>FSr897|L_fgL%xNf;CHLlmr>#~+KXxL?1h8kz2;vzj`dt(=nht=+Fg5Zv{|j z-d{%ECTW`Z@*SZE+Q_Y`2Bftf@cT=ReZ;1B5XcEs8BM^DwpV&?fCo=GehMSx*&Io= z>B{x>b^4@1^2~E}{E~uxCs|jTb6K<8fx7Bbd5WyNBpU}xau{&;hgQ$Kl+&*<=MvbR z?q*=~8OViGN6W(B=cIX7eO~qy6feF_ZhjhEw=)kY@O#I_XjFu5;H$o=Q8EMJptzo` z*($=G!`5SZ6fCvT*3|FVyLuf<);!0)L{=p%l+JV#;m^3Ul6olucrGdeQY9t7F7EQ@ z$1IODZ{O;F@!aQ+BtZH=uKvnX3Cdc;&N^lGIrHh- z_AS4P?dis?$+K0RB@;Kc8pLVkVR581`M-sZd+H>UaTg0h6QE3>8b2-Nm(;bhOq8%Z z8MgUL#zK$Lthh>4HClxM<3)D0al)^Z+JBm3?DaKRVoOdc6-;QKnvd?Wmbuxb`eDT!Mr4Yw2#BQtfzyaS$GWfaFPr51!PRZuf!B+_I z_Lvj_?;Sh04+2&m-W%`3u!QcS&)tR*hh3i3;Sc~*{E7hj8r;tJLsqeQQ(pq=Od3GQ zs1IOzyTpJf8KAE$t9YNRtWW~*5hk_&JhfYWgA1Gn;f&C{eB2gD_qoL-MiC(7{Ppx+ z9ih(e0wnakso&aMHx90q5e$O6q0u``Q2yiQsOR1U{mj8R#d19sh2gFT(dh65(*~QJ zPi(9ylRB2e&}MMak7Ja=BpR`2p21}zl2iqlgZ}a1!B5@7z!EsA5_1n9l(P@`MZ&G# zRx8;DV($ie2__c5?EBN&oA#skRMpR^xijiO|BsD{Hx;%uC8gc{%}ZaCK>gQ+L+?#i zPoQ;R^Il~+(UZ-~BPY@R6^xbcUDxbsRI9?;TAY?RyU(0v9HyL-+z_p>UP1W+TKhBH zNvY*o51j1O9k0CJakJ!A^F6AXonZhpEN_#7B@Sn@D(a`y^>=*?T#Gr9qD zvU9zc`C$IACv;!vtZL}Y-vZd#+$BDqe!g0mZR=TIUk5PT^L@34PVXzMyW^9Gr42||1H3SN=!P^5!+L9k{K0mSmt{)ekYOlQjxoQl;C0G}* zi)l;mG^ts~dRW7{Dqp=}6}^r2Uko{nzR}fFQNC6u<2J38>&scH5L`^=Ol* z#eBJZr&N1vn+V1lDVm*vx*!FhsAXBw;Yi3KOMv}pGr{19azPH4c(!{dEJpOmv4vEL;ICfns zYx4()C4J9`-ZBSHr_QBjK-*^=UzYrQ=#1?r?5`^wP|(NLqsnJf=wNro+xI*u4cr1xiA{I$hJ_J45b=`DgaIT^dLm&_|?K3QgO4>T+)hw!}>`!U$5 zc{wB!&ilB%x~1WLu5rDzBY0^j|1L;>4Zs1{0hRJTMLWvfYZ=hpb><_u{W`V1AK=C- z+%@k>KGmquUH|u{-=80hfquxzqANmGb2sztp78O&`@RzItPrrofL}g7tnL6ZZ2-Fk z=xJ$J)!rn6KUQs4@3wibzdatcrzgz`z`OA7j@s|*uYs>|1=gzbhCPDZcCtrwIX;d9 z(215psIdNwiDIQ+@yX4tt|9>G)tW?mTRp->lOc0?RZ;+;#^WgnoeGTA~zb1BZ4^s;zdgTR-b9J3$j$ z-JAZ9H!uq2aZv1!#)?IuQk2pl^_SpCG~qP4-pEU=O8CveH-Og&(8mEZJ^^4e)c`_Y z^1X$N*Nfcy?qV0$InY$A(xkcTW9qr>UkzKGkfhPeT0Ry(JZ{+9v`AT1%S}ib z&~|UYm5x6+=cKb%TW(VwEN9{SPO4&cJJZj~&`*n1Olu$^T65!$W0x!=nN&>EbB9aV z@yuJyst@~8rBq@v<`3yMXWPSg-dGQ3-VdXScbf0LgdSU0Z(H&3ma(4!T;jth&pD6q z7(lWe{P`;2^BMrz2#m8kHB%tGcD%2Gy!!z5|0%FWsJ!oNGhDZmZ#kr!2qYyX@A@LjVY=TC3Y_&PciCA)QU2wbtZevTm8z zIRcid)Z+N&*U%WJ5S2oWA`*iMsIQ?2W=%Fac00#&#gbX&SGY>&pLGeoW%M_? zpuTTgOo9kI<{jkhNTZ*5 z!ES4A;R>W3>DTH4?*$S$;s&(~KW`~0$=X6b!EOFRCCnZvM6$wUR&_T;slI;u zDkDZ~nu-l%)~SMv?gE1gz1|Y4$O!gnsr(@earW8EK!UH4PJk>e)nik!t%En?_C;mO z10MD@-;%{ai7qc3F(s2?-W; zE%R`(h&}q-%wSWidPlitBwzk@d**QPt@cNl39d!&tgnxE^G54K~|m7zeRzhiHbN*Scff}Z0(wf zN-M0XB1QOQ4SPI0>=7fP>0F3l&^y%Cv!vcH>6ixlr36^Wr{lHw{=h&w--HYi5~pn)BjG0F&|di%)_*bk)l~@@cLO= z*$Qwn;V(a3UDUho967&laGfm05pS^Fd@)jDlvH@_GfpZ2%nt=PvV;X;NHwICI z$2AAwt!di&i8q!g_^HTLV=+^abGVKQ51L3cYC7Iv2-gIvNqCGV4Ly+%=a0p9tr|7F!ycHHAVQ)+1*P(<5wb4MO zOt?hx-<7g)vyL;16}cTM5@U$0A_gc3n#i=y1@va0Z^MP}KMu@Cuvi2mPleMEs62Ok zE-THiniD5$>s`Ch0+uq%U9%-8>9u8OoEf1-mR>cumb{H<*$+m{(kHj!0lOi#sGadn<|wNjb75_W-fZHZ>;?8QrVy2ahS zJ*t-TQRAW`qJR1Nb#=1bvK3mSUKfTcwfHUJ&h5U)6B#5#_j>a(7}+_R40Rw$0+6i= zWIV1urV8E9)Hk>tdG@49fw?z*Ytt2ieL&0p!h*Gn4WfgmY+iAZhM|VfhwL$BJ@K$cl2B58WRnt9 z8}_keDuo@r=!(sPfFrOtR;(X@q>mO*Tk5ojJ|4Q=Orv-A5!>$0tqO_m@- z6#{M;uddKdxSjJ7wSSgeI?W!ki*AhUWc|XXg@GLM37G?EkmEPTrPY;-Xh!+$(pZzp?I$AvVr5jW$}%uxWEh>v%BO(vq>uyl-e(OsqRUTjS<15xTUZF zma9)q^&bk^uYClS;Gd;WvK#lP_PtQUe;Mi@OjN^y3zd>Qa!#;mT2e0>{2!`@*pGEP-J%<^;_x)5Q^2S{z4}jQ34<^Jr=P3v;EqREo-$ zJC3(rx5z8)Hd?e$qK+JqF>)w z?Z9$r9L8CA6pNepx&0f}P|x8l7Uv>Cs!YbbI}s!N>HkLk>>q}TTptjnUT@!KMD$E= z7j-|cIxIUPa*}+DN;RYeDd6K`9OhHCWX`jp{j@?fm6qsKAB%FjSiGtf)5}^7ffoh@ zB1KzEQ==*DcwcA|v(TC2Axi?322X75=I<2hp~Xl;9r-kX@MLn ziH%lNbP|BdKJCo_i)@>!7^vGJeQ3^$x5cBc7CE?<0VKD20sz zlX)1gwrDh%uk4{SgVqhAtutErL;2BRJFXR*DQpr=BYj$9V?Gy9=5o=c#W1e-(v|AM zwT_u5#40`eec4tEL1+T%g0ejfxl{kYrEj>9S|&p9fqc1`I*UuxiOfeaMs)SD7fYpB zZM#YAC_s}1?2g^|(O%4*E^0^pMpK6&UP(j+OzZhJFYnMv=jR!n=M$>POtOxy-rvGQ zjK7{hLLg`ce}##gzHbO@C_m?RVcSXi!N1d>SYx##MAe9U4l-&s2THub%pY14A8`zPZ1r za_;ot8u4b zal&FIPa=VZqANEMWK~)Q9+c&`|Bw`e|8xpib3`yF_6a?Sl);3x4hz|7G~rJQwj?=A z;x`4Yx+J@D63!jJm2NGTvZM`) zFe+_dfJEpGkXzLOe=Bip62StbQO!dy#hDdy=#}JAjoe6yMx^xx>58@S1wm!!=#+84BFhCiy1*kIhjO2!H;}HM> zb`C-`KoRGD-!VnU$jO`h!DK7Lu@-%l=>6D&teU31`vryQqBxpuF%|X`%F5)leGhlD zE^cPA@?pBX6)&?HgwLtbz>dTp9^9QUY0IAiBD-43@=KU>q zd{}%BA^lx3Z5VB4L{@5F=-M9u9bD@F^lkkp$5#PI0;W`2$t0&Nv!ETu5J3VzN73Lp zVCAoznbP#O)`-;7_CTCZXx<>5p=6a{cK-2fZF3F-%HHZ_>qghJZAlL&=b$uBz~TZR z2{ig$TgO073FF=8ItRe^E-o$`2h`N3q=Gs`kE^|6s#O$$3yDA)}s(7XUWS?KM~8h2~H*sF3qqO zPy#TDxuvOSyPkHt=^FlF_i?@W^O>wz&PF%Fb056cH^Ns~1$xp8zZn97CCM&Mf zHiUB|*!|)#1Z@K_(n471cl|>zp8o|Le@}yeY8C+MI!251aVNGSivEjiXP#O z24rCzcU2mH`xd3>xv!$zXxHst?=4m2Dk-ny{hW|`DW^f0%oc;Qe~RbSO2t6tR*81w zHo^MTd^=-LIUizSIh@P_^4x*+CmGvu$gISwn8iry6K?tMHTbagu~K0!?{4;_he|Vu z(TepsN)C{TaBCM0u?K;?B~^?i{}_APwC zjk}8U1!Jm-e-UT$2+YM0%U9ZL$acZZiY{(p=2Z*s?R zLW|K)(Y}IUPUdnHBSI92FeU*q#l|N3I)YP#UW z>4F{B^0mpAYy_6*v?al=qb``CV$_7)zIY_wPmn;hXqO*)@|BstEx^Z5S{~=|r#JD6 zH0^zIDKY7UQOC&w!^LJ<=%0%PddbhGzi^}SbdGuNpbD>syTN{qWaJ<42jo;Mv=&`2SNtUMO)_QhZSZVY<);9Aw6TpKRN?9q3*(5UEyA1 z(D!`+K-%z4mkq<8Q6p^gyzSS+?rwLVZ!NteKHqhJZYfl3aeg*P%WXy0=n$*9lm5Z^ zYiG5uR^i|xv|C#KuaaXHD#H=+KAk;H*}?^~p9R@CX-@eMWrw;~^85h{zg8F%&uzC& z%p<>24K`=eV{2dJy`aC4nMH0AjINPgM@v~lwa-%fyxrOK(Loc_vfEqLF7^pO|Yem(KhA5ik8yZ8be zr{fUJ`@D6)1##=!eR(^=Q14_B43KnB0kh@P^Gfe@zztxv{*1Uc=J8tSaYuk+GpKr^ z9??Q4Tq3j}fE|YBgCNM`1rF@pMDkZ&YCYIP=;sN`VnbFlIlij7TOj-KGj=re2nTgg zFrA1)4uGBvWVJ08%TL??axFu0SB>VgMJGVB!cxwHhFfe+?Qy#o&URVGV21@YI6sZ( zh*HxtPuHD-feNURd|$|b{(35Y9oS-3TlbN?RGmOPvehhTyvvX4~i;!d&M+8HtKrUD&#)Jk3$oYkMbe4aSS)r7wvupha*+o~_=1MWa z?XCM?&)1Ak`3!9AKup3=gLn(H1*YaHnf~}RJo6=GOJRbO8x!?{~sy@FpmRUG>JNLABN{Kizu93FnT4h zpOzt~a+3M{`F_q35Xz~+^}_$P&zQu#FmfIwZ$x2VTI|fWe3k^a>+)4T1O~DN(gZ^8 zQ|3-w9iokxbeJT{L-flJGqpJX#{4M#5)(X;j4c|JeR!IXR*y9308s{QX;-!6Zof=d zzXE?j7}RefbuNUi83@Tgs&X?iVeOU|iuiJ~<16tgwamgw=v@SDg1vpgZ2qt*;s_Y= z-y)<`SNLMj%!#aIXj&khNqLq;|yD_LGR0tGZKFY@7mQ&Rbbri zve7`B*Z>L6DuNTmS)yIEA7@2^@8+ZMx*~+{%U59znJ%CS{nqZ`7s*J*N@tzUX$1`^ zn`a`ZLrrlBHIL5MP0whAfR>$OLRkvGgezCB9J-Nf{?g~{);k`I@f$YKF!DEL`H z`KQ=@L)+Asf4v0Y`_gBP+EPY{e3XFj;DDauFW(3erd3)j_5=DUuF%rY# zk!pEY(sDir+8mAe7PQG>2$q{~b2oz1qiLffm#4(eyCGK(``XjU6T7!Mk>X}lAtz>G z&!D41W+fO|r%pvBN7fPkMdY2vUj{T)TW?1sUms{e0-7;=F z(+IDI(CYe?&4K4c*MDMAP=7O{P#yMd7L-5Vk}$(l#)UChz-?_QInCX>8o&liUyB;C zcWm9dLs7C&_TJa5+F!^SP1Co3;^X1H-1?4X?P3w}A)mB+D4mz)OHq+T!~Z-KZ7(@X|1s4Fay|)EtX@#^u;0>k%(gY>zPOM z)rl7N;zmCpd5|)uNvJQ%JbE%oSx}m?K}EhW+xpCv4+Y0UFXdk?^MA3{Vy`j# zx6{4LHI^;(+{{BEeDZLMmdfRyQ1=xY|D`g6tF|22txk9E@`4AWdJ($lG6m|F6StxHy}U3P z$Ekv}0mH}Pa+9=VYnhtw^-D}XItIBPp7Vij+&u;1U zs~%CQyu9It)cJD#0qjIh%`yr~VbQY2a>-UQ3U5@X<3$Dn(lB78&9VLYcJK-MjGIGK zmp?uzN*^vvL!DA)o(%1`Fg&pubZF|?ejFi?A@ftr_|_@iI&L>s*c#B^$LXCMx%?nk zKP)zhR-j;sbws`s7U~0Hu8#P#yx0D3sA2ydDiaSl#;4%DjCm;CCt+F|{A4HQ^t@U* z8xdN8;i!!+si;dfd00fB&bNjsp6wUYzGlL7{Nutn$wo@vuUKAmROuGy>hp`%%j`P$ zmE?31j(=p8ggW4XXkC|VH~kJ;E(TIPPWZps*a*b@;9#IO7TxWmuUd@QYO$4c0v$q3 zn#tznkvNHZARcN@sDI1MIv<{78nk|5x5f)XdFSA(^-)yJZ=zc&eM*$OOOK~b!$O6M zzepk!*+PYr(U)Y%WCHB17Y=6b2j>kNo=TGlP{t^3Q>I4Q9_+RV@K=AfT4c zXIo%;4&Ys_ZHD}J+*K0q3a?8QV19Db;ewwXPe!LiSDrOTJrBc9BJEy_Ir!YFmnw_f!<6{ggD?M&^hF4?eZ@+lsg5#i_?#BNyvvm9w%!N=P3#XR zt>+AhBk4I|D<5mME5Xj|Z+1r0jlCba*h2>^xLwJW<-efG2&>_^b@6pgS<;jFsFtew zD@=#f1rmy#h^hGUJlnSwEf@|ouCN`MhE7%#tl#fW5(&pEK;L7woUOQfT=K7OB3f3D z_m7cYE~{pUT`Q#PzfYto11Lmbu^OH4=u7A_gk&#ov}@B&Y#A;fZ_Ic;EcvUg9UL)X zrM~&$Yin|H_LP=6-q+*F3^y##)|%x=Zu+s_^C?0isFNlK9cg~JW`9;p3W1EzGjq$Y zQ7!WYs#4SG+aMyy$WN)_;`_x-w-$3#?T{%Ge>=hq+28xqmO!&DF0t*5xpa(rTkIQ* z_s>ti#OtX-!TwF5b5yJkHW{3S8eP~RV+?v6I==`gro><|T?3BUNcLBa*7yDDRy=>T z7tbfu2eqOk*CL{6x7j6JoC=F@k!8-6T_!)W`*fxTwcNF8xWE^^N2V_;IF1RC0gmzi zgP;2HV{4qPO5fXpkDmk;RgAcPQsNAn(h27u>x; z4v74Wvi*HZ;zsd~!vq;wMtX|$9lYMOS-c~S{3gT49G`>q8MRoEgmehDh~=x(V|#Of z2?U)3kaG>& zx?KX*Tjvl!VyDS?XKz(AzjRiiR33liG>9nn9_QU_s0NQ~mLAX2XBOON0j(z-YG~?U zaQIOHmn;$*=7)M6B0YqPMs1C~Warm~?2W=Jg(+g=gZ&I?J@6y8%xm9|X&rObo7qQB zSkv5x`sF8A%`WYh8sNgGmlY%CK{b@6y32Yn^>X0DR}=+KZa*l>nCIHRNt7*^1T8Ku z7PduBs@8TBYn7|NA;f68BumddxmB6%(y}yPyikpLX^1)aI~K4q83!i}(&yuw)XWzj zCpP;4?#XaNj7Tc7uZz}otlY97{x?=ZKH2HFJ=H=Qcu-IZH5-7nhw1C*|mYRgO zYQ>Rfo7Fcdn(DGL{W&5Qk+-$QaPbm+2YmtDSsCd|)AN!(X+zuhHR7Qu*dL^kMHI?>drhg`KnxJ5b~nr|nGRE+=9u1XFf}~2^cTrX zF_tY2(7Wh_(Bt#x6)W%8hEwYs8rw(ls63#L@G<&=3i_TWXj}=7#7$$9o0x+ZyV4QRc)O@T9hu_YT$r zMD);Wk4X0I_J^&-FO9k~D0c!3ee4nYuW*j|A_#=z0khInvABDco=yRX&j6UfTXB+$ zEFBR=w+`Sv0tEfKZwL{nP7YLLv5qX=5T*?ukMe?E0?ArrK=ki};ODyyB0!|JcolSw zXdVJN-fMu>&C*o|5LPs52XNU+P>unX*-uHqQ=EdyJ&E3WtHF_xR|pJ>M^JM0G7oyS z#VFJWH~ec2*xRjBAzVaxy{dtP4Foi#@9caT`7Ns7=+~v!$>opc=G)I+)&t2<$KF+f z|8W6WvP-uri!3gb(FJNdRG)>$e)&_DXIsd`ezqkt>;q-|r7Nv3fj`(`^{J+N92q*0 z^aec}(iE$!w&;uBBo!VBK~H}{qrLCQJVqE%ym|1ZCov6(1UpAEtsgfLkz=`;+LXod z)%ws#XQu=$68|k1fNh!ST)a)<|JAo5IsW`sR3)_F%ND7F9|vhIO)MJq4@{rwL5+E# z_iHz>1COnc%hO%I#JO~H(#bDIi>eY^j(1*ZJgT$kkYAd`jOgsRes?s{_CB$*IO1T& z;va9$>w>gRrOO-qRdEF+nkpE3#KvEuNCy3F%iRs1==}8S(en;abK(IoDH+}nVEYq+ z01wWHR)BwJfDW^!y}ca{Lx?&}VA@t5FWDskXl?)?e1X|MwKR-_MNkpf70f;Fc?a(W zz&*(%g+ek6EFdXi*Bc|Yv9)y=NIC5WupM5nv`TdrL|&8~0AVLq9y>HxBAuyZ-r!T+ z&h_#)4Qc)XAf26}b%5X2gFGCtB}7Dt6}tI)0YC5>!8&8pYpNZG zhjsgU-_LsgMl1xLho?Zk%EoQm$?aA5=R0x4d--~oe*qg@BarFVb9n$TO%VyH{fKz= z75Lj%L~Oci&#A6{F483B41g>KzYJHBGb{$Ea&pM3v5b?%qu?nBA3*vItd>ZYwnOzB zS|XVy)H+lfBNx;P@aY$mYZTZ}l z7lJ{GNaB0E#T}BQ@`M5}ht18;fNA-|#@h#901OTTdIPKFgH47GdcD9movWm8>Yca| zow$y=UyTI`*22LG&2~?0HhU0_pK3VV8IbhrA`<8~0E*qx?iCOda0>Wc!t>vHh5#0N zhPn2@Pl^FtYEuA!-(Yif<%AHh#q}<^g&pt#h$S-c3g8#K@Bye#ouAiKVex(E33w|f zEeuINa>2ntC8RcXBU5NMw%kS}zAa}dHYIjtUtVpx=w;!19*TW7l@KXuP7%$#9y8Af zf;T-=!^Iw3$WmpP#sLpR=g^41tj#m(rdH@MjTjA0BA_>SfN-Oz#Bk(k&%Qs@3ystJ zwQBi;9=9bgua4c-wa)Z+G%V0~j=_Rw0fzc}~xZKWTH zg*@(4EAqC>ESedxu=;t9A*TjYdj0>xkw2RkF7UhlX^hX-tHZ7uqM_gj_b zoBn|@qV69;d6#G>{HFpmNeHf=z;%-|+3oEu;>KS`h>44lq9 zF0;)mun5p8SJfmG?>$q7$DKg2Q>dM?399oHRms?`A?O+^Q>oAc5sA_yWHyL!r_Jw2( zb_TVPXD|)KIQYgyo(_dp5rk`QG$7p_#|>7U8f8WH+_0FsDJ2i8-{J5$ey2_4yJD=X zpn#vh8z;gdE0r=^v9cAASZQ`M47XQ5 zH;Dv?I2}AQbt>$FDi@D+e@s;G!bj_<(LE<0*#X9BXZiU3+CW$;K#;+W3YC4rRdLoG z9lh|iIBm6jBlaZrPeB7<#=lX~c963hbXmpNF(jy>WsdR38LJB%f?xT6d!3yx^{T+v zf~WX837y*D)Q41(Zs*-QRlBff1GcE{`bFAhs_GPR3y^;6gvW9rMbJC#TsvG7Q*s

$u6NsqmQ)wSzyEdwj-zJjJS0ntWziaxO%jZAhNc{Ho;5@9Jx-AlA2&>VwTI3KwS z$ph$L&c`X0QgfE{t$@VIuS-^3q(KJZht2}-={sL%h8$?M5*nkU;SNX!j>W4ju&u_# zl`Q=C-jCEx^S-h0#!WNs9UIr5Et#B|qu>uI_U}JeX*!gtryr{Ih%lp5;SN?5o(PD8 z(k%PvaSS@#jU*=}C7#*?*T6Y6=1U|o`$kUB@%ade&7(B>>A^+O|BhGFJ#2x3>Rgpa2BEh2V`sb_?@?6b*pVK(VXFxU#F)0>f7YE31jceEVar$JU&dY zv|OE%bwSNcn~lEkOgk*&3?6?!K;eC_N%=#QRjb^s1giEy}^T^l+Tpw(ksKI6aXcR`TqMOI)SE z_$rP8 z8onUbs4gfISVqXzM+XHc3HL35CNGZjs_Rg#u=!y5wXepiOT^v<&!wK%_js(9iyN|~ z2FITk)A~ziTzG@W$Nqlzyjo5{L(K$(YkPjty->U1U8r`ye*ILC)T|`r#SYh}=kych zd@WIo6SNY(VBkjJ@05Bc8BT1gv-QR?rXMJHD3>hEOfSGRQAaWk3(i{n5DfB%@#3&ciaFW*dnyo}}Tk&;y@dnpXgb||R6 znev$fHoz-yy#MV35Nh#x_o?ZDT<&RZfj{rjDuz`3AK$T5zBc$|TZj<7vC$hG)mPHa-P+SR? z+B#g9SN``Tc7s$$$!Uv zDe9}1u(a42T@a)D{Ba+LKeN%zFf%pC-e9~dXV>sqeh8r8ECol&_$fbMA2=YFX7`ZY zsb@c}1+iJ}F@M&O-j?CA9K<>}DaW;At&epGFs+SQb2%VY3dN?WfA#A6R3me9=7Ci= zx8Y`+ti|g-dcMSOJ2ekUGK_w}qE=6Y1yYAyC4mbU-5Ns}qC)Fa#o8 ziS`VrjbJP7;f>g(*T3_8i=ibW=8bHYI%$^gW-6wCI^rovZ8dc!|0s$pqd2pB^(0@7 zegxeLGe1@t+5-+67eR$VbX%)?R~}evW5{Jx3y8ZrJlc4$v`kpm5%CMoBTsgov=7X$|0pc0ORc(&Dd^TqrKPDzwuFuisz|K36W$#&@} zn>VmL29&t8B1@^CQrk9?`a1|*_%rIp!xr7%{lOf_DM~}joz$k21H~A|7EwPbXBxo? zGdTGZ-0DZ`(U(^S2gRXxWk1AF*FdH{Cum}%98o4oMHdySX2vfC(l7Jqjy^VS31=GJ zD;&V$beFccBa5X3&1v9zQBchFI*#W_2s@sK zF5Zgnvtpw%P6L@x@dam0Gs`Lk>-HWkhDpL)f;j0;2cB+iR-YSDRTVZUG`M5aUc%Dx zm;8SYGg$w*nY}}sl7kG2Sn>Vji`hW)I z!n_Xgt0A?(x*pU2^jNwag}e5u1Tsc*=g{|pkHOB^>=XwQP)+xxdVfwRWip7#`p+|V z27`X7<5=xDq5Zyj;)wA;B}?`i^PV3- zPry6R_zY`%-iL8Z{F*&zO#4wAm(Z^Y1^Ui}XY{4{LApt>gqr3>u3`Tb6b=$YjOy>) zN_M}vBc&G&$|OKG3t16GF;ep`iN$U zccQ4hic@5iZ{RkI{D*-|=M>2!XfY%n~is8k=#@Pzbv&nV)L>&!4 z$(wltcy#u`oFzS5P038X2PL~ti&`H1KfIp_q6+D-U?XA?v+mob3kw6H7X}GXf`a_9 zL31haBx&hi>%UEn-n}Y52N_R&GFwE`(OImu(&^nz89^~$D}KZO`-j)_MlTs0HAf{+ z#g#1?DJ$t@D277+ae+GQ@`J2m^OTZ>%s|&Jhuu2*$1e4V(cxi&8Y8-KQ%v$thCq8WbA|g96b!( znPTTA<(sEOWX{@;bP+2$Qgj}lwt5H2 zdxUY>W*C4N_UyO-e$oI)a8pcqhY0CJq}TxU{oIw0JMW+BD9`ZuuXS*^)#9lSmdAHQ z625%$=pXFz=E}jTSXuM;@a=4 z%a2#wis0<9eEe>^Y4*&~?s=;rH(l0m=EH6T$&lQ@(1aAp9qo}caA%{vDH^Ee(9JG} z@r?MlrqxRY76**Z>BX3eU-XvZbv^K7BJ{loTQw}ftF<1XOR9%IL9V;mK?>(B@IRecXM2j?DZNzQ z9-Fg$fFkqH{HRv~;2Rzh={y4Oqm4pDwpX>bwvL032?0!Sn==zk;QDygD>QPu`uGs> z`2cWD2ZW&-u0R$O&o+hLtSx*)-0P;$TRX#$=cf_JdVb=k4Il^P|4{YTQBl3$`?mtp zCEW1}>choy&%-i+lUxGWeGq&89`sBCwt*n^Ks25q zSHS20@%#dSUTY|taZ-IMRlPrb>&y+3xes2t)Y*S)HWb;`^q_q`ESx}Q!(Q!VU+FuG zj6v|NgV6R>-0&_XiItbayftMV-LvkkyDg(@GG(?)<6-x9+6v6-+6p?_pgFg|)xvMg zb9w5a9ti;DY-#mTASH^Wzqk!q^Cu0}^58)!sl`%qP*Nz%(kHILQ56e~(T_MeXnT{I zra<7Ck=#CKu(BzJmlx7v#$&f=&)-2;JGZ4BwWfuqxBE(7DS?DOOteCV8j%J$;AE6} zyz&dX3L`tq_>CcXq;szwX{e#a^iqevAZ@V6&TqdK8+`H!lQoaVX1!$V+cG@l6q zQ;gFF7l4tQ>%-ku{FKMr=@xe2sdzQBcUchd&{}F;;YmS*^n*B9iUy4v*1YpBUGf`6 zh@XVwkQMc7G2{T$0o-Sw<=}CH2GaA{K$lr3HffMERNP<+tt>$763I?0C1|h=;Cx*^ zWI%dvXWY|G%gVj>k$Uf5VT?4LM-Z#5{y1PxX}ou1v(}0yx#7msAu^FAKGXH@^BAnbZ!l=&&*dJ2uQUcJUWC zXD`(2u@is)tWDswY@T0!AMTtld97&rUN+|oyT zbhAd2-_^v%b5-X-O=gA<=!c`9@GQKr6aZYYi=})4KNxW5#w@H4?aqakn44KO3S_iwRFba_m zFbA}fegtcG;U5#%UHJ@v%%L)un8!!(g`ztQv(e#C^@53-xg==JKTE%;Gbcyp57x>O zvPKY?n#Rkq=6PAJCoLmesM1$wr_pkQuTXO|Q5F4~>j*>RJg}-$_~)Sl75d*qTbG65fP39_ja8%$@tW~a1AxM%06b$pnMf4Hib zW6deGejH6E=-P4ztBh#Q>$z96mi9Y4R3%)(=U$cbk1;7t4v55UQp(axv0T!;^i#JW zH>eq*3rIQx!O1*1RPsubqM1$Wkg7AuaH%c68oXOd@u*6azV+(!S4U00?ZdY)_HdQn z-u9tdW1b4`7yD!9`gSf)ZH?-htl#4dJn+l;@N;2CE2eN(MZ2o1@v1N5X+>we|05GQ zP~!;W4Waf@xKfmG3^ZcC6cN<2r}l}GGSyT{vk&1$kK@-NtjW$C`DjRK^B4CEKji%Y93Icp=Dfj;7-H5ETu5HB#8I+sE zX8ug7#Vv1faeF1(gAY=S6TRJN(_r)yq&_M|fI?5SKUAej;3T1lk;J2vlj!(*{9Z9+ z0qr?zV`9$C*~X{*Qo&lZ5lFREs`3!ZRO1B&hmZp0gS%vcdBR9}QD|jsI|0;-WO>s_ zd6~@pJc+l1srI`mA+uZu?x~oDlC@Aimy7E+XHg+f;zw=QTgYuV2q2@-G48au5%7kwS)!L;A28p%m$l!4S`AyJ|9GlT7#&C(+ z;60`}$Vqb$7O@+xfcr*+T3?ig~YrycF6Zt7$% z!)`N`xBaKxL%?ZIx1jVkL z3g-_~`l`NVF;*RvK{=78P+g=#V>MWPpdsUaIMUFsFDslq{l<%5!Y<9t*2%v0BTbl$ zBB>4^nQDT5loN-Zg}xUM=9V=94kOS|YC6m)!?QxSWEUJcBAjvUNhAT5!1C~a0BS&} zk7Wyg@&I#7Xopg$&7pKc0;#6K$eT8phP=t!HdC^>MmU69PE&<{Zdag8B=hHqQr}E^ zWk$!)bD2u)KSb%W7IzYjj*b@Z~NH5Eoh2_+1v8N8h~3yW(Eg98EF zHtmNpy{u9yoZrBR;C&b?^{W<-4lwEAP(idl@=xX z0~1EosRn)%yxfDWmQ&kgYGSy&m2#=ozoKiFOskd2%WKflnHd63qG^6g(}e};kkzrr z-sY9|tCa-(aLc;uz&BQO9G`QPgR>dWzw}Q$L0rSghR%AHcbv zs;{yC=9#ZL&2E)M*)9CkoNY5fbD)X}c*ZknoQ(H$Qkjc57c|50aD7(8?!0xKUby^I~@RxA`qSA%Ew9VRzUBJ#dbe|Q~`0i+p^ zX}%7eo8C0xP{`lfnB-6jesdmCy^Hr2dMyfChj+euSfMeGHRs7s4jG_Tt-#j>$yb)? zBEYR;>XQx*JE+`?y%O?QnY*t&yD}3_r%TiO>}7eKvegVGKeRnla&!GS0)wU8HkRTP zWR-@cvWCBj(c}|klwx|6-|Lm&t82al^-$%GJ24?~m&Y-}Lnu1Cy83_XB96}ZD3@GI zoyT5Q4`(UpA7^T#iRyQM(2##!sS+14%Gc1$|Drr=i4@e+XCSNe(#h1pKf=x+uKBXN z-t6)T&z$|{{trBxZ;qBco8xZPypsWy(GzQ|&B2fEdQ0ZbZ)g9f1qeIcDwaA6v*4pA zO?C*Az~0~FQhPIJo>o%UNENw@ASf3?oX-6*@w$M3wim@biQC_XE#BKvl>s_K>53H@ z`vR0SH7YANHM5tNpKom41TZFzCRhh@-nf^yvHGd#9NFZtv&Y{RK@KBbUCOI75lBS)1DUH`R+6uOtEAz00Pgmnzcf`CJ(E4d44W|I@Hw>9F zvePhi=)AuWv@$O+A7Wyq+>~94gjN$~$^9gYsiEix4kw+u}m^LHqI+8fVB zi{^gP$i5<|rRffBYXv`+5;>49fGb2)Bgp)l$vA7$02*<79_34{$Kl^G`To1e|9d8N z#2seDQpHbUPf3rj`J1s^Q6ANF5?3k>xhMyuzn`#;J6;;st3&+pIW)P!jUybFK7olI z&7)OGI^#h#;`kUhx>rkcfJt^)D9_F|UwVG}D!-1|k7w{&s@v~mRKHty2I}bIBsobz zNrf(m(V#2wyEdX{zR1^x5|Yf}K#c%s61q=-O3AX@X!=$n3a<>(JR}&;BbW9qZSFRo zQJF4|+hws`B>SQ|t=dw}dA9_;JCTiuH6dX~riX4Yfx=G-O)5mEI3J3~%(p_V7}ef~ zYhGqphuZsoPXo3#TkQ5*?*;u&Y593ZU1LUcD@tBSj zn5Mn711($6pVzX9_fm7i!7mb!5J5LwQD63I`|tZK~3!Bo=e0!HgpHG^w;wi3s)Jx)v(#cW*Ai569sFxhu)zIQIjU_);w6alKHZ>E_I}Nx zw%SQXD#7EW4u1vHm`BDzzRF5l=)ZHAq5qx3&|1vWjJrRm>CAEyN=04f52J7nq%=;d zh%7pCL$iQheD*Na{>pp|&4GPp6q*qG8irywJ&Gr0!emPj@8PIg0abmiD!sH3XDJ?I zPNG01Qa-Hbz>tcjYo|GqhE(0mcl0Kv>uZf{of0r7ypa=`|t@{ECVuMC1y6_aiPFTrgFE*=SryBlOzXBvhEzxIy72% z=A;(1gJE+qLk48arm~RIFok2$?t?5otkf3SgBCdqe#Z%G0h=i9qV$_d548ch25}lf z-BDM*lPpf60lq_b`w*NPvCn$mDhycH>z}gg@{O@~JxqGM<8kqA!z3~^jgKV8(oCc_ z?mL95;%Q11WyLDAL$x?kqV+Y0Y_aO`Hy|A7e@nTfDC#`Q$N04mZ)NzQ! zPA*5)hJ@7tr{C*eO_Xo?Us33{-mw3k#9|&jw^+eYV<{8hkTiY{rn=wNqT+?qIJI0E^|^4>gN?> zSfnALO@mgYC(9A6FA0ksez0e^xJU(%A)`>0JvK}>RESL{!%Lo@F0SF5wV^=jXanQG zyD2An5^)=%Six#bjToQ>iC`j3G1#l-iuDu9hNhXj#mnY?`Rh|kI5%=s6ho%E^;8L4 z{O|e4310J$Q{19eb0{s(!IgE&uOdur$JHVtgh;3)PhLA9Do=*T_1UW)kTIynj^T+C z2$R;=7`c+vYW^CUZeyObuhk&YnMO|=OQW;6qUaJ>;x98YUQk4}t~FkJHaF5Hu>DPU z<{aWe2dkA_t_{6l?eKlWrF~s{dqcuC8A_g;sx2*i02X*|hHfeXrj* z_F}&2o7^*A@e5wSKZ%^266Z58WW4^cy6y%<>ckgr6n^^a`}ZdCG3yC)l79j)@d@a} zAF#x-0s7|-n|S~=sEggw{R38jCzjl96!$sK<0;M)5p6v2PIUeFaRi{0;ulYIwzz$i zl)||aH^tOxA3v#J;B^+$Zt)&Y?aX;YL^l$$#Jx0?Jr#EcU%l$Cax61w)h@tx<)lnrw)Dft>q2E-uHHU! z%fK7D`w*Tsfcejh+6i zyfA0-e@dQs8fbkokt41@oP_aViQkoqcT5JZA^~?}%df{5-_gnG>@4w9UN@lXAp)S* zQ}D@?1h5JM2XJu!pmh}owzS8g6`KaV)7?*hcmE+o$|sI7clKKR{B^*-R^if3@A;BL z{h49UmEo5^=i}t-BTsoXPiPA;NEB=Gu3lqayI;F@KVA_$?g7B5;v%4KeL|oe-to>M zPb~Zic0KVgIAiluU=8tyfQI9tRpCFtni6kYs|FdIpJX2CdKlM6II(Ej>$sd;h#VA=1o3@0)ZS2hltEJ zOLIKg&3sLykn9m>tBA@7lVT~zOV#jV@w_GZf`KdJ{5gYc$xZ^=yoB`e)DsV^qIrXQ zEOA6dYG-jJ8d;5Ci?PF#`sr#@EC~!Hqg|!`0jvSNeZl5g5(gN#H%nq&)*W({D~I1X zPF%1p`l_fUek}rslb_OULX|a(364Xzd`J$B?4%mXKUWy_5n_)>zSqn zz!8M@@HJ@4@s02-k8fNuklLyBfcy0AA3bj57Hyt;->W9w07j|xpo=u^wJNH!giJv} z;i$5IOcclM=;G1@5c#tw;d|4fBm9HOF_ESc@N*!=r&(B+4=5(@i8D%Ce{F^tO$gAl zYO1`G-*%eO_To|c@eZ?0;4=q8AZ-S+$>+nJ`)s6E=j=FSExp(((N{S*tkAlw3MGyE`$>=v}q^f%JJfWs8r2Bb-ZD3otK~mBoAk zrymiMRcHu$^W7kfwoHYZ){c1{?w+piEn1Uq(;oM&#o7`*|75RYmh$lrnT6Uz&Z%1P zb-}{}2neldY50Dn7WAW}o7V(CO%t#J2nM9a>%5H)ab`9)k@@-g{^wUHdJgIjO|)9k zK5Ij8;gguB<}%@H^*o!9aSaNgoT2ud?ZC(HUOc}!VECboVFd)GadFQ}`QrIitc6Js zQ|-n*-}KtrRoUf9?a7QVA}r3h#l~yAh+(p&lRXhNUQZtV@lyb#WP9XVC#~T+L*!s^ zPHXzkNWiDyVwba|c?Zzc!vS5urLp{E2}OZ;>qI|}@lG+yab(KEa_8tDTeUd!^vGjZ zV-FE4Amy#qOBzRtix5qzI)6V#@?gC~yn{;EX1ZhOiUiff2+q0=*BanQ4!4xHcd)DA1vlv%E5a^8 z1NQ@#JQhOvoBmV4BjbCqzQYTgA3P_xtRYL+DCc3`0x!luz3&VHWTlHsV!$!c zw!7jl-WTx>Ez=AhM-#b+>q|C)o-+HdbqS%GhXt#fh$o-YfCCxM>(x(aCy4PLDlILa ze)c3hoHNh;+I`Wl}WWgT(0+l;o%UmL43Ui6?V{DKncKQkf#nZncimF-s%ZKRHPR zU{5m}e-tZPB^0HX=5<31g-?<{n*S5PElcf6>}95<*zuE;a?zWn_o}j`%2{CPVa?g) zIk`=m#zUUN)%K~BaU96Ow-@X8q+?^XL?u>eX4g{4Y34W4jupkoI z9NxhVVn^-7#7k7LoE(_w;UI=E89+>2GQ8;QAftT ziP`&RYAl&+kFIGkefOjS!~9PL2CG()F0&(VX|Wcth=L)8doS_is#X4Vs?`ywXwY5R zp^=>q&tipX$_~L59_VpmaOBd->jlO`#Z9dMK@LFdr>Z)SX&A;1@TQ?+r~{bM0Niw0ue8B~9Zm zgz+Ra{*{0r&06{Opvvep`)8VEWo!0f%;72-(_U*-qatUVBo+$#LqD12Mv3A}?1d^6 znB6@+!&tDKI;EAer%}w=C?_^IrE$zQ{ntfMmSi&=^tuB*8oLQ_*fC)=orX_Jf zUX;HhP0>71f&KqwC9C@5ARC|TN${bgi&`h2h^7NvgV3Qdut@z$jY%=vWvLW%0`xOdCCyFIB$gRCiOi& zub=GzBUBANeg2EtNCKa%b5Cv|!#5+5RPeqicA$GL44fynlWBRCQR7|{I{R*#)2&iD6$LxP%Oqn7gCt%W5$H} z9&9HZmr9b@Bf1&idLTraj|?mpN_%1be->7F zH?{=+SUSGMB+Y&iUkOH(1XH{hE)eyJ;I%O@!XK$(9Fl^wrS664*Xwx|;No*DaWJz; z7Q!^TiRbk+69NwLr%tz0sjXU?RhhHpsr|**A4JvP&p&icC_c%?eZ>CTJxZL|4O1hu z(Q5+3-$ZzSPr@i8LDeVdGU91a`1Wr7dVs*8qP2t$6|J_ZsJuty`6NpYSdv^hCV9JB z-eGvs5~Ccynl5LQ$oTTzD*{>UCp9NVMVQ1ySY*0oST1+MG3a0J#Ao7XR;gTZ5+uW znmYPsj*Q_bOi>uVVLJG;7u`woK@8m>HsyA}2NaeF`tu0}Wv9NsdEAUXxnoKlwXU=I zN3{#h{sR|Fiv4qwMBK7c8Gl`<{i>vYXi`=|8Oov(dB%)A zKMj;MOpQX_upmx~G;k0Ce1u6Cv}M~KQf0O$Dre}oKEp0bPmmHBNT>iZb7?nq`_Yu+ za|5xqBjPgfSO@Li7E}~$NS}b-%CTbqc9B#GDmf6^sVR5}w>dGLgf+glez6q%y)v)7 zzB8?Pxr@M9^^LVC53xz*^Uee|mKW3L=nniBhW;ZiyKLeN`Hhc)+O9*Wf{}jR-`pFX z>FN5N|UZ~8l5#zWWF5cL}nyh zZf7QxTcT6PlP6#;tHHxYM2QmVft`WT@t~j?KJ;cwTW`{T1U)po^3-_qu37p{XJ9Vd z{hJgA=ekeu$=&I_?|Nw>S3Z;t=X#{O6!zi-QT~GdQQY5$%JRMM`t2jArSo?;r#*W- z5(4P}c4N{&NdxdTVd^-n@=BUvlyh=QEBpMhiY~pJ#*O1bfsAAt981Z9iaK9$G-yC-mMbkQ(fO@&p|pG2%b}bf4_gm6ll(9)Qra_b(D~K z0UP47NvG>;L?z^wAF})m@qca#|ve|kLSTC=p zc6$Ne_AU_O_bc|WHd8uNbQ-m)En&-8-w>{{tuJLkEm`ZDyz_^=f=fJz>2LWXFCyH2uUdZ$`6H&~9HySSy z;!GdTSBz33ap@-1{-Ad=3iPS4@6y4MW;q{=6As$aLYSssN(3c1_*;6sIKM?mIC^;l zOi*vURHa1^;9P1(N&Py{+<|>ttIWNdtnf?k%ywBx`t7g1eM{F~k)6rC!S5iW&ZvV0 z+?$UO=>|*qEg1)c?0V^j-Gbz$2j8m9JeCR{!UWw91d;h+o8Oaw{YC{uKDLM)dHdMC z^vg4U=zJ?A9O>`3K)CDq&G-~MbaGUgbnoul(m@Brf{e^rFlawVPK1h)Dv?OyT7-DY zD>|F(*Xfl@Kw`IGXuyS`cv)TD1wuZ%6sj8!T9#Cl7K^W#;CwvM?r)>Z6lL6-g%;Ik zZIH-48GqBroaYgw4{(&CU}{?uYl6y3Kc&w_0gOgSEw+SzV%e3Zthm@mT&dA9tU`_h)v zXZ-Wc-P^#C*Wx#ye(e|VcEOWyrGE6w;&Wm37d12_Lm(V@(K4(1u%)FKr{%cBMEu0z z1Kq^Y(NS9?9YVZlq$+Ln@kX_Vtc!MLqS&nqUy&&-h=%Oj_2sInA)?z%9qGAk{cy^$Q`8YiUbitVEx6&mBKYV_um7QQyAmyId?WgIt70M zb%!i;4Vcvpvho-4gIG`|*zC%R&2oq$h&Fu165zOD9A?j=+k)*#0^o){6QzldZaNOS z$Yu&d6Afg}dr5%tN7)(-KJ@NY)u2Z<71F`B?m2%A$zk|A89coqD)rO)fGh1JS z5h+Cdpw3>;NXW=GZ_eO_{-~grz-a1j%d&H6Q`3b9ylZk6V1|oOJA4ZZi!m?3kEgGm zrjaKmCX|NfrFgQpBFLRLhR9v$vb7B}2Dvbg+u+#W_xQr4B-=TF531ichwKEuUt~CS zOc|x4AAX(N>Si2Sa`aPx3PNsrC#3tWpO4*WDw4}S`}Ger#JVpYap6v#+t~{+-I$vV z0hlwNK|97ro>WF*ouGG&s9rG%i3ee}#mK?fIWL{??e5!(BlCR}hg6a8g!Yb(Lb&Lt znrxk%XjZ2sNFv%Gs=owDx)TrD77ElWNf!boCcQ_OpTBrZ_x_xzk;^Ic-{d9QC!C`t5Vp2JEc8?hI*uj9#fze^pBI<0UxNsbZv@ zpzEEG7dPElBzj<35$hzS!JDDCpGGVaA7z-0x;+9gEC#uyN=D@wS446dym_`&^3Sh8 zdx3#7A__|iYW1_eAEtN=%;P`Y*c47Y83CT2em)mmhrxOQOi4;YBEX6B&do~LZ4+s^ z)dj%sq6;l`+HwvKtUjw=#6W{Os7b+^ufpI9#AlFFQtAj%71h2F{k>Y=70OqHQodvdQbl+BT?z)=WizZ{~ z=2F`$LI#qnik|aT5$PHlTOdn+B8LNW92263HaWO2$w!Cn8!h ziuwjAL0JgG+u9S~`&TU|N0YBit4xy_vwz?Ugx(VWo@KKG+ZwgodecEDfjG$rbgm`= z!(tMkdNDlsJM8a^HB{w#lQ3BvZ4Af3DE zPf|pL9qE7+#(aDP=}qukQ3sG;fHkh%>LCm}M?<*;8w{}^AsV%e0fPn3vW8lFE)4&i z!l-BNUJMx)xLyQ&48RcNoa&r;ez798^6oE_^zGt@ulzid1QQK%DY}S0UMmWzI=NO! z1;A0s8<(}(fD`>MAGv|>pyJln_Xyz1_R&$rHNX_oB;ZUI3|4yxKXgP!LCNN|!G3sn z7@OMj6q>m1z80kz)&TB&SC{es-FboW#$ShrWlc@pq2EF4jJXqypC12K8&q*1V_{(d z1V6I3S91G!57?$R&pzrHn=LwKIKHU~2w?a0^yK2^*3jYl;gt`8DEp6p(X5i;$b5|& z!W&`K&t+@3$6!r0fToPpjS-A!#wWq$TG|kmgJ$*%{})y89)8>Na?O|X-e+epEW{bE zvy~w8-d=AJiuvIyglQuR&aY?Cz3i<5>Wu!3UXKs6qPPy>m#3q+@F`n!= zP0|Q6ZBRlEc=YSnp!2icao{Z(j!QhWus{MiC}<{Z?)gOJ|2rVA5Nm`O9jPGFF8dc! zTR~*8A=2|L4Br^PWOEozzS7SQD*EN2c|IjIK1nbho2YnP#{{fFS!3h!A?O*FaqJvp zA(}RoWTlxc4f}*0@~)@H?23s2c?unzVL~*9&1&-qDhI6#B`?XW}t35>+SNh ztj_nMUg|BTQj2u=yS`~DvQ0Eh1PbNk61=BqX90yJTCYw+ z&)ub;Lx?vr4R@ua_(~Mn<=V*&FhB_6G8jgft91D)-)Gj8KKP)B9!>D^m)Y9cmC>XR zcsQNk(k?o37z8r?K!f5AW4Nvcas4=Zz!i@|Xn=PJB!oH%-em2{V08DI$SG?)_Hr2D|X1L*M zQ&`ie`i)!Of%j+PWnB-4?ECcVKUXctKmI*+uw22INlo%%@b$Veb~h;y+zUKD?oPL^ z`5E%Zk!D~}5~!}Nr5=CtSn^Pj^} z(+|_=9P@rO+B2_FidR8L4;)PgGVNN+E{~F!5fO_Lj400gr;CJ_2 zGL1+bJ#(p6yfmZVbnY&L_a~42E!Md3`8Nu2Vb>6G2jS5%XYnPQmMo-xuIORb$Em@K zFMH)No}y6^G`2!T#Vt zAre5>!F-pOHD)1<4JMT4RZ((|f+OQbkaPr_{n~bmr7^=TlJ(Fpfw*bO^Lnw(l+a|C z)Hj88A3HA@=GrL?C@^jgsKlGos55wkNQosLL>7^5A2Ij3AsUGr#PIHWV>fgKr5wG3 zIyuhA{${POH506Pp@lIHryQ?KZR+e{m4xur1TZKdH~j^9kL2mUZfZ=oERPNNogmsl zHG!Sj@w4>Rfq)uR4^*j|SzNE$}-co>4!?#Q;g4ak@_+4O9aegGbAix5+cU-I*| z*HgLpAee|5;jmn`#ov*Iwjo-~_e`+PONGQ%e0Ja)~X>=snAC zG}&Ukg*X>~QnFFQzDpa{235d#dNe47yOE;SXtkyMCE zI0^q42-G)iy`Gf(#we*NK_jdaE7;qD10T@L{FWtUhMSYod57ibnh~|Q@_6FuUz+Kd3jtMMX$F~8$`Nl z3m1u|N?XLczYso0>w@fe=z)6mc7@@1Ua>zvmulRn!JMs~)EwDABG6{%n$d@S#~*1)gd=~Xvu=WtTd=XPixhgX^p6TRVc?`aZ z3aP#I1n3x7e5Kcq$n^)#$J^RfxI={aEBFsaBe2CpK>LHA!R7>T4TL8evbiWCVCIL? zgYYln9npE2yBRI?e1`FjN$t3q%>S0d(D3l6C6CQ24CQO1Igq+2+FKmjV>Yvcg9@q; zaqDahQx7_kmBjYkJR@7o(OLvaLP@A<3*U}aC^S?t9xHCt<^}0UXGWrt3Et@ zS|&JF?vomFlarH=`}fYf+?&#bk^Q?KeO#8Fo@qdjd6)NFw&(9%?rr}1 z?P~^xgeISpg1tF~K3kD;Y8g1H>I@xK;>#vHSjc`L?u+hMQ5m(_q20% zhUD;~`6Nk>ZY-ARS5oj*5x#pN^qrGsq#L^+I1ZQUvHTR^kR&nBB8njN%0*GTTrwX8 z+X|=Uoexm2zWULBz6MXr++ln47wD`z+v*xE-40=)Y5GoY;%iKAxgS=nfgQiwLTP7} zT{>mWXpAy3&BcYvhQ*5dHA+4;b<%WV1SPL6s4lan!=-|K?wb>(@}9c4S)g^m_VA+g z;lv?)yVytIXFy=#&fA1K3$K&RDUyE!d@U~Pldw{G^?Nd)q*8n;BPt!=_)q#bIphp= z)%1*Nd&fMU`Ft8ZJvB3$itX@F#aHDWkIgsC0*9NC*arS6*}WG-dL98FK?ZK#JH~8< z>FH?++Uz)Mf18Vs1&`ddLpD|?S>*bt^{}`uD>V4h*_wJ&CSTf|v*B z75-fpTgDuZy~%izh~CikyXRqIk9VBvXSwQPeb=GxZLy_xL^NcQxK0>~xN;6g`$8Rd zB@RMvxT{=Ti20F^a35P27hxw~=Z*Xen>pC(Z`^Igf?=i}#xO;2-)X6z|tjBg77WF^U&1G{%izLfg8-*+GJoliVsZ?t`Q>97vfB7kp?8DquDx3!M^aZ-k zJ#0G0$HnU#jV*m0#tI6k%o`T$#50Yx3JWd}b_{v%^;Q8V%YzTm<+*?SKC%zT46Es{ zlP_m*y`7b|sm@(qhLrZI6f}PGk!$7BC4*o6yzZIC{N0*Zx69f!u1?PNeDmx^@nkk! zx4!URf7CJsFxlJo_r*mbK!1@yEp9T~^`*Q#d~QxxMN3pH%xq+O8n;|i@m6eMZtjh! z-23o@4&c&)!Qix$-Qh%P0M9p>_9C47HrMF^)7|Pq`H=nCv|V3J92|JZKD-_? zj|~@&0sZ&Itq9=xXtUhnvA1bO#fII1Ge3-_a|S5Mn5kOGM0?731UkwwBP{wycO?D}#YC_TqvQ zi+d{isfw*zUVMLO_9sk4Pxd&5tFR`Gk+e5a? zsVTn1A=e1oKm}ZT)3ny_BIE6i&H*Tb^{#4O#=KuL3=N4>-=x+aKkz8l1j9C&>an`s zQevMR=*xN3Cg(0?q|MihT$OIN<(tjicn6AJiowgd`?R3H3lv8d8D-07>@fQ)mx)(m zW!2SjfV^`qC#MRRQ8E1GmZviHDc?L>MXn07pR4V-;{dp*FMy3~ta!wY!X)r^ySlsb z(^bufZE&u$W?%~;`U`-HJ@q)iUH%8Mdx6u?l0PQU=4Ng#uA)Ew5|^ES&NF)~9UWEL z=nYj-QO=>BO-RAzB`AlxS5ed)yJCHA1moc|O6aQrwpJ;>?PE{r8F0UqRUY`rH_ZrV`P%j2 zRgNW6dN@bLu(BMSz0`|o9Dj5i{}apVCU0GKVUHtp?~yog=Y+LsjMY#{?i2Ahd$0Pq zPE4Eh^88I3B&0wnJDpjSbDn5R{8psvACF}`_b;A#p|>xEHtPnkVz(*ZKAW}$tD$Gv z7?z#`tmbf>(hPp%jlOnk_@gW5etx?Q*w0X?1CrW3c3CI^g}Cqas*f)aW0Zynh8zH- zILqbJ{qp7ICDSLxz$ZV%qvm-MfJ9?w19aMIG=+X_>dw4jB!k`X?}&4)eX$DjGpsHvJ`Ux;(W=_H7OHjuQ%*c~K|-zAGT5_1kI4 zBXr(KGen%4$VqNyv(J;x9`)>{dkCy=L#<2e|ykYbf3H{JmZhY{$U-es+U$Vc z&AUqGS0o)A4LIqk((VvZ9AS8sQ(&PdMzd{|DkWfdR;+{p*4^VR%pMfQ-|5q@7YB{x z6@W~z)0zwyO6p#hW+<;;tKanr^N#;f!5OMlHZEr#YBj46BuPu;CqBZ)8b?ytj5O!! z^FV}!H?N>vT$o}48*0PiZ%vz&0N%so&2>dF9RgDmqrP9FZh-rhVK%eHMB z*Ca(~l1iE-nUc&y(I`Y*rp%(uk|}dVD#cwg7a`#il4Kqt2}xzRk|_xxb5~}*?eM(M zZ~fN#*0;Vt-uL;ey6?(`^E%Jt*!OMQ_HEw}-9sn`gc@gL9S0Bac#j56?p# zze;9aEy;RW)HUC#E_T;mTBwWP-nQf#DjDMIWu8zl!{P~k{za_FdVb^16f*W1$RIH zILK2{DxrK!!NR&QRQOM`DEV5}u7F;j+Nu_5I~nVVNpy=`A%rFVUq8?IYUP^Q{t;`X zB^os4>z{gU0%K_B8XVoHhc4f8Sr;-Ijw=(aO*`htuHgC6OSa~t#IsSS>z}$5Zq^hO z3_p=?^pAU7>@kZoq%K^z@Dm45F{z&?w^8ZcyLX&hw-)@!87YV$$?kyr&<^J)*>WMq zd<#dT;c!dIGwj|trc2W0_tzEFQ1kq{LX z)qgqj+=z8(K=)nPs6nsu%sVUchW~zzoXGUA^r+A`d!0f<6uBD@5E4nX56Gdf zzuy$!;X|x^EXp!c($bcemXY&Gd3ljxVH`h3bAKQ3igB(upIc(TVqv;3LnuFu3#s^B zPH*d(aou-@N)x&4;c~cNx2V|cBBG*i@jaK2@=roS*Oktfd3kv~OX`JLdTOI9afFzP z-ud&^TIqK%dXXy@lp0^8P{Kpfjk%5X<5G?THARy zk;&E=SyNZj{$Al0^GVQz_-6oVA4j_?h2Ga8Y&_S`d$93Y6c5TU*zC#(&u2N}fX}}34oJO8GA$ovpoHG-{uodublNS*|!TJL3IBBM_>GI{P3IA| z4f4+K4yk&9Bpeuj{^_?6xyP#GH@44yziXg#@eo!C21zrsZkKyL`(6LlrL_~SSJ=F~ zysF<=A!ENn?a_IO7nVNh#8OsK*}n}(aHeS9A?;h$^iw<``aW~?>bUeUL!UWkRxSx& zb6us%^I^wv`-0`?bH~;cmz0pj+%3fbY&~AOjO~R}-?{E1&XXf1-hZ=V4~mIBb1EF3 z;gWRpyBKrzW>1gCaEh0pUGbEKR+`>%ZSC-}?3efoCxenFMh|7{qz5j#+1G93w=;bI zrgi6?3g%71WDDT1_{-KUreAu6Q|A_sh@0=R7t|S;2z~dGA63$+!H#*`m%4P5^{;Km z%b0~U>3gl}pQ-$G%*$u|fWqlx*Y?v=kG1Bnw>CFd{ip~`weo{rM0%%ww-=q4+|i%^ zkyiZoFzCk@XD27#?H*ExnIpENdt0b*5v5$v=lET?b9F?!n$O4{sdXb$`eGQ<@uv*|;Q17v@S9wDVe0v$I2IhD&0H zy(bE)H(^oiS$BJUOkgn3z4x)JPKkGsqr@Y5A2~7)3`b6C*?rFD54<3v+qfnrD=Wlf zC@+Z`b}Q|C4w>k^f8~cAOq`oHcjooRr1raJ+D0dy36IIFnX=&!GW;+*H9qQPly_IC zU%xJ{_=5Doxw5;r@{?v%^~_WdseV7w6Ie1ox_#lk{M>_dwblRj0@TZgn&1AoyIvG# zgzqgK^RLGaRX7`vdNd}H8wtzEJojw7n5BylV6e=BFVwW}OQQaj+QZd!VU>_$yVM&u z(Nj|PlM;5*b6v&E*INb!2_kFq^LtZ>7dxAPEMMVK<2>%`LABT)}qH4@{2^WMBbf_ z$nEK|;ID}XEPVG)s5sdrO(%>(N!@v@_iA=I2dd<($r~e;8SBQW?%xy7?LU{INuf&^ z@jT-9cALL$|KZe&mjfJ8&qXI(Iv@`8Ju0`~t6!a4Gk%8VObX>jFKt`iiK_7M@Zcur zJq-{+Y*JKQhMKx_TEOtk1(D5o3(s1QBw20&Qr*-xuFf;Xgp6rNG%E+yAr9MnIakil zIEy|k$k^6le#Sy*_f%)r(D8I@o}8SHBd#ykDAwQJd|Jz;O*xBR!QB+nj6hTUrcF>g(&plM6_jTvf!Goq}d0 zJ^m1Jg?b`l=iV}4yD;t}A|<64j&htJ3-S)r<;Yb2d_y6iZPJN1 zi(Mx$^LMb|$)Q1icKS}>%AIeos`G9j?vdsq4{W=uoUvf&6^ZlHhoI|cdtr|hilAB_B z4<0^z92N-{#Y7RVN)vDu#Q;_~){-^f{rbg=wZX!|!po*L+}~gJl0VVxfN3TtI@LZz zi?h{9j~ACFg{UTN-oCvTbJr;8XR(?fB#|7`CJ*n_vSrJvouOwX6%}nO7k(HNaOsBv zepE;m`|@k&HdmP5C$5dzinp(AkrsG2tgfb=7l7NYzO60IGbq4B!mBMc?D9bbHOk|J zn>qIn|i?%lf$UOet1kxx@oQ>ne@Gj;ZaR5i@G<~>3w zegyr#Um6;m{%(rhhmrt1MYyp1^d`fLx*W*qBqy0>CTpG$5UHF}%krH{v-b+zYL|O- zibq~f?jxbim|7Mp^yB{hwca>d16xR}TU`3F>Xq^};tn(e*Zr}=;MyNQs^Z?{=jXfq zxV;akOoNpnBqU^ZnpR?AWu-KAEgK#qtqemIWSD0uF8L(?%;qfo?RY3pJGKjXoSEwW zbz|W1rgQ`8Iq&2VnP8k_+$8(3u?!v!!brd7J6juEoD&lh8^a=g0Apd0t3mj(m8>JA zA2qx}FL1bIK@Nv0WK>yXDOKiVXJ=Y9@(mSD7=}s7Wnu0D50bd=|_{kN+|q!Bn*uFoBq6>a_I>yAJ8&4bdRD6f%IRs%9K4<>f?euz{&bA}ncg4(PRSmv#sE9weGd&H~nM%D&4#>GU-c##|D6mf0`a=25H8x*g#HBmykoNnK-ccQWlfrgFM;1KEV^hxd}Gf=@O)T#Nz#voEqJ zI-nM3xdrZDPR3^`T4};8tFHSBv!qf3hiBYk0(!4fLNx@+g?)b&sRIH2nc2Mjn&al9 z?BB1(ILZn##`HG+Z2jcCO{JddF67yfkmn z2(`$E;t@mZH}uTY--|2mM=Dq+FWPZSeL{>QxX`eXcS?&fs2^e z7i7%NUFqEf8B?X6Xfr?^HxUPj^i2G->-VYhb|k~y=jImSHS-sO=ELe_e_&fzS67Pj zrAwEL=Vzxj1RmF?QTTR0Ry`yob;n$nB3n8z`1bbtyZ7$x?`YkbFFEn|@0ZqA{YI5( z1g5>wwT5GCb((y~;lhP=*FbxKMfZgeH7m@v|#RC%jIaJeew27g!NLmbobe zsI2hncm(Wxa`FfUU;*b?Me@@TBf*kL{1g#YNk~b#4SoHAYEr0t3!)17rnCA>e+>;i z!$d4vLD4kB4S>`h$AuO+A%%{K=G2 zIJTN>eb`h}?v9RLCZJ{nr=K^`-)`gL`UzlfhWk}b&zus62uK)8u6N5^ziPHuPD`BRDKs!e{9KIo4SFsb=@hAfPXjO5%9 zc>FTQmJ#F!Sko$54)eRyzriLZ+GijgL@RJ_yf&+Pd$g1 zzPHFC^b^81T-Bk~zd#@9{f*D{vhO%a!5Rv>MXn6`b`qFU=n{v?k^)ial^6UiziR6bnWmGhZ9!2O>YL)b0A_84F%NmOZ$%EeCKfJ$fW-Fcd#Y2hLely0;bUNpMR|^X)F~~p6@&`8IBW=sMi;| z<1;dXi;Ih?)o$ap;!`+*X)7zYOtO=wnc40<{UE5IFQ~qG4xI`_|8?@LAb#k=tA~)O zs?A%S>Q#u37E4T<5^kmG9o!r16Qj(dk>lP_cGi0=BxuUaKcLI-*AFds!1e^ ze@4U(eDYQl3UU9r7iDR!*e2oNd;9jP>pPMu_l>^3f6qjMH{9S4ae!N60!Pos$2Fbh z0ZTs7r@h!D9KJJ5dBzB{gx37}^@~J~w_TSLy9{XNz&YTtUHR$fHiM+Lw4AZG7YZ}q zABy#lI|WA$JXxPbRZpP znv1;(#->86E=YLKN)!*{2?%-hoq_DR--idMGGXa7(79I&BbmN`e~L2k1+t1)(5u5)>J2#-jjZW*8!npA$+B3Jr>~lF7qO2+Ku>ex14O7d zv9ndN4v^OJ8#^_vTpDdViXVp?c}IH68Kv$jd9n9Qm_v;~4#A6n);eTM4Yd_qC5!^V zj$-muFMZ%gz8yvUI`EFxa~%jdv0p}UcOi-K<@hcIqJ|)#n{5^9_(^~xkf3}LL&;}X zE&!iVjO)4`ZCYO6GbnJ`pYxkUoK|O=0Yt5Hd7(r!nC;gt`2ilUJ#TuoUPXNL?fSF4 z+nCh@tHD_8i|8CHS-I2%lOPLGQnl7DKWeb72YE~<+iK&sZQGnv%ZXDM)W^Pf>e<+) zd|?()n0^l$u;9CGuB~yik?6$W=ScNn?tz}Bn`5_atGJye>tOLPt>~g4)6yVr+3INf z;wo&*&{*c6F3map6fIK6x4-Wyr+Q}$(sQIr<3ZPXQq-gvV1LD#Pamh z)0bpv^2IF*I5%(JBzqi%*FPS5b-udH&ny@7C~9-4j#8WrtfEffLa5yN>1SPmgq!o* zxDK!lTjl$K`3m2qribeA-|Uh=$4+;8Br4hT8J#I*&GS2VAVBe2vuiLeEoE1Brg&F)X_X<55K+sU0v% zO)w!Y?i#>z$lt#%z6 zcD2&=Pp4?^0&8?6#1~ZYC_C>qBWA2wtiv@mFCTUUcXpa^@ay3JyTAcZU;pQ$tLJ_}ymD~BIRUeU>O+}knr z(N$O_`}}DnZp3G$N`(!=AS~s>bM3FzSog$GR_AcnJ>ovkH18I$rcC|~pqw(@$ z9XCO?#2sNCRSE=kVRg&4jXoNbp36y?JNQ6o+<-f!Xbp<%U%$R5twQeKH^W|_OUX9=`{&Q6=4Rc-!v(;hWR*@%=6)GP z?hj|gKu6nqS^ctu>%HK2Q|=10jLKvT8Ogj&jI&sxL0_VACd|BZh5+%rP%6i2e}zVIi*jMXDf`xq zH%*jXucTu2FF$%@*L}4iZa$8{OHo=B+3P!w(45gvSaso?Utb$gHV1VX zNAW;bfB=~g<#iC|O3s^(;ywbpVg7h$p>dXal!*+5INyPMN}CUL&0O|R3Dzl3L&+T+ zffZ-GZ>b;emeDR+34zfviohbd?G>SlM9cfn1GN7g4~ke*J^@fca(pu}r?+v+UqxB@ zQ$xesHrEc76wPydyJPFdp?+fpXwf#Edf@N4b;X1iFtDmf zB({0NfK^8wdbRR~i)Th;&h}0I3!iP~=1w1wlmbe+xn?VNH_~RJNK{l5;plxhWIelJ z1bFy8^3Z-FHbvXEkSvK{m)I2@6~*8NXTWKme<2!#fRm`(5Jefj`j z=)sF0xezCjzC0cV32_A4G`~DP)tdj+6a1y2paUxW9yK4@Nbe7Nlz9^6SySk)}5KItc`Iqo7?LiE2BYks@KW~i{ zb;WoLb)J-;UJHn=R0)+_ZgxZw^Zn<8^aYbNPvHI#dkmY*i0|?bTk`&kVOD_y8p&Z2 z+xq#5h4~Ip=S3JCseF^n&7Q3w(~wLc9C6-^bMo}?kUpUG{ClPR{J}+F4L%GFtcF>r zP>uGx9;<}B^Dp)FAmWEBV^k4#2n>g&gJYt#j(eLVp1YmlGdDoU3y8~s(9caxCpfLewgsEBi$0nho3if11z zT=zO?X=|GZ5>F)=V7t%kL2&rzDv5%Z$us;Er&wKC2W|`o8nD&A@IFqiO%x${#5$ws z9T0T?mR1iB4{{sxU@Yp_3ed>=qw#Q2w#`k3Q~v*fboBqhmB?&9-p8u--@YjUPJw6X zVCiS-u#g-r%wjg}3bdtU4p#DHfL=EgW==Ys(bI|hoW>p0rN+B~sa&mZatD(GR{*l~ zgQ}1k;_`Bdnq^ z6?G=59#9QUXpXWhWZ%|T8#@IYHqQ`Y%=y&VxxPN zTNj3BoTsWkcn!_?e2gsZb6Q=uQ!zj{ z9cW5pV!TndHKeY$9CNP^%E<|8X3z%KGA(~$R>>;C#Tv)Wz#dqELfYNz?8BY^NQ#JD z*W^pIEESEey<}(i4q^UYVVcFUpwcQnEl7GOcUi~6{Di+a z%|rD+O^{2*ja@EwIE*#IB5N}g1~=4@)G3ri zx&&1gRq=?&k2f0jqAo((rVq-<;AogV4ZA~?OziAbCrvht==MxD50YT^y`H#M{V_O#smcLT-`xYv#e&cqgbR>{^ME0Fd6FM$ zYgbKRp-g_G72mXNdA*a9Wi|a&QaveN_=zWM1&`8f)Lxy_at~c!kB9Yx6vYS-9^B@`EP)9G}*;B#wHxxqOl@zj8t?lJ?{ zw#2@BH&_^NEO}$h4$L`V>P2ebRKq^LJJ->6405dWsK2M}Jr@$^y7^T)d)B?d_&F#H zyfP>GLf56wiR8?)9lV8)(iUf z4?|o~+i+Y88a&2{)W;<%w`8)j^ZQ#+O1enI4o zU5*(ZKVO6gr(4N zJ*)wWjZ!(yHfkGI)YQ}@Pf5i6;;RHA+&A66i7{LLp#pT_O ztLVHOflSMnPWFhGq)dOu+%V^j@I8}lH^PMnYG7cHoRJYwbzxn9r(+)6BG+{Ic?ys2 z3pxF}tzZ*KSh8UTt$fgh40J8qxrqTQiSGx)_U+p%AwhJy6!`ZKx=4%Je)Aij{5i(J zu*K~3v7?$nL99AyT5;UCrQjo++}sHK>-%@sjE%jd{xdM@2DgbSsya(fBz(Qxiy(nm z^8ESpOIwaXe7Uchgg01vQM@0Ew;aZVf0PpaW}xSRs%&;CFvz-6fm@Gg`L*zB7PUw* z%|YUBRMZwu7RFkON$M%)2%^#xt-o&@ch$rvMYcF9b+uj2`TAN)nljG~z_Sg=MvL+2 zU9k6`-K~&@qwMY;I&=tvIpQ}5YsBHhhjRgVUx02QKE`olj)er~8(?es-8h8=9pgQ1 zsj02a+}Jx#jFUeADoe}CuB)*z=;-Rc`SByZ2W|X$S8g5Kg~*Se4s?S4(=3Nl{qyI` z(UU)tQ!=;a_A!Oz0RH=@j!{ZkmM?X~T!u{CmCm}Z{>D@SkS}*vZ&c~{0#<6`>`cij zVe@ne@uK%r$gJCl*w{_;b}?Rmbu}rJHx^l^V@5i9T?#J4oKF18BW^NLwOA;K@%|Z8 zN<4!`PJ`bLV`AsgMuRn!n8B7Dl!hFIIk`?8lJFP*$xEP4$HA4;vM4iRWq(9ze| zoNKU?^IMj-^Xt=L!M58PC7Axz;gEa|)yPH+k(jPQt~; z+e<=7Sb1t%x@Q+YQaFWgNrk0kc zbL&tf_!uJ_n3#w&4#oi(${|jZ7(pWx5Aq54nP0!TgVf_+eSO#BdCSCi;M*phjfDdu zxj%Ym8t@=-10o=8D(*qn`waaV>$7v9cpdgPJbIk~_t;}=i?vYod)lgh&O8-wnC_m5 z@;R4;!;!{oiVHLpj_#e>a~)TqvW%!nR@T<`Qw6S%RaXXAE=z5sQtKeIjzFqgCBLn@ zcl=gm7jzSaMuDg6Hc0L&ZQ86r70 zZMuvZ;QD!vEAGT!k`3Ym0|e3BPEAe4u6V_LQUjJP6lf&8rbW-CJXB+guDyw(!jq(= zmB<@oehURi`RM)ihY%Z4Yf;;C$;Rdwj4o8Vq_}thta$739DiI8ABMVxvA(>aN@cPr z0NyaoWQwg@S!DRTT^9ELl%yC1Y&fd;mV2N2oZQfc@T9)a&mB+Z_t(s2I9zWLaPb}I z=O_o?B(q`PTo74B#~6t>kX+!T+0mM??x&+9PGa2XGg-d<`=}c(Jv-}S9aXA#{q5zd zF*3J-<2w(Lyp_}8Esa(blT01Ii|RFfPK!UCpJV+HkmugZ@paEreK!YIIQ;&4uyCyU z05-K=aDoy9SXkiLSNn4cAKDE5)Jf{RJ-xmD?#pi+#T0+}qbE;RV(l%v#y~uoD4Laa zJ6ehb;PE27vuZG~-##`nJ6>nz=}B%!28se|yi6;l8HlfI1QHVYvm1O~BdGZ90{(0~ znV?P_pp$LG-T~Nlaok`U#Kx5g3)Oi!;}iHaYEsmuUyy&felvA0`#~t0NN6 ztwP|u6W=;^R`^QZBWlIVn1?myP?>OdJBKOi8=%2dg;**g%G!vPTV=P85p_c5H1y~qQ zXajNeeS1_-#q)D8d&+IUdt!8u|FNo>t?e4T6+AzoP^Fz)?x7^Px=~0#;Am3)PA*p5 zjn#CffO3T5jhV%YaqKuM(!ncE?T8HbNwMfqiN@M29e%Kkw2Dm>vVwGH5$C~KX* zzee3Y!KudgwaO9R5IE?MWNh+ievN2{?XeZ$jB3Z z)M>U6L%NAeNm<1an7AuuWH#v#Crff#T17&z+?|^@89U_y*tWle5i2t{H`%hZ5abp0 zRX^G#XXnF23*?e=VlvFoP7VNeZ?ns|<(ucT;QiIo3Y6H`Vt|5jffb%Fh z%nu16%yIP1%I!=mm2bT91?VD`V36CjhDjnM%Y+LVS(H9EW{LQ-Jx*T`+;S(u6~Ju( zu2GEa)5CU!-p|w1Ifn2ijUnHv?&Sdtd92Dz>zIr@vV;AIFz3U=VHOC2h?xG%EM&Md zZbctOY`_wn ztgQ7|?a9TcZ-Jw^%MP>Ebc>+Eh=&46!*Axp$B&?4@%n;i9u4*QE9~@B*x7lwe_|$% zHh}LG1kTe?4pP@UPJSWd(f=`rvV$k+76d49WCwX12rF^iacWGsLa-WuIR)7Zz;k#) zpPd+|wE<=BpIVOmgH5F%i_NGI$Bt7cMq*;>dT}6uGw+>UnrsZH*!neEZA@R-h36O= z9T8CqGe68%e*K3cSx%fd@sDbf|3#z_Afz|q#iMIF?;&RG<_PSBYJD~GZ}i(DQ?K+a<~jACSPQXaWXB=1se9R>0U>LgpS&X z8!B#owB(NAO6cmJT3VP3+5{UE!?0I=fKir-UjcJQHTo-@5)N$GM-ZIQhX;DPivCYr zV&V#Dtk(g=ZSa=CUrDkx&5Upu$)HlpU`_Ca+S*BopMBvdWBli2HCYBCfTQ5E)o-AL zX&H}KH^kzb@EaI=d*gutAU{@3byqOY)FHA596&~HH?%gaApMvm6&~BQlj{UATYVoe zT987RQY-p=$*;a|gLidy%tNKUAPJ;Q)YywPk(r-Qwe)2m{VFE#CtzbK&_U28VBczY z9}s{gC61eHIDZ9H%A(bZl=q#D*-)&?@FY8XBa!W4h5*wow{F>jyzut-Z+_q&>eU8- z4Rv~t-_M%faRN1~tM53lK~+Otpnnk6YV3Uw-3Fo&2V?5N7~h@ZWAn-Q-G?$sO|^sR=NE zwt=J}XOsfPP24B=`ts$q(0L|wbaYB_5HBPZ|NgE~35F*L35srP2t3eB;3vFZ-pL+g zcJ->Rn^*g%Z{JoY)$cE4d;R)#*`Q16x047vP{5%$-m?*d(tH2ZjxG0gA<`Nh7^uR{ z{V^(m)>DUIXl#uGX9Q9k@2K%EkFDER7%X=9@SCpDWW9tF32U**u+ht8ZN#D-2E%o= zm(&kWbfp&zDG*Gmn7R&V4R=E^qlCU)1Qp#bQoQ-n_sZfBa1Fnp;E(QbBaZe4FjB~| z2y&vbd$hE*N9SjT6G}>qCQGfM2^CGW2O@HH-n;DW%?&eR1$_P^7xR%iv9C0l833-Z zA&8fnEY6wtWIWQpQnK>ocWKulF5sOJ3;RqRH3Nft9d+{BJTq0+D#Q4yYYr0y7skTjB!(A<4(w?(~q&=NtKX@DVeWc?P=W?schvv4j;?q z`Pr)|%P)t!T0xc&0_at+L+iQ)K@%pu0SIcZ96kwbSWRsg`$eCw6Q6>ey;Dx)*sirO zcbl1*9L*(5%)-LLZy7~`>m6$E4hUGKz2mFs5P~aU8@&U6Ez@=#>|NB`oFl%Wqa7uv z{hsTe(gsYR{tsNMV>QfaN$a;nH(EJ@%^grTa#H{epk7@=J-t(0L8K{M5BC5jhf2g& zhMX3G2E}(|_&QMC9 zFNd}Xi(8RopTvd zF?aCEddXL_Ge$j4J_|~Vs*V4DOP2XJTKGR`K8vaiq*iEJW=>8U1jEk^TyFA@jNFVc z4R)Z?3zCGbe zq4%iSsA+2lAisfO$8rBF-7kWUMKEUK>B)t-LT6xr%23k5metHcz)AV=gc&k6L?6VJ zvaDoiav=Q1!knU0GXv^;p=H(8s}ZzE47UVVqNw!3vYw|io11C*VtvIqrs~3r{QNsu zeTzaQ#CueCgts&v4=@(Kg(QT3txey!843sBIe<)h|DiSh3IHW#y-ISim4E(-k}xRC z0E6QjKz^Ff{X457NY+M^BNYCnAyrT55(8yO99YYmMy2s9hX~Akhjxs+NKh272JoMV zh=?Q5@rRIn97et$C5aCj_T&{wkH7p#(fenMFi;hAmO^>*fW-HXxgl2~$aMPDpuwI@ zEJc!zLv#Nv?0Xs1N^pG&vJBtRQScVJ(=BKeoereLf`A8)W3633k^(#~yq;e_`-nr4 zhLYWdDYs=beOp@rl!*f{XhBEf7(YM%_liwM$D|&EjYlezGEm4_xm8G}4d8sJ5pIO+ z+nDEo{ZAeNG|DJ>2KC*M%BFyJB~!Kbe&q)EhNLqiE;W^z$UK$bzHRYdnCU?B)=K7P zAdM*TDJiFO=L0pBOO<&-ehm*p$|`9}_~!yqr(w3ceQHlUotFwW1j{8e8bj5*-+_@9Ym+$^2ok2)}*e^GV^Z~@Ly%0P<5>YU~2Fvz#(0Ml%>m;E`i2Mfh;QB-`}q}@j0r| z${)g(Va8A~KPO9kT-=g7@u#AG_xP8aV9hr!aAbe5I7Eavg}5huT;ff6pyWP8>HhCOjW%(@n#SleV^L)L9%+=5JkcH=RFUZ(%#}9zdtOU)O8?Dq%HD z5jT-a@O7QSB8#GH@%j0l@=Kzo0Fk81f|$|HuKHNYAFg{8hLj-NYa_9eN*w@l6yrig z#c@wm0(1-v8f_REh@}F3-h{KVwdtX_M7%wpKK=7d{3rt{tR_&YO7+9&12uMVU{_&0lg&61tCZ;Qjk5jIaMMo9BCk literal 0 HcmV?d00001 diff --git a/public/sponsors/qrcode/wechat.svg b/public/sponsors/qrcode/wechat.svg new file mode 100644 index 0000000..cc31c13 --- /dev/null +++ b/public/sponsors/qrcode/wechat.svg @@ -0,0 +1,1041 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/scripts/new-post.js b/scripts/new-post.js new file mode 100644 index 0000000..891fbfb --- /dev/null +++ b/scripts/new-post.js @@ -0,0 +1,39 @@ +#!/usr/bin/env node +import { mkdirSync, writeFileSync, existsSync } from 'node:fs' +import { join, resolve } from 'node:path' + +const name = process.argv[2] +if (!name) { + console.error('Usage: pnpm new-post ') + process.exit(1) +} + +const now = new Date() +const date = now.toISOString().slice(0, 10) + +const dir = resolve('content/posts', name) +const file = join(dir, 'index.md') +const imgDir = join(dir, 'img') + +if (existsSync(file)) { + console.error(`Already exists: ${file}`) + process.exit(1) +} + +mkdirSync(dir, { recursive: true }) +mkdirSync(imgDir, { recursive: true }) + +const content = `--- +title: ${name} +published: ${date} +description: +image: /posts/${name}/img/cover.jpg +draft: false +--- + +在这里写文章内容... +` + +writeFileSync(file, content, 'utf8') +console.log(`Created: ${file}`) +console.log(`Image dir: ${imgDir}`) diff --git a/server/routes/api/wyy.ts b/server/routes/api/wyy.ts new file mode 100644 index 0000000..ee67911 --- /dev/null +++ b/server/routes/api/wyy.ts @@ -0,0 +1,8 @@ +export default defineEventHandler(async () => { + try { + const raw = await $fetch('https://keai.icu/apiwyy/api', { responseType: 'text' }) + return JSON.parse(raw as string) + } catch { + return null + } +}) diff --git a/server/routes/posts/[slug]/img/[...file].ts b/server/routes/posts/[slug]/img/[...file].ts new file mode 100644 index 0000000..5ecfa63 --- /dev/null +++ b/server/routes/posts/[slug]/img/[...file].ts @@ -0,0 +1,39 @@ +import { readFile } from 'node:fs/promises' +import { resolve, extname } from 'node:path' +import { existsSync } from 'node:fs' + +const MIME: Record = { + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.png': 'image/png', + '.gif': 'image/gif', + '.webp': 'image/webp', + '.avif': 'image/avif', + '.svg': 'image/svg+xml', +} + +export default defineEventHandler(async (event) => { + const url = getRequestURL(event) + const pathMatch = url.pathname.match(/^\/posts\/([a-z0-9-]+)\/img\/(.+)$/) + if (!pathMatch) return + + const [, slug, filename] = pathMatch + + // 防止路径遍历攻击 + if (filename.includes('..') || filename.includes('/') || filename.includes('\\')) { + throw createError({ statusCode: 400 }) + } + + const ext = extname(filename).toLowerCase() + if (!MIME[ext]) return + + const filePath = resolve('content/posts', slug, 'img', filename) + if (!existsSync(filePath)) { + throw createError({ statusCode: 404 }) + } + + const data = await readFile(filePath) + setResponseHeader(event, 'content-type', MIME[ext]) + setResponseHeader(event, 'cache-control', 'public, max-age=31536000') + return data +}) diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..42afb16 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,19 @@ +import type { Config } from 'tailwindcss' + +export default { + darkMode: 'class', + content: [ + './components/**/*.{vue,ts}', + './layouts/**/*.vue', + './pages/**/*.vue', + './composables/**/*.ts', + './config/**/*.ts', + './app.vue', + ], + theme: { + extend: {}, + }, + plugins: [ + require('@tailwindcss/typography'), + ], +} satisfies Config diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..4b34df1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./.nuxt/tsconfig.json" +} diff --git a/utils/content-ast.ts b/utils/content-ast.ts new file mode 100644 index 0000000..304dc20 --- /dev/null +++ b/utils/content-ast.ts @@ -0,0 +1,116 @@ +/** + * Nuxt Content v3 (minimark) AST 工具函数 + * 集中管理 body AST 的文本提取、标题提取、slugify 等操作 + */ + +// --- 文本提取 --- + +const SKIP_TAGS = new Set(['style', 'script', 'pre', 'code', 'head', 'meta', 'link']) + +export function extractTextFromAst(node: any): string { + if (!node) return '' + if (typeof node === 'string') return node + if (Array.isArray(node)) { + const tag = typeof node[0] === 'string' ? node[0] : '' + if (SKIP_TAGS.has(tag)) return '' + const start = typeof node[1] === 'object' && !Array.isArray(node[1]) && node[1] !== null ? 2 : 1 + return node.slice(start).map(extractTextFromAst).join('') + } + if (typeof node === 'object') { + if (typeof node.value === 'string') return node.value + if (node.children) return extractTextFromAst(node.children) + if (node.value) return extractTextFromAst(node.value) + } + return '' +} + +// --- 标题提取 --- + +export interface Heading { + id: string + text: string + level: number +} + +function extractTextFromNode(node: any): string { + if (!node) return '' + if (typeof node === 'string') return node + if (Array.isArray(node)) return node.map(extractTextFromNode).join('') + if (typeof node === 'object') { + if (typeof node.value === 'string') return node.value + if (node.children) return extractTextFromNode(node.children) + } + return '' +} + +export function extractHeadings(node: any, list: Heading[] = []): Heading[] { + if (!node) return list + if (Array.isArray(node)) { + if (typeof node[0] === 'string' && /^h[1-6]$/.test(node[0])) { + const level = Number(node[0].charAt(1)) + const props = typeof node[1] === 'object' && !Array.isArray(node[1]) ? node[1] : {} + const childStart = typeof node[1] === 'object' && !Array.isArray(node[1]) ? 2 : 1 + const text = node.slice(childStart).map(extractTextFromNode).join('').trim() + if (text) { + list.push({ id: props.id || slugify(text), text, level }) + } + } + for (const child of node) { + if (Array.isArray(child) || (typeof child === 'object' && child !== null)) { + extractHeadings(child, list) + } + } + return list + } + if (typeof node === 'object') { + const tag = node.tag || node.type + if (tag && /^h[1-6]$/.test(tag)) { + const level = Number(tag.charAt(1)) + const text = extractTextFromNode(node).trim() + if (text) { + list.push({ id: node.props?.id || slugify(text), text, level }) + } + } + if (node.children) extractHeadings(node.children, list) + if (node.value) extractHeadings(node.value, list) + if (node.body) extractHeadings(node.body, list) + } + return list +} + +// --- slugify --- + +export function slugify(text: string): string { + return text + .trim() + .toLowerCase() + .replace(/[\s ]+/g, '-') + .replace(/[^\p{L}\p{N}\-]/gu, '') + .replace(/-+/g, '-') + .replace(/^-|-$/g, '') || 'section' +} + +// --- 去重(给 heading id 加后缀)--- + +export function deduplicateIds(list: Heading[]): Heading[] { + const seen = new Map() + for (const h of list) { + if (seen.has(h.id)) { + const n = (seen.get(h.id) || 1) + 1 + seen.set(h.id, n) + h.id = `${h.id}-${n}` + } else { + seen.set(h.id, 1) + } + } + return list +} + +// --- 从 body 提取所有标题(去重后)--- + +export function getHeadingsFromBody(body: Record | null | undefined): Heading[] { + if (!body) return [] + const list: Heading[] = [] + extractHeadings(body.value || body, list) + return deduplicateIds(list) +}