diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index e70c0de..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,6 +2,5 @@
-
\ No newline at end of file
diff --git a/blog-wot-uniapp/.cursor/rules/Code-Standards.mdc b/blog-wot-uniapp/.cursor/rules/Code-Standards.mdc
new file mode 100644
index 0000000..66a5cb3
--- /dev/null
+++ b/blog-wot-uniapp/.cursor/rules/Code-Standards.mdc
@@ -0,0 +1,9 @@
+---
+description:
+alwaysApply: true
+---
+
+1. 写代码的时候要补充详细的中文注释(每个方法是干嘛的,为什么要这样写),如果是工作区,则所有项目都适用该规则
+2. 注意不要生成太多的空行,上一部分代码和下一部分代码中间的空行不要大于2行
+3. 有封装好的方法、组件需要复用,不要重复造轮子
+4. 小程序端的抽屉全部需要用page-container来防止用户意外退出页面
diff --git a/blog-wot-uniapp/.cursor/rules/wot-ui.mdc b/blog-wot-uniapp/.cursor/rules/wot-ui.mdc
new file mode 100644
index 0000000..245bf75
--- /dev/null
+++ b/blog-wot-uniapp/.cursor/rules/wot-ui.mdc
@@ -0,0 +1,12 @@
+---
+description: 小程序端优先使用 wot-ui 组件
+alwaysApply: true
+---
+
+# Wot UI 使用规范(blog-wot-uniapp)
+
+1. UI 优先使用 `@wot-ui/ui` 已有组件(`wd-*`),例如底部菜单用 `wd-action-sheet`,对话框用 `wd-dialog`,表单用 `wd-input` / `wd-button`。
+2. 现有组件能力不足时:先二次封装(在 wot 外包一层交互与 art 样式,如 `ArtMenuItem`),再自研通用组件,放到主包 `components/` 或分包 `components/`。
+3. 禁止为同一交互再造一套原生弹层/列表(例如自写底部菜单替代 `wd-action-sheet`)。
+4. 抽屉类仍遵守工作区规则:小程序端用 `page-container`,防止用户意外退出页面。
+5. C 端视觉用 art token / `themeVars` 覆盖 wot 主题色与深色背景,而不是放弃 wot 组件。
diff --git a/blog-wot-uniapp/.cursor/skill/wot-ui-v2/SKILL.md b/blog-wot-uniapp/.cursor/skill/wot-ui-v2/SKILL.md
new file mode 100644
index 0000000..5cf4dcd
--- /dev/null
+++ b/blog-wot-uniapp/.cursor/skill/wot-ui-v2/SKILL.md
@@ -0,0 +1,46 @@
+---
+name: wot-ui-v2
+description: '回答、生成、重构、排查 wot-ui v2 相关代码时使用。关键词:wot-ui、uni-app、Vue3、wd-、ConfigProvider、useToast、useDialog、Form、Popup、theme、llms-full。适用于组件选型、API 查询、示例页面生成、主题定制、常见坑排查。'
+argument-hint: '组件名、页面场景、问题描述或主题定制需求'
+---
+
+# Wot UI V2 Skill
+
+这个 skill 用于让 Agent 在处理 wot-ui v2 相关任务时,优先采用组件库既有能力、遵守 uni-app 场景限制,并结合本仓库提供的 `wot` CLI 查询离线知识。
+
+## 适用场景
+
+- 用户询问某个 `wd-*` 组件的基础用法、属性、事件、插槽或样式变量。
+- 需要生成或重构 `uni-app + Vue 3 + TypeScript` 的 wot-ui 页面或组件代码。
+- 需要在 `ConfigProvider`、主题变量、暗黑模式、国际化、反馈类 hooks、表单等场景下给出正确做法。
+- 需要排查文档中常见的 `Toast`、`Dialog`、`Popup`、`Tabs`、`Slider`、样式覆盖问题。
+- 用户只是泛化地提到主题定制,但还没有明确要求按“单文件主题 SCSS + App.vue 只 `@use`”的结构生成时。
+
+## 推荐流程
+
+1. 先用本仓库 CLI 或 MCP 工具查组件知识。
+2. 再根据项目实际安装方式决定导入路径与集成方式。
+3. 优先复用现成的 `wd-*` 组件、hooks、主题变量与组合模式,不要退化成原生标签堆砌。
+4. 如果问题涉及约束或坑位,再查阅 [参考知识](./references/overview.md)。
+5. 如果用户明确要求生成 `src/themes/styles/{主题名}.scss` 单文件主题,并把挂载逻辑收进主题文件,优先切换到 `create-wot-ui-theme` skill。
+
+## 查询顺序
+
+1. `wot list` 找组件名。
+2. `wot info ` 看 props、events、slots、CSS 变量。
+3. `wot demo ` 看 demo 名称或具体 demo 代码。
+4. `wot doc ` 看完整 markdown 文档。
+5. `wot token ` 看主题变量。
+
+## 工作规则
+
+- 默认把 wot-ui 视为 `uni-app + Vue 3 + TypeScript` 组件库。
+- 写页面时优先输出 `script setup` 风格。
+- 反馈类能力如 `useToast`、`useDialog`、`useNotify`、`useImagePreview`、`useVideoPreview`,除了 hook 调用外,通常还需要页面内显式声明对应组件实例。
+- 文档里经常出现 `@/uni_modules/wot-ui` 导入路径;如果用户项目采用 npm 安装,应切换成 `@wot-ui/ui`。
+- 主题定制优先走 `ConfigProvider` 和 CSS 变量,不优先建议深度覆盖内部类名。
+- 生成代码时尽量沿用组件库文档里的命名和交互模式,例如 `v-model:visible`、`before-confirm`、`confirm`、`change`、`custom-class`、`custom-style`。
+
+## 参考资料
+
+- [Wot UI V2 概览](./references/overview.md)
diff --git a/blog-wot-uniapp/.cursor/skill/wot-ui-v2/references/overview.md b/blog-wot-uniapp/.cursor/skill/wot-ui-v2/references/overview.md
new file mode 100644
index 0000000..e997320
--- /dev/null
+++ b/blog-wot-uniapp/.cursor/skill/wot-ui-v2/references/overview.md
@@ -0,0 +1,85 @@
+# Wot UI V2 Overview
+
+本文件根据 wot-ui v2 的 `llms-full.txt` 与本仓库现有 CLI 工作流提炼,目标是帮助 Agent 快速掌握适合生成代码与回答问题的高价值知识,而不是逐字复制官方文档。
+
+## Product Positioning
+
+- Wot UI v2 是面向 `uni-app` 的 `Vue 3 + TypeScript` 组件库。
+- 覆盖微信小程序、支付宝小程序、钉钉小程序、H5、APP 等平台。
+- 组件命名统一为 `wd-*`。
+- 组件库强调 AI 友好、主题定制、暗黑模式、国际化与跨端一致性。
+
+## Installation And Integration
+
+- npm 安装:`pnpm add @wot-ui/ui`
+- 使用前需要安装 `sass`。
+- `uni_modules` 安装模式天然支持 easycom 自动引入。
+- npm 安装模式通常需要配置 vite resolver 或 easycom。
+- CLI 项目在 npm 模式下可在 `tsconfig.json` 中加入 `@wot-ui/ui/global` 以增强全局组件类型提示。
+
+## Import Rules
+
+- npm 安装项目:组合式函数、类型和工具优先从 `@wot-ui/ui` 导入。
+- `uni_modules` 安装项目:文档中的 `@/uni_modules/wot-ui` 路径通常可直接使用。
+- 官方文档示例很多基于 `uni_modules` 路径,回答时要按用户项目实际安装方式转换。
+
+## High Value Conventions
+
+- 反馈类组件不能依赖全局挂载。页面内通常需要显式写出 `wd-toast`、`wd-dialog`、`wd-notify`、`wd-image-preview`、`wd-video-preview` 等实例。
+- `useToast`、`useDialog`、`useNotify`、`useQueue` 等 hooks 基于 `provide/inject`,应在 `setup` 中调用。
+- 页面内如果存在多个 `wd-dialog` 或 `wd-toast`,需要通过 `selector` 区分,否则可能出现实例冲突或重复弹出。
+- 自定义组件中如果要覆盖 wot-ui 内部样式,小程序环境通常需要把组件配置为 `styleIsolation: 'shared'`。
+- 在 `Popup`、`ActionSheet`、`DropDownItem` 等延迟渲染弹层里使用 `Slider`、`Tabs` 等依赖尺寸计算的组件时,打开后应调用实例方法重新初始化,例如 `initSlider()` 或 `updateLineStyle()`。
+
+## Theme And Styling
+
+- 主题定制优先走 CSS 变量。
+- Design Token 分三层:基础变量、语义变量、组件变量。
+- 局部或全局主题可通过 `wd-config-provider` 的 `theme` 和 `theme-vars` 控制。
+- 深色模式通过 `wd-config-provider theme="dark"` 开启。
+- 更推荐覆盖语义变量或组件变量,不推荐优先依赖深层 class 选择器覆盖。
+
+## Common UI Patterns
+
+- 表单场景优先组合 `wd-form`、`wd-form-item`、`wd-input`、`wd-textarea`、`wd-picker`、`wd-calendar`、`wd-select-picker`。
+- 弹层类场景优先使用 `wd-popup`、`wd-dialog`、`wd-action-sheet`、`wd-tooltip`、`wd-popover`。
+- 反馈类场景优先使用 `useToast`、`useDialog`、`useNotify`,不要直接手写临时弹层。
+- 列表和展示类场景优先考虑 `wd-cell`、`wd-card`、`wd-tag`、`wd-badge`、`wd-empty`、`wd-loadmore`、`wd-skeleton`。
+- 导航与布局类场景优先考虑 `wd-navbar`、`wd-tabs`、`wd-tabbar`、`wd-sidebar`、`wd-row`、`wd-col`、`wd-gap`。
+
+## Interaction Patterns
+
+- 大量组件采用 `v-model` 或 `v-model:visible` 控制状态。
+- 表单和选择类组件普遍提供 `confirm`、`change`、`close` 等事件。
+- 反馈组件常通过 hook 返回方法对象,例如 `toast.success()`、`dialog.confirm()`。
+- `Popover`、`Tooltip`、`SwipeAction` 等场景常与 `useQueue().closeOutside()` 配合,实现点击外部关闭。
+
+## Component Selection Hints
+
+- 需要主操作按钮时用 `wd-button`,不要先写原生 `button`。
+- 需要列表入口、设置页、表单容器时优先用 `wd-cell` 和 `wd-cell-group`。
+- 需要轻量提示时优先用 `useToast`;需要确认交互时优先用 `useDialog`。
+- 需要单选或多选弹层时优先用 `wd-select-picker`、`wd-picker`、`wd-cascader`。
+- 需要统一主题或暗黑模式时优先用 `wd-config-provider`。
+
+## Common Pitfalls
+
+- `Toast`、`Dialog` 等函数式调用没有效果,先检查页面里是否声明了对应组件实例。
+- 同一个页面里多个无 `selector` 的反馈组件可能相互干扰。
+- npm 模式使用国际化时,开发态可能需要在 Vite 的 `optimizeDeps.exclude` 中排除 `@wot-ui/ui`。
+- 文档里的导入路径和项目实际安装方式不一致时,回答要主动修正。
+- 在弹层中直接渲染依赖尺寸测量的组件时,初始化时机往往比 API 本身更关键。
+
+## AI Response Heuristics
+
+- 回答基础用法时,优先给最小可运行模板,再补充常用 props。
+- 生成页面时,优先给完整的 `template + script setup + style` 结构。
+- 如果项目已使用 wot-ui,不要建议换用其他 UI 库。
+- 如果 wot-ui 已有现成组件,就不要用原生结构重复造轮子。
+- 如果用户只问某个组件,优先给该组件最常见 3 到 5 个用法,不要把整份文档全部展开。
+
+## Repo-Specific Workflow
+
+- 在本仓库中,优先使用 `wot list`、`wot info`、`wot doc`、`wot demo`、`wot token` 获取组件知识。
+- 当仓库数据与线上文档不一致时,以用户目标为准,并明确指出仓库离线数据可能需要重新提取。
+- 若要补数据或修提取逻辑,关注 `scripts/extract.ts`、`data/v2.json`、`src/data/*` 与相应命令实现。
diff --git a/blog-wot-uniapp/.env.development b/blog-wot-uniapp/.env.development
new file mode 100644
index 0000000..cb5e7f2
--- /dev/null
+++ b/blog-wot-uniapp/.env.development
@@ -0,0 +1,2 @@
+VITE_API_BASE=http://127.0.0.1:8081/api
+VITE_UPLOAD_BASE=http://127.0.0.1:8081
diff --git a/blog-wot-uniapp/.env.production b/blog-wot-uniapp/.env.production
new file mode 100644
index 0000000..e82e1ef
--- /dev/null
+++ b/blog-wot-uniapp/.env.production
@@ -0,0 +1,2 @@
+VITE_API_BASE=https://blog.nailaoyun.cn/api
+VITE_UPLOAD_BASE=https://blog.nailaoyun.cn
diff --git a/blog-wot-uniapp/.gitignore b/blog-wot-uniapp/.gitignore
new file mode 100644
index 0000000..69c9a5b
--- /dev/null
+++ b/blog-wot-uniapp/.gitignore
@@ -0,0 +1,21 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+*.local
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/blog-wot-uniapp/.npmrc b/blog-wot-uniapp/.npmrc
new file mode 100644
index 0000000..d8b8386
--- /dev/null
+++ b/blog-wot-uniapp/.npmrc
@@ -0,0 +1,3 @@
+strict-peer-dependencies=false
+auto-install-peers=true
+shamefully-hoist=true
diff --git a/blog-wot-uniapp/.vscode/extensions.json b/blog-wot-uniapp/.vscode/extensions.json
new file mode 100644
index 0000000..be94366
--- /dev/null
+++ b/blog-wot-uniapp/.vscode/extensions.json
@@ -0,0 +1,15 @@
+{
+ "recommendations": [
+ "vue.volar",
+ "mrmaoddxxaa.create-uniapp-view",
+ "uni-helper.uni-helper-vscode",
+ "uni-helper.uni-app-schemas-vscode",
+ "uni-helper.uni-highlight-vscode",
+ "uni-helper.uni-ui-snippets-vscode",
+ "uni-helper.uni-app-snippets-vscode",
+ "uni-helper.uni-cloud-snippets-vscode",
+ "yoavbls.pretty-ts-errors",
+ "johnsoncodehk.vscode-tsconfig-helper",
+ "dbaeumer.vscode-eslint"
+ ]
+}
diff --git a/blog-wot-uniapp/.vscode/settings.json b/blog-wot-uniapp/.vscode/settings.json
new file mode 100644
index 0000000..d4bc414
--- /dev/null
+++ b/blog-wot-uniapp/.vscode/settings.json
@@ -0,0 +1,37 @@
+{
+ "files.associations": {
+ "pages.json": "jsonc",
+ "manifest.json": "jsonc"
+ },
+ "editor.codeActionsOnSave": {
+ "source.fixAll.eslint": "explicit",
+ "source.organizeImports": "never"
+ },
+ "prettier.enable": false,
+ "editor.formatOnSave": false,
+ "eslint.validate": [
+ "javascript",
+ "javascriptreact",
+ "typescript",
+ "typescriptreact",
+ "vue",
+ "nvue",
+ "uvue",
+ "html",
+ "markdown",
+ "json",
+ "jsonc",
+ "yaml",
+ "toml",
+ "xml",
+ "gql",
+ "graphql",
+ "astro",
+ "svelte",
+ "css",
+ "less",
+ "scss",
+ "pcss",
+ "postcss"
+ ]
+}
diff --git a/blog-wot-uniapp/components.d.ts b/blog-wot-uniapp/components.d.ts
new file mode 100644
index 0000000..94b55a7
--- /dev/null
+++ b/blog-wot-uniapp/components.d.ts
@@ -0,0 +1,39 @@
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// Generated by vite-plugin-uni-components
+// Read more: https://github.com/vuejs/core/pull/3399
+export {}
+
+declare module 'vue' {
+ export interface GlobalComponents {
+ AmbientBackground: typeof import('./src/components/c-end/AmbientBackground.vue')['default']
+ AppFloatingTabbar: typeof import('./src/components/layout/AppFloatingTabbar.vue')['default']
+ AppNavbar: typeof import('./src/components/layout/AppNavbar.vue')['default']
+ AppPageShell: typeof import('./src/components/layout/AppPageShell.vue')['default']
+ ArtMenuGroup: typeof import('./src/components/c-end/ArtMenuGroup.vue')['default']
+ ArtMenuItem: typeof import('./src/components/c-end/ArtMenuItem.vue')['default']
+ ArtSearchBar: typeof import('./src/components/c-end/ArtSearchBar.vue')['default']
+ PostCard: typeof import('./src/components/c-end/PostCard.vue')['default']
+ ProfileHero: typeof import('./src/components/c-end/ProfileHero.vue')['default']
+ WdButton: typeof import('@wot-ui/ui/components/wd-button/wd-button.vue')['default']
+ WdConfigProvider: typeof import('@wot-ui/ui/components/wd-config-provider/wd-config-provider.vue')['default']
+ WdDialog: typeof import('@wot-ui/ui/components/wd-dialog/wd-dialog.vue')['default']
+ WdEmpty: typeof import('@wot-ui/ui/components/wd-empty/wd-empty.vue')['default']
+ WdForm: typeof import('@wot-ui/ui/components/wd-form/wd-form.vue')['default']
+ WdIcon: typeof import('@wot-ui/ui/components/wd-icon/wd-icon.vue')['default']
+ WdInput: typeof import('@wot-ui/ui/components/wd-input/wd-input.vue')['default']
+ WdLoading: typeof import('@wot-ui/ui/components/wd-loading/wd-loading.vue')['default']
+ WdLoadmore: typeof import('@wot-ui/ui/components/wd-loadmore/wd-loadmore.vue')['default']
+ WdNavbar: typeof import('@wot-ui/ui/components/wd-navbar/wd-navbar.vue')['default']
+ WdPicker: typeof import('@wot-ui/ui/components/wd-picker/wd-picker.vue')['default']
+ WdPopup: typeof import('@wot-ui/ui/components/wd-popup/wd-popup.vue')['default']
+ WdSwitch: typeof import('@wot-ui/ui/components/wd-switch/wd-switch.vue')['default']
+ WdTab: typeof import('@wot-ui/ui/components/wd-tab/wd-tab.vue')['default']
+ WdTabbar: typeof import('@wot-ui/ui/components/wd-tabbar/wd-tabbar.vue')['default']
+ WdTabbarItem: typeof import('@wot-ui/ui/components/wd-tabbar-item/wd-tabbar-item.vue')['default']
+ WdTabs: typeof import('@wot-ui/ui/components/wd-tabs/wd-tabs.vue')['default']
+ WdTextarea: typeof import('@wot-ui/ui/components/wd-textarea/wd-textarea.vue')['default']
+ WdToast: typeof import('@wot-ui/ui/components/wd-toast/wd-toast.vue')['default']
+ }
+}
diff --git a/blog-wot-uniapp/design-system/年糕崽崽/MASTER.md b/blog-wot-uniapp/design-system/年糕崽崽/MASTER.md
new file mode 100644
index 0000000..3dde419
--- /dev/null
+++ b/blog-wot-uniapp/design-system/年糕崽崽/MASTER.md
@@ -0,0 +1,203 @@
+# Design System Master File
+
+> **LOGIC:** When building a specific page, first check `design-system/pages/[page-name].md`.
+> If that file exists, its rules **override** this Master file.
+> If not, strictly follow the rules below.
+
+---
+
+**Project:** 年糕崽崽
+**Generated:** 2026-07-27 14:56:05
+**Category:** Digital Products/Downloads
+
+---
+
+## Global Rules
+
+### Color Palette
+
+| Role | Hex | CSS Variable |
+|------|-----|--------------|
+| Primary | `#6366F1` | `--color-primary` |
+| Secondary | `#818CF8` | `--color-secondary` |
+| CTA/Accent | `#22C55E` | `--color-cta` |
+| Background | `#EEF2FF` | `--color-background` |
+| Text | `#312E81` | `--color-text` |
+
+**Color Notes:** Digital indigo + buy green
+
+### Typography
+
+- **Heading Font:** Archivo
+- **Body Font:** Space Grotesk
+- **Mood:** minimal, portfolio, designer, creative, clean, artistic
+- **Google Fonts:** [Archivo + Space Grotesk](https://fonts.google.com/share?selection.family=Archivo:wght@300;400;500;600;700|Space+Grotesk:wght@300;400;500;600;700)
+
+**CSS Import:**
+```css
+@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@300;400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
+```
+
+### Spacing Variables
+
+| Token | Value | Usage |
+|-------|-------|-------|
+| `--space-xs` | `4px` / `0.25rem` | Tight gaps |
+| `--space-sm` | `8px` / `0.5rem` | Icon gaps, inline spacing |
+| `--space-md` | `16px` / `1rem` | Standard padding |
+| `--space-lg` | `24px` / `1.5rem` | Section padding |
+| `--space-xl` | `32px` / `2rem` | Large gaps |
+| `--space-2xl` | `48px` / `3rem` | Section margins |
+| `--space-3xl` | `64px` / `4rem` | Hero padding |
+
+### Shadow Depths
+
+| Level | Value | Usage |
+|-------|-------|-------|
+| `--shadow-sm` | `0 1px 2px rgba(0,0,0,0.05)` | Subtle lift |
+| `--shadow-md` | `0 4px 6px rgba(0,0,0,0.1)` | Cards, buttons |
+| `--shadow-lg` | `0 10px 15px rgba(0,0,0,0.1)` | Modals, dropdowns |
+| `--shadow-xl` | `0 20px 25px rgba(0,0,0,0.15)` | Hero images, featured cards |
+
+---
+
+## Component Specs
+
+### Buttons
+
+```css
+/* Primary Button */
+.btn-primary {
+ background: #22C55E;
+ color: white;
+ padding: 12px 24px;
+ border-radius: 8px;
+ font-weight: 600;
+ transition: all 200ms ease;
+ cursor: pointer;
+}
+
+.btn-primary:hover {
+ opacity: 0.9;
+ transform: translateY(-1px);
+}
+
+/* Secondary Button */
+.btn-secondary {
+ background: transparent;
+ color: #6366F1;
+ border: 2px solid #6366F1;
+ padding: 12px 24px;
+ border-radius: 8px;
+ font-weight: 600;
+ transition: all 200ms ease;
+ cursor: pointer;
+}
+```
+
+### Cards
+
+```css
+.card {
+ background: #EEF2FF;
+ border-radius: 12px;
+ padding: 24px;
+ box-shadow: var(--shadow-md);
+ transition: all 200ms ease;
+ cursor: pointer;
+}
+
+.card:hover {
+ box-shadow: var(--shadow-lg);
+ transform: translateY(-2px);
+}
+```
+
+### Inputs
+
+```css
+.input {
+ padding: 12px 16px;
+ border: 1px solid #E2E8F0;
+ border-radius: 8px;
+ font-size: 16px;
+ transition: border-color 200ms ease;
+}
+
+.input:focus {
+ border-color: #6366F1;
+ outline: none;
+ box-shadow: 0 0 0 3px #6366F120;
+}
+```
+
+### Modals
+
+```css
+.modal-overlay {
+ background: rgba(0, 0, 0, 0.5);
+ backdrop-filter: blur(4px);
+}
+
+.modal {
+ background: white;
+ border-radius: 16px;
+ padding: 32px;
+ box-shadow: var(--shadow-xl);
+ max-width: 500px;
+ width: 90%;
+}
+```
+
+---
+
+## Style Guidelines
+
+**Style:** Vibrant & Block-based
+
+**Keywords:** Bold, energetic, playful, block layout, geometric shapes, high color contrast, duotone, modern, energetic
+
+**Best For:** Startups, creative agencies, gaming, social media, youth-focused, entertainment, consumer
+
+**Key Effects:** Large sections (48px+ gaps), animated patterns, bold hover (color shift), scroll-snap, large type (32px+), 200-300ms
+
+### Page Pattern
+
+**Pattern Name:** Portfolio Grid
+
+- **Conversion Strategy:** hover overlay info, lightbox view, Visuals first. Filter by category. Fast loading essential.
+- **CTA Placement:** Project Card Hover + Footer Contact
+- **Section Order:** 1. Hero (Name/Role), 2. Project Grid (Masonry), 3. About/Philosophy, 4. Contact
+
+---
+
+## Anti-Patterns (Do NOT Use)
+
+- ❌ No preview
+- ❌ Slow delivery
+
+### Additional Forbidden Patterns
+
+- ❌ **Emojis as icons** — Use SVG icons (Heroicons, Lucide, Simple Icons)
+- ❌ **Missing cursor:pointer** — All clickable elements must have cursor:pointer
+- ❌ **Layout-shifting hovers** — Avoid scale transforms that shift layout
+- ❌ **Low contrast text** — Maintain 4.5:1 minimum contrast ratio
+- ❌ **Instant state changes** — Always use transitions (150-300ms)
+- ❌ **Invisible focus states** — Focus states must be visible for a11y
+
+---
+
+## Pre-Delivery Checklist
+
+Before delivering any UI code, verify:
+
+- [ ] No emojis used as icons (use SVG instead)
+- [ ] All icons from consistent icon set (Heroicons/Lucide)
+- [ ] `cursor-pointer` on all clickable elements
+- [ ] Hover states with smooth transitions (150-300ms)
+- [ ] Light mode: text contrast 4.5:1 minimum
+- [ ] Focus states visible for keyboard navigation
+- [ ] `prefers-reduced-motion` respected
+- [ ] Responsive: 375px, 768px, 1024px, 1440px
+- [ ] No content hidden behind fixed navbars
+- [ ] No horizontal scroll on mobile
diff --git a/blog-wot-uniapp/design-system/年糕崽崽/pages/mine.md b/blog-wot-uniapp/design-system/年糕崽崽/pages/mine.md
new file mode 100644
index 0000000..2ee5f68
--- /dev/null
+++ b/blog-wot-uniapp/design-system/年糕崽崽/pages/mine.md
@@ -0,0 +1,52 @@
+# Mine Page Overrides
+
+> **PROJECT:** 年糕崽崽
+> **Generated:** 2026-07-27 14:56:05
+> **Page Type:** Blog / Article
+
+> ⚠️ **IMPORTANT:** Rules in this file **override** the Master file (`design-system/MASTER.md`).
+> Only deviations from the Master are documented here. For all other rules, refer to the Master.
+
+---
+
+## Page-Specific Rules
+
+### Layout Overrides
+
+- **Max Width:** 1200px (standard)
+- **Layout:** Full-width sections, centered content
+- **Sections:** 1. Hero (Name/Role), 2. Project Grid (Masonry), 3. About/Philosophy, 4. Contact
+
+### Spacing Overrides
+
+- No overrides — use Master spacing
+
+### Typography Overrides
+
+- No overrides — use Master typography
+
+### Color Overrides
+
+- **Strategy:** Neutral background (let work shine). Text: Black/White. Accent: Minimal.
+
+### Component Overrides
+
+- Avoid: Default keyboard for all inputs
+- Avoid: Desktop-first causing mobile issues
+- Avoid: Enable by default everywhere
+
+---
+
+## Page-Specific Components
+
+- No unique components for this page
+
+---
+
+## Recommendations
+
+- Effects: Press deformation (scale + squish), bounce-back (cubic-bezier), material response, haptic-like feedback, spring physics
+- Forms: Use inputmode attribute
+- Responsive: Start with mobile styles then add breakpoints
+- Touch: Disable where not needed
+- CTA Placement: Project Card Hover + Footer Contact
diff --git a/blog-wot-uniapp/eslint.config.js b/blog-wot-uniapp/eslint.config.js
new file mode 100644
index 0000000..9bdf2e1
--- /dev/null
+++ b/blog-wot-uniapp/eslint.config.js
@@ -0,0 +1,3 @@
+import uniHelper from '@uni-helper/eslint-config'
+
+export default uniHelper()
diff --git a/blog-wot-uniapp/index.html b/blog-wot-uniapp/index.html
new file mode 100644
index 0000000..f4960b1
--- /dev/null
+++ b/blog-wot-uniapp/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/package.json b/blog-wot-uniapp/package.json
new file mode 100644
index 0000000..4fb63e3
--- /dev/null
+++ b/blog-wot-uniapp/package.json
@@ -0,0 +1,94 @@
+{
+ "name": "blog-wot-uniapp",
+ "type": "module",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "uni",
+ "dev:app": "uni -p app",
+ "dev:app-android": "uni -p app-android",
+ "dev:app-ios": "uni -p app-ios",
+ "dev:custom": "uni -p",
+ "dev:h5": "uni",
+ "dev:h5:ssr": "uni --ssr",
+ "dev:mp-alipay": "uni -p mp-alipay",
+ "dev:mp-baidu": "uni -p mp-baidu",
+ "dev:mp-jd": "uni -p mp-jd",
+ "dev:mp-kuaishou": "uni -p mp-kuaishou",
+ "dev:mp-lark": "uni -p mp-lark",
+ "dev:mp-qq": "uni -p mp-qq",
+ "dev:mp-toutiao": "uni -p mp-toutiao",
+ "dev:mp-weixin": "uni -p mp-weixin",
+ "dev:quickapp-webview": "uni -p quickapp-webview",
+ "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
+ "dev:quickapp-webview-union": "uni -p quickapp-webview-union",
+ "build": "uni build",
+ "build:app": "uni build -p app",
+ "build:app-android": "uni build -p app-android",
+ "build:app-ios": "uni build -p app-ios",
+ "build:custom": "uni build -p",
+ "build:h5": "uni build",
+ "build:h5:ssr": "uni build --ssr",
+ "build:mp-alipay": "uni build -p mp-alipay",
+ "build:mp-baidu": "uni build -p mp-baidu",
+ "build:mp-jd": "uni build -p mp-jd",
+ "build:mp-kuaishou": "uni build -p mp-kuaishou",
+ "build:mp-lark": "uni build -p mp-lark",
+ "build:mp-qq": "uni build -p mp-qq",
+ "build:mp-toutiao": "uni build -p mp-toutiao",
+ "build:mp-weixin": "uni build -p mp-weixin",
+ "build:quickapp-webview": "uni build -p quickapp-webview",
+ "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
+ "build:quickapp-webview-union": "uni build -p quickapp-webview-union",
+ "type-check": "vue-tsc --noEmit",
+ "lint": "eslint .",
+ "lint:fix": "eslint . --fix"
+ },
+ "dependencies": {
+ "@dcloudio/uni-app": "3.0.0-4070620250821001",
+ "@dcloudio/uni-app-harmony": "3.0.0-4070620250821001",
+ "@dcloudio/uni-app-plus": "3.0.0-4070620250821001",
+ "@dcloudio/uni-components": "3.0.0-4070620250821001",
+ "@dcloudio/uni-h5": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-alipay": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-baidu": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-harmony": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-jd": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-kuaishou": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-lark": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-qq": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-toutiao": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-weixin": "3.0.0-4070620250821001",
+ "@dcloudio/uni-mp-xhs": "3.0.0-4070620250821001",
+ "@dcloudio/uni-quickapp-webview": "3.0.0-4070620250821001",
+ "@wot-ui/ui": "^2.2.0",
+ "highlight.js": "^11.11.1",
+ "marked": "^18.0.7",
+ "mp-html": "^2.5.2",
+ "pinia": "2.2.4",
+ "vue": "3.4.21",
+ "vue-i18n": "9.6.2"
+ },
+ "devDependencies": {
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
+ "@dcloudio/types": "^3.4.21",
+ "@dcloudio/uni-automator": "3.0.0-4070620250821001",
+ "@dcloudio/uni-cli-shared": "3.0.0-4070620250821001",
+ "@dcloudio/uni-stacktracey": "3.0.0-4070620250821001",
+ "@dcloudio/vite-plugin-uni": "3.0.0-4070620250821001",
+ "@mini-types/alipay": "^3.0.14",
+ "@types/node": "^24.5.2",
+ "@uni-helper/eslint-config": "^0.5.0",
+ "@uni-helper/plugin-uni": "0.1.0",
+ "@uni-helper/uni-types": "^1.0.0-alpha.6",
+ "@uni-helper/vite-plugin-uni-components": "^0.2.1",
+ "@vue/runtime-core": "3.4.21",
+ "@vue/tsconfig": "^0.8.1",
+ "eslint": "^9.36.0",
+ "miniprogram-api-typings": "^4.1.0",
+ "sass": "1.102.0",
+ "typescript": "^5.9.2",
+ "vite": "5.2.8",
+ "vue-tsc": "^3.0.7"
+ }
+}
\ No newline at end of file
diff --git a/blog-wot-uniapp/pnpm-lock.yaml b/blog-wot-uniapp/pnpm-lock.yaml
new file mode 100644
index 0000000..6d37274
--- /dev/null
+++ b/blog-wot-uniapp/pnpm-lock.yaml
@@ -0,0 +1,10584 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@dcloudio/uni-app':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(@dcloudio/types@3.4.21)(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-app-harmony':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-app-plus':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-components':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-h5':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-alipay':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-baidu':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(@dcloudio/types@3.4.21)(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-harmony':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-jd':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-kuaishou':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-lark':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-qq':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-toutiao':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-weixin':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-xhs':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-quickapp-webview':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@wot-ui/ui':
+ specifier: ^2.2.0
+ version: 2.2.0(vue@3.4.21(typescript@5.9.2))
+ highlight.js:
+ specifier: ^11.11.1
+ version: 11.11.1
+ marked:
+ specifier: ^18.0.7
+ version: 18.0.7
+ mp-html:
+ specifier: ^2.5.2
+ version: 2.5.2
+ pinia:
+ specifier: 2.2.4
+ version: 2.2.4(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ vue:
+ specifier: 3.4.21
+ version: 3.4.21(typescript@5.9.2)
+ vue-i18n:
+ specifier: 9.6.2
+ version: 9.6.2(vue@3.4.21(typescript@5.9.2))
+ devDependencies:
+ '@babel/plugin-proposal-private-property-in-object':
+ specifier: ^7.21.11
+ version: 7.21.11(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@dcloudio/types':
+ specifier: ^3.4.21
+ version: 3.4.21
+ '@dcloudio/uni-automator':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(jest-environment-node@27.5.1)(jest@27.0.4(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-cli-shared':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-stacktracey':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001
+ '@dcloudio/vite-plugin-uni':
+ specifier: 3.0.0-4070620250821001
+ version: 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@mini-types/alipay':
+ specifier: ^3.0.14
+ version: 3.0.14
+ '@types/node':
+ specifier: ^24.5.2
+ version: 24.5.2
+ '@uni-helper/eslint-config':
+ specifier: ^0.5.0
+ version: 0.5.0(@antfu/eslint-config@5.4.1(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@uni-helper/plugin-uni':
+ specifier: 0.1.0
+ version: 0.1.0(@dcloudio/vite-plugin-uni@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2)))
+ '@uni-helper/uni-types':
+ specifier: ^1.0.0-alpha.6
+ version: 1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(@uni-helper/uni-cloud-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(@uni-helper/uni-ui-types@1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ '@uni-helper/vite-plugin-uni-components':
+ specifier: ^0.2.1
+ version: 0.2.3(rollup@4.52.2)(supports-color@8.1.1)
+ '@vue/runtime-core':
+ specifier: 3.4.21
+ version: 3.4.21
+ '@vue/tsconfig':
+ specifier: ^0.8.1
+ version: 0.8.1(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ eslint:
+ specifier: ^9.36.0
+ version: 9.36.0(supports-color@8.1.1)
+ miniprogram-api-typings:
+ specifier: ^4.1.0
+ version: 4.1.0
+ sass:
+ specifier: 1.102.0
+ version: 1.102.0
+ typescript:
+ specifier: ^5.9.2
+ version: 5.9.2
+ vite:
+ specifier: 5.2.8
+ version: 5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0)
+ vue-tsc:
+ specifier: ^3.0.7
+ version: 3.0.8(typescript@5.9.2)
+
+packages:
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@antfu/eslint-config@5.4.1':
+ resolution: {integrity: sha512-x7BiNkxJRlXXs8tIvg0CgMuNo5IZVWkGLMJotCtCtzWUHW78Pmm8PvtXhvLBbTc8683GGBK616MMztWLh4RNjA==}
+ hasBin: true
+ peerDependencies:
+ '@eslint-react/eslint-plugin': ^1.38.4
+ '@next/eslint-plugin-next': ^15.4.0-canary.115
+ '@prettier/plugin-xml': ^3.4.1
+ '@unocss/eslint-plugin': '>=0.50.0'
+ astro-eslint-parser: ^1.0.2
+ eslint: ^9.10.0
+ eslint-plugin-astro: ^1.2.0
+ eslint-plugin-format: '>=0.1.0'
+ eslint-plugin-jsx-a11y: '>=6.10.2'
+ eslint-plugin-react-hooks: ^5.2.0
+ eslint-plugin-react-refresh: ^0.4.19
+ eslint-plugin-solid: ^0.14.3
+ eslint-plugin-svelte: '>=2.35.1'
+ eslint-plugin-vuejs-accessibility: ^2.4.1
+ prettier-plugin-astro: ^0.14.0
+ prettier-plugin-slidev: ^1.0.5
+ svelte-eslint-parser: '>=0.37.0'
+ peerDependenciesMeta:
+ '@eslint-react/eslint-plugin':
+ optional: true
+ '@next/eslint-plugin-next':
+ optional: true
+ '@prettier/plugin-xml':
+ optional: true
+ '@unocss/eslint-plugin':
+ optional: true
+ astro-eslint-parser:
+ optional: true
+ eslint-plugin-astro:
+ optional: true
+ eslint-plugin-format:
+ optional: true
+ eslint-plugin-jsx-a11y:
+ optional: true
+ eslint-plugin-react-hooks:
+ optional: true
+ eslint-plugin-react-refresh:
+ optional: true
+ eslint-plugin-solid:
+ optional: true
+ eslint-plugin-svelte:
+ optional: true
+ eslint-plugin-vuejs-accessibility:
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-slidev:
+ optional: true
+ svelte-eslint-parser:
+ optional: true
+
+ '@antfu/install-pkg@1.1.0':
+ resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
+
+ '@antfu/utils@0.7.10':
+ resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
+
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.28.4':
+ resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.28.4':
+ resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.3':
+ resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.27.2':
+ resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-create-class-features-plugin@7.28.3':
+ resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-regexp-features-plugin@7.27.1':
+ resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-define-polyfill-provider@0.6.5':
+ resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.27.1':
+ resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.28.3':
+ resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-plugin-utils@7.27.1':
+ resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-remap-async-to-generator@7.27.1':
+ resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-replace-supers@7.27.1':
+ resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-wrap-function@7.28.3':
+ resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.28.4':
+ resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.28.4':
+ resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1':
+ resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1':
+ resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1':
+ resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1':
+ resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3':
+ resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.11':
+ resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-async-generators@7.8.4':
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-bigint@7.8.3':
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-class-properties@7.12.13':
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-class-static-block@7.14.5':
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-assertions@7.27.1':
+ resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.27.1':
+ resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-meta@7.10.4':
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-json-strings@7.8.3':
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-jsx@7.27.1':
+ resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4':
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3':
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3':
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3':
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5':
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-top-level-await@7.14.5':
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.27.1':
+ resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-arrow-functions@7.27.1':
+ resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-async-generator-functions@7.28.0':
+ resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-async-to-generator@7.27.1':
+ resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-block-scoped-functions@7.27.1':
+ resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-block-scoping@7.28.4':
+ resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-class-properties@7.27.1':
+ resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-class-static-block@7.28.3':
+ resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+
+ '@babel/plugin-transform-classes@7.28.4':
+ resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-computed-properties@7.27.1':
+ resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-destructuring@7.28.0':
+ resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-dotall-regex@7.27.1':
+ resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-duplicate-keys@7.27.1':
+ resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1':
+ resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-dynamic-import@7.27.1':
+ resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-explicit-resource-management@7.28.0':
+ resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-exponentiation-operator@7.27.1':
+ resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-export-namespace-from@7.27.1':
+ resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-for-of@7.27.1':
+ resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-function-name@7.27.1':
+ resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-json-strings@7.27.1':
+ resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-literals@7.27.1':
+ resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-logical-assignment-operators@7.27.1':
+ resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-member-expression-literals@7.27.1':
+ resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-amd@7.27.1':
+ resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-commonjs@7.27.1':
+ resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-systemjs@7.27.1':
+ resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-umd@7.27.1':
+ resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1':
+ resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-new-target@7.27.1':
+ resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1':
+ resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-numeric-separator@7.27.1':
+ resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-rest-spread@7.28.4':
+ resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-super@7.27.1':
+ resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-catch-binding@7.27.1':
+ resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-chaining@7.27.1':
+ resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-parameters@7.27.7':
+ resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-methods@7.27.1':
+ resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-property-in-object@7.27.1':
+ resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-property-literals@7.27.1':
+ resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regenerator@7.28.4':
+ resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regexp-modifiers@7.27.1':
+ resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-reserved-words@7.27.1':
+ resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-shorthand-properties@7.27.1':
+ resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-spread@7.27.1':
+ resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-sticky-regex@7.27.1':
+ resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-template-literals@7.27.1':
+ resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typeof-symbol@7.27.1':
+ resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.28.0':
+ resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-escapes@7.27.1':
+ resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-property-regex@7.27.1':
+ resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-regex@7.27.1':
+ resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1':
+ resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/preset-env@7.28.3':
+ resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/preset-modules@0.1.6-no-external-plugins':
+ resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+
+ '@babel/runtime@7.28.4':
+ resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.27.2':
+ resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.28.4':
+ resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.28.4':
+ resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@bcoe/v8-coverage@0.2.3':
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+
+ '@clack/core@0.5.0':
+ resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==}
+
+ '@clack/prompts@0.11.0':
+ resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==}
+
+ '@dcloudio/types@3.4.21':
+ resolution: {integrity: sha512-rsv3XfAaD/dtuVboPeYh+vPcULnWyozGaGKHWyN0dYRm7L1uypFUM30qNYMj9iNmbAENuBjV177S1gNEBIvdDA==}
+
+ '@dcloudio/uni-app-harmony@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-HrnpvA/rfdY3Vi8/unxHP1BO83KzuCrfsvLQHf7twCSMWFDqCykOkrEhb8beTtQSDoZvJYsQPB6REDkgundp5Q==}
+
+ '@dcloudio/uni-app-plus@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-7ldq9OAGMuTp+K91uWfkQBuIQOOodlYbiRcvynmkpOse0JrOLJf+XuL5QmBR+ehy6TukJtDQjtRkpdjCl39acg==}
+
+ '@dcloudio/uni-app-uts@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-eakQjg3OMFIyh57CN+4+XaeR09FSCIbv2o1a1ieH+jW0VbOZDBpVFdD+9XtP2ZCRyq0JEuhZwFD1q1QHJuuQig==}
+
+ '@dcloudio/uni-app-vite@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-cqeQyhmrMO+nIRsTEKGN0Eh33RRL+INREZ7/9eFBEfr4FLzoo84acxg/W1FR5rYhdgPqfiJ4WyUofSQqUgwS7A==}
+
+ '@dcloudio/uni-app-vue@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-ORLSlsE0c6Lp3vLm3DCCRrGOvrST70Gacw3NYAtXvDIJ/89cAsAg+MoPHRosekbqXwb9g/TKsUeh6D6dV6S81g==}
+
+ '@dcloudio/uni-app@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-nsME16nXk0yHc2ag0/zE0kZ+mcJiuF5TJvbUUcNFGMEinAwskZSWHtmiDt0UrvorERuCxzZrbiMFPBYeAJQveg==}
+ peerDependencies:
+ '@dcloudio/types': ^3.4.14
+
+ '@dcloudio/uni-automator@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-OILDnCodrfaWj/TnSYamFJ0NmCBjVdI+yf3cUoOK6yQv0kTqIyadOqpnOnrwliXqTMNsWoMPRppEqzeK4Q4xkg==}
+ peerDependencies:
+ jest: 27.0.4
+ jest-environment-node: 27.5.1
+
+ '@dcloudio/uni-cli-shared@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-53U1nFOzknNa5qoIr1G0ihN8BOvb/X83E8gnRrOoQEPHj7p+OUvFJzqPdf+ChxxMa3JwrmCpVki3MAzA6gLUIQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ '@dcloudio/uni-cloud@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-Pg1lYEUxc+kgB1X/PClEUrpcpmFJ6NNt1Ss0t/10IhiDG1HjhkvT5sP624UKlWbnAAss7Jg58P1UJWkWdbeG3Q==}
+
+ '@dcloudio/uni-components@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-Jfs8cHCg73vadf1gCSCkaV2MJOwFQO3bZ4dx2/ojaJWh7AaMUFcD9+ox7YZ7TWsf9V1cKYKffXBMOLOad9h2VQ==}
+
+ '@dcloudio/uni-console@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-yV6o2AMyzmx4CUxWi8ClTfjmjgWpNqezDEFhH6tuWwbYPadv8Lhea4lRMBGgzMNvAr434K68+BXT+/CQkL/l1w==}
+
+ '@dcloudio/uni-h5-vite@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-wXZvedQRKXXMAk177NqKeEh4vgf29fy29LkgVFQXv8UMCi74FhBAa198zm1QCddvE7HCPj+zesbV9PuNID8IJg==}
+
+ '@dcloudio/uni-h5-vue@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-duoIL+6O62PWbxB/eeZ4AiJGjLUsUq89ql+zm9rB5ICH23xgCoyXTyuWxOeY722FIRL0XvmWy6kZjDzRDMhvlw==}
+
+ '@dcloudio/uni-h5@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-6cnkCKaW3CKgDhwIm2Duq8ivC3Ybn1gJFu9Hc0ybeAHomUNepauUO31b6RpA9BopOVhwUt905Eg4Ubvq/9Mbaw==}
+
+ '@dcloudio/uni-i18n@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-Fev7Yw6nPhuUbLpMoGu5EhJKzNyGzHp6mpJQA6qDrN/4oRZkUi7Yhr51Yj5GIVnWfzFtUc2dC9Qi3cb//XvSPQ==}
+
+ '@dcloudio/uni-mp-alipay@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-9jAxrFNQzwewYLqmXnlLdGoucd7KBWxIV+7Rqx63GAjZ9OfuczFlJr3t8TwdskNZoHClEPZv/O31eV94GQqZRA==}
+
+ '@dcloudio/uni-mp-baidu@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-R5fpkBoFskf0l8WXwvJB/mpy+U991a0edIarZ0ZYAT9B3o1YZtvcl0IDYA8p7KelZtqQwvgTQnc2UtagBKq4xw==}
+
+ '@dcloudio/uni-mp-compiler@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-DTfWLDihC+vWX0FLxnuPkRYzI7Asr3dHAemrzKd/lB6sj5t5bGfvzo77dbi1o9Icv9cnHkqgFX5CwtI99YcUwA==}
+
+ '@dcloudio/uni-mp-harmony@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-CBlSXXca6IpnFIAvISD4OIAubWgZjA4psGo89+gSTFh50ximI9kwtnKP3/rUqRkuqWLfS9A+wrBalGYkF+xBBA==}
+
+ '@dcloudio/uni-mp-jd@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-/l0teip1uXgXQIzTO8JjWZe2I+pEtCSUWem8fhl8mtokBKIL1qM5oU4aY6EHNM1PFPNWw9mZGJotLMG3VIVrbA==}
+
+ '@dcloudio/uni-mp-kuaishou@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-fCxksZ1ABQVgPkWHrC6WxWp9CsP0nLG4pYnj6F+Rw1z95PeR87kTAbiH8RxqYlOzSQtOe6MyDIbF3dh+cvgFkg==}
+
+ '@dcloudio/uni-mp-lark@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-E5bU1LOpdgxjQXUcyt945aFrvYnZjrxjZ8Ab/5s0yHkR5hLb8WkvM0Cl+1CWlI9hDmUwX6n3XSBRI0wNYk3uNw==}
+
+ '@dcloudio/uni-mp-qq@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-RkF0qB5+vtGPyJproXt/rXADOKczdLycdv1gpP+b+Kf/QCjsloSwiMhmFUfips8dz5P3K/N/RqYC1OengAT9PA==}
+
+ '@dcloudio/uni-mp-toutiao@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-PxmrGdSQat2LnyWdpDPI4aG41ifmn3SzLl0g1HHY78stYivb2Iz4bizrhrSEFjV3YVkr+QEvpHOpunUxX0MOHQ==}
+
+ '@dcloudio/uni-mp-vite@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-RWl4wTsh895SOn9rrXMcGq3zjMjPn9fs7imIxlyu6XacyTI0lNzsX32cvfs1V+h238JTI0D7m6wWAKZpL1CWQA==}
+
+ '@dcloudio/uni-mp-vue@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-IAjgLFH00QLyNfrhTVw1VAyN9VwF88Tf/+b2JsebnyLr0swpLGCrkl7EO8Nesr6dxaOh6D0UaHmAKgfMuuMIQA==}
+
+ '@dcloudio/uni-mp-weixin@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-SjHKnNPYgpukuqNrz39OqdjxtlNd06664MG5ZBkJ112wdhq54FFKKKJM1HUx13q05Hg64OjNj8awsWGWCFs37g==}
+
+ '@dcloudio/uni-mp-xhs@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-ZNZS+tbVgBpARlndxGXQqrmwiptPyTqH/KWqrd0QLZT0PKjjCOR5drRnyZT2UC9Q6ZPPa3M9BdhtBW3U+abA4Q==}
+
+ '@dcloudio/uni-nvue-styler@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-TMnk4UqaH5WtnfHbXRN0MoLunKjpNN/PC3nMed2E+OuWiEKXEIZGeim7oMCniwWIRnTTyg1heOnDX0SnDEjW8w==}
+
+ '@dcloudio/uni-push@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-Gu19UQp0jVUZGkjnPqRMCNEk2TySjIrHRt7Re9Tk2/KLcwzGa86rR9bUKnZTU7VSd7jkRBZ7O3RLodWStEaTsg==}
+
+ '@dcloudio/uni-quickapp-webview@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-WlpPqLb8VJIa8bNtodk/ci/A+zeFHC4blc1Y6GIaldWnc+YdjW/IO8ndpVHPkSEJTB7Sm9/MUbLvoPzdVhc4Jg==}
+
+ '@dcloudio/uni-shared@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-iMxx6JuZ7dsGLKGrECd8nwXLit5aKD8ILvmt3ioxdxnYsKb2rwdB1mrjUtHRX6zsJLVV3Yai/FuYsfvp13QS0w==}
+
+ '@dcloudio/uni-stacktracey@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-bldVvfM9RyXqyjXLXPM2ytexiTY+20qR+3L92l43cY9kPMqnQrSr1M9TF2HrJB5xiqlXYC0FTWpJ3CgRPwBgJg==}
+
+ '@dcloudio/uni-stat@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-a7bsTAfAPLYsB9dvfdJL72NLbtAXpt3ivlPdTgAtq+jas/pio73AvPifGMtQtUCZXmbiMFSeLOrihQP6+A5cCw==}
+
+ '@dcloudio/vite-plugin-uni@3.0.0-4070620250821001':
+ resolution: {integrity: sha512-7gxjhkUnfb/rbpnuUkFJcSWG7XPUf2y8NIZQCIabHEkkCp+bSf+fLHyxdPVqqHoQLHGecmnV6WKjhEPvmlerAg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ vite: ^5.2.8
+
+ '@es-joy/jsdoccomment@0.50.2':
+ resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
+ engines: {node: '>=18'}
+
+ '@es-joy/jsdoccomment@0.58.0':
+ resolution: {integrity: sha512-smMc5pDht/UVsCD3hhw/a/e/p8m0RdRYiluXToVfd+d4yaQQh7nn9bACjkk6nXJvat7EWPAxuFkMEFfrxeGa3Q==}
+ engines: {node: '>=20.11.0'}
+
+ '@esbuild/aix-ppc64@0.20.2':
+ resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.20.2':
+ resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.20.2':
+ resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.20.2':
+ resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.20.2':
+ resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.20.2':
+ resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.20.2':
+ resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.20.2':
+ resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.20.2':
+ resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.20.2':
+ resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.20.2':
+ resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.20.2':
+ resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.20.2':
+ resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.20.2':
+ resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.20.2':
+ resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.20.2':
+ resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.20.2':
+ resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.20.2':
+ resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.20.2':
+ resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.20.2':
+ resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.20.2':
+ resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.20.2':
+ resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.20.2':
+ resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-plugin-eslint-comments@4.5.0':
+ resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ '@eslint-community/eslint-utils@4.9.0':
+ resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/compat@1.4.0':
+ resolution: {integrity: sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.40 || 9
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+
+ '@eslint/config-array@0.21.0':
+ resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.3.1':
+ resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.15.2':
+ resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.16.0':
+ resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.36.0':
+ resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/markdown@7.3.0':
+ resolution: {integrity: sha512-v9Cpl9IvzGmWMUwDAwSbf1b2GMwjQJiD0TSHegFrIu23mjqGQOvaCwnetzbG3/fjk8x7baKaIbSTBlpCktZRRg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.6':
+ resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.3.5':
+ resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
+ '@intlify/core-base@9.1.9':
+ resolution: {integrity: sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==}
+ engines: {node: '>= 10'}
+
+ '@intlify/core-base@9.6.2':
+ resolution: {integrity: sha512-ci0j2nbEL/pamvqgcCqyIVeQ3LS41F1IRqI5rCBNnpSp0FjNnH8bpha8R3OifkhqatzlP4wGOuN/UqfLYVDv7g==}
+ engines: {node: '>= 16'}
+
+ '@intlify/devtools-if@9.1.9':
+ resolution: {integrity: sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==}
+ engines: {node: '>= 10'}
+
+ '@intlify/message-compiler@9.1.9':
+ resolution: {integrity: sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==}
+ engines: {node: '>= 10'}
+
+ '@intlify/message-compiler@9.6.2':
+ resolution: {integrity: sha512-kgZQL9zeJDeEB5vvD93Y++HvFUELnT48PjnpfCcF3EJaLLVs9he8IzODiNK42Z40lWbFyja0SXJZjsalybQygA==}
+ engines: {node: '>= 16'}
+
+ '@intlify/message-resolver@9.1.9':
+ resolution: {integrity: sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==}
+ engines: {node: '>= 10'}
+
+ '@intlify/runtime@9.1.9':
+ resolution: {integrity: sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==}
+ engines: {node: '>= 10'}
+
+ '@intlify/shared@9.1.9':
+ resolution: {integrity: sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==}
+ engines: {node: '>= 10'}
+
+ '@intlify/shared@9.6.2':
+ resolution: {integrity: sha512-9KBcXmJNxElp7QMnU8V0/tScTOitDqyFi4HceEZqJyyDkMi8K5DBPMTIuXIAMmtMlXpe/nj5pke7tRw97VeQRA==}
+ engines: {node: '>= 16'}
+
+ '@intlify/vue-devtools@9.1.9':
+ resolution: {integrity: sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==}
+ engines: {node: '>= 10'}
+
+ '@istanbuljs/load-nyc-config@1.1.0':
+ resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
+ engines: {node: '>=8'}
+
+ '@istanbuljs/schema@0.1.3':
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+ engines: {node: '>=8'}
+
+ '@jest/console@27.5.1':
+ resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/core@27.5.1':
+ resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ '@jest/environment@27.5.1':
+ resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/fake-timers@27.5.1':
+ resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/globals@27.5.1':
+ resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/reporters@27.5.1':
+ resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ '@jest/source-map@27.5.1':
+ resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/test-result@27.5.1':
+ resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/test-sequencer@27.5.1':
+ resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/transform@27.5.1':
+ resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jest/types@27.5.1':
+ resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ '@jimp/bmp@0.10.3':
+ resolution: {integrity: sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/core@0.10.3':
+ resolution: {integrity: sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==}
+
+ '@jimp/custom@0.10.3':
+ resolution: {integrity: sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==}
+
+ '@jimp/gif@0.10.3':
+ resolution: {integrity: sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/jpeg@0.10.3':
+ resolution: {integrity: sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-blit@0.10.3':
+ resolution: {integrity: sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-blur@0.10.3':
+ resolution: {integrity: sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-circle@0.10.3':
+ resolution: {integrity: sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-color@0.10.3':
+ resolution: {integrity: sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-contain@0.10.3':
+ resolution: {integrity: sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blit': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+ '@jimp/plugin-scale': '>=0.3.5'
+
+ '@jimp/plugin-cover@0.10.3':
+ resolution: {integrity: sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-crop': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+ '@jimp/plugin-scale': '>=0.3.5'
+
+ '@jimp/plugin-crop@0.10.3':
+ resolution: {integrity: sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-displace@0.10.3':
+ resolution: {integrity: sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-dither@0.10.3':
+ resolution: {integrity: sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-fisheye@0.10.3':
+ resolution: {integrity: sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-flip@0.10.3':
+ resolution: {integrity: sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-rotate': '>=0.3.5'
+
+ '@jimp/plugin-gaussian@0.10.3':
+ resolution: {integrity: sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-invert@0.10.3':
+ resolution: {integrity: sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-mask@0.10.3':
+ resolution: {integrity: sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-normalize@0.10.3':
+ resolution: {integrity: sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-print@0.10.3':
+ resolution: {integrity: sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blit': '>=0.3.5'
+
+ '@jimp/plugin-resize@0.10.3':
+ resolution: {integrity: sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-rotate@0.10.3':
+ resolution: {integrity: sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blit': '>=0.3.5'
+ '@jimp/plugin-crop': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+
+ '@jimp/plugin-scale@0.10.3':
+ resolution: {integrity: sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+
+ '@jimp/plugin-shadow@0.10.3':
+ resolution: {integrity: sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blur': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+
+ '@jimp/plugin-threshold@0.10.3':
+ resolution: {integrity: sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-color': '>=0.8.0'
+ '@jimp/plugin-resize': '>=0.8.0'
+
+ '@jimp/plugins@0.10.3':
+ resolution: {integrity: sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/png@0.10.3':
+ resolution: {integrity: sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/tiff@0.10.3':
+ resolution: {integrity: sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/types@0.10.3':
+ resolution: {integrity: sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/utils@0.10.3':
+ resolution: {integrity: sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@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/source-map@0.3.11':
+ resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
+ '@mini-types/alipay@3.0.14':
+ resolution: {integrity: sha512-FakzSsKvybtWlEIVTIRlr89kuQFn+XY86Ho9VUFFaKLplhW6Wx8FUxTDE7IzV7B9rT8DP/Icy637vUHlXPsw1g==}
+
+ '@mini-types/global@3.0.14':
+ resolution: {integrity: sha512-St2ucFRfKRskposOqV/9iNJTKn1MbyqDypQiy/0DaVJjEm2MFi82RJjX9sBz1uWhQIqzu741PgTjGSy7L/Qj9g==}
+
+ '@mini-types/my@3.0.14':
+ resolution: {integrity: sha512-aEgmM+rbEvEzTvqltCFRAg/h6KKs14M1y+FrOkz+hn2EyNpOVPesUzTjbRhSiFFsE3WdfBh54lHNYBahAmHq7w==}
+
+ '@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'}
+
+ '@parcel/watcher-android-arm64@2.6.0':
+ resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.6.0':
+ resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.6.0':
+ resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.6.0':
+ resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.6.0':
+ resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm-musl@2.6.0':
+ resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.6.0':
+ resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm64-musl@2.6.0':
+ resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-x64-glibc@2.6.0':
+ resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-x64-musl@2.6.0':
+ resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-win32-arm64@2.6.0':
+ resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.6.0':
+ resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.6.0':
+ resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==}
+ engines: {node: '>= 10.0.0'}
+
+ '@pkgr/core@0.2.9':
+ resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@rollup/pluginutils@5.3.0':
+ resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/rollup-android-arm-eabi@4.52.2':
+ resolution: {integrity: sha512-o3pcKzJgSGt4d74lSZ+OCnHwkKBeAbFDmbEm5gg70eA8VkyCuC/zV9TwBnmw6VjDlRdF4Pshfb+WE9E6XY1PoQ==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.52.2':
+ resolution: {integrity: sha512-cqFSWO5tX2vhC9hJTK8WAiPIm4Q8q/cU8j2HQA0L3E1uXvBYbOZMhE2oFL8n2pKB5sOCHY6bBuHaRwG7TkfJyw==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.52.2':
+ resolution: {integrity: sha512-vngduywkkv8Fkh3wIZf5nFPXzWsNsVu1kvtLETWxTFf/5opZmflgVSeLgdHR56RQh71xhPhWoOkEBvbehwTlVA==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.52.2':
+ resolution: {integrity: sha512-h11KikYrUCYTrDj6h939hhMNlqU2fo/X4NB0OZcys3fya49o1hmFaczAiJWVAFgrM1NCP6RrO7lQKeVYSKBPSQ==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.52.2':
+ resolution: {integrity: sha512-/eg4CI61ZUkLXxMHyVlmlGrSQZ34xqWlZNW43IAU4RmdzWEx0mQJ2mN/Cx4IHLVZFL6UBGAh+/GXhgvGb+nVxw==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.52.2':
+ resolution: {integrity: sha512-QOWgFH5X9+p+S1NAfOqc0z8qEpJIoUHf7OWjNUGOeW18Mx22lAUOiA9b6r2/vpzLdfxi/f+VWsYjUOMCcYh0Ng==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.52.2':
+ resolution: {integrity: sha512-kDWSPafToDd8LcBYd1t5jw7bD5Ojcu12S3uT372e5HKPzQt532vW+rGFFOaiR0opxePyUkHrwz8iWYEyH1IIQA==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.52.2':
+ resolution: {integrity: sha512-gKm7Mk9wCv6/rkzwCiUC4KnevYhlf8ztBrDRT9g/u//1fZLapSRc+eDZj2Eu2wpJ+0RzUKgtNijnVIB4ZxyL+w==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-arm64-gnu@4.52.2':
+ resolution: {integrity: sha512-66lA8vnj5mB/rtDNwPgrrKUOtCLVQypkyDa2gMfOefXK6rcZAxKLO9Fy3GkW8VkPnENv9hBkNOFfGLf6rNKGUg==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm64-musl@4.52.2':
+ resolution: {integrity: sha512-s+OPucLNdJHvuZHuIz2WwncJ+SfWHFEmlC5nKMUgAelUeBUnlB4wt7rXWiyG4Zn07uY2Dd+SGyVa9oyLkVGOjA==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-loong64-gnu@4.52.2':
+ resolution: {integrity: sha512-8wTRM3+gVMDLLDdaT6tKmOE3lJyRy9NpJUS/ZRWmLCmOPIJhVyXwjBo+XbrrwtV33Em1/eCTd5TuGJm4+DmYjw==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-ppc64-gnu@4.52.2':
+ resolution: {integrity: sha512-6yqEfgJ1anIeuP2P/zhtfBlDpXUb80t8DpbYwXQ3bQd95JMvUaqiX+fKqYqUwZXqdJDd8xdilNtsHM2N0cFm6A==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.52.2':
+ resolution: {integrity: sha512-sshYUiYVSEI2B6dp4jMncwxbrUqRdNApF2c3bhtLAU0qA8Lrri0p0NauOsTWh3yCCCDyBOjESHMExonp7Nzc0w==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-musl@4.52.2':
+ resolution: {integrity: sha512-duBLgd+3pqC4MMwBrKkFxaZerUxZcYApQVC5SdbF5/e/589GwVvlRUnyqMFbM8iUSb1BaoX/3fRL7hB9m2Pj8Q==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-s390x-gnu@4.52.2':
+ resolution: {integrity: sha512-tzhYJJidDUVGMgVyE+PmxENPHlvvqm1KILjjZhB8/xHYqAGeizh3GBGf9u6WdJpZrz1aCpIIHG0LgJgH9rVjHQ==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-gnu@4.52.2':
+ resolution: {integrity: sha512-opH8GSUuVcCSSyHHcl5hELrmnk4waZoVpgn/4FDao9iyE4WpQhyWJ5ryl5M3ocp4qkRuHfyXnGqg8M9oKCEKRA==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.52.2':
+ resolution: {integrity: sha512-LSeBHnGli1pPKVJ79ZVJgeZWWZXkEe/5o8kcn23M8eMKCUANejchJbF/JqzM4RRjOJfNRhKJk8FuqL1GKjF5oQ==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-openharmony-arm64@4.52.2':
+ resolution: {integrity: sha512-uPj7MQ6/s+/GOpolavm6BPo+6CbhbKYyZHUDvZ/SmJM7pfDBgdGisFX3bY/CBDMg2ZO4utfhlApkSfZ92yXw7Q==}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rollup/rollup-win32-arm64-msvc@4.52.2':
+ resolution: {integrity: sha512-Z9MUCrSgIaUeeHAiNkm3cQyst2UhzjPraR3gYYfOjAuZI7tcFRTOD+4cHLPoS/3qinchth+V56vtqz1Tv+6KPA==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.52.2':
+ resolution: {integrity: sha512-+GnYBmpjldD3XQd+HMejo+0gJGwYIOfFeoBQv32xF/RUIvccUz20/V6Otdv+57NE70D5pa8W/jVGDoGq0oON4A==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-gnu@4.52.2':
+ resolution: {integrity: sha512-ApXFKluSB6kDQkAqZOKXBjiaqdF1BlKi+/eqnYe9Ee7U2K3pUDKsIyr8EYm/QDHTJIM+4X+lI0gJc3TTRhd+dA==}
+ cpu: [x64]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.52.2':
+ resolution: {integrity: sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw==}
+ cpu: [x64]
+ os: [win32]
+
+ '@sinonjs/commons@1.8.6':
+ resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==}
+
+ '@sinonjs/fake-timers@8.1.0':
+ resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==}
+
+ '@stylistic/eslint-plugin@5.4.0':
+ resolution: {integrity: sha512-UG8hdElzuBDzIbjG1QDwnYH0MQ73YLXDFHgZzB4Zh/YJfnw8XNsloVtytqzx0I2Qky9THSdpTmi8Vjn/pf/Lew==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=9.0.0'
+
+ '@tootallnate/once@1.1.2':
+ resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
+ engines: {node: '>= 6'}
+
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+
+ '@types/debug@4.1.12':
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
+ '@types/graceful-fs@4.1.9':
+ resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
+
+ '@types/istanbul-lib-coverage@2.0.6':
+ resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+
+ '@types/istanbul-lib-report@3.0.3':
+ resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
+
+ '@types/istanbul-reports@3.0.4':
+ resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
+
+ '@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/node@24.5.2':
+ resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
+
+ '@types/prettier@2.7.3':
+ resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==}
+
+ '@types/stack-utils@2.0.3':
+ resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+ '@types/yargs-parser@21.0.3':
+ resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
+
+ '@types/yargs@16.0.9':
+ resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==}
+
+ '@typescript-eslint/eslint-plugin@8.44.1':
+ resolution: {integrity: sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.44.1
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/parser@8.44.1':
+ resolution: {integrity: sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/project-service@8.44.1':
+ resolution: {integrity: sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/scope-manager@8.44.1':
+ resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.44.1':
+ resolution: {integrity: sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.44.1':
+ resolution: {integrity: sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/types@8.44.1':
+ resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.44.1':
+ resolution: {integrity: sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/utils@8.44.1':
+ resolution: {integrity: sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/visitor-keys@8.44.1':
+ resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@uni-helper/eslint-config@0.5.0':
+ resolution: {integrity: sha512-jU/VT078aZQcwjC4ceuWWR5yh4mJ0PzW5MSrOgLi1MSbBKQe5YTAlvphXAUMYpSHqg7iwCmaWNamy3tv4ZZicw==}
+ peerDependencies:
+ '@antfu/eslint-config': ^5.0.0
+ eslint: ^9.10.0
+
+ '@uni-helper/plugin-uni@0.1.0':
+ resolution: {integrity: sha512-hBPUjoQc/SgqKsyGUl0fJiL+dDwLPhf2es1PJdsXcxHyOujoBP2+D4z5ie+Q72wVwKtTsQSP3tSjww/63JRmbA==}
+ peerDependencies:
+ '@dcloudio/vite-plugin-uni': '*'
+
+ '@uni-helper/uni-app-types@1.0.0-alpha.6':
+ resolution: {integrity: sha512-t9AKDYBmDaz4IW0fgtBt25ubEzf7kyUeMlHaBaG5nyNGd6pVuDpYkABhsnNPDiZcaHAoN6SbX1SQQx5axDOWbA==}
+ engines: {node: '>=14.18'}
+ peerDependencies:
+ typescript: ^5.0.0
+ vue: ^3.0.0
+
+ '@uni-helper/uni-cloud-types@1.0.0-alpha.6':
+ resolution: {integrity: sha512-xnLiRcqf14NXcmkcekF3BbN0O157WROpzHfyKVAeLhcXRhO0HIRUMy0+h9KnCDZ+LFteeIOZXJWC5ere3yhIiQ==}
+ engines: {node: '>=14.18'}
+ peerDependencies:
+ typescript: ^5.0.0
+ vue: ^3.0.0
+
+ '@uni-helper/uni-types@1.0.0-alpha.6':
+ resolution: {integrity: sha512-lGSm3RUOQThyYIUuJI46b8ug3nGZMyRfMQ/ktOGNxOXBukGA1TF1TN2m4MjKUklIQ+kiIuIgZJoU3S7oIK5emw==}
+ engines: {node: '>=14.18'}
+ peerDependencies:
+ '@uni-helper/uni-app-types': 1.0.0-alpha.6
+ '@uni-helper/uni-cloud-types': 1.0.0-alpha.6
+ '@uni-helper/uni-ui-types': 1.0.0-alpha.6
+ typescript: ^5.0.0
+ vue: ^3.0.0
+
+ '@uni-helper/uni-ui-types@1.0.0-alpha.6':
+ resolution: {integrity: sha512-2KuAup2M7rPVzpLaXhhnxCD/Cs5VQYiqzC9XNI/VZuA88+ApPmHzkwyS0THSHnz1VbDIGX/Ju69nj+mApfYKDw==}
+ engines: {node: '>=14.18'}
+ peerDependencies:
+ '@uni-helper/uni-app-types': 1.0.0-alpha.6
+ typescript: ^5.0.0
+ vue: ^3.0.0
+
+ '@uni-helper/vite-plugin-uni-components@0.2.3':
+ resolution: {integrity: sha512-in7jRYQnPkLg6W13dzz8mzHDuZC+OFc3qb8MrnmDQgniIxHfxJw8vaibL1au6gvq7ij3h6EHvhHaRytIJ2PkYw==}
+
+ '@vitejs/plugin-legacy@5.3.2':
+ resolution: {integrity: sha512-8moCOrIMaZ/Rjln0Q6GsH6s8fAt1JOI3k8nmfX4tXUxE5KAExVctSyOBk+A25GClsdSWqIk2yaUthH3KJ2X4tg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ terser: ^5.4.0
+ vite: ^5.0.0
+
+ '@vitejs/plugin-vue-jsx@3.1.0':
+ resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.0.0 || ^5.0.0
+ vue: ^3.0.0
+
+ '@vitejs/plugin-vue@5.1.0':
+ resolution: {integrity: sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ vite: ^5.0.0
+ vue: ^3.2.25
+
+ '@vitest/eslint-plugin@1.3.12':
+ resolution: {integrity: sha512-cSEyUYGj8j8SLqKrzN7BlfsJ3wG67eRT25819PXuyoSBogLXiyagdKx4MHWHV1zv+EEuyMXsEKkBEKzXpxyBrg==}
+ peerDependencies:
+ eslint: '>= 8.57.0'
+ typescript: '>= 5.0.0'
+ vitest: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ vitest:
+ optional: true
+
+ '@volar/language-core@2.4.23':
+ resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==}
+
+ '@volar/source-map@2.4.23':
+ resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==}
+
+ '@volar/typescript@2.4.23':
+ resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==}
+
+ '@vue/babel-helper-vue-transform-on@1.5.0':
+ resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==}
+
+ '@vue/babel-plugin-jsx@1.5.0':
+ resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+
+ '@vue/babel-plugin-resolve-type@1.5.0':
+ resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@vue/compiler-core@3.4.21':
+ resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==}
+
+ '@vue/compiler-core@3.5.21':
+ resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==}
+
+ '@vue/compiler-dom@3.4.21':
+ resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
+
+ '@vue/compiler-dom@3.5.21':
+ resolution: {integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==}
+
+ '@vue/compiler-sfc@3.4.21':
+ resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==}
+
+ '@vue/compiler-sfc@3.5.21':
+ resolution: {integrity: sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==}
+
+ '@vue/compiler-ssr@3.4.21':
+ resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==}
+
+ '@vue/compiler-ssr@3.5.21':
+ resolution: {integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==}
+
+ '@vue/compiler-vue2@2.7.16':
+ resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
+
+ '@vue/consolidate@1.0.0':
+ resolution: {integrity: sha512-oTyUE+QHIzLw2PpV14GD/c7EohDyP64xCniWTcqcEmTd699eFqTIwOmtDYjcO1j3QgdXoJEoWv1/cCdLrRoOfg==}
+ engines: {node: '>= 0.12.0'}
+
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
+ '@vue/language-core@3.0.8':
+ resolution: {integrity: sha512-eYs6PF7bxoPYvek9qxceo1BCwFbJZYqJll+WaYC8o8ec60exqj+n+QRGGiJHSeUfYp0hDxARbMdxMq/fbPgU5g==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@vue/reactivity@3.4.21':
+ resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==}
+
+ '@vue/runtime-core@3.4.21':
+ resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==}
+
+ '@vue/runtime-dom@3.4.21':
+ resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==}
+
+ '@vue/server-renderer@3.4.21':
+ resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==}
+ peerDependencies:
+ vue: 3.4.21
+
+ '@vue/shared@3.4.21':
+ resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
+
+ '@vue/shared@3.5.21':
+ resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==}
+
+ '@vue/tsconfig@0.8.1':
+ resolution: {integrity: sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g==}
+ peerDependencies:
+ typescript: 5.x
+ vue: ^3.4.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ vue:
+ optional: true
+
+ '@wot-ui/ui@2.2.0':
+ resolution: {integrity: sha512-/eC3sejQ7N1OCnLOHtG8K8nMXb16cf/7SwkLnDlpULlhbUCuW1fw3Qm4fvAbz0cNLSGlB0qJ/8axklww2C/BmQ==}
+ engines: {HBuilderX: ^3.8.7}
+ peerDependencies:
+ vue: '>=3.2.47'
+
+ abab@2.0.6:
+ resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
+ deprecated: Use your platform's native atob() and btoa() methods instead
+
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
+ acorn-globals@6.0.0:
+ resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn-walk@7.2.0:
+ resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@7.4.1:
+ resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ address@1.2.2:
+ resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
+ engines: {node: '>= 10.0.0'}
+
+ adm-zip@0.5.16:
+ resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==}
+ engines: {node: '>=12.0'}
+
+ agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ alien-signals@2.0.7:
+ resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==}
+
+ ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+
+ ansis@4.1.0:
+ resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==}
+ engines: {node: '>=14'}
+
+ any-base@1.1.0:
+ resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ are-docs-informative@0.0.2:
+ resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
+ engines: {node: '>=14'}
+
+ argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ array-flatten@1.1.1:
+ resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ autoprefixer@10.4.21:
+ resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ babel-jest@27.5.1:
+ resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ peerDependencies:
+ '@babel/core': ^7.8.0
+
+ babel-plugin-istanbul@6.1.1:
+ resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
+ engines: {node: '>=8'}
+
+ babel-plugin-jest-hoist@27.5.1:
+ resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ babel-plugin-polyfill-corejs2@0.4.14:
+ resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.13.0:
+ resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-regenerator@0.6.5:
+ resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-preset-current-node-syntax@1.2.0:
+ resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0 || ^8.0.0-0
+
+ babel-preset-jest@27.5.1:
+ resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ base64url@3.0.1:
+ resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==}
+ engines: {node: '>=6.0.0'}
+
+ baseline-browser-mapping@2.8.6:
+ resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==}
+ hasBin: true
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bmp-js@0.1.0:
+ resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==}
+
+ body-parser@1.20.3:
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browser-process-hrtime@1.0.0:
+ resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
+
+ browserslist-to-esbuild@2.1.1:
+ resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ browserslist: '*'
+
+ browserslist@4.26.2:
+ resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ bser@2.1.1:
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+
+ buffer-equal@0.0.1:
+ resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==}
+ engines: {node: '>=0.4.0'}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
+ builtin-modules@5.0.0:
+ resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==}
+ engines: {node: '>=18.20'}
+
+ bytes@3.1.2:
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
+ engines: {node: '>= 0.8'}
+
+ cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+
+ cac@6.7.9:
+ resolution: {integrity: sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==}
+ engines: {node: '>=8'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ caniuse-lite@1.0.30001743:
+ resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==}
+
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+ centra@2.7.0:
+ resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ change-case@5.4.4:
+ resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
+
+ char-regex@1.0.2:
+ resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
+ engines: {node: '>=10'}
+
+ character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chokidar@5.0.0:
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
+
+ ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+
+ ci-info@4.3.0:
+ resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==}
+ engines: {node: '>=8'}
+
+ cjs-module-lexer@1.4.3:
+ resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
+
+ clean-regexp@1.0.0:
+ resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+ engines: {node: '>=4'}
+
+ cliui@7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+
+ co@4.6.0:
+ resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
+ collect-v8-coverage@1.0.2:
+ resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
+
+ 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==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ comment-parser@1.4.1:
+ resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==}
+ engines: {node: '>= 12.0.0'}
+
+ compare-versions@3.6.0:
+ resolution: {integrity: sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+ confbox@0.2.2:
+ resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+
+ content-disposition@0.5.4:
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
+ engines: {node: '>= 0.6'}
+
+ content-type@1.0.5:
+ resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
+ engines: {node: '>= 0.6'}
+
+ convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ cookie-signature@1.0.6:
+ resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
+
+ cookie@0.7.1:
+ resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
+ engines: {node: '>= 0.6'}
+
+ core-js-compat@3.45.1:
+ resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
+
+ core-js@3.45.1:
+ resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==}
+
+ cross-env@7.0.3:
+ resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
+ engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
+ hasBin: true
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ css-font-size-keywords@1.0.0:
+ resolution: {integrity: sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==}
+
+ css-font-stretch-keywords@1.0.1:
+ resolution: {integrity: sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==}
+
+ css-font-style-keywords@1.0.1:
+ resolution: {integrity: sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==}
+
+ css-font-weight-keywords@1.0.0:
+ resolution: {integrity: sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==}
+
+ css-list-helpers@2.0.0:
+ resolution: {integrity: sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==}
+
+ css-system-font-keywords@1.0.0:
+ resolution: {integrity: sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ cssom@0.3.8:
+ resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
+
+ cssom@0.4.4:
+ resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==}
+
+ cssstyle@2.3.0:
+ resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
+ engines: {node: '>=8'}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ data-urls@2.0.0:
+ resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==}
+ engines: {node: '>=10'}
+
+ de-indent@1.0.2:
+ resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ 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
+
+ decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+
+ decode-named-character-reference@1.2.0:
+ resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
+
+ dedent@0.7.0:
+ resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ default-gateway@6.0.3:
+ resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
+ engines: {node: '>= 10'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ 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'}
+
+ destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
+ detect-newline@3.1.0:
+ resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
+ engines: {node: '>=8'}
+
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+ diff-sequences@27.5.1:
+ resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ dom-walk@0.1.2:
+ resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
+
+ domexception@2.0.1:
+ resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==}
+ engines: {node: '>=8'}
+ deprecated: Use your platform's native DOMException instead
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ electron-to-chromium@1.5.223:
+ resolution: {integrity: sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==}
+
+ emittery@0.8.1:
+ resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==}
+ engines: {node: '>=10'}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ empathic@2.0.0:
+ resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
+ engines: {node: '>=14'}
+
+ 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'}
+
+ enhanced-resolve@5.18.3:
+ resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
+ engines: {node: '>=10.13.0'}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ error-ex@1.3.4:
+ resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
+
+ 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@1.7.0:
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ esbuild@0.20.2:
+ resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
+ engines: {node: '>=12'}
+ 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@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+
+ escodegen@2.1.0:
+ resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+
+ eslint-compat-utils@0.5.1:
+ resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-compat-utils@0.6.5:
+ resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-config-flat-gitignore@2.1.0:
+ resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==}
+ peerDependencies:
+ eslint: ^9.5.0
+
+ eslint-flat-config-utils@2.1.4:
+ resolution: {integrity: sha512-bEnmU5gqzS+4O+id9vrbP43vByjF+8KOs+QuuV4OlqAuXmnRW2zfI/Rza1fQvdihQ5h4DUo0NqFAiViD4mSrzQ==}
+
+ eslint-json-compat-utils@0.2.1:
+ resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ '@eslint/json': '*'
+ eslint: '*'
+ jsonc-eslint-parser: ^2.4.0
+ peerDependenciesMeta:
+ '@eslint/json':
+ optional: true
+
+ eslint-merge-processors@2.0.0:
+ resolution: {integrity: sha512-sUuhSf3IrJdGooquEUB5TNpGNpBoQccbnaLHsb1XkBLUPPqCNivCpY05ZcpCOiV9uHwO2yxXEWVczVclzMxYlA==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-antfu@3.1.1:
+ resolution: {integrity: sha512-7Q+NhwLfHJFvopI2HBZbSxWXngTwBLKxW1AGXLr2lEGxcEIK/AsDs8pn8fvIizl5aZjBbVbVK5ujmMpBe4Tvdg==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-command@3.3.1:
+ resolution: {integrity: sha512-fBVTXQ2y48TVLT0+4A6PFINp7GcdIailHAXbvPBixE7x+YpYnNQhFZxTdvnb+aWk+COgNebQKen/7m4dmgyWAw==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-es-x@7.8.0:
+ resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=8'
+
+ eslint-plugin-import-lite@0.3.0:
+ resolution: {integrity: sha512-dkNBAL6jcoCsXZsQ/Tt2yXmMDoNt5NaBh/U7yvccjiK8cai6Ay+MK77bMykmqQA2bTF6lngaLCDij6MTO3KkvA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=9.0.0'
+ typescript: '>=4.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ eslint-plugin-jsdoc@59.1.0:
+ resolution: {integrity: sha512-sg9mzjjzfnMynyY4W8FDiQv3i8eFcKVEHDt4Xh7MLskP3QkMt2z6p7FuzSw7jJSKFues6RaK2GWvmkB1FLPxXg==}
+ engines: {node: '>=20.11.0'}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ eslint-plugin-jsonc@2.20.1:
+ resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-n@17.23.1:
+ resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.23.0'
+
+ eslint-plugin-no-only-tests@3.3.0:
+ resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==}
+ engines: {node: '>=5.0.0'}
+
+ eslint-plugin-perfectionist@4.15.0:
+ resolution: {integrity: sha512-pC7PgoXyDnEXe14xvRUhBII8A3zRgggKqJFx2a82fjrItDs1BSI7zdZnQtM2yQvcyod6/ujmzb7ejKPx8lZTnw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ eslint: '>=8.45.0'
+
+ eslint-plugin-pnpm@1.1.2:
+ resolution: {integrity: sha512-WHH09rEiRZ3fjQ8y9LMarCp3uWOTGkbTyC8WCGqyjMVFUwSFjzIeays8ysvqyz7G5vyjr/72Mzq93Kgtp52BOQ==}
+ peerDependencies:
+ eslint: ^9.0.0
+
+ eslint-plugin-regexp@2.10.0:
+ resolution: {integrity: sha512-ovzQT8ESVn5oOe5a7gIDPD5v9bCSjIFJu57sVPDqgPRXicQzOnYfFN21WoQBQF18vrhT5o7UMKFwJQVVjyJ0ng==}
+ engines: {node: ^18 || >=20}
+ peerDependencies:
+ eslint: '>=8.44.0'
+
+ eslint-plugin-toml@0.12.0:
+ resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-unicorn@61.0.2:
+ resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==}
+ engines: {node: ^20.10.0 || >=21.0.0}
+ peerDependencies:
+ eslint: '>=9.29.0'
+
+ eslint-plugin-unused-imports@4.2.0:
+ resolution: {integrity: sha512-hLbJ2/wnjKq4kGA9AUaExVFIbNzyxYdVo49QZmKCnhk5pc9wcYRbfgLHvWJ8tnsdcseGhoUAddm9gn/lt+d74w==}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0
+ eslint: ^9.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+
+ eslint-plugin-vue@10.5.0:
+ resolution: {integrity: sha512-7BZHsG3kC2vei8F2W8hnfDi9RK+cv5eKPMvzBdrl8Vuc0hR5odGQRli8VVzUkrmUHkxFEm4Iio1r5HOKslO0Aw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
+ '@typescript-eslint/parser': ^7.0.0 || ^8.0.0
+ eslint: ^8.57.0 || ^9.0.0
+ vue-eslint-parser: ^10.0.0
+ peerDependenciesMeta:
+ '@stylistic/eslint-plugin':
+ optional: true
+ '@typescript-eslint/parser':
+ optional: true
+
+ eslint-plugin-yml@1.18.0:
+ resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-processor-vue-blocks@2.0.0:
+ resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==}
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.3.0
+ eslint: '>=9.0.0'
+
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.36.0:
+ resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+
+ exif-parser@0.1.12:
+ resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==}
+
+ exit@0.1.2:
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
+ engines: {node: '>= 0.8.0'}
+
+ expect@27.5.1:
+ resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ express@4.21.2:
+ resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
+ engines: {node: '>= 0.10.0'}
+
+ exsolve@1.0.7:
+ resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
+
+ fault@2.0.1:
+ resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
+
+ fb-watchman@2.0.2:
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ file-type@9.0.0:
+ resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==}
+ engines: {node: '>=6'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ finalhandler@1.3.1:
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
+ engines: {node: '>= 0.8'}
+
+ find-up-simple@1.0.1:
+ resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
+ engines: {node: '>=18'}
+
+ find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
+ follow-redirects@1.15.11:
+ resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ form-data@3.0.4:
+ resolution: {integrity: sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==}
+ engines: {node: '>= 6'}
+
+ format@0.2.2:
+ resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
+ engines: {node: '>=0.4.x'}
+
+ forwarded@0.2.0:
+ resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
+ engines: {node: '>= 0.6'}
+
+ fraction.js@4.3.7:
+ resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+
+ fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+
+ 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==}
+
+ generic-names@4.0.0:
+ resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==}
+
+ 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-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-package-type@0.1.0:
+ resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
+ engines: {node: '>=8.0.0'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ get-tsconfig@4.10.1:
+ resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
+
+ 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@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ 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@4.4.0:
+ resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@15.15.0:
+ resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
+ engines: {node: '>=18'}
+
+ globals@16.4.0:
+ resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==}
+ engines: {node: '>=18'}
+
+ globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+
+ 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==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ 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'}
+
+ hash-sum@2.0.0:
+ resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+
+ highlight.js@11.11.1:
+ resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
+ engines: {node: '>=12.0.0'}
+
+ html-encoding-sniffer@2.0.1:
+ resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==}
+ engines: {node: '>=10'}
+
+ html-escaper@2.0.2:
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+
+ http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+
+ http-proxy-agent@4.0.1:
+ resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
+ engines: {node: '>= 6'}
+
+ https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+
+ human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
+ icss-replace-symbols@1.1.0:
+ resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==}
+
+ icss-utils@5.1.0:
+ resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.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'}
+
+ immutable@5.1.9:
+ resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ import-local@3.2.0:
+ resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+
+ 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.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ invert-kv@3.0.1:
+ resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==}
+ engines: {node: '>=8'}
+
+ ipaddr.js@1.9.1:
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
+ engines: {node: '>= 0.10'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-builtin-module@5.0.0:
+ resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==}
+ engines: {node: '>=18.20'}
+
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ 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-function@1.0.2:
+ resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
+
+ is-generator-fn@2.1.0:
+ resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
+ engines: {node: '>=6'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-typedarray@1.0.0:
+ resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+
+ isbinaryfile@5.0.6:
+ resolution: {integrity: sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw==}
+ engines: {node: '>= 18.0.0'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ istanbul-lib-coverage@3.2.2:
+ resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-instrument@5.2.1:
+ resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-report@3.0.1:
+ resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-source-maps@4.0.1:
+ resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
+ engines: {node: '>=10'}
+
+ istanbul-reports@3.2.0:
+ resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
+ engines: {node: '>=8'}
+
+ jest-changed-files@27.5.1:
+ resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-circus@27.5.1:
+ resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-cli@27.5.1:
+ resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ jest-config@27.5.1:
+ resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ peerDependencies:
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ ts-node:
+ optional: true
+
+ jest-diff@27.5.1:
+ resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-docblock@27.5.1:
+ resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-each@27.5.1:
+ resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-environment-jsdom@27.5.1:
+ resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-environment-node@27.5.1:
+ resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-get-type@27.5.1:
+ resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-haste-map@27.5.1:
+ resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-jasmine2@27.5.1:
+ resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-leak-detector@27.5.1:
+ resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-matcher-utils@27.5.1:
+ resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-message-util@27.5.1:
+ resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-mock@27.5.1:
+ resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-pnp-resolver@1.2.3:
+ resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ jest-resolve: '*'
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+
+ jest-regex-util@27.5.1:
+ resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-resolve-dependencies@27.5.1:
+ resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-resolve@27.5.1:
+ resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-runner@27.5.1:
+ resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-runtime@27.5.1:
+ resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-serializer@27.5.1:
+ resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-snapshot@27.5.1:
+ resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-util@27.5.1:
+ resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-validate@27.5.1:
+ resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-watcher@27.5.1:
+ resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+
+ jest@27.0.4:
+ resolution: {integrity: sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ jimp@0.10.3:
+ resolution: {integrity: sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==}
+
+ jpeg-js@0.3.7:
+ resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+
+ js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ jsdoc-type-pratt-parser@4.1.0:
+ resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==}
+ engines: {node: '>=12.0.0'}
+
+ jsdoc-type-pratt-parser@4.8.0:
+ resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==}
+ engines: {node: '>=12.0.0'}
+
+ jsdoc-type-pratt-parser@5.4.0:
+ resolution: {integrity: sha512-F9GQ+F1ZU6qvSrZV8fNFpjDNf614YzR2eF6S0+XbDjAcUI28FSoXnYZFjQmb1kFx3rrJb5PnxUH3/Yti6fcM+g==}
+ engines: {node: '>=12.0.0'}
+
+ jsdom@16.7.0:
+ resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
+ jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonc-eslint-parser@2.4.1:
+ resolution: {integrity: sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ jsonc-parser@3.3.1:
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
+
+ jsonfile@6.2.0:
+ resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ kleur@3.0.3:
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
+
+ lcid@3.1.1:
+ resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==}
+ engines: {node: '>=8'}
+
+ leven@3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ licia@1.48.0:
+ resolution: {integrity: sha512-bBWiT5CSdEtwuAHiYTJ74yItCjIFdHi4xiFk6BRDfKa+sdCpkUHp69YKb5udNOJlHDzFjNjcMgNZ/+wQIHrB8A==}
+
+ lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ lines-and-columns@2.0.4:
+ resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ load-bmfont@1.4.2:
+ resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==}
+
+ loader-utils@3.3.1:
+ resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==}
+ engines: {node: '>= 12.13.0'}
+
+ local-pkg@0.4.3:
+ resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ engines: {node: '>=14'}
+
+ local-pkg@1.1.2:
+ resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
+ engines: {node: '>=14'}
+
+ localstorage-polyfill@1.0.1:
+ resolution: {integrity: sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==}
+ engines: {node: '>=6'}
+
+ locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ magic-string@0.30.19:
+ resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+
+ make-dir@4.0.0:
+ resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+ engines: {node: '>=10'}
+
+ makeerror@1.0.12:
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+
+ markdown-table@3.0.4:
+ resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
+
+ marked@18.0.7:
+ resolution: {integrity: sha512-iDVQ5ldaiKXn6b2JroX5kgRfmwgqolW7NpaEzTl1k/2Zh1njIEN9yniyLV/mOvWwtsE8OGgkjsCYvijuPk1dtA==}
+ engines: {node: '>= 20'}
+ hasBin: true
+
+ 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.2:
+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
+
+ mdast-util-frontmatter@2.0.1:
+ resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
+
+ 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-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
+
+ mdast-util-to-string@4.0.0:
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
+
+ media-typer@0.3.0:
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
+ engines: {node: '>= 0.6'}
+
+ meow@13.2.0:
+ resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
+ engines: {node: '>=18'}
+
+ merge-descriptors@1.0.3:
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
+
+ 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'}
+
+ merge@2.1.1:
+ resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==}
+
+ methods@1.1.2:
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
+ engines: {node: '>= 0.6'}
+
+ micromark-core-commonmark@2.0.3:
+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
+
+ micromark-extension-frontmatter@2.0.0:
+ resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
+
+ 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.1:
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
+
+ micromark-factory-label@2.0.1:
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
+
+ micromark-factory-space@2.0.1:
+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
+
+ micromark-factory-title@2.0.1:
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
+
+ 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.1:
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
+
+ micromark-util-combine-extensions@2.0.1:
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
+
+ micromark-util-decode-string@2.0.1:
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-html-tag-name@2.0.1:
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
+
+ micromark-util-normalize-identifier@2.0.1:
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
+
+ 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.1.0:
+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ 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-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ min-document@2.19.0:
+ resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@8.0.4:
+ resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ miniprogram-api-typings@4.1.0:
+ resolution: {integrity: sha512-4RBsz27nBKyRkVGoNkRaPx24/KeJBw3zaaIlXDR8s/WBh2PbcUAc+q7wLLbp7Qsmb3bLzzUu7tqAti+B06kmjg==}
+
+ mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
+
+ mlly@1.8.0:
+ resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+
+ module-alias@2.2.3:
+ resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==}
+
+ mp-html@2.5.2:
+ resolution: {integrity: sha512-45e8c32Qgux4YU4iC3qCSFsOh3y+RwPwZ+iz/vvLkDgSGWk+1zsL4WUzWWQc9w3AsAfkaD/QR0oIufIDngBmXA==}
+
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ muggle-string@0.4.1:
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ natural-orderby@5.0.0:
+ resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==}
+ engines: {node: '>=18'}
+
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
+ node-int64@0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+
+ node-releases@2.0.21:
+ resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-range@0.1.2:
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+ engines: {node: '>=0.10.0'}
+
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ nwsapi@2.2.22:
+ resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
+
+ object-deep-merge@1.0.5:
+ resolution: {integrity: sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==}
+
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+
+ omggif@1.0.10:
+ resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==}
+
+ 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@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ os-locale-s-fix@1.0.8-fix-1:
+ resolution: {integrity: sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==}
+ engines: {node: '>=10', yarn: ^1.22.4}
+
+ p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ package-manager-detector@1.3.0:
+ resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==}
+
+ pako@1.0.11:
+ resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-bmfont-ascii@1.0.6:
+ resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==}
+
+ parse-bmfont-binary@1.0.6:
+ resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==}
+
+ parse-bmfont-xml@1.1.6:
+ resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==}
+
+ parse-css-font@4.0.0:
+ resolution: {integrity: sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==}
+
+ parse-gitignore@2.0.0:
+ resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
+ engines: {node: '>=14'}
+
+ parse-headers@2.0.6:
+ resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==}
+
+ parse-imports-exports@0.2.4:
+ resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ parse-statements@1.0.11:
+ resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==}
+
+ parse5@6.0.1:
+ resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+
+ 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-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ 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-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-to-regexp@0.1.12:
+ resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
+ phin@2.9.3:
+ resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==}
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ phin@3.7.1:
+ resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==}
+ engines: {node: '>= 8'}
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
+ picomatch@4.0.5:
+ resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
+ engines: {node: '>=12'}
+
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ pinia@2.2.4:
+ resolution: {integrity: sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==}
+ peerDependencies:
+ '@vue/composition-api': ^1.4.0
+ typescript: '>=4.4.4'
+ vue: ^2.6.14 || ^3.3.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ typescript:
+ optional: true
+
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
+ pixelmatch@4.0.2:
+ resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==}
+ hasBin: true
+
+ pkg-dir@4.2.0:
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
+ engines: {node: '>=8'}
+
+ pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
+
+ pkg-types@2.3.0:
+ resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
+
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+
+ pngjs@3.4.0:
+ resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==}
+ engines: {node: '>=4.0.0'}
+
+ pnpm-workspace-yaml@1.1.2:
+ resolution: {integrity: sha512-XgS7j21a+I0dSmUzDUtKp4TAqPfLwJ0kAg0uQ2dveJxFrY14/9ukaD+Mt+4jt67RH4wgRsvNsjNdKbb/7NrMwQ==}
+
+ postcss-import@14.1.0:
+ resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-load-config@3.1.4:
+ resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+
+ postcss-modules-extract-imports@3.1.0:
+ resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules-local-by-default@4.2.0:
+ resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules-scope@3.2.1:
+ resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules-values@4.0.0:
+ resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules@4.3.1:
+ resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
+ postcss-selector-parser@7.1.0:
+ resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==}
+ engines: {node: '>=4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ pretty-format@27.5.1:
+ resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ prompts@2.4.2:
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
+
+ proxy-addr@2.0.7:
+ resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
+ engines: {node: '>= 0.10'}
+
+ psl@1.15.0:
+ resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ qrcode-reader@1.0.4:
+ resolution: {integrity: sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==}
+
+ qrcode-terminal@0.12.0:
+ resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==}
+ hasBin: true
+
+ qs@6.13.0:
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
+ engines: {node: '>=0.6'}
+
+ quansync@0.2.11:
+ resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
+
+ querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ raw-body@2.5.2:
+ resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
+ engines: {node: '>= 0.8'}
+
+ react-is@17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readdirp@5.0.0:
+ resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
+ engines: {node: '>= 20.19.0'}
+
+ refa@0.12.1:
+ resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ regenerate-unicode-properties@10.2.2:
+ resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==}
+ engines: {node: '>=4'}
+
+ regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+
+ regenerator-runtime@0.13.11:
+ resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+
+ regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
+ regexp-ast-analysis@0.7.1:
+ resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ regexp-tree@0.1.27:
+ resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
+ hasBin: true
+
+ regexpu-core@6.4.0:
+ resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==}
+ engines: {node: '>=4'}
+
+ regjsgen@0.8.0:
+ resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
+
+ regjsparser@0.12.0:
+ resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
+ hasBin: true
+
+ regjsparser@0.13.0:
+ resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==}
+ hasBin: true
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
+ resolve-cwd@3.0.0:
+ resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
+ engines: {node: '>=8'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve.exports@1.1.1:
+ resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==}
+ engines: {node: '>=10'}
+
+ resolve@1.22.10:
+ resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rollup@4.52.2:
+ resolution: {integrity: sha512-I25/2QgoROE1vYV+NQ1En9T9UFB9Cmfm2CJ83zZOlaDpvz29wGQSZXWKw7MiNXau7wYgB/T9fVIdIuEQ+KbiiA==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ safe-area-insets@1.4.1:
+ resolution: {integrity: sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ sass@1.102.0:
+ resolution: {integrity: sha512-NSOyTnaQF7rTAEOtI2fwb386vL+akyiQLBZu8Na7hXCb+umJy0GAqlcMIaqACZ6Z1VgTBS4K9PG6B3IdjHGJsw==}
+ engines: {node: '>=20.19.0'}
+ hasBin: true
+
+ sax@1.4.1:
+ resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
+
+ saxes@5.0.1:
+ resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
+ engines: {node: '>=10'}
+
+ scslre@0.3.0:
+ resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==}
+ engines: {node: ^14.0.0 || >=16.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.7.2:
+ resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ send@0.19.0:
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@1.16.2:
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
+ engines: {node: '>= 0.8.0'}
+
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ 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'}
+
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ 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'}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@4.0.0:
+ resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==}
+
+ spdx-license-ids@3.0.22:
+ resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==}
+
+ sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+
+ stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+
+ statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ string-hash@1.1.3:
+ resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==}
+
+ string-length@4.0.2:
+ resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
+ engines: {node: '>=10'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-bom@4.0.0:
+ resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
+ engines: {node: '>=8'}
+
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ strip-indent@4.1.0:
+ resolution: {integrity: sha512-OA95x+JPmL7kc7zCu+e+TeYxEiaIyndRx0OrBcK2QPPH09oAndr2ALvymxWA+Lx1PYYvFUm4O63pRkdJAaW96w==}
+ engines: {node: '>=12'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strip-literal@3.0.0:
+ resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ supports-hyperlinks@2.3.0:
+ resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
+ engines: {node: '>=8'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+
+ synckit@0.11.11:
+ resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ systemjs@6.15.1:
+ resolution: {integrity: sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==}
+
+ tapable@2.2.3:
+ resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==}
+ engines: {node: '>=6'}
+
+ terminal-link@2.1.1:
+ resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
+ engines: {node: '>=8'}
+
+ terser@5.44.0:
+ resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ test-exclude@6.0.0:
+ resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
+ engines: {node: '>=8'}
+
+ throat@6.0.2:
+ resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==}
+
+ timm@1.7.1:
+ resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==}
+
+ tinycolor2@1.6.0:
+ resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
+
+ tinyexec@1.0.1:
+ resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+
+ tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+
+ tmpl@1.0.5:
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ toml-eslint-parser@0.10.0:
+ resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ tough-cookie@4.1.4:
+ resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
+ engines: {node: '>=6'}
+
+ tr46@2.1.0:
+ resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==}
+ engines: {node: '>=8'}
+
+ ts-api-utils@2.1.0:
+ resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
+ ts-declaration-location@1.0.7:
+ resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==}
+ peerDependencies:
+ typescript: '>=4.0.0'
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+
+ type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+
+ type-fest@4.2.0:
+ resolution: {integrity: sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==}
+ engines: {node: '>=16'}
+
+ type-is@1.6.18:
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
+ engines: {node: '>= 0.6'}
+
+ typedarray-to-buffer@3.1.5:
+ resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+
+ typescript@5.9.2:
+ resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ ufo@1.6.1:
+ resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
+
+ undici-types@7.12.0:
+ resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
+
+ unicode-canonical-property-names-ecmascript@2.0.1:
+ resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-value-ecmascript@2.2.1:
+ resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==}
+ engines: {node: '>=4'}
+
+ unicode-property-aliases-ecmascript@2.2.0:
+ resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==}
+ engines: {node: '>=4'}
+
+ unimport@4.1.1:
+ resolution: {integrity: sha512-j9+fijH6aDd05yv1fXlyt7HSxtOWtGtrZeYTVBsSUg57Iuf+Ps2itIZjeyu7bEQ4k0WOgYhHrdW8m/pJgOpl5g==}
+ engines: {node: '>=18.12.0'}
+
+ unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+ unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
+ universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
+ unplugin-auto-import@19.1.0:
+ resolution: {integrity: sha512-B+TGBEBHqY9aR+7YfShfLujETOHstzpV+yaqgy5PkfV0QG7Py+TYMX7vJ9W4SrysHR+UzR+gzcx/nuZjmPeclA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@nuxt/kit': ^3.2.2
+ '@vueuse/core': '*'
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ '@vueuse/core':
+ optional: true
+
+ unplugin-utils@0.2.5:
+ resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==}
+ engines: {node: '>=18.12.0'}
+
+ unplugin@2.3.10:
+ resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
+ engines: {node: '>=18.12.0'}
+
+ unquote@1.1.1:
+ resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==}
+
+ update-browserslist-db@1.1.3:
+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+
+ utif@2.0.1:
+ resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
+ v8-to-istanbul@8.1.1:
+ resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==}
+ engines: {node: '>=10.12.0'}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ vite@5.2.8:
+ resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ vscode-uri@3.1.0:
+ resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
+
+ vue-demi@0.14.10:
+ resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
+ vue-eslint-parser@10.2.0:
+ resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
+ vue-i18n@9.6.2:
+ resolution: {integrity: sha512-J43grTQjPR8LCUxvx3mkoM+11xhTnej1Al4lvJCEeKmQqf8eqbuYPQb54HXnEg/UzZyaxLBAwPAUTbrZ8V7hcg==}
+ engines: {node: '>= 16'}
+ deprecated: v9 and v10 no longer supported. please migrate to v11. about maintenance status, see https://vue-i18n.intlify.dev/guide/maintenance.html
+ peerDependencies:
+ vue: ^3.0.0
+
+ vue-router@4.5.1:
+ resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ vue-tsc@3.0.8:
+ resolution: {integrity: sha512-H9yg/m6ywykmWS+pIAEs65v2FrVm5uOA0a0dHkX6Sx8dNg1a1m4iudt/6eGa9fAenmNHGlLFN9XpWQb8i5sU1w==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.0.0'
+
+ vue@3.4.21:
+ resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ w3c-hr-time@1.0.2:
+ resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
+ deprecated: Use your platform's native performance.now() and performance.timeOrigin.
+
+ w3c-xmlserializer@2.0.0:
+ resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==}
+ engines: {node: '>=10'}
+
+ walker@1.0.8:
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+
+ webidl-conversions@5.0.0:
+ resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
+ engines: {node: '>=8'}
+
+ webidl-conversions@6.1.0:
+ resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==}
+ engines: {node: '>=10.4'}
+
+ webpack-virtual-modules@0.6.2:
+ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+
+ whatwg-encoding@1.0.5:
+ resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==}
+ deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
+
+ whatwg-mimetype@2.3.0:
+ resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==}
+
+ whatwg-url@8.7.0:
+ resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==}
+ engines: {node: '>=10'}
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ write-file-atomic@3.0.3:
+ resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
+
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ ws@8.18.3:
+ resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
+ 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
+
+ xhr@2.6.0:
+ resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==}
+
+ xml-name-validator@3.0.0:
+ resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==}
+
+ xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+
+ xml-parse-from-string@1.0.1:
+ resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==}
+
+ xml2js@0.5.0:
+ resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
+ engines: {node: '>=4.0.0'}
+
+ xmlbuilder@11.0.1:
+ resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
+ engines: {node: '>=4.0'}
+
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
+ xmlhttprequest@1.8.0:
+ resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==}
+ engines: {node: '>=0.4.0'}
+
+ xregexp@3.1.0:
+ resolution: {integrity: sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==}
+
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yaml-eslint-parser@1.3.0:
+ resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+
+ yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
+ yaml@2.8.1:
+ resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yargs-parser@20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+ engines: {node: '>=10'}
+
+ yargs@16.2.0:
+ resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
+ engines: {node: '>=10'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@antfu/eslint-config@5.4.1(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@antfu/install-pkg': 1.1.0
+ '@clack/prompts': 0.11.0
+ '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.36.0(supports-color@8.1.1))
+ '@eslint/markdown': 7.3.0(supports-color@8.1.1)
+ '@stylistic/eslint-plugin': 5.4.0(eslint@9.36.0(supports-color@8.1.1))
+ '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ '@vitest/eslint-plugin': 1.3.12(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ ansis: 4.1.0
+ cac: 6.7.14
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-config-flat-gitignore: 2.1.0(eslint@9.36.0(supports-color@8.1.1))
+ eslint-flat-config-utils: 2.1.4
+ eslint-merge-processors: 2.0.0(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-antfu: 3.1.1(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-command: 3.3.1(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-import-lite: 0.3.0(eslint@9.36.0(supports-color@8.1.1))(typescript@5.9.2)
+ eslint-plugin-jsdoc: 59.1.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-plugin-jsonc: 2.20.1(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-n: 17.23.1(eslint@9.36.0(supports-color@8.1.1))(typescript@5.9.2)
+ eslint-plugin-no-only-tests: 3.3.0
+ eslint-plugin-perfectionist: 4.15.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ eslint-plugin-pnpm: 1.1.2(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-regexp: 2.10.0(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-toml: 0.12.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-plugin-unicorn: 61.0.2(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))
+ eslint-plugin-vue: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(supports-color@8.1.1)))(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1))
+ eslint-plugin-yml: 1.18.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(supports-color@8.1.1))
+ globals: 16.4.0
+ jsonc-eslint-parser: 2.4.1
+ local-pkg: 1.1.2
+ parse-gitignore: 2.0.0
+ toml-eslint-parser: 0.10.0
+ vue-eslint-parser: 10.2.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)
+ yaml-eslint-parser: 1.3.0
+ transitivePeerDependencies:
+ - '@eslint/json'
+ - '@vue/compiler-sfc'
+ - supports-color
+ - typescript
+ - vitest
+
+ '@antfu/install-pkg@1.1.0':
+ dependencies:
+ package-manager-detector: 1.3.0
+ tinyexec: 1.0.1
+
+ '@antfu/utils@0.7.10': {}
+
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.28.4': {}
+
+ '@babel/core@7.28.4(supports-color@8.1.1)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helpers': 7.28.4
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3(supports-color@8.1.1)
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.28.3':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ dependencies:
+ '@babel/types': 7.28.4
+
+ '@babel/helper-compilation-targets@7.27.2':
+ dependencies:
+ '@babel/compat-data': 7.28.4
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.26.2
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.27.1(supports-color@8.1.1)
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ regexpu-core: 6.4.0
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ debug: 4.4.3(supports-color@8.1.1)
+ lodash.debounce: 4.0.8
+ resolve: 1.22.10
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-globals@7.28.0': {}
+
+ '@babel/helper-member-expression-to-functions@7.27.1(supports-color@8.1.1)':
+ dependencies:
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.27.1(supports-color@8.1.1)':
+ dependencies:
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1)
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ dependencies:
+ '@babel/types': 7.28.4
+
+ '@babel/helper-plugin-utils@7.27.1': {}
+
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-wrap-function': 7.28.3(supports-color@8.1.1)
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-member-expression-to-functions': 7.27.1(supports-color@8.1.1)
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1(supports-color@8.1.1)':
+ dependencies:
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.27.1': {}
+
+ '@babel/helper-validator-option@7.27.1': {}
+
+ '@babel/helper-wrap-function@7.28.3(supports-color@8.1.1)':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helpers@7.28.4':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+
+ '@babel/parser@7.28.4':
+ dependencies:
+ '@babel/types': 7.28.4
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4(supports-color@8.1.1))
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-globals': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/template': 7.27.2
+
+ '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/preset-env@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/compat-data': 7.28.4
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-validator-option': 7.27.1
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4(supports-color@8.1.1))
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ core-js-compat: 3.45.1
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/types': 7.28.4
+ esutils: 2.0.3
+
+ '@babel/runtime@7.28.4': {}
+
+ '@babel/template@7.27.2':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+
+ '@babel/traverse@7.28.4(supports-color@8.1.1)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+ debug: 4.4.3(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.28.4':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@bcoe/v8-coverage@0.2.3': {}
+
+ '@clack/core@0.5.0':
+ dependencies:
+ picocolors: 1.1.1
+ sisteransi: 1.0.5
+
+ '@clack/prompts@0.11.0':
+ dependencies:
+ '@clack/core': 0.5.0
+ picocolors: 1.1.1
+ sisteransi: 1.0.5
+
+ '@dcloudio/types@3.4.21': {}
+
+ '@dcloudio/uni-app-harmony@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-app-uts': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-app-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ debug: 4.4.3(supports-color@8.1.1)
+ fs-extra: 10.1.0
+ licia: 1.48.0
+ postcss-selector-parser: 6.1.2
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vite
+ - vue
+
+ '@dcloudio/uni-app-plus@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-app-uts': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-app-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-app-vue': 3.0.0-4070620250821001
+ debug: 4.4.3(supports-color@8.1.1)
+ fs-extra: 10.1.0
+ licia: 1.48.0
+ postcss-selector-parser: 6.1.2
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vite
+ - vue
+
+ '@dcloudio/uni-app-uts@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-console': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-nvue-styler': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.2)
+ '@vue/compiler-core': 3.4.21
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/consolidate': 1.0.0
+ '@vue/shared': 3.4.21
+ debug: 4.4.3(supports-color@8.1.1)
+ es-module-lexer: 1.7.0
+ estree-walker: 2.0.2
+ fast-glob: 3.3.3
+ fs-extra: 10.1.0
+ magic-string: 0.30.19
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+ unimport: 4.1.1
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-app-vite@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-nvue-styler': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.2)
+ '@vitejs/plugin-vue': 5.1.0(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ debug: 4.4.3(supports-color@8.1.1)
+ fs-extra: 10.1.0
+ picocolors: 1.1.1
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vite
+ - vue
+
+ '@dcloudio/uni-app-vue@3.0.0-4070620250821001': {}
+
+ '@dcloudio/uni-app@3.0.0-4070620250821001(@dcloudio/types@3.4.21)(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/types': 3.4.21
+ '@dcloudio/uni-cloud': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-components': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-console': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-push': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@dcloudio/uni-stat': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-automator@3.0.0-4070620250821001(jest-environment-node@27.5.1)(jest@27.0.4(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ address: 1.2.2
+ cross-env: 7.0.3
+ debug: 4.4.3(supports-color@8.1.1)
+ default-gateway: 6.0.3
+ fs-extra: 10.1.0
+ jest: 27.0.4(supports-color@8.1.1)
+ jest-environment-node: 27.5.1
+ jsonc-parser: 3.3.1
+ licia: 1.48.0
+ merge: 2.1.1
+ qrcode-reader: 1.0.4
+ qrcode-terminal: 0.12.0
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - bufferutil
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - utf-8-validate
+ - vue
+
+ '@dcloudio/uni-cli-shared@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@intlify/core-base': 9.1.9
+ '@intlify/shared': 9.1.9
+ '@intlify/vue-devtools': 9.1.9
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.2)
+ '@vue/compiler-core': 3.4.21
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/compiler-ssr': 3.4.21
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.2))
+ '@vue/shared': 3.4.21
+ adm-zip: 0.5.16
+ autoprefixer: 10.4.21(postcss@8.5.6)
+ base64url: 3.0.1
+ chokidar: 3.6.0
+ compare-versions: 3.6.0
+ debug: 4.4.3(supports-color@8.1.1)
+ entities: 4.5.0
+ es-module-lexer: 1.7.0
+ esbuild: 0.20.2
+ estree-walker: 2.0.2
+ fast-glob: 3.3.3
+ fs-extra: 10.1.0
+ hash-sum: 2.0.0
+ isbinaryfile: 5.0.6
+ jsonc-parser: 3.3.1
+ lines-and-columns: 2.0.4
+ magic-string: 0.30.19
+ merge: 2.1.1
+ mime: 3.0.0
+ module-alias: 2.2.3
+ os-locale-s-fix: 1.0.8-fix-1
+ picocolors: 1.1.1
+ postcss-import: 14.1.0(postcss@8.5.6)
+ postcss-load-config: 3.1.4(postcss@8.5.6)
+ postcss-modules: 4.3.1(postcss@8.5.6)
+ postcss-selector-parser: 6.1.2
+ resolve: 1.22.10
+ source-map-js: 1.2.1
+ tapable: 2.2.3
+ unimport: 4.1.1
+ unplugin-auto-import: 19.1.0
+ xregexp: 3.1.0
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-cloud@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ fast-glob: 3.3.3
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-components@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cloud': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-h5': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-console@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-h5-vite@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.2)
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.2))
+ '@vue/shared': 3.4.21
+ debug: 4.4.3(supports-color@8.1.1)
+ fs-extra: 10.1.0
+ mime: 3.0.0
+ module-alias: 2.2.3
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-h5-vue@3.0.0-4070620250821001(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.2))
+ transitivePeerDependencies:
+ - vue
+
+ '@dcloudio/uni-h5@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-h5-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-h5-vue': 3.0.0-4070620250821001(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.2))
+ '@vue/shared': 3.4.21
+ debug: 4.4.3(supports-color@8.1.1)
+ localstorage-polyfill: 1.0.1
+ postcss-selector-parser: 6.1.2
+ safe-area-insets: 1.4.1
+ vue-router: 4.5.1(vue@3.4.21(typescript@5.9.2))
+ xmlhttprequest: 1.8.0
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-i18n@3.0.0-4070620250821001': {}
+
+ '@dcloudio/uni-mp-alipay@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-baidu@3.0.0-4070620250821001(@dcloudio/types@3.4.21)(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-app': 3.0.0-4070620250821001(@dcloudio/types@3.4.21)(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-mp-weixin': 3.0.0-4070620250821001(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
+ jimp: 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ licia: 1.48.0
+ qrcode-reader: 1.0.4
+ qrcode-terminal: 0.12.0
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - '@dcloudio/types'
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - bufferutil
+ - debug
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - utf-8-validate
+ - vue
+
+ '@dcloudio/uni-mp-compiler@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@babel/generator': 7.28.3
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-core': 3.4.21
+ '@vue/compiler-dom': 3.4.21
+ '@vue/shared': 3.4.21
+ estree-walker: 2.0.2
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-harmony@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-toutiao': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-quickapp-webview': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-jd@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-kuaishou@3.0.0-4070620250821001(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-mp-weixin': 3.0.0-4070620250821001(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - bufferutil
+ - debug
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - utf-8-validate
+ - vue
+
+ '@dcloudio/uni-mp-lark@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-toutiao': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-qq@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-toutiao@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-vite@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-i18n': 3.0.0-4070620250821001
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/shared': 3.4.21
+ debug: 4.4.3(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-mp-vue@3.0.0-4070620250821001':
+ dependencies:
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+
+ '@dcloudio/uni-mp-weixin@3.0.0-4070620250821001(debug@4.4.3(supports-color@8.1.1))(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ jimp: 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ licia: 1.48.0
+ qrcode-reader: 1.0.4
+ qrcode-terminal: 0.12.0
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - bufferutil
+ - debug
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - utf-8-validate
+ - vue
+
+ '@dcloudio/uni-mp-xhs@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-compiler': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-nvue-styler@3.0.0-4070620250821001':
+ dependencies:
+ parse-css-font: 4.0.0
+ postcss: 8.5.6
+
+ '@dcloudio/uni-push@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-quickapp-webview@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vite': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-mp-vue': 3.0.0-4070620250821001
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@vue/shared': 3.4.21
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/uni-shared@3.0.0-4070620250821001':
+ dependencies:
+ '@vue/shared': 3.4.21
+
+ '@dcloudio/uni-stacktracey@3.0.0-4070620250821001': {}
+
+ '@dcloudio/uni-stat@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ debug: 4.4.3(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@dcloudio/vite-plugin-uni@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@dcloudio/uni-cli-shared': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vue@3.4.21(typescript@5.9.2))
+ '@dcloudio/uni-shared': 3.0.0-4070620250821001
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.2)
+ '@vitejs/plugin-legacy': 5.3.2(supports-color@8.1.1)(terser@5.44.0)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))
+ '@vitejs/plugin-vue': 5.1.0(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@vitejs/plugin-vue-jsx': 3.1.0(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+ '@vue/compiler-core': 3.4.21
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/shared': 3.4.21
+ cac: 6.7.9
+ debug: 4.4.3(supports-color@8.1.1)
+ estree-walker: 2.0.2
+ express: 4.21.2(supports-color@8.1.1)
+ fast-glob: 3.3.3
+ fs-extra: 10.1.0
+ hash-sum: 2.0.0
+ jsonc-parser: 3.3.1
+ magic-string: 0.30.19
+ picocolors: 1.1.1
+ terser: 5.44.0
+ unplugin-auto-import: 19.1.0
+ vite: 5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0)
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - '@vueuse/core'
+ - postcss
+ - rollup
+ - supports-color
+ - ts-node
+ - vue
+
+ '@es-joy/jsdoccomment@0.50.2':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@typescript-eslint/types': 8.44.1
+ comment-parser: 1.4.1
+ esquery: 1.6.0
+ jsdoc-type-pratt-parser: 4.1.0
+
+ '@es-joy/jsdoccomment@0.58.0':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@typescript-eslint/types': 8.44.1
+ comment-parser: 1.4.1
+ esquery: 1.6.0
+ jsdoc-type-pratt-parser: 5.4.0
+
+ '@esbuild/aix-ppc64@0.20.2':
+ optional: true
+
+ '@esbuild/android-arm64@0.20.2':
+ optional: true
+
+ '@esbuild/android-arm@0.20.2':
+ optional: true
+
+ '@esbuild/android-x64@0.20.2':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.20.2':
+ optional: true
+
+ '@esbuild/darwin-x64@0.20.2':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.20.2':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.20.2':
+ optional: true
+
+ '@esbuild/linux-arm64@0.20.2':
+ optional: true
+
+ '@esbuild/linux-arm@0.20.2':
+ optional: true
+
+ '@esbuild/linux-ia32@0.20.2':
+ optional: true
+
+ '@esbuild/linux-loong64@0.20.2':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.20.2':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.20.2':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.20.2':
+ optional: true
+
+ '@esbuild/linux-s390x@0.20.2':
+ optional: true
+
+ '@esbuild/linux-x64@0.20.2':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.20.2':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.20.2':
+ optional: true
+
+ '@esbuild/sunos-x64@0.20.2':
+ optional: true
+
+ '@esbuild/win32-arm64@0.20.2':
+ optional: true
+
+ '@esbuild/win32-ia32@0.20.2':
+ optional: true
+
+ '@esbuild/win32-x64@0.20.2':
+ optional: true
+
+ '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.36.0(supports-color@8.1.1))':
+ dependencies:
+ escape-string-regexp: 4.0.0
+ eslint: 9.36.0(supports-color@8.1.1)
+ ignore: 5.3.2
+
+ '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(supports-color@8.1.1))':
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/compat@1.4.0(eslint@9.36.0(supports-color@8.1.1))':
+ dependencies:
+ '@eslint/core': 0.16.0
+ optionalDependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+
+ '@eslint/config-array@0.21.0(supports-color@8.1.1)':
+ dependencies:
+ '@eslint/object-schema': 2.1.6
+ debug: 4.4.3(supports-color@8.1.1)
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.3.1': {}
+
+ '@eslint/core@0.15.2':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/core@0.16.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.1(supports-color@8.1.1)':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.3(supports-color@8.1.1)
+ espree: 10.4.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.36.0': {}
+
+ '@eslint/markdown@7.3.0(supports-color@8.1.1)':
+ dependencies:
+ '@eslint/core': 0.15.2
+ '@eslint/plugin-kit': 0.3.5
+ github-slugger: 2.0.0
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-frontmatter: 2.0.1(supports-color@8.1.1)
+ mdast-util-gfm: 3.1.0(supports-color@8.1.1)
+ micromark-extension-frontmatter: 2.0.0
+ micromark-extension-gfm: 3.0.0
+ micromark-util-normalize-identifier: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/object-schema@2.1.6': {}
+
+ '@eslint/plugin-kit@0.3.5':
+ dependencies:
+ '@eslint/core': 0.15.2
+ levn: 0.4.1
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.7':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.4.3
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
+
+ '@intlify/core-base@9.1.9':
+ dependencies:
+ '@intlify/devtools-if': 9.1.9
+ '@intlify/message-compiler': 9.1.9
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/runtime': 9.1.9
+ '@intlify/shared': 9.1.9
+ '@intlify/vue-devtools': 9.1.9
+
+ '@intlify/core-base@9.6.2':
+ dependencies:
+ '@intlify/message-compiler': 9.6.2
+ '@intlify/shared': 9.6.2
+
+ '@intlify/devtools-if@9.1.9':
+ dependencies:
+ '@intlify/shared': 9.1.9
+
+ '@intlify/message-compiler@9.1.9':
+ dependencies:
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/shared': 9.1.9
+ source-map: 0.6.1
+
+ '@intlify/message-compiler@9.6.2':
+ dependencies:
+ '@intlify/shared': 9.6.2
+ source-map-js: 1.2.1
+
+ '@intlify/message-resolver@9.1.9': {}
+
+ '@intlify/runtime@9.1.9':
+ dependencies:
+ '@intlify/message-compiler': 9.1.9
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/shared': 9.1.9
+
+ '@intlify/shared@9.1.9': {}
+
+ '@intlify/shared@9.6.2': {}
+
+ '@intlify/vue-devtools@9.1.9':
+ dependencies:
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/runtime': 9.1.9
+ '@intlify/shared': 9.1.9
+
+ '@istanbuljs/load-nyc-config@1.1.0':
+ dependencies:
+ camelcase: 5.3.1
+ find-up: 4.1.0
+ get-package-type: 0.1.0
+ js-yaml: 3.14.1
+ resolve-from: 5.0.0
+
+ '@istanbuljs/schema@0.1.3': {}
+
+ '@jest/console@27.5.1':
+ dependencies:
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ chalk: 4.1.2
+ jest-message-util: 27.5.1
+ jest-util: 27.5.1
+ slash: 3.0.0
+
+ '@jest/core@27.5.1(supports-color@8.1.1)':
+ dependencies:
+ '@jest/console': 27.5.1
+ '@jest/reporters': 27.5.1(supports-color@8.1.1)
+ '@jest/test-result': 27.5.1
+ '@jest/transform': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ emittery: 0.8.1
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ jest-changed-files: 27.5.1
+ jest-config: 27.5.1(supports-color@8.1.1)
+ jest-haste-map: 27.5.1
+ jest-message-util: 27.5.1
+ jest-regex-util: 27.5.1
+ jest-resolve: 27.5.1
+ jest-resolve-dependencies: 27.5.1(supports-color@8.1.1)
+ jest-runner: 27.5.1(supports-color@8.1.1)
+ jest-runtime: 27.5.1(supports-color@8.1.1)
+ jest-snapshot: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ jest-validate: 27.5.1
+ jest-watcher: 27.5.1
+ micromatch: 4.0.8
+ rimraf: 3.0.2
+ slash: 3.0.0
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - ts-node
+ - utf-8-validate
+
+ '@jest/environment@27.5.1':
+ dependencies:
+ '@jest/fake-timers': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ jest-mock: 27.5.1
+
+ '@jest/fake-timers@27.5.1':
+ dependencies:
+ '@jest/types': 27.5.1
+ '@sinonjs/fake-timers': 8.1.0
+ '@types/node': 24.5.2
+ jest-message-util: 27.5.1
+ jest-mock: 27.5.1
+ jest-util: 27.5.1
+
+ '@jest/globals@27.5.1':
+ dependencies:
+ '@jest/environment': 27.5.1
+ '@jest/types': 27.5.1
+ expect: 27.5.1
+
+ '@jest/reporters@27.5.1(supports-color@8.1.1)':
+ dependencies:
+ '@bcoe/v8-coverage': 0.2.3
+ '@jest/console': 27.5.1
+ '@jest/test-result': 27.5.1
+ '@jest/transform': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ chalk: 4.1.2
+ collect-v8-coverage: 1.0.2
+ exit: 0.1.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ istanbul-lib-coverage: 3.2.2
+ istanbul-lib-instrument: 5.2.1(supports-color@8.1.1)
+ istanbul-lib-report: 3.0.1
+ istanbul-lib-source-maps: 4.0.1(supports-color@8.1.1)
+ istanbul-reports: 3.2.0
+ jest-haste-map: 27.5.1
+ jest-resolve: 27.5.1
+ jest-util: 27.5.1
+ jest-worker: 27.5.1
+ slash: 3.0.0
+ source-map: 0.6.1
+ string-length: 4.0.2
+ terminal-link: 2.1.1
+ v8-to-istanbul: 8.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/source-map@27.5.1':
+ dependencies:
+ callsites: 3.1.0
+ graceful-fs: 4.2.11
+ source-map: 0.6.1
+
+ '@jest/test-result@27.5.1':
+ dependencies:
+ '@jest/console': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/istanbul-lib-coverage': 2.0.6
+ collect-v8-coverage: 1.0.2
+
+ '@jest/test-sequencer@27.5.1(supports-color@8.1.1)':
+ dependencies:
+ '@jest/test-result': 27.5.1
+ graceful-fs: 4.2.11
+ jest-haste-map: 27.5.1
+ jest-runtime: 27.5.1(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/transform@27.5.1(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ babel-plugin-istanbul: 6.1.1(supports-color@8.1.1)
+ chalk: 4.1.2
+ convert-source-map: 1.9.0
+ fast-json-stable-stringify: 2.1.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 27.5.1
+ jest-regex-util: 27.5.1
+ jest-util: 27.5.1
+ micromatch: 4.0.8
+ pirates: 4.0.7
+ slash: 3.0.0
+ source-map: 0.6.1
+ write-file-atomic: 3.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/types@27.5.1':
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 24.5.2
+ '@types/yargs': 16.0.9
+ chalk: 4.1.2
+
+ '@jimp/bmp@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ bmp-js: 0.1.0
+ core-js: 3.45.1
+
+ '@jimp/core@0.10.3(debug@4.4.3(supports-color@8.1.1))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/utils': 0.10.3
+ any-base: 1.1.0
+ buffer: 5.7.1
+ core-js: 3.45.1
+ exif-parser: 0.1.12
+ file-type: 9.0.0
+ load-bmfont: 1.4.2(debug@4.4.3(supports-color@8.1.1))
+ mkdirp: 0.5.6
+ phin: 2.9.3
+ pixelmatch: 4.0.2
+ tinycolor2: 1.6.0
+ transitivePeerDependencies:
+ - debug
+
+ '@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/core': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ core-js: 3.45.1
+ transitivePeerDependencies:
+ - debug
+
+ '@jimp/gif@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+ omggif: 1.0.10
+
+ '@jimp/jpeg@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+ jpeg-js: 0.3.7
+
+ '@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-circle@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+ tinycolor2: 1.6.0
+
+ '@jimp/plugin-contain@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-cover@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-displace@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-dither@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-fisheye@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-flip@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-gaussian@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-invert@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-mask@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-normalize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-print@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(debug@4.4.3(supports-color@8.1.1))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+ load-bmfont: 1.4.2(debug@4.4.3(supports-color@8.1.1))
+ transitivePeerDependencies:
+ - debug
+
+ '@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-shadow@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugin-threshold@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+
+ '@jimp/plugins@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(debug@4.4.3(supports-color@8.1.1))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-circle': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-contain': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))))
+ '@jimp/plugin-cover': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))))
+ '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-displace': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-dither': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-fisheye': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-flip': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))))
+ '@jimp/plugin-gaussian': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-invert': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-mask': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-normalize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-print': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ '@jimp/plugin-shadow': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ '@jimp/plugin-threshold': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1))))
+ core-js: 3.45.1
+ timm: 1.7.1
+ transitivePeerDependencies:
+ - debug
+
+ '@jimp/png@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/utils': 0.10.3
+ core-js: 3.45.1
+ pngjs: 3.4.0
+
+ '@jimp/tiff@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ core-js: 3.45.1
+ utif: 2.0.1
+
+ '@jimp/types@0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/bmp': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/gif': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/jpeg': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/png': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ '@jimp/tiff': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ core-js: 3.45.1
+ timm: 1.7.1
+
+ '@jimp/utils@0.10.3':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ core-js: 3.45.1
+ regenerator-runtime: 0.13.11
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/source-map@0.3.11':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@mini-types/alipay@3.0.14':
+ dependencies:
+ '@mini-types/global': 3.0.14
+ '@mini-types/my': 3.0.14
+
+ '@mini-types/global@3.0.14': {}
+
+ '@mini-types/my@3.0.14': {}
+
+ '@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.19.1
+
+ '@parcel/watcher-android-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher@2.6.0':
+ dependencies:
+ detect-libc: 2.1.2
+ is-glob: 4.0.3
+ node-addon-api: 7.1.1
+ picomatch: 4.0.5
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.6.0
+ '@parcel/watcher-darwin-arm64': 2.6.0
+ '@parcel/watcher-darwin-x64': 2.6.0
+ '@parcel/watcher-freebsd-x64': 2.6.0
+ '@parcel/watcher-linux-arm-glibc': 2.6.0
+ '@parcel/watcher-linux-arm-musl': 2.6.0
+ '@parcel/watcher-linux-arm64-glibc': 2.6.0
+ '@parcel/watcher-linux-arm64-musl': 2.6.0
+ '@parcel/watcher-linux-x64-glibc': 2.6.0
+ '@parcel/watcher-linux-x64-musl': 2.6.0
+ '@parcel/watcher-win32-arm64': 2.6.0
+ '@parcel/watcher-win32-x64': 2.6.0
+ optional: true
+
+ '@pkgr/core@0.2.9': {}
+
+ '@rollup/pluginutils@5.3.0(rollup@4.52.2)':
+ dependencies:
+ '@types/estree': 1.0.8
+ estree-walker: 2.0.2
+ picomatch: 4.0.3
+ optionalDependencies:
+ rollup: 4.52.2
+
+ '@rollup/rollup-android-arm-eabi@4.52.2':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.52.2':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.52.2':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.52.2':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.52.2':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-loong64-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-ppc64-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-musl@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.52.2':
+ optional: true
+
+ '@rollup/rollup-openharmony-arm64@4.52.2':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.52.2':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.52.2':
+ optional: true
+
+ '@rollup/rollup-win32-x64-gnu@4.52.2':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.52.2':
+ optional: true
+
+ '@sinonjs/commons@1.8.6':
+ dependencies:
+ type-detect: 4.0.8
+
+ '@sinonjs/fake-timers@8.1.0':
+ dependencies:
+ '@sinonjs/commons': 1.8.6
+
+ '@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(supports-color@8.1.1))':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@typescript-eslint/types': 8.44.1
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ estraverse: 5.3.0
+ picomatch: 4.0.5
+
+ '@tootallnate/once@1.1.2': {}
+
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@types/babel__generator': 7.27.0
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.28.0
+
+ '@types/babel__generator@7.27.0':
+ dependencies:
+ '@babel/types': 7.28.4
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+
+ '@types/babel__traverse@7.28.0':
+ dependencies:
+ '@babel/types': 7.28.4
+
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 2.1.0
+
+ '@types/estree@1.0.8': {}
+
+ '@types/graceful-fs@4.1.9':
+ dependencies:
+ '@types/node': 24.5.2
+
+ '@types/istanbul-lib-coverage@2.0.6': {}
+
+ '@types/istanbul-lib-report@3.0.3':
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+
+ '@types/istanbul-reports@3.0.4':
+ dependencies:
+ '@types/istanbul-lib-report': 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/node@24.5.2':
+ dependencies:
+ undici-types: 7.12.0
+
+ '@types/prettier@2.7.3': {}
+
+ '@types/stack-utils@2.0.3': {}
+
+ '@types/unist@3.0.3': {}
+
+ '@types/yargs-parser@21.0.3': {}
+
+ '@types/yargs@16.0.9':
+ dependencies:
+ '@types/yargs-parser': 21.0.3
+
+ '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/scope-manager': 8.44.1
+ '@typescript-eslint/type-utils': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/visitor-keys': 8.44.1
+ eslint: 9.36.0(supports-color@8.1.1)
+ graphemer: 1.4.0
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.44.1
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/typescript-estree': 8.44.1(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/visitor-keys': 8.44.1
+ debug: 4.4.3(supports-color@8.1.1)
+ eslint: 9.36.0(supports-color@8.1.1)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.44.1(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2)
+ '@typescript-eslint/types': 8.44.1
+ debug: 4.4.3(supports-color@8.1.1)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.44.1':
+ dependencies:
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/visitor-keys': 8.44.1
+
+ '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.9.2)':
+ dependencies:
+ typescript: 5.9.2
+
+ '@typescript-eslint/type-utils@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/typescript-estree': 8.44.1(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ debug: 4.4.3(supports-color@8.1.1)
+ eslint: 9.36.0(supports-color@8.1.1)
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@8.44.1': {}
+
+ '@typescript-eslint/typescript-estree@8.44.1(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.44.1(supports-color@8.1.1)(typescript@5.9.2)
+ '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2)
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/visitor-keys': 8.44.1
+ debug: 4.4.3(supports-color@8.1.1)
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.2
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@typescript-eslint/scope-manager': 8.44.1
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/typescript-estree': 8.44.1(supports-color@8.1.1)(typescript@5.9.2)
+ eslint: 9.36.0(supports-color@8.1.1)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.44.1':
+ dependencies:
+ '@typescript-eslint/types': 8.44.1
+ eslint-visitor-keys: 4.2.1
+
+ '@uni-helper/eslint-config@0.5.0(@antfu/eslint-config@5.4.1(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@antfu/eslint-config': 5.4.1(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ '@eslint/eslintrc': 3.3.1(supports-color@8.1.1)
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-flat-config-utils: 2.1.4
+ local-pkg: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@uni-helper/plugin-uni@0.1.0(@dcloudio/vite-plugin-uni@3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2)))':
+ dependencies:
+ '@dcloudio/vite-plugin-uni': 3.0.0-4070620250821001(postcss@8.5.6)(rollup@4.52.2)(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))
+
+ '@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ typescript: 5.9.2
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@uni-helper/uni-cloud-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ typescript: 5.9.2
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@uni-helper/uni-types@1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(@uni-helper/uni-cloud-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(@uni-helper/uni-ui-types@1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@uni-helper/uni-app-types': 1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ '@uni-helper/uni-cloud-types': 1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ '@uni-helper/uni-ui-types': 1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ typescript: 5.9.2
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@uni-helper/uni-ui-types@1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)))(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@uni-helper/uni-app-types': 1.0.0-alpha.6(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))
+ typescript: 5.9.2
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@uni-helper/vite-plugin-uni-components@0.2.3(rollup@4.52.2)(supports-color@8.1.1)':
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.2)
+ chokidar: 3.6.0
+ debug: 4.4.3(supports-color@8.1.1)
+ fast-glob: 3.3.3
+ local-pkg: 0.4.3
+ magic-string: 0.30.19
+ minimatch: 8.0.4
+ resolve: 1.22.10
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ '@vitejs/plugin-legacy@5.3.2(supports-color@8.1.1)(terser@5.44.0)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/preset-env': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ browserslist: 4.26.2
+ browserslist-to-esbuild: 2.1.1(browserslist@4.26.2)
+ core-js: 3.45.1
+ magic-string: 0.30.19
+ regenerator-runtime: 0.14.1
+ systemjs: 6.15.1
+ terser: 5.44.0
+ vite: 5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vitejs/plugin-vue-jsx@3.1.0(supports-color@8.1.1)(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ vite: 5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0)
+ vue: 3.4.21(typescript@5.9.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vitejs/plugin-vue@5.1.0(vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0))(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ vite: 5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0)
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@vitest/eslint-plugin@1.3.12(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.44.1
+ '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ eslint: 9.36.0(supports-color@8.1.1)
+ optionalDependencies:
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@volar/language-core@2.4.23':
+ dependencies:
+ '@volar/source-map': 2.4.23
+
+ '@volar/source-map@2.4.23': {}
+
+ '@volar/typescript@2.4.23':
+ dependencies:
+ '@volar/language-core': 2.4.23
+ path-browserify: 1.0.1
+ vscode-uri: 3.1.0
+
+ '@vue/babel-helper-vue-transform-on@1.5.0': {}
+
+ '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ '@vue/babel-helper-vue-transform-on': 1.5.0
+ '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ '@vue/shared': 3.5.21
+ optionalDependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/parser': 7.28.4
+ '@vue/compiler-sfc': 3.5.21
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/compiler-core@3.4.21':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@vue/shared': 3.4.21
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-core@3.5.21':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@vue/shared': 3.5.21
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.4.21':
+ dependencies:
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
+
+ '@vue/compiler-dom@3.5.21':
+ dependencies:
+ '@vue/compiler-core': 3.5.21
+ '@vue/shared': 3.5.21
+
+ '@vue/compiler-sfc@3.4.21':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@vue/compiler-core': 3.4.21
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-ssr': 3.4.21
+ '@vue/shared': 3.4.21
+ estree-walker: 2.0.2
+ magic-string: 0.30.19
+ postcss: 8.5.6
+ source-map-js: 1.2.1
+
+ '@vue/compiler-sfc@3.5.21':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@vue/compiler-core': 3.5.21
+ '@vue/compiler-dom': 3.5.21
+ '@vue/compiler-ssr': 3.5.21
+ '@vue/shared': 3.5.21
+ estree-walker: 2.0.2
+ magic-string: 0.30.19
+ postcss: 8.5.6
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.4.21':
+ dependencies:
+ '@vue/compiler-dom': 3.4.21
+ '@vue/shared': 3.4.21
+
+ '@vue/compiler-ssr@3.5.21':
+ dependencies:
+ '@vue/compiler-dom': 3.5.21
+ '@vue/shared': 3.5.21
+
+ '@vue/compiler-vue2@2.7.16':
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+
+ '@vue/consolidate@1.0.0': {}
+
+ '@vue/devtools-api@6.6.4': {}
+
+ '@vue/language-core@3.0.8(typescript@5.9.2)':
+ dependencies:
+ '@volar/language-core': 2.4.23
+ '@vue/compiler-dom': 3.5.21
+ '@vue/compiler-vue2': 2.7.16
+ '@vue/shared': 3.5.21
+ alien-signals: 2.0.7
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ picomatch: 4.0.3
+ optionalDependencies:
+ typescript: 5.9.2
+
+ '@vue/reactivity@3.4.21':
+ dependencies:
+ '@vue/shared': 3.4.21
+
+ '@vue/runtime-core@3.4.21':
+ dependencies:
+ '@vue/reactivity': 3.4.21
+ '@vue/shared': 3.4.21
+
+ '@vue/runtime-dom@3.4.21':
+ dependencies:
+ '@vue/runtime-core': 3.4.21
+ '@vue/shared': 3.4.21
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ '@vue/compiler-ssr': 3.4.21
+ '@vue/shared': 3.4.21
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@vue/shared@3.4.21': {}
+
+ '@vue/shared@3.5.21': {}
+
+ '@vue/tsconfig@0.8.1(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2))':
+ optionalDependencies:
+ typescript: 5.9.2
+ vue: 3.4.21(typescript@5.9.2)
+
+ '@wot-ui/ui@2.2.0(vue@3.4.21(typescript@5.9.2))':
+ dependencies:
+ vue: 3.4.21(typescript@5.9.2)
+
+ abab@2.0.6: {}
+
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ acorn-globals@6.0.0:
+ dependencies:
+ acorn: 7.4.1
+ acorn-walk: 7.2.0
+
+ acorn-jsx@5.3.2(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn-walk@7.2.0: {}
+
+ acorn@7.4.1: {}
+
+ acorn@8.15.0: {}
+
+ address@1.2.2: {}
+
+ adm-zip@0.5.16: {}
+
+ agent-base@6.0.2(supports-color@8.1.1):
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ alien-signals@2.0.7: {}
+
+ ansi-escapes@4.3.2:
+ dependencies:
+ type-fest: 0.21.3
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@5.2.0: {}
+
+ ansis@4.1.0: {}
+
+ any-base@1.1.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ are-docs-informative@0.0.2: {}
+
+ argparse@1.0.10:
+ dependencies:
+ sprintf-js: 1.0.3
+
+ argparse@2.0.1: {}
+
+ array-flatten@1.1.1: {}
+
+ asynckit@0.4.0: {}
+
+ autoprefixer@10.4.21(postcss@8.5.6):
+ dependencies:
+ browserslist: 4.26.2
+ caniuse-lite: 1.0.30001743
+ fraction.js: 4.3.7
+ normalize-range: 0.1.2
+ picocolors: 1.1.1
+ postcss: 8.5.6
+ postcss-value-parser: 4.2.0
+
+ babel-jest@27.5.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@jest/transform': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ '@types/babel__core': 7.20.5
+ babel-plugin-istanbul: 6.1.1(supports-color@8.1.1)
+ babel-preset-jest: 27.5.1(@babel/core@7.28.4(supports-color@8.1.1))
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-istanbul@6.1.1(supports-color@8.1.1):
+ dependencies:
+ '@babel/helper-plugin-utils': 7.27.1
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-instrument: 5.2.1(supports-color@8.1.1)
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-jest-hoist@27.5.1:
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+ '@types/babel__core': 7.20.5
+ '@types/babel__traverse': 7.28.0
+
+ babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ '@babel/compat-data': 7.28.4
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ core-js-compat: 3.45.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4(supports-color@8.1.1)):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4(supports-color@8.1.1))
+
+ babel-preset-jest@27.5.1(@babel/core@7.28.4(supports-color@8.1.1)):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ babel-plugin-jest-hoist: 27.5.1
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4(supports-color@8.1.1))
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ base64url@3.0.1: {}
+
+ baseline-browser-mapping@2.8.6: {}
+
+ binary-extensions@2.3.0: {}
+
+ bmp-js@0.1.0: {}
+
+ body-parser@1.20.3(supports-color@8.1.1):
+ dependencies:
+ bytes: 3.1.2
+ content-type: 1.0.5
+ debug: 2.6.9(supports-color@8.1.1)
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.13.0
+ raw-body: 2.5.2
+ type-is: 1.6.18
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ boolbase@1.0.0: {}
+
+ brace-expansion@1.1.12:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.2:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browser-process-hrtime@1.0.0: {}
+
+ browserslist-to-esbuild@2.1.1(browserslist@4.26.2):
+ dependencies:
+ browserslist: 4.26.2
+ meow: 13.2.0
+
+ browserslist@4.26.2:
+ dependencies:
+ baseline-browser-mapping: 2.8.6
+ caniuse-lite: 1.0.30001743
+ electron-to-chromium: 1.5.223
+ node-releases: 2.0.21
+ update-browserslist-db: 1.1.3(browserslist@4.26.2)
+
+ bser@2.1.1:
+ dependencies:
+ node-int64: 0.4.0
+
+ buffer-equal@0.0.1: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ builtin-modules@5.0.0: {}
+
+ bytes@3.1.2: {}
+
+ cac@6.7.14: {}
+
+ cac@6.7.9: {}
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ camelcase@5.3.1: {}
+
+ camelcase@6.3.0: {}
+
+ caniuse-lite@1.0.30001743: {}
+
+ ccount@2.0.1: {}
+
+ centra@2.7.0(debug@4.4.3(supports-color@8.1.1)):
+ dependencies:
+ follow-redirects: 1.15.11(debug@4.4.3(supports-color@8.1.1))
+ transitivePeerDependencies:
+ - debug
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ change-case@5.4.4: {}
+
+ char-regex@1.0.2: {}
+
+ character-entities@2.0.2: {}
+
+ 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@5.0.0:
+ dependencies:
+ readdirp: 5.0.0
+
+ ci-info@3.9.0: {}
+
+ ci-info@4.3.0: {}
+
+ cjs-module-lexer@1.4.3: {}
+
+ clean-regexp@1.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ cliui@7.0.4:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ co@4.6.0: {}
+
+ collect-v8-coverage@1.0.2: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@2.20.3: {}
+
+ comment-parser@1.4.1: {}
+
+ compare-versions@3.6.0: {}
+
+ concat-map@0.0.1: {}
+
+ confbox@0.1.8: {}
+
+ confbox@0.2.2: {}
+
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ content-type@1.0.5: {}
+
+ convert-source-map@1.9.0: {}
+
+ convert-source-map@2.0.0: {}
+
+ cookie-signature@1.0.6: {}
+
+ cookie@0.7.1: {}
+
+ core-js-compat@3.45.1:
+ dependencies:
+ browserslist: 4.26.2
+
+ core-js@3.45.1: {}
+
+ cross-env@7.0.3:
+ dependencies:
+ cross-spawn: 7.0.6
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ css-font-size-keywords@1.0.0: {}
+
+ css-font-stretch-keywords@1.0.1: {}
+
+ css-font-style-keywords@1.0.1: {}
+
+ css-font-weight-keywords@1.0.0: {}
+
+ css-list-helpers@2.0.0: {}
+
+ css-system-font-keywords@1.0.0: {}
+
+ cssesc@3.0.0: {}
+
+ cssom@0.3.8: {}
+
+ cssom@0.4.4: {}
+
+ cssstyle@2.3.0:
+ dependencies:
+ cssom: 0.3.8
+
+ csstype@3.1.3: {}
+
+ data-urls@2.0.0:
+ dependencies:
+ abab: 2.0.6
+ whatwg-mimetype: 2.3.0
+ whatwg-url: 8.7.0
+
+ de-indent@1.0.2: {}
+
+ debug@2.6.9(supports-color@8.1.1):
+ dependencies:
+ ms: 2.0.0
+ optionalDependencies:
+ supports-color: 8.1.1
+
+ debug@4.4.3(supports-color@8.1.1):
+ dependencies:
+ ms: 2.1.3
+ optionalDependencies:
+ supports-color: 8.1.1
+
+ decimal.js@10.6.0: {}
+
+ decode-named-character-reference@1.2.0:
+ dependencies:
+ character-entities: 2.0.2
+
+ dedent@0.7.0: {}
+
+ deep-is@0.1.4: {}
+
+ deepmerge@4.3.1: {}
+
+ default-gateway@6.0.3:
+ dependencies:
+ execa: 5.1.1
+
+ delayed-stream@1.0.0: {}
+
+ depd@2.0.0: {}
+
+ dequal@2.0.3: {}
+
+ destroy@1.2.0: {}
+
+ detect-libc@2.1.2:
+ optional: true
+
+ detect-newline@3.1.0: {}
+
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
+ diff-sequences@27.5.1: {}
+
+ dom-walk@0.1.2: {}
+
+ domexception@2.0.1:
+ dependencies:
+ webidl-conversions: 5.0.0
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ ee-first@1.1.1: {}
+
+ electron-to-chromium@1.5.223: {}
+
+ emittery@0.8.1: {}
+
+ emoji-regex@8.0.0: {}
+
+ empathic@2.0.0: {}
+
+ encodeurl@1.0.2: {}
+
+ encodeurl@2.0.0: {}
+
+ enhanced-resolve@5.18.3:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.3
+
+ entities@4.5.0: {}
+
+ error-ex@1.3.4:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@1.7.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ esbuild@0.20.2:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.20.2
+ '@esbuild/android-arm': 0.20.2
+ '@esbuild/android-arm64': 0.20.2
+ '@esbuild/android-x64': 0.20.2
+ '@esbuild/darwin-arm64': 0.20.2
+ '@esbuild/darwin-x64': 0.20.2
+ '@esbuild/freebsd-arm64': 0.20.2
+ '@esbuild/freebsd-x64': 0.20.2
+ '@esbuild/linux-arm': 0.20.2
+ '@esbuild/linux-arm64': 0.20.2
+ '@esbuild/linux-ia32': 0.20.2
+ '@esbuild/linux-loong64': 0.20.2
+ '@esbuild/linux-mips64el': 0.20.2
+ '@esbuild/linux-ppc64': 0.20.2
+ '@esbuild/linux-riscv64': 0.20.2
+ '@esbuild/linux-s390x': 0.20.2
+ '@esbuild/linux-x64': 0.20.2
+ '@esbuild/netbsd-x64': 0.20.2
+ '@esbuild/openbsd-x64': 0.20.2
+ '@esbuild/sunos-x64': 0.20.2
+ '@esbuild/win32-arm64': 0.20.2
+ '@esbuild/win32-ia32': 0.20.2
+ '@esbuild/win32-x64': 0.20.2
+
+ escalade@3.2.0: {}
+
+ escape-html@1.0.3: {}
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@2.0.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ escape-string-regexp@5.0.0: {}
+
+ escodegen@2.1.0:
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionalDependencies:
+ source-map: 0.6.1
+
+ eslint-compat-utils@0.5.1(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+ semver: 7.7.2
+
+ eslint-compat-utils@0.6.5(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+ semver: 7.7.2
+
+ eslint-config-flat-gitignore@2.1.0(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@eslint/compat': 1.4.0(eslint@9.36.0(supports-color@8.1.1))
+ eslint: 9.36.0(supports-color@8.1.1)
+
+ eslint-flat-config-utils@2.1.4:
+ dependencies:
+ pathe: 2.0.3
+
+ eslint-json-compat-utils@0.2.1(eslint@9.36.0(supports-color@8.1.1))(jsonc-eslint-parser@2.4.1):
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+ esquery: 1.6.0
+ jsonc-eslint-parser: 2.4.1
+
+ eslint-merge-processors@2.0.0(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+
+ eslint-plugin-antfu@3.1.1(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+
+ eslint-plugin-command@3.3.1(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.50.2
+ eslint: 9.36.0(supports-color@8.1.1)
+
+ eslint-plugin-es-x@7.8.0(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@eslint-community/regexpp': 4.12.1
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-compat-utils: 0.5.1(eslint@9.36.0(supports-color@8.1.1))
+
+ eslint-plugin-import-lite@0.3.0(eslint@9.36.0(supports-color@8.1.1))(typescript@5.9.2):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@typescript-eslint/types': 8.44.1
+ eslint: 9.36.0(supports-color@8.1.1)
+ optionalDependencies:
+ typescript: 5.9.2
+
+ eslint-plugin-jsdoc@59.1.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.58.0
+ are-docs-informative: 0.0.2
+ comment-parser: 1.4.1
+ debug: 4.4.3(supports-color@8.1.1)
+ escape-string-regexp: 4.0.0
+ eslint: 9.36.0(supports-color@8.1.1)
+ espree: 10.4.0
+ esquery: 1.6.0
+ object-deep-merge: 1.0.5
+ parse-imports-exports: 0.2.4
+ semver: 7.7.2
+ spdx-expression-parse: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-jsonc@2.20.1(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-compat-utils: 0.6.5(eslint@9.36.0(supports-color@8.1.1))
+ eslint-json-compat-utils: 0.2.1(eslint@9.36.0(supports-color@8.1.1))(jsonc-eslint-parser@2.4.1)
+ espree: 10.4.0
+ graphemer: 1.4.0
+ jsonc-eslint-parser: 2.4.1
+ natural-compare: 1.4.0
+ synckit: 0.11.11
+ transitivePeerDependencies:
+ - '@eslint/json'
+
+ eslint-plugin-n@17.23.1(eslint@9.36.0(supports-color@8.1.1))(typescript@5.9.2):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ enhanced-resolve: 5.18.3
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-plugin-es-x: 7.8.0(eslint@9.36.0(supports-color@8.1.1))
+ get-tsconfig: 4.10.1
+ globals: 15.15.0
+ globrex: 0.1.2
+ ignore: 5.3.2
+ semver: 7.7.2
+ ts-declaration-location: 1.0.7(typescript@5.9.2)
+ transitivePeerDependencies:
+ - typescript
+
+ eslint-plugin-no-only-tests@3.3.0: {}
+
+ eslint-plugin-perfectionist@4.15.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2):
+ dependencies:
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+ eslint: 9.36.0(supports-color@8.1.1)
+ natural-orderby: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-pnpm@1.1.2(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ empathic: 2.0.0
+ eslint: 9.36.0(supports-color@8.1.1)
+ jsonc-eslint-parser: 2.4.1
+ pathe: 2.0.3
+ pnpm-workspace-yaml: 1.1.2
+ tinyglobby: 0.2.15
+ yaml-eslint-parser: 1.3.0
+
+ eslint-plugin-regexp@2.10.0(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@eslint-community/regexpp': 4.12.1
+ comment-parser: 1.4.1
+ eslint: 9.36.0(supports-color@8.1.1)
+ jsdoc-type-pratt-parser: 4.8.0
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+ scslre: 0.3.0
+
+ eslint-plugin-toml@0.12.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-compat-utils: 0.6.5(eslint@9.36.0(supports-color@8.1.1))
+ lodash: 4.17.21
+ toml-eslint-parser: 0.10.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-unicorn@61.0.2(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@eslint/plugin-kit': 0.3.5
+ change-case: 5.4.4
+ ci-info: 4.3.0
+ clean-regexp: 1.0.0
+ core-js-compat: 3.45.1
+ eslint: 9.36.0(supports-color@8.1.1)
+ esquery: 1.6.0
+ find-up-simple: 1.0.1
+ globals: 16.4.0
+ indent-string: 5.0.0
+ is-builtin-module: 5.0.0
+ jsesc: 3.1.0
+ pluralize: 8.0.0
+ regexp-tree: 0.1.27
+ regjsparser: 0.12.0
+ semver: 7.7.2
+ strip-indent: 4.1.0
+
+ eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ eslint: 9.36.0(supports-color@8.1.1)
+ optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+
+ eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(supports-color@8.1.1)))(@typescript-eslint/parser@8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint@9.36.0(supports-color@8.1.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ eslint: 9.36.0(supports-color@8.1.1)
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.1.2
+ semver: 7.7.2
+ vue-eslint-parser: 10.2.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)
+ xml-name-validator: 4.0.0
+ optionalDependencies:
+ '@stylistic/eslint-plugin': 5.4.0(eslint@9.36.0(supports-color@8.1.1))
+ '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2)
+
+ eslint-plugin-yml@1.18.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ escape-string-regexp: 4.0.0
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-compat-utils: 0.6.5(eslint@9.36.0(supports-color@8.1.1))
+ natural-compare: 1.4.0
+ yaml-eslint-parser: 1.3.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(supports-color@8.1.1)):
+ dependencies:
+ '@vue/compiler-sfc': 3.5.21
+ eslint: 9.36.0(supports-color@8.1.1)
+
+ eslint-scope@8.4.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.1: {}
+
+ eslint@9.36.0(supports-color@8.1.1):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(supports-color@8.1.1))
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.21.0(supports-color@8.1.1)
+ '@eslint/config-helpers': 0.3.1
+ '@eslint/core': 0.15.2
+ '@eslint/eslintrc': 3.3.1(supports-color@8.1.1)
+ '@eslint/js': 9.36.0
+ '@eslint/plugin-kit': 0.3.5
+ '@humanfs/node': 0.16.7
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.3(supports-color@8.1.1)
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.4.0:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 3.4.3
+
+ esprima@4.0.1: {}
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.8
+
+ esutils@2.0.3: {}
+
+ etag@1.8.1: {}
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ exif-parser@0.1.12: {}
+
+ exit@0.1.2: {}
+
+ expect@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ jest-get-type: 27.5.1
+ jest-matcher-utils: 27.5.1
+ jest-message-util: 27.5.1
+
+ express@4.21.2(supports-color@8.1.1):
+ dependencies:
+ accepts: 1.3.8
+ array-flatten: 1.1.1
+ body-parser: 1.20.3(supports-color@8.1.1)
+ content-disposition: 0.5.4
+ content-type: 1.0.5
+ cookie: 0.7.1
+ cookie-signature: 1.0.6
+ debug: 2.6.9(supports-color@8.1.1)
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 1.3.1(supports-color@8.1.1)
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ merge-descriptors: 1.0.3
+ methods: 1.1.2
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ path-to-regexp: 0.1.12
+ proxy-addr: 2.0.7
+ qs: 6.13.0
+ range-parser: 1.2.1
+ safe-buffer: 5.2.1
+ send: 0.19.0(supports-color@8.1.1)
+ serve-static: 1.16.2(supports-color@8.1.1)
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ type-is: 1.6.18
+ utils-merge: 1.0.1
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ exsolve@1.0.7: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ 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-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.19.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fault@2.0.1:
+ dependencies:
+ format: 0.2.2
+
+ fb-watchman@2.0.2:
+ dependencies:
+ bser: 2.1.1
+
+ fdir@6.5.0(picomatch@4.0.5):
+ optionalDependencies:
+ picomatch: 4.0.5
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ file-type@9.0.0: {}
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ finalhandler@1.3.1(supports-color@8.1.1):
+ dependencies:
+ debug: 2.6.9(supports-color@8.1.1)
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.1
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ find-up-simple@1.0.1: {}
+
+ find-up@4.1.0:
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
+ follow-redirects@1.15.11(debug@4.4.3(supports-color@8.1.1)):
+ optionalDependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+
+ form-data@3.0.4:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
+ mime-types: 2.1.35
+
+ format@0.2.2: {}
+
+ forwarded@0.2.0: {}
+
+ fraction.js@4.3.7: {}
+
+ fresh@0.5.2: {}
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.0
+ universalify: 2.0.1
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ generic-names@4.0.0:
+ dependencies:
+ loader-utils: 3.3.1
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ 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.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-package-type@0.1.0: {}
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-stream@6.0.1: {}
+
+ get-tsconfig@4.10.1:
+ dependencies:
+ resolve-pkg-maps: 1.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@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ global@4.4.0:
+ dependencies:
+ min-document: 2.19.0
+ process: 0.11.10
+
+ globals@14.0.0: {}
+
+ globals@15.15.0: {}
+
+ globals@16.4.0: {}
+
+ globrex@0.1.2: {}
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hash-sum@2.0.0: {}
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ he@1.2.0: {}
+
+ highlight.js@11.11.1: {}
+
+ html-encoding-sniffer@2.0.1:
+ dependencies:
+ whatwg-encoding: 1.0.5
+
+ html-escaper@2.0.2: {}
+
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
+ http-proxy-agent@4.0.1(supports-color@8.1.1):
+ dependencies:
+ '@tootallnate/once': 1.1.2
+ agent-base: 6.0.2(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ https-proxy-agent@5.0.1(supports-color@8.1.1):
+ dependencies:
+ agent-base: 6.0.2(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ human-signals@2.1.0: {}
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ icss-replace-symbols@1.1.0: {}
+
+ icss-utils@5.1.0(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ ignore@7.0.5: {}
+
+ immutable@5.1.9: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-local@3.2.0:
+ dependencies:
+ pkg-dir: 4.2.0
+ resolve-cwd: 3.0.0
+
+ imurmurhash@0.1.4: {}
+
+ indent-string@5.0.0: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ invert-kv@3.0.1: {}
+
+ ipaddr.js@1.9.1: {}
+
+ is-arrayish@0.2.1: {}
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-builtin-module@5.0.0:
+ dependencies:
+ builtin-modules: 5.0.0
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-function@1.0.2: {}
+
+ is-generator-fn@2.1.0: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ is-potential-custom-element-name@1.0.1: {}
+
+ is-stream@2.0.1: {}
+
+ is-typedarray@1.0.0: {}
+
+ isbinaryfile@5.0.6: {}
+
+ isexe@2.0.0: {}
+
+ istanbul-lib-coverage@3.2.2: {}
+
+ istanbul-lib-instrument@5.2.1(supports-color@8.1.1):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/parser': 7.28.4
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-report@3.0.1:
+ dependencies:
+ istanbul-lib-coverage: 3.2.2
+ make-dir: 4.0.0
+ supports-color: 7.2.0
+
+ istanbul-lib-source-maps@4.0.1(supports-color@8.1.1):
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ istanbul-lib-coverage: 3.2.2
+ source-map: 0.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-reports@3.2.0:
+ dependencies:
+ html-escaper: 2.0.2
+ istanbul-lib-report: 3.0.1
+
+ jest-changed-files@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ execa: 5.1.1
+ throat: 6.0.2
+
+ jest-circus@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/environment': 27.5.1
+ '@jest/test-result': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ chalk: 4.1.2
+ co: 4.6.0
+ dedent: 0.7.0
+ expect: 27.5.1
+ is-generator-fn: 2.1.0
+ jest-each: 27.5.1
+ jest-matcher-utils: 27.5.1
+ jest-message-util: 27.5.1
+ jest-runtime: 27.5.1(supports-color@8.1.1)
+ jest-snapshot: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ pretty-format: 27.5.1
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ throat: 6.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-cli@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/core': 27.5.1(supports-color@8.1.1)
+ '@jest/test-result': 27.5.1
+ '@jest/types': 27.5.1
+ chalk: 4.1.2
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ import-local: 3.2.0
+ jest-config: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ jest-validate: 27.5.1
+ prompts: 2.4.2
+ yargs: 16.2.0
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - ts-node
+ - utf-8-validate
+
+ jest-config@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@jest/test-sequencer': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ babel-jest: 27.5.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 27.5.1(supports-color@8.1.1)
+ jest-environment-jsdom: 27.5.1(supports-color@8.1.1)
+ jest-environment-node: 27.5.1
+ jest-get-type: 27.5.1
+ jest-jasmine2: 27.5.1(supports-color@8.1.1)
+ jest-regex-util: 27.5.1
+ jest-resolve: 27.5.1
+ jest-runner: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ jest-validate: 27.5.1
+ micromatch: 4.0.8
+ parse-json: 5.2.0
+ pretty-format: 27.5.1
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+
+ jest-diff@27.5.1:
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 27.5.1
+ jest-get-type: 27.5.1
+ pretty-format: 27.5.1
+
+ jest-docblock@27.5.1:
+ dependencies:
+ detect-newline: 3.1.0
+
+ jest-each@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ chalk: 4.1.2
+ jest-get-type: 27.5.1
+ jest-util: 27.5.1
+ pretty-format: 27.5.1
+
+ jest-environment-jsdom@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/environment': 27.5.1
+ '@jest/fake-timers': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ jest-mock: 27.5.1
+ jest-util: 27.5.1
+ jsdom: 16.7.0(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+
+ jest-environment-node@27.5.1:
+ dependencies:
+ '@jest/environment': 27.5.1
+ '@jest/fake-timers': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ jest-mock: 27.5.1
+ jest-util: 27.5.1
+
+ jest-get-type@27.5.1: {}
+
+ jest-haste-map@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ '@types/graceful-fs': 4.1.9
+ '@types/node': 24.5.2
+ anymatch: 3.1.3
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ jest-regex-util: 27.5.1
+ jest-serializer: 27.5.1
+ jest-util: 27.5.1
+ jest-worker: 27.5.1
+ micromatch: 4.0.8
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ jest-jasmine2@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/environment': 27.5.1
+ '@jest/source-map': 27.5.1
+ '@jest/test-result': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ chalk: 4.1.2
+ co: 4.6.0
+ expect: 27.5.1
+ is-generator-fn: 2.1.0
+ jest-each: 27.5.1
+ jest-matcher-utils: 27.5.1
+ jest-message-util: 27.5.1
+ jest-runtime: 27.5.1(supports-color@8.1.1)
+ jest-snapshot: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ pretty-format: 27.5.1
+ throat: 6.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-leak-detector@27.5.1:
+ dependencies:
+ jest-get-type: 27.5.1
+ pretty-format: 27.5.1
+
+ jest-matcher-utils@27.5.1:
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 27.5.1
+ jest-get-type: 27.5.1
+ pretty-format: 27.5.1
+
+ jest-message-util@27.5.1:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@jest/types': 27.5.1
+ '@types/stack-utils': 2.0.3
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.8
+ pretty-format: 27.5.1
+ slash: 3.0.0
+ stack-utils: 2.0.6
+
+ jest-mock@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+
+ jest-pnp-resolver@1.2.3(jest-resolve@27.5.1):
+ optionalDependencies:
+ jest-resolve: 27.5.1
+
+ jest-regex-util@27.5.1: {}
+
+ jest-resolve-dependencies@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/types': 27.5.1
+ jest-regex-util: 27.5.1
+ jest-snapshot: 27.5.1(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-resolve@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ jest-haste-map: 27.5.1
+ jest-pnp-resolver: 1.2.3(jest-resolve@27.5.1)
+ jest-util: 27.5.1
+ jest-validate: 27.5.1
+ resolve: 1.22.10
+ resolve.exports: 1.1.1
+ slash: 3.0.0
+
+ jest-runner@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/console': 27.5.1
+ '@jest/environment': 27.5.1
+ '@jest/test-result': 27.5.1
+ '@jest/transform': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ chalk: 4.1.2
+ emittery: 0.8.1
+ graceful-fs: 4.2.11
+ jest-docblock: 27.5.1
+ jest-environment-jsdom: 27.5.1(supports-color@8.1.1)
+ jest-environment-node: 27.5.1
+ jest-haste-map: 27.5.1
+ jest-leak-detector: 27.5.1
+ jest-message-util: 27.5.1
+ jest-resolve: 27.5.1
+ jest-runtime: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ jest-worker: 27.5.1
+ source-map-support: 0.5.21
+ throat: 6.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+
+ jest-runtime@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@jest/environment': 27.5.1
+ '@jest/fake-timers': 27.5.1
+ '@jest/globals': 27.5.1
+ '@jest/source-map': 27.5.1
+ '@jest/test-result': 27.5.1
+ '@jest/transform': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ chalk: 4.1.2
+ cjs-module-lexer: 1.4.3
+ collect-v8-coverage: 1.0.2
+ execa: 5.1.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-haste-map: 27.5.1
+ jest-message-util: 27.5.1
+ jest-mock: 27.5.1
+ jest-regex-util: 27.5.1
+ jest-resolve: 27.5.1
+ jest-snapshot: 27.5.1(supports-color@8.1.1)
+ jest-util: 27.5.1
+ slash: 3.0.0
+ strip-bom: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-serializer@27.5.1:
+ dependencies:
+ '@types/node': 24.5.2
+ graceful-fs: 4.2.11
+
+ jest-snapshot@27.5.1(supports-color@8.1.1):
+ dependencies:
+ '@babel/core': 7.28.4(supports-color@8.1.1)
+ '@babel/generator': 7.28.3
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))
+ '@babel/traverse': 7.28.4(supports-color@8.1.1)
+ '@babel/types': 7.28.4
+ '@jest/transform': 27.5.1(supports-color@8.1.1)
+ '@jest/types': 27.5.1
+ '@types/babel__traverse': 7.28.0
+ '@types/prettier': 2.7.3
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4(supports-color@8.1.1))
+ chalk: 4.1.2
+ expect: 27.5.1
+ graceful-fs: 4.2.11
+ jest-diff: 27.5.1
+ jest-get-type: 27.5.1
+ jest-haste-map: 27.5.1
+ jest-matcher-utils: 27.5.1
+ jest-message-util: 27.5.1
+ jest-util: 27.5.1
+ natural-compare: 1.4.0
+ pretty-format: 27.5.1
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-util@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+
+ jest-validate@27.5.1:
+ dependencies:
+ '@jest/types': 27.5.1
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 27.5.1
+ leven: 3.1.0
+ pretty-format: 27.5.1
+
+ jest-watcher@27.5.1:
+ dependencies:
+ '@jest/test-result': 27.5.1
+ '@jest/types': 27.5.1
+ '@types/node': 24.5.2
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ jest-util: 27.5.1
+ string-length: 4.0.2
+
+ jest-worker@27.5.1:
+ dependencies:
+ '@types/node': 24.5.2
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jest@27.0.4(supports-color@8.1.1):
+ dependencies:
+ '@jest/core': 27.5.1(supports-color@8.1.1)
+ import-local: 3.2.0
+ jest-cli: 27.5.1(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - ts-node
+ - utf-8-validate
+
+ jimp@0.10.3(debug@4.4.3(supports-color@8.1.1)):
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@jimp/custom': 0.10.3(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/plugins': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))(debug@4.4.3(supports-color@8.1.1))
+ '@jimp/types': 0.10.3(@jimp/custom@0.10.3(debug@4.4.3(supports-color@8.1.1)))
+ core-js: 3.45.1
+ regenerator-runtime: 0.13.11
+ transitivePeerDependencies:
+ - debug
+
+ jpeg-js@0.3.7: {}
+
+ js-tokens@4.0.0: {}
+
+ js-tokens@9.0.1: {}
+
+ js-yaml@3.14.1:
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsdoc-type-pratt-parser@4.1.0: {}
+
+ jsdoc-type-pratt-parser@4.8.0: {}
+
+ jsdoc-type-pratt-parser@5.4.0: {}
+
+ jsdom@16.7.0(supports-color@8.1.1):
+ dependencies:
+ abab: 2.0.6
+ acorn: 8.15.0
+ acorn-globals: 6.0.0
+ cssom: 0.4.4
+ cssstyle: 2.3.0
+ data-urls: 2.0.0
+ decimal.js: 10.6.0
+ domexception: 2.0.1
+ escodegen: 2.1.0
+ form-data: 3.0.4
+ html-encoding-sniffer: 2.0.1
+ http-proxy-agent: 4.0.1(supports-color@8.1.1)
+ https-proxy-agent: 5.0.1(supports-color@8.1.1)
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.22
+ parse5: 6.0.1
+ saxes: 5.0.1
+ symbol-tree: 3.2.4
+ tough-cookie: 4.1.4
+ w3c-hr-time: 1.0.2
+ w3c-xmlserializer: 2.0.0
+ webidl-conversions: 6.1.0
+ whatwg-encoding: 1.0.5
+ whatwg-mimetype: 2.3.0
+ whatwg-url: 8.7.0
+ ws: 7.5.10
+ xml-name-validator: 3.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ jsesc@3.0.2: {}
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@2.2.3: {}
+
+ jsonc-eslint-parser@2.4.1:
+ dependencies:
+ acorn: 8.15.0
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ semver: 7.7.2
+
+ jsonc-parser@3.3.1: {}
+
+ jsonfile@6.2.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ kleur@3.0.3: {}
+
+ lcid@3.1.1:
+ dependencies:
+ invert-kv: 3.0.1
+
+ leven@3.1.0: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ licia@1.48.0: {}
+
+ lilconfig@2.1.0: {}
+
+ lines-and-columns@1.2.4: {}
+
+ lines-and-columns@2.0.4: {}
+
+ load-bmfont@1.4.2(debug@4.4.3(supports-color@8.1.1)):
+ dependencies:
+ buffer-equal: 0.0.1
+ mime: 1.6.0
+ parse-bmfont-ascii: 1.0.6
+ parse-bmfont-binary: 1.0.6
+ parse-bmfont-xml: 1.1.6
+ phin: 3.7.1(debug@4.4.3(supports-color@8.1.1))
+ xhr: 2.6.0
+ xtend: 4.0.2
+ transitivePeerDependencies:
+ - debug
+
+ loader-utils@3.3.1: {}
+
+ local-pkg@0.4.3: {}
+
+ local-pkg@1.1.2:
+ dependencies:
+ mlly: 1.8.0
+ pkg-types: 2.3.0
+ quansync: 0.2.11
+
+ localstorage-polyfill@1.0.1: {}
+
+ locate-path@5.0.0:
+ dependencies:
+ p-locate: 4.1.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.camelcase@4.3.0: {}
+
+ lodash.debounce@4.0.8: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash@4.17.21: {}
+
+ longest-streak@3.1.0: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ magic-string@0.30.19:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ make-dir@4.0.0:
+ dependencies:
+ semver: 7.7.2
+
+ makeerror@1.0.12:
+ dependencies:
+ tmpl: 1.0.5
+
+ markdown-table@3.0.4: {}
+
+ marked@18.0.7: {}
+
+ 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.0
+ unist-util-visit-parents: 6.0.1
+
+ mdast-util-from-markdown@2.0.2(supports-color@8.1.1):
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ decode-named-character-reference: 1.2.0
+ devlop: 1.1.0
+ mdast-util-to-string: 4.0.0
+ micromark: 4.0.2(supports-color@8.1.1)
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-decode-string: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-stringify-position: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-frontmatter@2.0.1(supports-color@8.1.1):
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ escape-string-regexp: 5.0.0
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-to-markdown: 2.1.2
+ micromark-extension-frontmatter: 2.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(supports-color@8.1.1):
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-to-markdown: 2.1.2
+ micromark-util-normalize-identifier: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-strikethrough@2.0.0(supports-color@8.1.1):
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-table@2.0.0(supports-color@8.1.1):
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ markdown-table: 3.0.4
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-task-list-item@2.0.0(supports-color@8.1.1):
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm@3.1.0(supports-color@8.1.1):
+ dependencies:
+ mdast-util-from-markdown: 2.0.2(supports-color@8.1.1)
+ mdast-util-gfm-autolink-literal: 2.0.1
+ mdast-util-gfm-footnote: 2.1.0(supports-color@8.1.1)
+ mdast-util-gfm-strikethrough: 2.0.0(supports-color@8.1.1)
+ mdast-util-gfm-table: 2.0.0(supports-color@8.1.1)
+ mdast-util-gfm-task-list-item: 2.0.0(supports-color@8.1.1)
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-phrasing@4.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ unist-util-is: 6.0.0
+
+ 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.1
+ micromark-util-decode-string: 2.0.1
+ unist-util-visit: 5.0.0
+ zwitch: 2.0.4
+
+ mdast-util-to-string@4.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+
+ media-typer@0.3.0: {}
+
+ meow@13.2.0: {}
+
+ merge-descriptors@1.0.3: {}
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ merge@2.1.1: {}
+
+ methods@1.1.2: {}
+
+ micromark-core-commonmark@2.0.3:
+ dependencies:
+ decode-named-character-reference: 1.2.0
+ devlop: 1.1.0
+ micromark-factory-destination: 2.0.1
+ micromark-factory-label: 2.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-title: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-html-tag-name: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-frontmatter@2.0.0:
+ dependencies:
+ fault: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ 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.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-footnote@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-table@2.1.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ 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.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-destination@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-label@2.0.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-space@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-title@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-whitespace@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-chunked@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-classify-character@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-combine-extensions@2.0.1:
+ dependencies:
+ micromark-util-chunked: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-decode-string@2.0.1:
+ dependencies:
+ decode-named-character-reference: 1.2.0
+ micromark-util-character: 2.1.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-html-tag-name@2.0.1: {}
+
+ micromark-util-normalize-identifier@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-resolve-all@2.0.1:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-subtokenize@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.2: {}
+
+ micromark@4.0.2(supports-color@8.1.1):
+ dependencies:
+ '@types/debug': 4.1.12
+ debug: 4.4.3(supports-color@8.1.1)
+ decode-named-character-reference: 1.2.0
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-encode: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@1.6.0: {}
+
+ mime@3.0.0: {}
+
+ mimic-fn@2.1.0: {}
+
+ min-document@2.19.0:
+ dependencies:
+ dom-walk: 0.1.2
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ minimatch@8.0.4:
+ dependencies:
+ brace-expansion: 2.0.2
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.2
+
+ minimist@1.2.8: {}
+
+ miniprogram-api-typings@4.1.0: {}
+
+ mkdirp@0.5.6:
+ dependencies:
+ minimist: 1.2.8
+
+ mlly@1.8.0:
+ dependencies:
+ acorn: 8.15.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
+ module-alias@2.2.3: {}
+
+ mp-html@2.5.2: {}
+
+ ms@2.0.0: {}
+
+ ms@2.1.3: {}
+
+ muggle-string@0.4.1: {}
+
+ nanoid@3.3.11: {}
+
+ natural-compare@1.4.0: {}
+
+ natural-orderby@5.0.0: {}
+
+ negotiator@0.6.3: {}
+
+ node-addon-api@7.1.1:
+ optional: true
+
+ node-int64@0.4.0: {}
+
+ node-releases@2.0.21: {}
+
+ normalize-path@3.0.0: {}
+
+ normalize-range@0.1.2: {}
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ nwsapi@2.2.22: {}
+
+ object-deep-merge@1.0.5:
+ dependencies:
+ type-fest: 4.2.0
+
+ object-inspect@1.13.4: {}
+
+ omggif@1.0.10: {}
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ os-locale-s-fix@1.0.8-fix-1:
+ dependencies:
+ lcid: 3.1.1
+
+ p-limit@2.3.0:
+ dependencies:
+ p-try: 2.2.0
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@4.1.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-try@2.2.0: {}
+
+ package-manager-detector@1.3.0: {}
+
+ pako@1.0.11: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-bmfont-ascii@1.0.6: {}
+
+ parse-bmfont-binary@1.0.6: {}
+
+ parse-bmfont-xml@1.1.6:
+ dependencies:
+ xml-parse-from-string: 1.0.1
+ xml2js: 0.5.0
+
+ parse-css-font@4.0.0:
+ dependencies:
+ css-font-size-keywords: 1.0.0
+ css-font-stretch-keywords: 1.0.1
+ css-font-style-keywords: 1.0.1
+ css-font-weight-keywords: 1.0.0
+ css-list-helpers: 2.0.0
+ css-system-font-keywords: 1.0.0
+ unquote: 1.1.1
+
+ parse-gitignore@2.0.0: {}
+
+ parse-headers@2.0.6: {}
+
+ parse-imports-exports@0.2.4:
+ dependencies:
+ parse-statements: 1.0.11
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ error-ex: 1.3.4
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-statements@1.0.11: {}
+
+ parse5@6.0.1: {}
+
+ parseurl@1.3.3: {}
+
+ path-browserify@1.0.1: {}
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-to-regexp@0.1.12: {}
+
+ pathe@2.0.3: {}
+
+ phin@2.9.3: {}
+
+ phin@3.7.1(debug@4.4.3(supports-color@8.1.1)):
+ dependencies:
+ centra: 2.7.0(debug@4.4.3(supports-color@8.1.1))
+ transitivePeerDependencies:
+ - debug
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.3: {}
+
+ picomatch@4.0.5: {}
+
+ pify@2.3.0: {}
+
+ pinia@2.2.4(typescript@5.9.2)(vue@3.4.21(typescript@5.9.2)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.4.21(typescript@5.9.2)
+ vue-demi: 0.14.10(vue@3.4.21(typescript@5.9.2))
+ optionalDependencies:
+ typescript: 5.9.2
+
+ pirates@4.0.7: {}
+
+ pixelmatch@4.0.2:
+ dependencies:
+ pngjs: 3.4.0
+
+ pkg-dir@4.2.0:
+ dependencies:
+ find-up: 4.1.0
+
+ pkg-types@1.3.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.8.0
+ pathe: 2.0.3
+
+ pkg-types@2.3.0:
+ dependencies:
+ confbox: 0.2.2
+ exsolve: 1.0.7
+ pathe: 2.0.3
+
+ pluralize@8.0.0: {}
+
+ pngjs@3.4.0: {}
+
+ pnpm-workspace-yaml@1.1.2:
+ dependencies:
+ yaml: 2.8.1
+
+ postcss-import@14.1.0(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.10
+
+ postcss-load-config@3.1.4(postcss@8.5.6):
+ dependencies:
+ lilconfig: 2.1.0
+ yaml: 1.10.2
+ optionalDependencies:
+ postcss: 8.5.6
+
+ postcss-modules-extract-imports@3.1.0(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
+
+ postcss-modules-local-by-default@4.2.0(postcss@8.5.6):
+ dependencies:
+ icss-utils: 5.1.0(postcss@8.5.6)
+ postcss: 8.5.6
+ postcss-selector-parser: 7.1.0
+ postcss-value-parser: 4.2.0
+
+ postcss-modules-scope@3.2.1(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
+ postcss-selector-parser: 7.1.0
+
+ postcss-modules-values@4.0.0(postcss@8.5.6):
+ dependencies:
+ icss-utils: 5.1.0(postcss@8.5.6)
+ postcss: 8.5.6
+
+ postcss-modules@4.3.1(postcss@8.5.6):
+ dependencies:
+ generic-names: 4.0.0
+ icss-replace-symbols: 1.1.0
+ lodash.camelcase: 4.3.0
+ postcss: 8.5.6
+ postcss-modules-extract-imports: 3.1.0(postcss@8.5.6)
+ postcss-modules-local-by-default: 4.2.0(postcss@8.5.6)
+ postcss-modules-scope: 3.2.1(postcss@8.5.6)
+ postcss-modules-values: 4.0.0(postcss@8.5.6)
+ string-hash: 1.1.3
+
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-selector-parser@7.1.0:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.5.6:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ pretty-format@27.5.1:
+ dependencies:
+ ansi-regex: 5.0.1
+ ansi-styles: 5.2.0
+ react-is: 17.0.2
+
+ process@0.11.10: {}
+
+ prompts@2.4.2:
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+
+ proxy-addr@2.0.7:
+ dependencies:
+ forwarded: 0.2.0
+ ipaddr.js: 1.9.1
+
+ psl@1.15.0:
+ dependencies:
+ punycode: 2.3.1
+
+ punycode@2.3.1: {}
+
+ qrcode-reader@1.0.4: {}
+
+ qrcode-terminal@0.12.0: {}
+
+ qs@6.13.0:
+ dependencies:
+ side-channel: 1.1.0
+
+ quansync@0.2.11: {}
+
+ querystringify@2.2.0: {}
+
+ queue-microtask@1.2.3: {}
+
+ range-parser@1.2.1: {}
+
+ raw-body@2.5.2:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+
+ react-is@17.0.2: {}
+
+ read-cache@1.0.0:
+ dependencies:
+ pify: 2.3.0
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ readdirp@5.0.0: {}
+
+ refa@0.12.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+
+ regenerate-unicode-properties@10.2.2:
+ dependencies:
+ regenerate: 1.4.2
+
+ regenerate@1.4.2: {}
+
+ regenerator-runtime@0.13.11: {}
+
+ regenerator-runtime@0.14.1: {}
+
+ regexp-ast-analysis@0.7.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ refa: 0.12.1
+
+ regexp-tree@0.1.27: {}
+
+ regexpu-core@6.4.0:
+ dependencies:
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.2.2
+ regjsgen: 0.8.0
+ regjsparser: 0.13.0
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.2.1
+
+ regjsgen@0.8.0: {}
+
+ regjsparser@0.12.0:
+ dependencies:
+ jsesc: 3.0.2
+
+ regjsparser@0.13.0:
+ dependencies:
+ jsesc: 3.1.0
+
+ require-directory@2.1.1: {}
+
+ requires-port@1.0.0: {}
+
+ resolve-cwd@3.0.0:
+ dependencies:
+ resolve-from: 5.0.0
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve-pkg-maps@1.0.0: {}
+
+ resolve.exports@1.1.1: {}
+
+ resolve@1.22.10:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ reusify@1.1.0: {}
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ rollup@4.52.2:
+ dependencies:
+ '@types/estree': 1.0.8
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.52.2
+ '@rollup/rollup-android-arm64': 4.52.2
+ '@rollup/rollup-darwin-arm64': 4.52.2
+ '@rollup/rollup-darwin-x64': 4.52.2
+ '@rollup/rollup-freebsd-arm64': 4.52.2
+ '@rollup/rollup-freebsd-x64': 4.52.2
+ '@rollup/rollup-linux-arm-gnueabihf': 4.52.2
+ '@rollup/rollup-linux-arm-musleabihf': 4.52.2
+ '@rollup/rollup-linux-arm64-gnu': 4.52.2
+ '@rollup/rollup-linux-arm64-musl': 4.52.2
+ '@rollup/rollup-linux-loong64-gnu': 4.52.2
+ '@rollup/rollup-linux-ppc64-gnu': 4.52.2
+ '@rollup/rollup-linux-riscv64-gnu': 4.52.2
+ '@rollup/rollup-linux-riscv64-musl': 4.52.2
+ '@rollup/rollup-linux-s390x-gnu': 4.52.2
+ '@rollup/rollup-linux-x64-gnu': 4.52.2
+ '@rollup/rollup-linux-x64-musl': 4.52.2
+ '@rollup/rollup-openharmony-arm64': 4.52.2
+ '@rollup/rollup-win32-arm64-msvc': 4.52.2
+ '@rollup/rollup-win32-ia32-msvc': 4.52.2
+ '@rollup/rollup-win32-x64-gnu': 4.52.2
+ '@rollup/rollup-win32-x64-msvc': 4.52.2
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-area-insets@1.4.1: {}
+
+ safe-buffer@5.2.1: {}
+
+ safer-buffer@2.1.2: {}
+
+ sass@1.102.0:
+ dependencies:
+ chokidar: 5.0.0
+ immutable: 5.1.9
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.6.0
+
+ sax@1.4.1: {}
+
+ saxes@5.0.1:
+ dependencies:
+ xmlchars: 2.2.0
+
+ scslre@0.3.0:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+
+ scule@1.3.0: {}
+
+ semver@6.3.1: {}
+
+ semver@7.7.2: {}
+
+ send@0.19.0(supports-color@8.1.1):
+ dependencies:
+ debug: 2.6.9(supports-color@8.1.1)
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ serve-static@1.16.2(supports-color@8.1.1):
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.0(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ setprototypeof@1.2.0: {}
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ sisteransi@1.0.5: {}
+
+ slash@3.0.0: {}
+
+ 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: {}
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@4.0.0:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.22
+
+ spdx-license-ids@3.0.22: {}
+
+ sprintf-js@1.0.3: {}
+
+ stack-utils@2.0.6:
+ dependencies:
+ escape-string-regexp: 2.0.0
+
+ statuses@2.0.1: {}
+
+ string-hash@1.1.3: {}
+
+ string-length@4.0.2:
+ dependencies:
+ char-regex: 1.0.2
+ 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
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-bom@4.0.0: {}
+
+ strip-final-newline@2.0.0: {}
+
+ strip-indent@4.1.0: {}
+
+ strip-json-comments@3.1.1: {}
+
+ strip-literal@3.0.0:
+ dependencies:
+ js-tokens: 9.0.1
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-hyperlinks@2.3.0:
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ symbol-tree@3.2.4: {}
+
+ synckit@0.11.11:
+ dependencies:
+ '@pkgr/core': 0.2.9
+
+ systemjs@6.15.1: {}
+
+ tapable@2.2.3: {}
+
+ terminal-link@2.1.1:
+ dependencies:
+ ansi-escapes: 4.3.2
+ supports-hyperlinks: 2.3.0
+
+ terser@5.44.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.11
+ acorn: 8.15.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ test-exclude@6.0.0:
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ glob: 7.2.3
+ minimatch: 3.1.2
+
+ throat@6.0.2: {}
+
+ timm@1.7.1: {}
+
+ tinycolor2@1.6.0: {}
+
+ tinyexec@1.0.1: {}
+
+ tinyglobby@0.2.15:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.5)
+ picomatch: 4.0.5
+
+ tmpl@1.0.5: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toidentifier@1.0.1: {}
+
+ toml-eslint-parser@0.10.0:
+ dependencies:
+ eslint-visitor-keys: 3.4.3
+
+ tough-cookie@4.1.4:
+ dependencies:
+ psl: 1.15.0
+ punycode: 2.3.1
+ universalify: 0.2.0
+ url-parse: 1.5.10
+
+ tr46@2.1.0:
+ dependencies:
+ punycode: 2.3.1
+
+ ts-api-utils@2.1.0(typescript@5.9.2):
+ dependencies:
+ typescript: 5.9.2
+
+ ts-declaration-location@1.0.7(typescript@5.9.2):
+ dependencies:
+ picomatch: 4.0.5
+ typescript: 5.9.2
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-detect@4.0.8: {}
+
+ type-fest@0.21.3: {}
+
+ type-fest@4.2.0: {}
+
+ type-is@1.6.18:
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+
+ typedarray-to-buffer@3.1.5:
+ dependencies:
+ is-typedarray: 1.0.0
+
+ typescript@5.9.2: {}
+
+ ufo@1.6.1: {}
+
+ undici-types@7.12.0: {}
+
+ unicode-canonical-property-names-ecmascript@2.0.1: {}
+
+ unicode-match-property-ecmascript@2.0.0:
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.1
+ unicode-property-aliases-ecmascript: 2.2.0
+
+ unicode-match-property-value-ecmascript@2.2.1: {}
+
+ unicode-property-aliases-ecmascript@2.2.0: {}
+
+ unimport@4.1.1:
+ dependencies:
+ acorn: 8.15.0
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ fast-glob: 3.3.3
+ local-pkg: 1.1.2
+ magic-string: 0.30.19
+ mlly: 1.8.0
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ pkg-types: 1.3.1
+ scule: 1.3.0
+ strip-literal: 3.0.0
+ unplugin: 2.3.10
+ unplugin-utils: 0.2.5
+
+ unist-util-is@6.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.1:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+
+ unist-util-visit@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
+ universalify@0.2.0: {}
+
+ universalify@2.0.1: {}
+
+ unpipe@1.0.0: {}
+
+ unplugin-auto-import@19.1.0:
+ dependencies:
+ local-pkg: 1.1.2
+ magic-string: 0.30.19
+ picomatch: 4.0.3
+ unimport: 4.1.1
+ unplugin: 2.3.10
+ unplugin-utils: 0.2.5
+
+ unplugin-utils@0.2.5:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.3
+
+ unplugin@2.3.10:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
+ unquote@1.1.1: {}
+
+ update-browserslist-db@1.1.3(browserslist@4.26.2):
+ dependencies:
+ browserslist: 4.26.2
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ url-parse@1.5.10:
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+
+ utif@2.0.1:
+ dependencies:
+ pako: 1.0.11
+
+ util-deprecate@1.0.2: {}
+
+ utils-merge@1.0.1: {}
+
+ v8-to-istanbul@8.1.1:
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+ convert-source-map: 1.9.0
+ source-map: 0.7.6
+
+ vary@1.1.2: {}
+
+ vite@5.2.8(@types/node@24.5.2)(sass@1.102.0)(terser@5.44.0):
+ dependencies:
+ esbuild: 0.20.2
+ postcss: 8.5.6
+ rollup: 4.52.2
+ optionalDependencies:
+ '@types/node': 24.5.2
+ fsevents: 2.3.3
+ sass: 1.102.0
+ terser: 5.44.0
+
+ vscode-uri@3.1.0: {}
+
+ vue-demi@0.14.10(vue@3.4.21(typescript@5.9.2)):
+ dependencies:
+ vue: 3.4.21(typescript@5.9.2)
+
+ vue-eslint-parser@10.2.0(eslint@9.36.0(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ eslint: 9.36.0(supports-color@8.1.1)
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.6.0
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ vue-i18n@9.6.2(vue@3.4.21(typescript@5.9.2)):
+ dependencies:
+ '@intlify/core-base': 9.6.2
+ '@intlify/shared': 9.6.2
+ '@vue/devtools-api': 6.6.4
+ vue: 3.4.21(typescript@5.9.2)
+
+ vue-router@4.5.1(vue@3.4.21(typescript@5.9.2)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.4.21(typescript@5.9.2)
+
+ vue-tsc@3.0.8(typescript@5.9.2):
+ dependencies:
+ '@volar/typescript': 2.4.23
+ '@vue/language-core': 3.0.8(typescript@5.9.2)
+ typescript: 5.9.2
+
+ vue@3.4.21(typescript@5.9.2):
+ dependencies:
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/runtime-dom': 3.4.21
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.2))
+ '@vue/shared': 3.4.21
+ optionalDependencies:
+ typescript: 5.9.2
+
+ w3c-hr-time@1.0.2:
+ dependencies:
+ browser-process-hrtime: 1.0.0
+
+ w3c-xmlserializer@2.0.0:
+ dependencies:
+ xml-name-validator: 3.0.0
+
+ walker@1.0.8:
+ dependencies:
+ makeerror: 1.0.12
+
+ webidl-conversions@5.0.0: {}
+
+ webidl-conversions@6.1.0: {}
+
+ webpack-virtual-modules@0.6.2: {}
+
+ whatwg-encoding@1.0.5:
+ dependencies:
+ iconv-lite: 0.4.24
+
+ whatwg-mimetype@2.3.0: {}
+
+ whatwg-url@8.7.0:
+ dependencies:
+ lodash: 4.17.21
+ tr46: 2.1.0
+ webidl-conversions: 6.1.0
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrappy@1.0.2: {}
+
+ write-file-atomic@3.0.3:
+ dependencies:
+ imurmurhash: 0.1.4
+ is-typedarray: 1.0.0
+ signal-exit: 3.0.7
+ typedarray-to-buffer: 3.1.5
+
+ ws@7.5.10: {}
+
+ ws@8.18.3: {}
+
+ xhr@2.6.0:
+ dependencies:
+ global: 4.4.0
+ is-function: 1.0.2
+ parse-headers: 2.0.6
+ xtend: 4.0.2
+
+ xml-name-validator@3.0.0: {}
+
+ xml-name-validator@4.0.0: {}
+
+ xml-parse-from-string@1.0.1: {}
+
+ xml2js@0.5.0:
+ dependencies:
+ sax: 1.4.1
+ xmlbuilder: 11.0.1
+
+ xmlbuilder@11.0.1: {}
+
+ xmlchars@2.2.0: {}
+
+ xmlhttprequest@1.8.0: {}
+
+ xregexp@3.1.0: {}
+
+ xtend@4.0.2: {}
+
+ y18n@5.0.8: {}
+
+ yallist@3.1.1: {}
+
+ yaml-eslint-parser@1.3.0:
+ dependencies:
+ eslint-visitor-keys: 3.4.3
+ yaml: 2.8.1
+
+ yaml@1.10.2: {}
+
+ yaml@2.8.1: {}
+
+ yargs-parser@20.2.9: {}
+
+ yargs@16.2.0:
+ dependencies:
+ cliui: 7.0.4
+ 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: 20.2.9
+
+ yocto-queue@0.1.0: {}
+
+ zwitch@2.0.4: {}
diff --git a/blog-wot-uniapp/pnpm-workspace.yaml b/blog-wot-uniapp/pnpm-workspace.yaml
new file mode 100644
index 0000000..ee14c69
--- /dev/null
+++ b/blog-wot-uniapp/pnpm-workspace.yaml
@@ -0,0 +1,5 @@
+allowBuilds:
+ '@parcel/watcher': set this to true or false
+ core-js: set this to true or false
+ esbuild: set this to true or false
+ vue-demi: set this to true or false
diff --git a/blog-wot-uniapp/src/App.vue b/blog-wot-uniapp/src/App.vue
new file mode 100644
index 0000000..641f91d
--- /dev/null
+++ b/blog-wot-uniapp/src/App.vue
@@ -0,0 +1,70 @@
+
+
+
diff --git a/blog-wot-uniapp/src/api/index.ts b/blog-wot-uniapp/src/api/index.ts
new file mode 100644
index 0000000..7c59d59
--- /dev/null
+++ b/blog-wot-uniapp/src/api/index.ts
@@ -0,0 +1,411 @@
+import { get, post, put, del, patch, uploadFile } from '@/utils/request'
+
+export interface User {
+ id: number
+ username: string
+ email: string
+ avatar?: string
+ bio?: string
+ role: string
+ isActive?: number
+ phone?: string
+ wechat?: string
+ wechatQrcode?: string
+ [key: string]: unknown
+}
+
+export interface LoginResponse {
+ token: string
+ user: User
+ expire: number
+}
+
+export interface PaginationResponse {
+ list: T[]
+ total: number
+ page: number
+ pageSize: number
+}
+
+export interface Post {
+ id: number | string
+ title: string
+ content?: string
+ summary?: string
+ excerpt?: string
+ cover?: string
+ date?: string
+ categoryId?: number
+ categoryName?: string
+ columnId?: number
+ columnName?: string
+ userName?: string
+ userAvatar?: string
+ userId?: number
+ readCount?: number
+ isPublished?: number | boolean
+ tags?: { id: number, name: string }[]
+ [key: string]: unknown
+}
+
+export interface WorkLinks {
+ live?: string
+ demo?: string
+ github?: string
+ [key: string]: unknown
+}
+
+export interface WorkTechGroup {
+ category?: string
+ items?: string[]
+ [key: string]: unknown
+}
+
+export interface Work {
+ id: string
+ title: string
+ category?: string
+ year?: string
+ heroImg?: string
+ heroVideo?: string
+ /** API 字段名为 desc */
+ desc?: string
+ description?: string
+ videoUrl?: string
+ videoId?: number | string
+ techStack?: WorkTechGroup[]
+ gallery?: string[]
+ links?: WorkLinks | string
+ next?: string
+ [key: string]: unknown
+}
+
+export interface Column {
+ id: number | string
+ title?: string
+ name?: string
+ description?: string
+ cover?: string
+ postCount?: number
+ isActive?: number | boolean
+ sortOrder?: number
+ [key: string]: unknown
+}
+
+export interface Snippet {
+ id: number | string
+ title: string
+ code?: string
+ language?: string
+ description?: string
+ codeTypeId?: number
+ postIds?: number[]
+ [key: string]: unknown
+}
+
+export interface VideoItem {
+ id: string
+ title: string
+ cover?: string
+ poster?: string
+ videoUrl?: string
+ url?: string
+ description?: string
+ categoryId?: number
+ categoryName?: string
+ albumIds?: number[]
+ isPublished?: number | boolean
+ duration?: number
+ createdAt?: string
+ [key: string]: unknown
+}
+
+export interface VideoAlbumNavContext {
+ albumId: number
+ albumName: string
+ prevVideos: VideoItem[]
+ nextVideos: VideoItem[]
+}
+
+export interface VideoDetailItem extends VideoItem {
+ albumContext?: VideoAlbumNavContext
+}
+
+export interface VideoAlbum {
+ id: number
+ name: string
+ description?: string
+ cover?: string
+ categoryId?: number
+ categoryName?: string
+ videoCount?: number
+ videoIds?: number[]
+ isActive?: number | boolean
+ sortOrder?: number
+ latestVideoUpdatedAt?: string
+ previewVideos?: VideoItem[]
+ [key: string]: unknown
+}
+
+export interface AboutExperience {
+ year?: string
+ role?: string
+ company?: string
+}
+
+export interface AboutProfile {
+ id?: number
+ name?: string
+ avatar?: string
+ location?: string
+ bio?: string
+ email?: string
+ wechat?: string
+ isPrimary?: number | boolean
+ techStack?: string[]
+ experiences?: AboutExperience[]
+ role?: string
+ [key: string]: unknown
+}
+
+export interface Attachment {
+ id: number
+ originalName?: string
+ fileName?: string
+ fileUrl?: string
+ url?: string
+ fileType?: string
+ fileSize?: number
+ categoryId?: number
+ [key: string]: unknown
+}
+
+export interface Inquiry {
+ id: number
+ name?: string
+ company?: string
+ contactMethod?: string
+ contactValue?: string
+ budget?: string
+ description?: string
+ status?: number
+ createdAt?: string
+ [key: string]: unknown
+}
+
+// ---- Auth ----
+export const loginApi = (username: string, password: string) =>
+ post('/admin/login', { username, password })
+
+export const wxLoginApi = (code: string) =>
+ post('/auth/wx-login', { code })
+
+/** 游客合并到管理员:需携带游客 JWT */
+export const mergeAccountApi = (username: string, password: string) =>
+ post('/auth/merge-account', { username, password }, true)
+
+export const getCurrentUser = () => get('/admin/me', undefined, true)
+
+/** 更新当前登录用户资料 */
+export const updateMe = (data: Partial) => put('/admin/me', data, true)
+
+export const updatePassword = (oldPassword: string, newPassword: string) =>
+ put('/admin/me/password', { oldPassword, newPassword }, true)
+
+// ---- Public ----
+export const getPublicSettings = () => get>('/settings')
+
+export const getPosts = (params: Record = {}) =>
+ get | Post[]>('/posts', params)
+
+export const getPost = (id: string | number) => get(`/posts/${id}`)
+
+export const getRecommendedPosts = (id: string | number, limit = 3) =>
+ get(`/posts/${id}/recommendations`, { limit })
+
+export const getHotSearches = (limit = 10) => get<{ keyword: string, count: number }[]>('/search/hot', { limit })
+
+export const getColumns = () => get('/columns')
+export const getColumn = (id: string | number) => get(`/columns/${id}`)
+export const getColumnPosts = (id: string | number) => get(`/columns/${id}/posts`)
+
+export const getWorks = () => get('/works')
+export const getWork = (id: string) => get(`/works/${id}`)
+
+export const getSnippets = () => get('/snippets')
+export const getSnippet = (id: string | number) => get(`/snippets/${id}`)
+
+export const getVideoCategories = () => get('/video-categories')
+export const getVideoAlbums = (params: Record = {}) =>
+ get('/video-albums', params)
+export const getVideoAlbum = (id: string | number) => get(`/video-albums/${id}`)
+export const getVideos = (params: Record = {}) => get('/videos', params)
+export const getVideo = (id: string) => get(`/videos/${id}`)
+export const getAlbumVideos = (id: string | number) => get(`/video-albums/${id}/videos`)
+
+export const getAbout = () => get('/about')
+export const getTestimonials = () => get('/testimonials')
+export const getPartners = () => get('/partners')
+export const getEmailSuffixes = () => get('/email-suffixes')
+export const submitInquiry = (data: Record) => post('/inquiries', data)
+
+export const getCategories = () => get<{ id: number, name: string }[]>('/categories')
+export const getTags = () => get<{ id: number, name: string }[]>('/tags')
+
+/** 仪表盘趋势点(后端 date + value;兼容旧 count 字段) */
+export interface TrendPoint {
+ date: string
+ value?: number
+ count?: number
+ yoy?: number
+ mom?: number
+}
+
+/** 读取趋势点数值:优先 value,兼容 SQL/旧接口的 count */
+export function trendPointValue(p?: TrendPoint | null): number {
+ if (!p) return 0
+ return Number(p.value ?? p.count ?? 0)
+}
+
+/** 热门文章排行项:后端访问统计返回 count,兼容文章实体上的 readCount */
+export interface DashboardTopPost {
+ title?: string
+ article_id?: number
+ count?: number
+ readCount?: number
+ [key: string]: unknown
+}
+
+/** 概览结构化统计,对应 GetDashboardStats */
+export interface DashboardStats {
+ posts?: number
+ works?: number
+ inquiryCount?: number
+ postsTrend?: TrendPoint[]
+ uvTrend?: TrendPoint[]
+ topPosts?: DashboardTopPost[]
+ operationTrend?: TrendPoint[]
+ userRegions?: { region?: string, name?: string, count?: number, value?: number }[]
+}
+
+// ---- Admin dashboard ----
+export const getDashboardStats = (params: Record = {}) =>
+ get('/admin/dashboard/stats', params, true)
+export const getRecentActivities = () => get('/admin/dashboard/activities', undefined, true)
+export const getOperationLogs = (page = 1, pageSize = 10, filters: Record = {}) =>
+ get>('/admin/operation-logs', { page, pageSize, ...filters }, true)
+export const getAccessLogs = (page = 1, pageSize = 10, filters: Record = {}) =>
+ get>('/admin/access-logs', { page, pageSize, ...filters }, true)
+
+// ---- Admin posts extras ----
+/** 切换文章发布状态 */
+export const patchPostStatus = (id: string | number, isPublished: number) =>
+ patch(`/admin/posts/${id}/status`, { isPublished }, true)
+
+export const patchPostRelations = (id: string | number, data: Record) =>
+ patch(`/admin/posts/${id}/relations`, data, true)
+
+export const getPostHistory = (id: string | number) =>
+ get(`/admin/posts/${id}/history`, undefined, true)
+
+/** 后台文章详情(含未发布),编辑表单专用;勿用公开 getPost */
+export const adminGetPost = (id: string | number) =>
+ get(`/admin/posts/${id}`, undefined, true)
+
+export const restorePostVersion = (id: string | number, version: string | number) =>
+ post(`/admin/posts/${id}/history/${version}/restore`, {}, true)
+
+export const getPostAccessLogs = (id: string | number, params: Record = {}) =>
+ get>(`/admin/posts/${id}/access-logs`, params, true)
+
+// ---- Admin inquiries ----
+export const updateInquiryStatus = (id: string | number, status: number) =>
+ put(`/admin/inquiries/${id}/status`, { status }, true)
+
+// ---- Admin columns posts ----
+export const addPostToColumn = (columnId: string | number, postId: string | number) =>
+ post(`/admin/columns/${columnId}/posts`, { postId }, true)
+
+export const removePostFromColumn = (columnId: string | number, postId: string | number) =>
+ del(`/admin/columns/${columnId}/posts/${postId}`, true)
+
+export const getAdminColumnPosts = (columnId: string | number) =>
+ get(`/admin/columns/${columnId}/posts`, undefined, true).catch(() => getColumnPosts(columnId))
+
+// ---- Admin video albums ----
+export const getAlbumVideoIds = (id: string | number) =>
+ get(`/admin/video-albums/${id}/video-ids`, undefined, true)
+
+// ---- Admin attachments ----
+export const uploadAttachment = (filePath: string, formData: Record = {}) =>
+ uploadFile('/admin/attachments/upload', filePath, formData)
+
+// ---- Admin settings ----
+export const getAdminSettings = () => get('/admin/settings', undefined, true)
+export const batchUpdateSettings = (values: Record) =>
+ put('/admin/settings', values, true)
+
+// ---- Admin OSS ----
+export const testOssConfig = (id: string | number) =>
+ post<{ storageType: string, name: string }>(`/admin/oss-configs/${id}/test`, {}, true)
+
+// ---- Admin generic CRUD helpers ----
+const RESOURCE_ALIAS: Record = {
+ logs: 'operation-logs',
+ 'access-logs': 'access-logs',
+ about: 'about',
+ settings: 'settings',
+}
+
+function adminPath(resource: string, id?: string | number) {
+ const name = RESOURCE_ALIAS[resource] || resource
+ return id != null ? `/admin/${name}/${id}` : `/admin/${name}`
+}
+
+export function adminList(resource: string, params: Record = {}) {
+ return get(adminPath(resource), params, true)
+}
+
+export function adminGet(resource: string, id: string | number) {
+ return get(adminPath(resource, id), undefined, true)
+}
+
+export function adminCreate(resource: string, data: unknown) {
+ return post(adminPath(resource), data, true)
+}
+
+export function adminUpdate(resource: string, id: string | number, data: unknown) {
+ return put(adminPath(resource, id), data, true)
+}
+
+export function adminDelete(resource: string, id: string | number) {
+ return del(adminPath(resource, id), true)
+}
+
+/** 统一把列表接口结果规范成数组(兼容 list 包装与裸数组) */
+export function normalizeAdminList>(data: unknown): T[] {
+ if (Array.isArray(data)) return data as T[]
+ if (data && typeof data === 'object' && Array.isArray((data as { list?: unknown[] }).list)) {
+ return (data as { list: T[] }).list
+ }
+ return []
+}
+
+/** 统一分页结构 */
+export function normalizePagination>(
+ data: unknown,
+ page = 1,
+ pageSize = 20,
+): PaginationResponse {
+ if (data && typeof data === 'object' && Array.isArray((data as PaginationResponse).list)) {
+ const p = data as PaginationResponse
+ return {
+ list: p.list,
+ total: Number(p.total ?? p.list.length),
+ page: Number(p.page ?? page),
+ pageSize: Number(p.pageSize ?? pageSize),
+ }
+ }
+ const list = normalizeAdminList(data)
+ return { list, total: list.length, page, pageSize }
+}
diff --git a/blog-wot-uniapp/src/assets/fonts/jetbrains-mono-latin-400-normal.woff b/blog-wot-uniapp/src/assets/fonts/jetbrains-mono-latin-400-normal.woff
new file mode 100644
index 0000000..41fa3d6
Binary files /dev/null and b/blog-wot-uniapp/src/assets/fonts/jetbrains-mono-latin-400-normal.woff differ
diff --git a/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-400-italic.woff b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-400-italic.woff
new file mode 100644
index 0000000..c5f92cb
Binary files /dev/null and b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-400-italic.woff differ
diff --git a/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-400-normal.woff b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-400-normal.woff
new file mode 100644
index 0000000..2620a9b
Binary files /dev/null and b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-400-normal.woff differ
diff --git a/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-600-normal.woff b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-600-normal.woff
new file mode 100644
index 0000000..61aebd2
Binary files /dev/null and b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-600-normal.woff differ
diff --git a/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-700-normal.woff b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-700-normal.woff
new file mode 100644
index 0000000..44f1c67
Binary files /dev/null and b/blog-wot-uniapp/src/assets/fonts/playfair-display-latin-700-normal.woff differ
diff --git a/blog-wot-uniapp/src/components/c-end/AmbientBackground.vue b/blog-wot-uniapp/src/components/c-end/AmbientBackground.vue
new file mode 100644
index 0000000..4e9eb7e
--- /dev/null
+++ b/blog-wot-uniapp/src/components/c-end/AmbientBackground.vue
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/c-end/ArtMenuGroup.vue b/blog-wot-uniapp/src/components/c-end/ArtMenuGroup.vue
new file mode 100644
index 0000000..5367cfd
--- /dev/null
+++ b/blog-wot-uniapp/src/components/c-end/ArtMenuGroup.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/c-end/ArtMenuItem.vue b/blog-wot-uniapp/src/components/c-end/ArtMenuItem.vue
new file mode 100644
index 0000000..13e9922
--- /dev/null
+++ b/blog-wot-uniapp/src/components/c-end/ArtMenuItem.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/c-end/ArtSearchBar.vue b/blog-wot-uniapp/src/components/c-end/ArtSearchBar.vue
new file mode 100644
index 0000000..2c4378c
--- /dev/null
+++ b/blog-wot-uniapp/src/components/c-end/ArtSearchBar.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/c-end/PostCard.vue b/blog-wot-uniapp/src/components/c-end/PostCard.vue
new file mode 100644
index 0000000..1f11de1
--- /dev/null
+++ b/blog-wot-uniapp/src/components/c-end/PostCard.vue
@@ -0,0 +1,97 @@
+
+
+
+
+ {{ metaLine }}
+ {{ post.title }}
+ {{ summaryText }}
+
+
+ {{ post.userName }}
+
+
+ #{{ t }}
+
+ 阅读全文 →
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/c-end/ProfileHero.vue b/blog-wot-uniapp/src/components/c-end/ProfileHero.vue
new file mode 100644
index 0000000..9180f64
--- /dev/null
+++ b/blog-wot-uniapp/src/components/c-end/ProfileHero.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+ {{ name }}
+ {{ subtitle }}
+
+ {{ badge }}
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/layout/AppFloatingTabbar.vue b/blog-wot-uniapp/src/components/layout/AppFloatingTabbar.vue
new file mode 100644
index 0000000..7a85df9
--- /dev/null
+++ b/blog-wot-uniapp/src/components/layout/AppFloatingTabbar.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/layout/AppNavbar.vue b/blog-wot-uniapp/src/components/layout/AppNavbar.vue
new file mode 100644
index 0000000..a73b332
--- /dev/null
+++ b/blog-wot-uniapp/src/components/layout/AppNavbar.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/components/layout/AppPageShell.vue b/blog-wot-uniapp/src/components/layout/AppPageShell.vue
new file mode 100644
index 0000000..200226d
--- /dev/null
+++ b/blog-wot-uniapp/src/components/layout/AppPageShell.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/composables/useAppMode.ts b/blog-wot-uniapp/src/composables/useAppMode.ts
new file mode 100644
index 0000000..4fd203c
--- /dev/null
+++ b/blog-wot-uniapp/src/composables/useAppMode.ts
@@ -0,0 +1,75 @@
+import { computed, ref } from 'vue'
+import type { AppMode, LoginType } from '@/config/menus'
+import { isStaffRole } from '@/config/menus'
+import { useAuth } from './useAuth'
+
+const MODE_KEY = 'appMode'
+const LOGIN_TYPE_KEY = 'loginType'
+
+const appMode = ref((uni.getStorageSync(MODE_KEY) as AppMode) || 'user')
+const loginType = ref((uni.getStorageSync(LOGIN_TYPE_KEY) as LoginType) || 'guest')
+
+export function useAppMode() {
+ const { getUser, isAuthenticated } = useAuth()
+
+ const isAdminMode = computed(() => appMode.value === 'admin')
+ const isUserMode = computed(() => appMode.value === 'user')
+
+ const canEnterAdmin = computed(() => {
+ if (!isAuthenticated()) return false
+ const user = getUser() as { role?: string }
+ return isStaffRole(user?.role)
+ })
+
+ const setLoginType = (type: LoginType) => {
+ loginType.value = type
+ uni.setStorageSync(LOGIN_TYPE_KEY, type)
+ }
+
+ const setAppMode = (mode: AppMode) => {
+ appMode.value = mode
+ uni.setStorageSync(MODE_KEY, mode)
+ }
+
+ const enterAdminMode = () => {
+ if (!canEnterAdmin.value) {
+ uni.showToast({ title: '无后台权限', icon: 'none' })
+ return false
+ }
+ setAppMode('admin')
+ // 延迟 import,避免与 useTheme 循环依赖;切换模式后立刻同步页底色
+ import('./useTheme').then(({ useTheme }) => useTheme().apply()).catch(() => {})
+ uni.reLaunch({ url: '/subPackages/admin/pages/dashboard/index' })
+ return true
+ }
+
+ const enterUserMode = () => {
+ setAppMode('user')
+ import('./useTheme').then(({ useTheme }) => useTheme().apply()).catch(() => {})
+ uni.reLaunch({ url: '/pages/home/index' })
+ }
+
+ /** 启动时校验:admin 模式但无权限则回退 */
+ const hydrateAppMode = () => {
+ if (appMode.value === 'admin' && !canEnterAdmin.value) {
+ setAppMode('user')
+ if (!isAuthenticated()) setLoginType('guest')
+ }
+ if (isAuthenticated() && canEnterAdmin.value) {
+ setLoginType('staff')
+ }
+ }
+
+ return {
+ appMode,
+ loginType,
+ isAdminMode,
+ isUserMode,
+ canEnterAdmin,
+ setLoginType,
+ setAppMode,
+ enterAdminMode,
+ enterUserMode,
+ hydrateAppMode,
+ }
+}
diff --git a/blog-wot-uniapp/src/composables/useAppTabbar.ts b/blog-wot-uniapp/src/composables/useAppTabbar.ts
new file mode 100644
index 0000000..c8dd524
--- /dev/null
+++ b/blog-wot-uniapp/src/composables/useAppTabbar.ts
@@ -0,0 +1,101 @@
+import { computed } from 'vue'
+import { useAppMode } from './useAppMode'
+import { useTheme } from './useTheme'
+
+export interface TabItem {
+ name: string
+ title: string
+ icon: string
+ path: string
+}
+
+const USER_TABS: TabItem[] = [
+ { name: 'home', title: '首页', icon: 'home', path: '/pages/home/index' },
+ // wot-ui 无 app,正确图标名为 apps
+ { name: 'explore', title: '功能入口', icon: 'apps', path: '/pages/explore/index' },
+ { name: 'mine', title: '我的', icon: 'user', path: '/pages/mine/index' },
+]
+
+const ADMIN_TABS: TabItem[] = [
+ { name: 'dashboard', title: '工作台', icon: 'dashboard', path: '/subPackages/admin/pages/dashboard/index' },
+ { name: 'explore', title: '功能入口', icon: 'apps', path: '/subPackages/admin/pages/explore/index' },
+ { name: 'mine', title: '我的', icon: 'user', path: '/pages/mine/index' },
+]
+
+export function useAppTabbar() {
+ const { appMode } = useAppMode()
+ const { apply } = useTheme()
+
+ const tabItems = computed(() => (appMode.value === 'admin' ? ADMIN_TABS : USER_TABS))
+
+ const resolveActive = (routePath?: string): string => {
+ const path = routePath || getCurrentRoutePath()
+ const items = tabItems.value
+ const hit = items.find(t => path.includes(t.path.replace(/^\//, '')) || path.endsWith(t.name))
+ if (hit) return hit.name
+ if (path.includes('/mine')) return 'mine'
+ if (path.includes('/explore')) return 'explore'
+ if (path.includes('/dashboard') || path.includes('/home')) return items[0].name
+ return items[0].name
+ }
+
+ /**
+ * Tab 切换:先同步底色再 redirectTo,避免 reLaunch 清栈 + 浅色 page 闪屏。
+ * 已在当前页则 no-op。
+ */
+ const navigateTab = (name: string) => {
+ const item = tabItems.value.find(t => t.name === name)
+ if (!item) return
+ const cur = getCurrentRoutePath()
+ const target = item.path
+ if (cur === target || cur.endsWith(target.replace(/^\//, ''))) return
+ apply()
+ uni.redirectTo({ url: target })
+ }
+
+ const shouldShowTabbar = (routePath?: string): boolean => {
+ const path = routePath || getCurrentRoutePath()
+ const hidePatterns = [
+ '/blog/detail',
+ '/blog/ppt',
+ '/columns/detail',
+ '/works/detail',
+ '/videos/detail',
+ '/videos/album',
+ '/resource/form',
+ '/resource/list',
+ '/analytics',
+ '/columns/form',
+ '/posts/',
+ '/works/list',
+ '/works/form',
+ '/videos/list',
+ '/videos/form',
+ '/video-albums/',
+ '/snippets/form',
+ '/attachments/',
+ '/inquiries/',
+ '/about/index',
+ '/settings/',
+ '/oss-configs/',
+ '/users/',
+ '/logs/',
+ ]
+ return !hidePatterns.some(p => path.includes(p))
+ }
+
+ return {
+ tabItems,
+ resolveActive,
+ navigateTab,
+ shouldShowTabbar,
+ USER_TABS,
+ ADMIN_TABS,
+ }
+}
+
+function getCurrentRoutePath(): string {
+ const pages = getCurrentPages()
+ const cur = pages[pages.length - 1] as { route?: string } | undefined
+ return cur?.route ? `/${cur.route}` : ''
+}
diff --git a/blog-wot-uniapp/src/composables/useAuth.ts b/blog-wot-uniapp/src/composables/useAuth.ts
new file mode 100644
index 0000000..fcc5f66
--- /dev/null
+++ b/blog-wot-uniapp/src/composables/useAuth.ts
@@ -0,0 +1,117 @@
+import { ref } from 'vue'
+import { isStaffRole } from '@/config/menus'
+
+const TOKEN_KEY = 'token'
+const USER_KEY = 'user'
+const EXPIRE_KEY = 'tokenExpireAt'
+
+const sessionExpired = ref(false)
+let sessionExpiredHandled = false
+let expiryTimer: ReturnType | null = null
+
+export interface AuthUser {
+ id: number
+ username: string
+ email?: string
+ avatar?: string
+ role?: string
+ [key: string]: unknown
+}
+
+export function useAuth() {
+ const getToken = () => uni.getStorageSync(TOKEN_KEY) as string || ''
+
+ const getTokenExpireAt = (): number => {
+ const raw = uni.getStorageSync(EXPIRE_KEY)
+ return raw ? Number(raw) : 0
+ }
+
+ const isAuthenticated = (): boolean => {
+ const token = getToken()
+ if (!token) return false
+ const expireAt = getTokenExpireAt()
+ if (expireAt > 0 && Date.now() >= expireAt) return false
+ return true
+ }
+
+ const getUser = (): AuthUser => {
+ try {
+ const raw = uni.getStorageSync(USER_KEY)
+ if (!raw) return {} as AuthUser
+ return typeof raw === 'string' ? JSON.parse(raw) : raw
+ }
+ catch {
+ return {} as AuthUser
+ }
+ }
+
+ const setUser = (user: AuthUser) => {
+ uni.setStorageSync(USER_KEY, JSON.stringify(user))
+ }
+
+ const clearExpiryTimer = () => {
+ if (expiryTimer) {
+ clearTimeout(expiryTimer)
+ expiryTimer = null
+ }
+ }
+
+ const handleSessionExpired = () => {
+ if (sessionExpiredHandled) return
+ sessionExpiredHandled = true
+ sessionExpired.value = true
+ }
+
+ const scheduleExpiryCheck = () => {
+ clearExpiryTimer()
+ const expireAt = getTokenExpireAt()
+ if (!expireAt) return
+ const delay = expireAt - Date.now()
+ if (delay <= 0) {
+ handleSessionExpired()
+ return
+ }
+ expiryTimer = setTimeout(() => handleSessionExpired(), delay)
+ }
+
+ const login = (token: string, user: AuthUser, expireUnixSeconds: number) => {
+ uni.setStorageSync(TOKEN_KEY, token)
+ uni.setStorageSync(USER_KEY, JSON.stringify(user))
+ uni.setStorageSync(EXPIRE_KEY, String(expireUnixSeconds * 1000))
+ sessionExpiredHandled = false
+ sessionExpired.value = false
+ scheduleExpiryCheck()
+
+ // sync loginType
+ uni.setStorageSync('loginType', isStaffRole(user.role) ? 'staff' : 'guest')
+ }
+
+ const logout = () => {
+ clearExpiryTimer()
+ uni.removeStorageSync(TOKEN_KEY)
+ uni.removeStorageSync(USER_KEY)
+ uni.removeStorageSync(EXPIRE_KEY)
+ uni.setStorageSync('loginType', 'guest')
+ uni.setStorageSync('appMode', 'user')
+ sessionExpiredHandled = false
+ sessionExpired.value = false
+ }
+
+ const confirmSessionExpired = () => {
+ logout()
+ uni.reLaunch({ url: '/pages/mine/index' })
+ }
+
+ return {
+ sessionExpired,
+ getToken,
+ getUser,
+ setUser,
+ isAuthenticated,
+ login,
+ logout,
+ handleSessionExpired,
+ confirmSessionExpired,
+ scheduleExpiryCheck,
+ }
+}
diff --git a/blog-wot-uniapp/src/composables/usePublicSettings.ts b/blog-wot-uniapp/src/composables/usePublicSettings.ts
new file mode 100644
index 0000000..af2689c
--- /dev/null
+++ b/blog-wot-uniapp/src/composables/usePublicSettings.ts
@@ -0,0 +1,53 @@
+import { ref } from 'vue'
+import { get } from '@/utils/request'
+import { PUBLIC_MENUS } from '@/config/menus'
+
+export type PublicSettings = Record
+
+const cache = ref({})
+const loaded = ref(false)
+
+export function usePublicSettings() {
+ const load = async (force = false) => {
+ if (loaded.value && !force) return cache.value
+ try {
+ const data = await get('/settings')
+ cache.value = data || {}
+ loaded.value = true
+ }
+ catch {
+ cache.value = {}
+ }
+ return cache.value
+ }
+
+ const getStringSetting = (key: string, fallback = '') => cache.value[key] || fallback
+
+ const getVisibleMenus = (): string[] => {
+ const raw = getStringSetting('visible_menus')
+ const defaults = ['home', 'blog', 'columns', 'works', 'videos', 'snippets', 'about', 'services']
+ if (!raw) return defaults
+ try {
+ const parsed = JSON.parse(raw)
+ if (Array.isArray(parsed)) return parsed
+ }
+ catch {
+ return raw.split(',').map(s => s.trim()).filter(Boolean)
+ }
+ return defaults
+ }
+
+ const getExploreMenus = () => {
+ const visible = getVisibleMenus()
+ return PUBLIC_MENUS.filter(m => visible.includes(m.key))
+ }
+
+ return {
+ cache,
+ loaded,
+ load,
+ getStringSetting,
+ getVisibleMenus,
+ getExploreMenus,
+ }
+}
diff --git a/blog-wot-uniapp/src/composables/useSearchHistory.ts b/blog-wot-uniapp/src/composables/useSearchHistory.ts
new file mode 100644
index 0000000..4198097
--- /dev/null
+++ b/blog-wot-uniapp/src/composables/useSearchHistory.ts
@@ -0,0 +1,50 @@
+/**
+ * 思考页搜索历史:对齐 PC blog_search_history,最多 10 条。
+ * 小程序用 uni.setStorageSync,与 localStorage key 保持一致便于跨端对齐。
+ */
+export const SEARCH_HISTORY_KEY = 'blog_search_history'
+const MAX_HISTORY = 10
+
+export function useSearchHistory() {
+ /** 读取历史列表 */
+ const readHistory = (): string[] => {
+ try {
+ const raw = uni.getStorageSync(SEARCH_HISTORY_KEY)
+ if (!raw) return []
+ const parsed = typeof raw === 'string' ? JSON.parse(raw) : raw
+ return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : []
+ }
+ catch {
+ return []
+ }
+ }
+
+ const writeHistory = (items: string[]) => {
+ uni.setStorageSync(SEARCH_HISTORY_KEY, JSON.stringify(items.slice(0, MAX_HISTORY)))
+ }
+
+ const getHistory = () => readHistory()
+
+ /** 写入关键词(去重置顶) */
+ const addHistory = (keyword: string) => {
+ const trimmed = keyword.trim()
+ if (!trimmed) return
+ const next = [trimmed, ...readHistory().filter(item => item !== trimmed)].slice(0, MAX_HISTORY)
+ writeHistory(next)
+ }
+
+ const removeHistory = (keyword: string) => {
+ writeHistory(readHistory().filter(item => item !== keyword))
+ }
+
+ const clearHistory = () => {
+ uni.removeStorageSync(SEARCH_HISTORY_KEY)
+ }
+
+ return {
+ getHistory,
+ addHistory,
+ removeHistory,
+ clearHistory,
+ }
+}
diff --git a/blog-wot-uniapp/src/composables/useTheme.ts b/blog-wot-uniapp/src/composables/useTheme.ts
new file mode 100644
index 0000000..bfc20cc
--- /dev/null
+++ b/blog-wot-uniapp/src/composables/useTheme.ts
@@ -0,0 +1,145 @@
+/**
+ * 主题与 wot ConfigProvider 变量。
+ * 后台模式强制按暗色注入,避免用户浅色偏好导致表单字色/底色错乱。
+ */
+import { computed, ref } from 'vue'
+import { useAppMode } from './useAppMode'
+
+export type ThemePref = 'system' | 'light' | 'dark'
+
+const THEME_KEY = 'theme-pref'
+const themePref = ref((uni.getStorageSync(THEME_KEY) as ThemePref) || 'system')
+const isDark = ref(false)
+
+function resolveDark(pref: ThemePref): boolean {
+ if (pref === 'dark') return true
+ if (pref === 'light') return false
+ try {
+ // 优先新 API,避免 wx.getSystemInfoSync 弃用警告
+ const base = typeof uni.getAppBaseInfo === 'function' ? uni.getAppBaseInfo() : null
+ if (base && 'theme' in base) {
+ return (base as { theme?: string }).theme === 'dark'
+ }
+ const info = uni.getSystemInfoSync()
+ return (info as UniApp.GetSystemInfoResult & { theme?: string }).theme === 'dark'
+ }
+ catch {
+ return false
+ }
+}
+
+/**
+ * 同步窗口底色到 art 主题色。
+ * theme.json 的 @bgColor 只跟系统深色;App 内选手动深色时必须靠此 API,避免 page 露白。
+ */
+function syncPageBackground(dark: boolean, admin = false) {
+ const bg = admin ? '#0a0a0a' : dark ? '#050505' : '#faf8f4'
+ try {
+ uni.setBackgroundColor({
+ backgroundColor: bg,
+ backgroundColorTop: bg,
+ backgroundColorBottom: bg,
+ })
+ }
+ catch { /* H5 may ignore */ }
+ try {
+ uni.setNavigationBarColor({
+ frontColor: dark || admin ? '#ffffff' : '#000000',
+ backgroundColor: bg,
+ })
+ }
+ catch { /* custom nav may ignore */ }
+ uni.setStorageSync('theme-bg-sync', `${dark || admin ? 1 : 0}-${Date.now()}`)
+}
+
+export function useTheme() {
+ const { appMode } = useAppMode()
+
+ /** 用户偏好暗色,或当前处于后台模式 */
+ const effectiveDark = computed(() => isDark.value || appMode.value === 'admin')
+
+ const apply = () => {
+ isDark.value = resolveDark(themePref.value)
+ syncPageBackground(isDark.value, appMode.value === 'admin')
+ }
+
+ const setThemePref = (pref: ThemePref) => {
+ themePref.value = pref
+ uni.setStorageSync(THEME_KEY, pref)
+ apply()
+ }
+
+ const themeLabel = computed(() => {
+ if (themePref.value === 'system') return '跟随系统'
+ if (themePref.value === 'light') return '浅色'
+ return '深色'
+ })
+
+ const wotTheme = computed(() => (effectiveDark.value ? 'dark' : 'light'))
+
+ /** 注入 wot ConfigProvider:主题色 + 导航/弹层/表单/搜索深色,避免白底割裂 */
+ const themeVars = computed(() => {
+ const dark = effectiveDark.value
+ const admin = appMode.value === 'admin'
+ const bg = dark ? '#121214' : '#ffffff'
+ const pageBg = admin ? '#0a0a0a' : dark ? '#050505' : '#faf8f4'
+ const title = dark ? '#ececec' : '#171717'
+ const muted = dark ? '#888888' : '#6b6b6b'
+ const border = dark ? 'rgba(255,255,255,0.12)' : 'rgba(0,0,0,0.08)'
+ return {
+ colorTheme: '#d4b383',
+ navbarColor: title,
+ navbarBg: admin
+ ? 'rgba(10,10,10,0.92)'
+ : dark
+ ? 'rgba(5,5,5,0.92)'
+ : 'rgba(250,248,244,0.92)',
+ navbarDescColor: title,
+ colorBg: bg,
+ colorTitle: title,
+ colorContent: title,
+ colorSecondary: muted,
+ darkColor: bg,
+ darkBackground: pageBg,
+ tabsNavBg: 'transparent',
+ tabsNavColor: muted,
+ tabsNavActiveColor: title,
+ tabsNavLineColor: '#d4b383',
+ tabsNavBorder: border,
+ cellBg: bg,
+ cellTitleColor: title,
+ cellValueColor: muted,
+ cellLabelColor: muted,
+ cellBorderColor: border,
+ collapseBg: bg,
+ collapseBodyBg: bg,
+ collapseHeaderBg: bg,
+ collapseTitleColor: title,
+ /* 后台表单需要可见底色,不能跟卡片同色透明 */
+ inputBg: dark ? 'rgba(255,255,255,0.06)' : 'rgba(0,0,0,0.03)',
+ inputInnerColor: title,
+ inputInnerPlaceholderColor: muted,
+ inputBorderColor: border,
+ textareaBg: dark ? 'rgba(255,255,255,0.06)' : 'rgba(0,0,0,0.03)',
+ textareaInnerColor: title,
+ textareaInnerPlaceholderColor: muted,
+ searchInputBg: dark ? 'rgba(255,255,255,0.06)' : 'rgba(0,0,0,0.04)',
+ searchInputColor: title,
+ searchPlaceholderColor: muted,
+ searchIconColor: muted,
+ }
+ })
+
+ apply()
+
+ return {
+ themePref,
+ isDark,
+ effectiveDark,
+ themeLabel,
+ wotTheme,
+ themeVars,
+ setThemePref,
+ apply,
+ }
+}
diff --git a/blog-wot-uniapp/src/config/menus.ts b/blog-wot-uniapp/src/config/menus.ts
new file mode 100644
index 0000000..995e8b2
--- /dev/null
+++ b/blog-wot-uniapp/src/config/menus.ts
@@ -0,0 +1,107 @@
+export type AppMode = 'user' | 'admin'
+export type LoginType = 'guest' | 'staff'
+
+export interface MenuItem {
+ key: string
+ title: string
+ path: string
+ icon?: string
+ children?: MenuItem[]
+}
+
+/** 前台频道(功能入口)——路径指向 content 分包(单层,勿重复前缀) */
+export const PUBLIC_MENUS: MenuItem[] = [
+ { key: 'blog', title: '思考', path: '/subPackages/content/pages/blog/index', icon: 'edit' },
+ { key: 'columns', title: '专栏', path: '/subPackages/content/pages/columns/index', icon: 'book' },
+ { key: 'works', title: '作品', path: '/subPackages/content/pages/works/index', icon: 'image' },
+ { key: 'videos', title: '视频', path: '/subPackages/content/pages/videos/index', icon: 'video-camera' },
+ { key: 'snippets', title: '代码', path: '/subPackages/content/pages/snippets/index', icon: 'code' },
+ { key: 'about', title: '关于', path: '/subPackages/content/pages/about/index', icon: 'user' },
+ { key: 'services', title: '合作', path: '/subPackages/content/pages/services/index', icon: 'headset' },
+]
+
+/** 后台菜单树(功能入口);icon 须为 @wot-ui v2 有效名 */
+export const ADMIN_MENUS: MenuItem[] = [
+ { key: 'dashboard', title: '概览', path: '/subPackages/admin/pages/dashboard/index', icon: 'dashboard' },
+ { key: 'analytics', title: '数据分析', path: '/subPackages/admin/pages/analytics/index', icon: 'mind-mapping' },
+ {
+ key: 'content',
+ title: '内容管理',
+ path: '',
+ icon: 'book',
+ children: [
+ { key: 'posts', title: '文章管理', path: '/subPackages/admin/pages/posts/list', icon: 'edit' },
+ { key: 'categories', title: '分类管理', path: '/subPackages/admin/pages/resource/list?resource=categories', icon: 'list' },
+ { key: 'columns', title: '专栏管理', path: '/subPackages/admin/pages/resource/list?resource=columns', icon: 'book' },
+ { key: 'works', title: '作品管理', path: '/subPackages/admin/pages/works/list', icon: 'image' },
+ { key: 'video-categories', title: '视频分类', path: '/subPackages/admin/pages/resource/list?resource=video-categories', icon: 'list' },
+ { key: 'video-albums', title: '视频专辑', path: '/subPackages/admin/pages/resource/list?resource=video-albums', icon: 'folder' },
+ { key: 'videos', title: '视频列表', path: '/subPackages/admin/pages/videos/list', icon: 'video-camera' },
+ { key: 'snippets', title: '代码片段', path: '/subPackages/admin/pages/resource/list?resource=snippets', icon: 'code' },
+ { key: 'code-types', title: '代码分类', path: '/subPackages/admin/pages/resource/list?resource=code-types', icon: 'code-block' },
+ { key: 'tags', title: '标签管理', path: '/subPackages/admin/pages/resource/list?resource=tags', icon: 'apps' },
+ ],
+ },
+ {
+ key: 'pages',
+ title: '页面配置',
+ path: '',
+ icon: 'application',
+ children: [
+ { key: 'about', title: '关于页面', path: '/subPackages/admin/pages/about/index', icon: 'user' },
+ { key: 'testimonials', title: '客户评价', path: '/subPackages/admin/pages/resource/list?resource=testimonials', icon: 'message' },
+ { key: 'partners', title: '合作伙伴', path: '/subPackages/admin/pages/resource/list?resource=partners', icon: 'user-group' },
+ ],
+ },
+ {
+ key: 'business',
+ title: '业务中心',
+ path: '',
+ icon: 'email',
+ children: [
+ { key: 'inquiries', title: '合作咨询', path: '/subPackages/admin/pages/inquiries/list', icon: 'email' },
+ { key: 'email-suffixes', title: '邮箱配置', path: '/subPackages/admin/pages/resource/list?resource=email-suffixes', icon: 'settings' },
+ ],
+ },
+ {
+ key: 'users',
+ title: '用户权限',
+ path: '',
+ icon: 'user-group',
+ children: [
+ { key: 'users', title: '用户管理', path: '/subPackages/admin/pages/users/list', icon: 'user' },
+ { key: 'roles', title: '角色管理', path: '/subPackages/admin/pages/resource/list?resource=roles', icon: 'lock' },
+ ],
+ },
+ {
+ key: 'attachments',
+ title: '附件管理',
+ path: '',
+ icon: 'folder',
+ children: [
+ { key: 'attachments', title: '附件库', path: '/subPackages/admin/pages/attachments/index', icon: 'file' },
+ { key: 'attachment-categories', title: '附件分类', path: '/subPackages/admin/pages/resource/list?resource=attachment-categories', icon: 'folder-add' },
+ { key: 'oss-configs', title: 'OSS配置', path: '/subPackages/admin/pages/oss-configs/index', icon: 'cloud' },
+ ],
+ },
+ {
+ key: 'system',
+ title: '系统设置',
+ path: '',
+ icon: 'settings',
+ children: [
+ { key: 'settings', title: '全局配置', path: '/subPackages/admin/pages/settings/index', icon: 'settings' },
+ { key: 'ppt-templates', title: 'PPT 模板', path: '/subPackages/admin/pages/resource/list?resource=ppt-templates', icon: 'file' },
+ { key: 'logs', title: '操作日志', path: '/subPackages/admin/pages/logs/operation', icon: 'list' },
+ { key: 'access-logs', title: '访问日志', path: '/subPackages/admin/pages/logs/access', icon: 'eye' },
+ ],
+ },
+]
+
+export const STAFF_ROLES = ['admin', 'editor'] as const
+
+export function isStaffRole(role?: string): boolean {
+ if (!role) return false
+ const r = role.toLowerCase()
+ return STAFF_ROLES.includes(r as (typeof STAFF_ROLES)[number]) || r.includes('admin') || r.includes('editor')
+}
diff --git a/blog-wot-uniapp/src/env.d.ts b/blog-wot-uniapp/src/env.d.ts
new file mode 100644
index 0000000..c454ab5
--- /dev/null
+++ b/blog-wot-uniapp/src/env.d.ts
@@ -0,0 +1,10 @@
+///
+
+interface ImportMetaEnv {
+ readonly VITE_API_BASE: string
+ readonly VITE_UPLOAD_BASE: string
+}
+
+interface ImportMeta {
+ readonly env: ImportMetaEnv
+}
diff --git a/blog-wot-uniapp/src/main.ts b/blog-wot-uniapp/src/main.ts
new file mode 100644
index 0000000..4294d8e
--- /dev/null
+++ b/blog-wot-uniapp/src/main.ts
@@ -0,0 +1,12 @@
+import { createSSRApp } from 'vue'
+import * as Pinia from 'pinia'
+import App from './App.vue'
+
+export function createApp() {
+ const app = createSSRApp(App)
+ app.use(Pinia.createPinia())
+ return {
+ app,
+ Pinia,
+ }
+}
diff --git a/blog-wot-uniapp/src/manifest.json b/blog-wot-uniapp/src/manifest.json
new file mode 100644
index 0000000..e672f98
--- /dev/null
+++ b/blog-wot-uniapp/src/manifest.json
@@ -0,0 +1,74 @@
+{
+ "name" : "年糕崽崽",
+ "appid" : "__UNI__184857B",
+ "description" : "年糕崽崽数字花园 · UniApp",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ "modules" : {},
+ "distribute" : {
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "ios" : {},
+ "sdkConfigs" : {}
+ }
+ },
+ "h5" : {
+ "darkmode" : true,
+ "themeLocation" : "theme.json"
+ },
+ "quickapp" : {},
+ "mp-weixin" : {
+ "appid" : "wx8f3891eaad380949",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true,
+ "darkmode" : true,
+ "themeLocation" : "theme.json",
+ "optimization" : {
+ "subPackages" : true
+ },
+ "lazyCodeLoading" : "requiredComponents"
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "vueVersion" : "3"
+}
diff --git a/blog-wot-uniapp/src/pages.json b/blog-wot-uniapp/src/pages.json
new file mode 100644
index 0000000..f452c1d
--- /dev/null
+++ b/blog-wot-uniapp/src/pages.json
@@ -0,0 +1,348 @@
+{
+ "easycom": {
+ "autoscan": true,
+ "custom": {
+ "^wd-(.*)": "@wot-ui/ui/components/wd-$1/wd-$1.vue",
+ "^mp-html": "mp-html/dist/uni-app/components/mp-html/mp-html.vue",
+ "^Content(.*)": "@/subPackages/content/components/Content$1.vue",
+ "^Staff(.*)": "@/subPackages/content/components/Staff$1.vue"
+ }
+ },
+ "pages": [
+ {
+ "path": "pages/home/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "首页",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/explore/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "功能入口",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/mine/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "我的",
+ "enablePullDownRefresh": true
+ }
+ }
+ ],
+ "subPackages": [
+ {
+ "root": "subPackages/content",
+ "pages": [
+ {
+ "path": "pages/login/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "登录"
+ }
+ },
+ {
+ "path": "pages/theme/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "主题"
+ }
+ },
+ {
+ "path": "pages/blog/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "思考"
+ }
+ },
+ {
+ "path": "pages/blog/detail",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "文章",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/blog/ppt",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "PPT",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/columns/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "专栏"
+ }
+ },
+ {
+ "path": "pages/columns/detail",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "专栏详情",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/works/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "作品"
+ }
+ },
+ {
+ "path": "pages/works/detail",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "作品详情",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/videos/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "视频"
+ }
+ },
+ {
+ "path": "pages/videos/detail",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "视频详情",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/videos/album",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "专辑",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/snippets/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "代码"
+ }
+ },
+ {
+ "path": "pages/services/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "合作"
+ }
+ },
+ {
+ "path": "pages/about/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "关于"
+ }
+ }
+ ]
+ },
+ {
+ "root": "subPackages/admin",
+ "pages": [
+ {
+ "path": "pages/dashboard/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "工作台"
+ }
+ },
+ {
+ "path": "pages/explore/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "功能入口"
+ }
+ },
+ {
+ "path": "pages/analytics/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "数据分析"
+ }
+ },
+ {
+ "path": "pages/resource/list",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "列表"
+ }
+ },
+ {
+ "path": "pages/resource/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑"
+ }
+ },
+ {
+ "path": "pages/profile/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "个人中心"
+ }
+ },
+ {
+ "path": "pages/posts/list",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "文章管理"
+ }
+ },
+ {
+ "path": "pages/posts/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑文章"
+ }
+ },
+ {
+ "path": "pages/works/list",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "作品管理"
+ }
+ },
+ {
+ "path": "pages/works/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑作品"
+ }
+ },
+ {
+ "path": "pages/videos/list",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "视频列表"
+ }
+ },
+ {
+ "path": "pages/videos/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑视频"
+ }
+ },
+ {
+ "path": "pages/video-albums/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑专辑"
+ }
+ },
+ {
+ "path": "pages/snippets/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑代码"
+ }
+ },
+ {
+ "path": "pages/columns/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑专栏"
+ }
+ },
+ {
+ "path": "pages/attachments/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "附件库"
+ }
+ },
+ {
+ "path": "pages/inquiries/list",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "合作咨询"
+ }
+ },
+ {
+ "path": "pages/about/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "关于页面"
+ }
+ },
+ {
+ "path": "pages/settings/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "全局配置"
+ }
+ },
+ {
+ "path": "pages/oss-configs/index",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "OSS配置"
+ }
+ },
+ {
+ "path": "pages/users/list",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "用户管理"
+ }
+ },
+ {
+ "path": "pages/users/form",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "编辑用户"
+ }
+ },
+ {
+ "path": "pages/logs/operation",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "操作日志"
+ }
+ },
+ {
+ "path": "pages/logs/access",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "访问日志"
+ }
+ }
+ ]
+ }
+ ],
+ "preloadRule": {
+ "pages/home/index": {
+ "network": "all",
+ "packages": ["subPackages/content"]
+ },
+ "pages/explore/index": {
+ "network": "all",
+ "packages": ["subPackages/content"]
+ }
+ },
+ "globalStyle": {
+ "backgroundColor": "@bgColor",
+ "backgroundColorBottom": "@bgColorBottom",
+ "backgroundColorTop": "@bgColorTop",
+ "backgroundTextStyle": "@bgTxtStyle",
+ "navigationBarBackgroundColor": "@navBgColor",
+ "navigationBarTextStyle": "@navTxtStyle",
+ "navigationBarTitleText": "年糕崽崽",
+ "navigationStyle": "custom"
+ }
+}
diff --git a/blog-wot-uniapp/src/pages/explore/index.vue b/blog-wot-uniapp/src/pages/explore/index.vue
new file mode 100644
index 0000000..323ee4c
--- /dev/null
+++ b/blog-wot-uniapp/src/pages/explore/index.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ Navigate
+ 探索花园
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/pages/home/index.vue b/blog-wot-uniapp/src/pages/home/index.vue
new file mode 100644
index 0000000..47c7d3a
--- /dev/null
+++ b/blog-wot-uniapp/src/pages/home/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+ Digital Garden
+
+ 记录思考
+ 与创造
+
+
+ 欢迎来到 {{ siteTitle }} 的数字花园。
+
+
+ 探索内容
+
+
+
+
+
+ Latest Work
+ {{ latestWork.title }}
+
+
+
+ 此刻
+ Bento
+
+
+
+
+
+
+
+
+ {{ featuredPost.categoryName || '未分类' }}
+ {{ featuredPost.date }}
+
+ {{ featuredPost.title }}
+
+
+ {{ featuredPost.userName }}
+
+
+
+
+
+
+ ∞
+ 功能入口
+
+
+ snippets
+ 代码片段 →
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/pages/mine/index.vue b/blog-wot-uniapp/src/pages/mine/index.vue
new file mode 100644
index 0000000..195a280
--- /dev/null
+++ b/blog-wot-uniapp/src/pages/mine/index.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/resolvers/wot-ui-resolver.ts b/blog-wot-uniapp/src/resolvers/wot-ui-resolver.ts
new file mode 100644
index 0000000..085421e
--- /dev/null
+++ b/blog-wot-uniapp/src/resolvers/wot-ui-resolver.ts
@@ -0,0 +1,17 @@
+import type { ComponentResolver } from '@uni-helper/vite-plugin-uni-components'
+import { kebabCase } from '@uni-helper/vite-plugin-uni-components'
+
+export function WotResolver(): ComponentResolver {
+ return {
+ type: 'component',
+ resolve: (name: string) => {
+ if (name.match(/^Wd[A-Z]/)) {
+ const compName = kebabCase(name)
+ return {
+ name,
+ from: `@wot-ui/ui/components/${compName}/${compName}.vue`,
+ }
+ }
+ },
+ }
+}
diff --git a/blog-wot-uniapp/src/static/default-avatar.svg b/blog-wot-uniapp/src/static/default-avatar.svg
new file mode 100644
index 0000000..21bb93e
--- /dev/null
+++ b/blog-wot-uniapp/src/static/default-avatar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-wot-uniapp/src/static/github.svg b/blog-wot-uniapp/src/static/github.svg
new file mode 100644
index 0000000..94af9fc
--- /dev/null
+++ b/blog-wot-uniapp/src/static/github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-wot-uniapp/src/static/logo.svg b/blog-wot-uniapp/src/static/logo.svg
new file mode 100644
index 0000000..21bb93e
--- /dev/null
+++ b/blog-wot-uniapp/src/static/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-wot-uniapp/src/styles/art-fonts.scss b/blog-wot-uniapp/src/styles/art-fonts.scss
new file mode 100644
index 0000000..8576fd7
--- /dev/null
+++ b/blog-wot-uniapp/src/styles/art-fonts.scss
@@ -0,0 +1,48 @@
+/**
+ * 从 PC 端 @fontsource 引入的本地字体(woff)。
+ * 放在 assets(非 static):小程序 CSS 会把 <40KB 资源打成 base64,
+ * 避免再拷一份到 static 造成双倍体积。
+ *
+ * 与 PC 差异:Noto Sans SC 单 weight 约 1.5MB,主包装不下,故未引入;
+ * art-tokens 仍写 Noto 名,实际中文正文回退 PingFang SC / 系统黑体。
+ * 标题/eyebrow 用 Playfair + JetBrains,与 PC 英文层对齐。
+ */
+
+/* Playfair Display — 标题 / serif italic */
+@font-face {
+ font-family: 'Playfair Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url('@/assets/fonts/playfair-display-latin-400-normal.woff') format('woff');
+}
+@font-face {
+ font-family: 'Playfair Display';
+ font-style: italic;
+ font-weight: 400;
+ font-display: swap;
+ src: url('@/assets/fonts/playfair-display-latin-400-italic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Playfair Display';
+ font-style: normal;
+ font-weight: 600;
+ font-display: swap;
+ src: url('@/assets/fonts/playfair-display-latin-600-normal.woff') format('woff');
+}
+@font-face {
+ font-family: 'Playfair Display';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url('@/assets/fonts/playfair-display-latin-700-normal.woff') format('woff');
+}
+
+/* JetBrains Mono — eyebrow / mono label */
+@font-face {
+ font-family: 'JetBrains Mono';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url('@/assets/fonts/jetbrains-mono-latin-400-normal.woff') format('woff');
+}
diff --git a/blog-wot-uniapp/src/styles/art-tokens.scss b/blog-wot-uniapp/src/styles/art-tokens.scss
new file mode 100644
index 0000000..f1a84d7
--- /dev/null
+++ b/blog-wot-uniapp/src/styles/art-tokens.scss
@@ -0,0 +1,322 @@
+/* Art design tokens — ported from client/src/style.css */
+
+/* 小程序里 min-height:100% 常失效,用 100vh 铺满视口;底色走 --art-bg,避免硬编码浅色闪屏 */
+page {
+ min-height: 100vh;
+ background-color: rgb(var(--art-bg));
+}
+
+page,
+.page-root {
+ --art-bg: 250, 248, 244;
+ --art-surface: 255, 255, 255;
+ --art-border: rgba(0, 0, 0, 0.08);
+ --art-text: 23, 23, 23;
+ --art-muted: 107, 107, 107;
+ --art-accent: 212, 179, 131;
+ --art-error: 239, 68, 68;
+ --art-admin-bg: 10, 10, 10;
+ --art-admin-card: 18, 18, 20;
+ --art-admin-hover: 26, 26, 28;
+ --art-nav-bg: rgba(250, 248, 244, 0.9);
+ --art-card-bg: rgba(255, 255, 255, 0.55);
+ --art-card-border: rgba(0, 0, 0, 0.07);
+ --art-hover-border: rgba(212, 179, 131, 0.55);
+ --art-shadow: 0 18px 40px -12px rgba(80, 55, 20, 0.14);
+ --art-overlay: rgba(0, 0, 0, 0.45);
+ background-color: rgb(var(--art-bg));
+ color: rgb(var(--art-text));
+ font-family: 'Noto Sans SC', 'PingFang SC', 'Helvetica Neue', sans-serif;
+ min-height: 100vh;
+ box-sizing: border-box;
+}
+
+.page-root.theme-dark,
+.theme-dark {
+ --art-bg: 5, 5, 5;
+ --art-surface: 18, 18, 20;
+ --art-border: rgba(255, 255, 255, 0.08);
+ --art-text: 236, 236, 236;
+ --art-muted: 136, 136, 136;
+ --art-accent: 212, 179, 131;
+ --art-nav-bg: rgba(5, 5, 5, 0.85);
+ --art-card-bg: rgba(255, 255, 255, 0.02);
+ --art-card-border: rgba(255, 255, 255, 0.06);
+ --art-hover-border: rgba(212, 179, 131, 0.3);
+ --art-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.5);
+ --art-overlay: rgba(0, 0, 0, 0.9);
+ background-color: rgb(var(--art-bg));
+ color: rgb(var(--art-text));
+}
+
+.page-root.admin-mode,
+.admin-mode {
+ --art-bg: 10, 10, 10;
+ --art-surface: 18, 18, 20;
+ --art-text: 236, 236, 236;
+ --art-muted: 136, 136, 136;
+ background-color: rgb(var(--art-admin-bg));
+}
+
+.glass-nav {
+ background: var(--art-nav-bg);
+ backdrop-filter: blur(20px);
+ border-bottom: 1px solid var(--art-card-border);
+}
+
+.art-card {
+ background: var(--art-card-bg);
+ border: 1px solid var(--art-card-border);
+ border-radius: 16rpx;
+ overflow: hidden;
+ position: relative;
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s ease, box-shadow 0.35s ease;
+}
+
+.art-card::before {
+ content: '';
+ position: absolute;
+ inset: 0;
+ background: linear-gradient(180deg, transparent 0%, rgba(212, 179, 131, 0.08) 100%);
+ opacity: 0;
+ transition: opacity 0.35s ease;
+ pointer-events: none;
+ z-index: 0;
+}
+
+.art-card-press:active {
+ transform: translateY(-8rpx);
+ border-color: var(--art-hover-border);
+ box-shadow: var(--art-shadow);
+}
+
+.art-card-press:active::before {
+ opacity: 1;
+}
+
+.admin-card {
+ background: rgb(var(--art-admin-card));
+ border: 1px solid rgba(255, 255, 255, 0.06);
+ border-radius: 16rpx;
+ transition: background 0.25s ease, border-color 0.25s ease;
+}
+
+.admin-card:active {
+ background: rgb(var(--art-admin-hover));
+ border-color: rgba(212, 179, 131, 0.25);
+}
+
+.text-art-accent { color: rgb(var(--art-accent)); }
+.text-art-muted { color: rgb(var(--art-muted)); }
+.text-art-text { color: rgb(var(--art-text)); }
+
+.font-serif-italic {
+ font-family: 'Playfair Display', 'Noto Serif SC', serif;
+ font-style: italic;
+}
+
+.font-mono-label {
+ font-family: 'JetBrains Mono', 'Menlo', monospace;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+ font-size: 22rpx;
+}
+
+.page-pad { padding: 32rpx 32rpx 200rpx; }
+.page-pad-tab { padding-bottom: 200rpx; }
+
+.section-title {
+ font-family: 'Playfair Display', 'Noto Serif SC', serif;
+ font-style: italic;
+ font-size: 48rpx;
+ color: rgb(var(--art-text));
+}
+
+.hero-eyebrow {
+ color: rgb(var(--art-accent));
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 22rpx;
+ letter-spacing: 0.2em;
+ text-transform: uppercase;
+ margin-bottom: 24rpx;
+}
+
+@keyframes art-reveal {
+ from { opacity: 0; transform: translateY(24rpx); }
+ to { opacity: 1; transform: translateY(0); }
+}
+
+.animate-reveal {
+ animation: art-reveal 0.55s cubic-bezier(0.16, 1, 0.3, 1) both;
+}
+
+.animate-reveal-delay {
+ animation: art-reveal 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.12s both;
+}
+
+.fab-float {
+ transition: transform 0.2s ease, opacity 0.2s ease;
+}
+.fab-float:active {
+ transform: scale(0.92);
+}
+
+/* Article markdown (mp-html / rich content) */
+.article-md {
+ font-size: 30rpx;
+ line-height: 1.85;
+ color: rgb(var(--art-text));
+ word-break: break-word;
+}
+.article-md h1, .article-md h2, .article-md h3 {
+ font-family: 'Playfair Display', 'Noto Serif SC', serif;
+ margin: 1.2em 0 0.5em;
+ line-height: 1.35;
+}
+.article-md h1 { font-size: 44rpx; }
+.article-md h2 { font-size: 38rpx; }
+.article-md h3 { font-size: 34rpx; }
+.article-md p { margin: 0.75em 0; }
+.article-md a { color: rgb(var(--art-accent)); text-decoration: underline; }
+.article-md blockquote {
+ margin: 1em 0;
+ padding: 0.5em 1em;
+ border-left: 6rpx solid rgb(var(--art-accent));
+ color: rgb(var(--art-muted));
+ background: rgba(212, 179, 131, 0.08);
+}
+.article-md ul, .article-md ol { padding-left: 1.4em; margin: 0.75em 0; }
+.article-md img { max-width: 100%; border-radius: 12rpx; margin: 0.75em 0; }
+.article-md code {
+ font-family: 'JetBrains Mono', Menlo, monospace;
+ font-size: 0.88em;
+ background: rgba(127, 127, 127, 0.12);
+ padding: 0.1em 0.35em;
+ border-radius: 6rpx;
+}
+.article-md pre {
+ background: #1e1e1e;
+ color: #e8e8e8;
+ padding: 24rpx;
+ border-radius: 16rpx;
+ overflow-x: auto;
+ margin: 1em 0;
+ font-size: 24rpx;
+ line-height: 1.6;
+}
+.article-md pre code { background: transparent; padding: 0; color: inherit; }
+.article-md table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 26rpx; }
+.article-md th, .article-md td { border: 1px solid var(--art-border); padding: 12rpx; }
+
+/* wot-ui 深浅色兜底:避免默认浅色组件压在 art 深色底上 */
+.page-root,
+.theme-dark {
+ --wot-navbar-color: rgb(var(--art-text));
+ --wot-navbar-desc-color: rgb(var(--art-text));
+ --wot-navbar-bg: rgb(var(--art-bg));
+}
+
+/* C 端暗色:输入保持轻量透明,贴合卡片氛围 */
+.theme-dark:not(.admin-mode) .wd-input,
+.page-root.theme-dark:not(.admin-mode) .wd-input {
+ --wot-input-bg: transparent;
+ --wot-color-bg: rgb(var(--art-surface));
+ --wot-input-inner-color: rgb(var(--art-text));
+ --wot-input-inner-placeholder-color: rgb(var(--art-muted));
+ color: rgb(var(--art-text));
+}
+
+.theme-dark:not(.admin-mode) .wd-input__inner,
+.page-root.theme-dark:not(.admin-mode) .wd-input__inner {
+ color: rgb(var(--art-text)) !important;
+}
+
+.theme-dark:not(.admin-mode) .wd-textarea,
+.page-root.theme-dark:not(.admin-mode) .wd-textarea {
+ --wot-textarea-bg: transparent;
+ --wot-textarea-inner-color: rgb(var(--art-text));
+ --wot-textarea-inner-placeholder-color: rgb(var(--art-muted));
+}
+
+.theme-dark .wd-cell,
+.page-root.theme-dark .wd-cell {
+ --wot-cell-bg: rgb(var(--art-surface));
+ --wot-cell-title-color: rgb(var(--art-text));
+ --wot-cell-value-color: rgb(var(--art-muted));
+ --wot-cell-label-color: rgb(var(--art-muted));
+}
+
+/* 后台表单:可见底色 + 边框,避免与 admin-card 融成一片 */
+.admin-mode .admin-card.form-card,
+.page-root.admin-mode .admin-card.form-card {
+ padding: 24rpx;
+}
+
+.admin-mode .wd-input,
+.page-root.admin-mode .wd-input,
+.admin-mode .form-card .wd-input,
+.page-root.admin-mode .form-card .wd-input {
+ --wot-input-bg: rgba(255, 255, 255, 0.06);
+ --wot-input-inner-color: rgb(var(--art-text));
+ --wot-input-inner-placeholder-color: rgb(var(--art-muted));
+ --wot-color-bg: rgba(255, 255, 255, 0.06);
+ background: rgba(255, 255, 255, 0.06);
+ border: 1px solid rgba(255, 255, 255, 0.12);
+ border-radius: 12rpx;
+ margin-bottom: 16rpx;
+ padding: 4rpx 8rpx;
+ box-sizing: border-box;
+ color: rgb(var(--art-text));
+}
+
+.admin-mode .wd-input__inner,
+.page-root.admin-mode .wd-input__inner {
+ color: rgb(var(--art-text)) !important;
+}
+
+.admin-mode .wd-textarea,
+.page-root.admin-mode .wd-textarea,
+.admin-mode .form-card .wd-textarea,
+.page-root.admin-mode .form-card .wd-textarea {
+ --wot-textarea-bg: rgba(255, 255, 255, 0.06);
+ --wot-textarea-inner-color: rgb(var(--art-text));
+ --wot-textarea-inner-placeholder-color: rgb(var(--art-muted));
+ background: rgba(255, 255, 255, 0.06);
+ border: 1px solid rgba(255, 255, 255, 0.12);
+ border-radius: 12rpx;
+ margin-bottom: 16rpx;
+ padding: 8rpx;
+ box-sizing: border-box;
+ color: rgb(var(--art-text));
+}
+
+.admin-mode .admin-card {
+ border-color: rgba(255, 255, 255, 0.1);
+}
+
+.admin-form-field {
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+ margin-bottom: 8rpx;
+}
+
+.admin-form-field__label {
+ font-size: 24rpx;
+ color: rgb(var(--art-muted));
+ letter-spacing: 0.04em;
+}
+
+/* ActionSheet / Popup:暗色下避免默认白底 */
+.theme-dark,
+.page-root.theme-dark {
+ --wot-action-sheet-bg: rgb(var(--art-surface));
+ --wot-action-sheet-color: rgb(var(--art-text));
+ --wot-action-sheet-cancel-color: rgb(var(--art-muted));
+ --wot-popup-bg: rgb(var(--art-surface));
+ --wot-color-bg: rgb(var(--art-surface));
+ --wot-color-title: rgb(var(--art-text));
+ --wot-color-content: rgb(var(--art-text));
+ --wot-color-secondary: rgb(var(--art-muted));
+ --wot-color-border: var(--art-border);
+}
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminBarChart.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminBarChart.vue
new file mode 100644
index 0000000..15d2a6a
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminBarChart.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminDetailDrawer.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminDetailDrawer.vue
new file mode 100644
index 0000000..97b5954
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminDetailDrawer.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+ {{ row.label }}
+ {{ row.value || '—' }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+ {{ row.label }}
+ {{ row.value || '—' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminFilterBar.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminFilterBar.vue
new file mode 100644
index 0000000..67b5cd0
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminFilterBar.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ {{ f.label }}
+ { local[f.key] = v; onFilterChange() }"
+ />
+ { local[f.key] = (value?.[0] as { value?: unknown })?.value ?? value?.[0] ?? ''; onFilterChange() }"
+ >
+
+ {{ f.options.find(o => String(o.value) === String(local[f.key] ?? ''))?.label || '请选择' }}
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminFormField.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminFormField.vue
new file mode 100644
index 0000000..b11e226
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminFormField.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+ *{{ label }}
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminLineChart.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminLineChart.vue
new file mode 100644
index 0000000..d764400
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminLineChart.vue
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminMediaPicker.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminMediaPicker.vue
new file mode 100644
index 0000000..db8ee12
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminMediaPicker.vue
@@ -0,0 +1,113 @@
+
+
+
+
+ {{ label }}
+
+
+
+ 已选视频
+ {{ modelValue }}
+
+
+
+ 点击上传{{ label }}
+
+
+ 清除
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/components/AdminStatusBadge.vue b/blog-wot-uniapp/src/subPackages/admin/components/AdminStatusBadge.vue
new file mode 100644
index 0000000..76959ca
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/components/AdminStatusBadge.vue
@@ -0,0 +1,60 @@
+
+
+
+
+ {{ label }}
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/composables/useAdminGuard.ts b/blog-wot-uniapp/src/subPackages/admin/composables/useAdminGuard.ts
new file mode 100644
index 0000000..3cf06e8
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/composables/useAdminGuard.ts
@@ -0,0 +1,20 @@
+/**
+ * 后台页鉴权守卫:未登录或无员工角色则回我的页。
+ */
+import { useAuth } from '@/composables/useAuth'
+import { useAppMode } from '@/composables/useAppMode'
+
+export function useAdminGuard() {
+ const { isAuthenticated } = useAuth()
+ const { canEnterAdmin } = useAppMode()
+
+ function guardAdmin(): boolean {
+ if (!isAuthenticated() || !canEnterAdmin.value) {
+ uni.reLaunch({ url: '/pages/mine/index' })
+ return false
+ }
+ return true
+ }
+
+ return { guardAdmin, isAuthenticated, canEnterAdmin }
+}
diff --git a/blog-wot-uniapp/src/subPackages/admin/config/resourceSchemas.ts b/blog-wot-uniapp/src/subPackages/admin/config/resourceSchemas.ts
new file mode 100644
index 0000000..50a9b2f
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/config/resourceSchemas.ts
@@ -0,0 +1,380 @@
+/**
+ * 简单资源 Schema 注册表:驱动通用 list/form,消灭默认 4 字段 + JSON 主路径。
+ * 复杂模块(posts/works/videos/attachments/settings/about/inquiries)走专用页,不在此注册。
+ */
+
+export type FieldType =
+ | 'text'
+ | 'textarea'
+ | 'number'
+ | 'switch'
+ | 'select'
+ | 'media'
+ | 'rating'
+
+export interface SchemaField {
+ key: string
+ label: string
+ type: FieldType
+ placeholder?: string
+ /** select 选项 */
+ options?: { label: string, value: string | number }[]
+ /** 只读(如系统模板 slug) */
+ readonly?: boolean
+ /** 编辑态才显示 */
+ editOnly?: boolean
+}
+
+export interface SchemaFilter {
+ key: string
+ label: string
+ type: 'text' | 'select'
+ options?: { label: string, value: string | number }[]
+}
+
+export interface ResourceSchema {
+ title: string
+ /** 真只读:无新建/删除/编辑,点行开详情抽屉 */
+ readonly?: boolean
+ /** 禁止编辑(可新建删除),如邮箱后缀 */
+ noEdit?: boolean
+ /** 页内新建(邮箱后缀) */
+ inlineCreate?: boolean
+ /** 服务端分页 */
+ serverPaging?: boolean
+ /** 默认 pageSize */
+ pageSize?: number
+ /** 列表主标题字段候选 */
+ titleKeys?: string[]
+ /** 列表副标题字段候选 */
+ subtitleKeys?: string[]
+ /** 封面/头像字段 */
+ coverKey?: string
+ /** 状态字段(用于徽章) */
+ statusKey?: string
+ /** 状态文案映射 */
+ statusMap?: Record
+ filters?: SchemaFilter[]
+ fields: SchemaField[]
+ /** 本地关键词过滤字段 */
+ localSearchKeys?: string[]
+}
+
+const CODE_TYPE_OPTIONS = [
+ { label: '前端', value: 0 },
+ { label: '后端', value: 1 },
+ { label: '其他', value: 2 },
+]
+
+/** 简单资源 Schema;未列出的走兜底 */
+export const RESOURCE_SCHEMAS: Record = {
+ categories: {
+ title: '分类管理',
+ titleKeys: ['name'],
+ subtitleKeys: ['slug', 'sortOrder'],
+ localSearchKeys: ['name', 'slug'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'slug', label: 'Slug', type: 'text' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ columns: {
+ title: '专栏管理',
+ titleKeys: ['name', 'title'],
+ subtitleKeys: ['description', 'sortOrder'],
+ coverKey: 'cover',
+ statusKey: 'isActive',
+ statusMap: { '1': '启用', '0': '停用', true: '启用', false: '停用' },
+ filters: [
+ { key: 'keyword', label: '关键词', type: 'text' },
+ {
+ key: 'isActive',
+ label: '状态',
+ type: 'select',
+ options: [
+ { label: '全部', value: '' },
+ { label: '启用', value: 1 },
+ { label: '停用', value: 0 },
+ ],
+ },
+ ],
+ localSearchKeys: ['name', 'title', 'description'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'cover', label: '封面', type: 'media' },
+ { key: 'isActive', label: '启用', type: 'switch' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ 'video-categories': {
+ title: '视频分类',
+ titleKeys: ['name'],
+ subtitleKeys: ['slug', 'sortOrder'],
+ localSearchKeys: ['name', 'slug'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'slug', label: 'Slug', type: 'text' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ 'video-albums': {
+ title: '视频专辑',
+ titleKeys: ['name'],
+ subtitleKeys: ['categoryName', 'videoCount'],
+ coverKey: 'cover',
+ statusKey: 'isActive',
+ statusMap: { '1': '启用', '0': '停用', true: '启用', false: '停用' },
+ localSearchKeys: ['name', 'description'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'categoryId', label: '分类ID', type: 'number' },
+ { key: 'cover', label: '封面', type: 'media' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'isActive', label: '启用', type: 'switch' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ snippets: {
+ title: '代码片段',
+ titleKeys: ['title'],
+ subtitleKeys: ['description'],
+ localSearchKeys: ['title', 'description'],
+ fields: [
+ { key: 'title', label: '标题', type: 'text' },
+ { key: 'codeTypeId', label: '分类ID', type: 'number' },
+ { key: 'code', label: '代码', type: 'textarea' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ 'code-types': {
+ title: '代码分类',
+ titleKeys: ['name'],
+ subtitleKeys: ['category'],
+ localSearchKeys: ['name'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'category', label: '类别', type: 'select', options: CODE_TYPE_OPTIONS },
+ ],
+ },
+ tags: {
+ title: '标签管理',
+ titleKeys: ['name'],
+ subtitleKeys: ['slug'],
+ localSearchKeys: ['name', 'slug'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'slug', label: 'Slug', type: 'text' },
+ ],
+ },
+ testimonials: {
+ title: '客户评价',
+ titleKeys: ['name'],
+ subtitleKeys: ['role', 'rating'],
+ coverKey: 'avatar',
+ filters: [
+ { key: 'keyword', label: '关键词', type: 'text' },
+ {
+ key: 'rating',
+ label: '评分',
+ type: 'select',
+ options: [
+ { label: '全部', value: '' },
+ { label: '5星', value: 5 },
+ { label: '4星', value: 4 },
+ { label: '3星', value: 3 },
+ ],
+ },
+ ],
+ localSearchKeys: ['name', 'role', 'content'],
+ fields: [
+ { key: 'name', label: '姓名', type: 'text' },
+ { key: 'role', label: '职位', type: 'text' },
+ { key: 'avatar', label: '头像', type: 'media' },
+ { key: 'rating', label: '评分', type: 'rating' },
+ { key: 'content', label: '评价内容', type: 'textarea' },
+ ],
+ },
+ partners: {
+ title: '合作伙伴',
+ titleKeys: ['name'],
+ subtitleKeys: ['url', 'description'],
+ coverKey: 'logo',
+ localSearchKeys: ['name', 'description', 'url'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'logo', label: 'Logo', type: 'media' },
+ { key: 'url', label: '链接', type: 'text' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ 'email-suffixes': {
+ title: '邮箱配置',
+ noEdit: true,
+ inlineCreate: true,
+ titleKeys: ['suffix'],
+ subtitleKeys: ['sortOrder', 'isActive'],
+ statusKey: 'isActive',
+ statusMap: { '1': '启用', '0': '停用', true: '启用', false: '停用' },
+ localSearchKeys: ['suffix'],
+ fields: [
+ { key: 'suffix', label: '后缀', type: 'text', placeholder: '@example.com' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'isActive', label: '启用', type: 'switch' },
+ ],
+ },
+ users: {
+ title: '用户管理',
+ serverPaging: true,
+ pageSize: 10,
+ titleKeys: ['username'],
+ subtitleKeys: ['email', 'role'],
+ coverKey: 'avatar',
+ statusKey: 'isActive',
+ statusMap: { '1': '启用', '0': '停用', true: '启用', false: '停用' },
+ filters: [
+ { key: 'keyword', label: '关键词', type: 'text' },
+ {
+ key: 'role',
+ label: '角色',
+ type: 'select',
+ options: [
+ { label: '全部', value: '' },
+ { label: 'admin', value: 'admin' },
+ { label: 'editor', value: 'editor' },
+ { label: 'viewer', value: 'viewer' },
+ ],
+ },
+ {
+ key: 'isActive',
+ label: '状态',
+ type: 'select',
+ options: [
+ { label: '全部', value: '' },
+ { label: '启用', value: 1 },
+ { label: '停用', value: 0 },
+ ],
+ },
+ ],
+ fields: [
+ { key: 'username', label: '用户名', type: 'text' },
+ { key: 'email', label: '邮箱', type: 'text' },
+ { key: 'avatar', label: '头像', type: 'media' },
+ {
+ key: 'role',
+ label: '角色',
+ type: 'select',
+ options: [
+ { label: 'admin', value: 'admin' },
+ { label: 'editor', value: 'editor' },
+ { label: 'viewer', value: 'viewer' },
+ ],
+ },
+ { key: 'isActive', label: '启用', type: 'switch' },
+ { key: 'bio', label: '简介', type: 'textarea' },
+ { key: 'phone', label: '手机', type: 'text' },
+ { key: 'wechat', label: '微信', type: 'text' },
+ { key: 'wechatQrcode', label: '微信二维码', type: 'media' },
+ ],
+ },
+ roles: {
+ title: '角色管理',
+ titleKeys: ['name'],
+ subtitleKeys: ['description'],
+ localSearchKeys: ['name', 'description'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ 'attachment-categories': {
+ title: '附件分类',
+ titleKeys: ['name'],
+ subtitleKeys: ['sortOrder', 'description'],
+ localSearchKeys: ['name', 'description'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ },
+ 'ppt-templates': {
+ title: 'PPT 模板',
+ titleKeys: ['name'],
+ subtitleKeys: ['slug', 'sortOrder'],
+ statusKey: 'isActive',
+ statusMap: { '1': '启用', '0': '停用', true: '启用', false: '停用' },
+ localSearchKeys: ['name', 'slug'],
+ fields: [
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'slug', label: 'Slug', type: 'text' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ { key: 'isDefault', label: '默认', type: 'switch' },
+ { key: 'isActive', label: '启用', type: 'switch' },
+ { key: 'sortOrder', label: '排序', type: 'number' },
+ { key: 'config', label: '配置 JSON', type: 'textarea' },
+ ],
+ },
+ logs: {
+ title: '操作日志',
+ readonly: true,
+ serverPaging: true,
+ pageSize: 20,
+ titleKeys: ['action', 'path'],
+ subtitleKeys: ['username', 'createdAt', 'method', 'status'],
+ filters: [
+ { key: 'action', label: '操作', type: 'text' },
+ { key: 'method', label: '方法', type: 'text' },
+ { key: 'status', label: '状态码', type: 'text' },
+ ],
+ fields: [],
+ },
+ 'access-logs': {
+ title: '访问日志',
+ readonly: true,
+ serverPaging: true,
+ pageSize: 20,
+ titleKeys: ['path'],
+ subtitleKeys: ['region', 'ip', 'createdAt', 'statusCode'],
+ filters: [
+ { key: 'path', label: '路径', type: 'text' },
+ { key: 'region', label: '地区', type: 'text' },
+ ],
+ fields: [],
+ },
+ /** 已拆专用页,保留兜底标题 */
+ posts: { title: '文章管理', fields: [], titleKeys: ['title'] },
+ works: { title: '作品管理', fields: [], titleKeys: ['title'] },
+ videos: { title: '视频列表', fields: [], titleKeys: ['title'] },
+ attachments: { title: '附件库', readonly: true, fields: [], titleKeys: ['originalName', 'fileName'] },
+ inquiries: { title: '合作咨询', readonly: true, fields: [], titleKeys: ['name'] },
+ 'oss-configs': { title: 'OSS配置', fields: [], titleKeys: ['name'] },
+ about: { title: '关于页面', fields: [] },
+ settings: { title: '全局配置', fields: [] },
+}
+
+export function getResourceSchema(resource: string): ResourceSchema {
+ return RESOURCE_SCHEMAS[resource] || {
+ title: resource || '资源管理',
+ titleKeys: ['title', 'name', 'username'],
+ subtitleKeys: ['description', 'createdAt'],
+ fields: [
+ { key: 'title', label: '标题', type: 'text' },
+ { key: 'name', label: '名称', type: 'text' },
+ { key: 'description', label: '描述', type: 'textarea' },
+ ],
+ }
+}
+
+/** 从记录中按候选 key 取展示文案 */
+export function pickField(item: Record, keys?: string[]): string {
+ if (!keys?.length) return ''
+ for (const k of keys) {
+ const v = item[k]
+ if (v != null && v !== '') return String(v)
+ }
+ return ''
+}
diff --git a/blog-wot-uniapp/src/subPackages/admin/config/settingsSchema.ts b/blog-wot-uniapp/src/subPackages/admin/config/settingsSchema.ts
new file mode 100644
index 0000000..22e8f5b
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/config/settingsSchema.ts
@@ -0,0 +1,62 @@
+/**
+ * 全局配置 Schema(自 Web client settingsSchema 精简移植,供小程序设置页分 Tab 编辑)
+ */
+
+export type SettingFieldType = 'text' | 'textarea' | 'number' | 'menu-checkboxes' | 'email' | 'homepage-json'
+
+export interface SettingSchemaItem {
+ key: string
+ label: string
+ type: SettingFieldType
+ group: 'site' | 'seo' | 'navigation' | 'homepage' | 'pagination' | 'contact'
+ default: string
+ description: string
+}
+
+export const SETTING_GROUPS: { id: SettingSchemaItem['group'], label: string }[] = [
+ { id: 'site', label: '站点信息' },
+ { id: 'seo', label: 'SEO' },
+ { id: 'navigation', label: '导航菜单' },
+ { id: 'homepage', label: '首页内容' },
+ { id: 'pagination', label: '分页设置' },
+ { id: 'contact', label: '联系方式' },
+]
+
+export const MENU_OPTIONS = [
+ { key: 'home', label: '首页' },
+ { key: 'blog', label: '思考' },
+ { key: 'columns', label: '专栏' },
+ { key: 'works', label: '作品' },
+ { key: 'videos', label: '视频' },
+ { key: 'snippets', label: '代码' },
+ { key: 'about', label: '关于' },
+ { key: 'services', label: '合作' },
+]
+
+export const SETTINGS_SCHEMA: SettingSchemaItem[] = [
+ { key: 'site_title', label: '网站标题', type: 'text', group: 'site', default: '年糕崽崽.Dev', description: '站点名称' },
+ { key: 'site_author', label: '网站作者', type: 'text', group: 'site', default: '', description: '作者名' },
+ { key: 'site_description', label: '网站描述', type: 'textarea', group: 'seo', default: '', description: 'SEO 描述' },
+ { key: 'site_keywords', label: '网站关键词', type: 'textarea', group: 'seo', default: '', description: '逗号分隔' },
+ {
+ key: 'visible_menus',
+ label: '前台菜单',
+ type: 'menu-checkboxes',
+ group: 'navigation',
+ default: '["home","blog","columns","works","videos","snippets","about","services"]',
+ description: '控制前台导航显示',
+ },
+ {
+ key: 'homepage_config',
+ label: '首页配置 JSON',
+ type: 'homepage-json',
+ group: 'homepage',
+ default: '{}',
+ description: 'Hero / Bento 等首页结构,小程序端用 JSON 编辑',
+ },
+ { key: 'posts_per_page', label: '文章每页', type: 'number', group: 'pagination', default: '10', description: '' },
+ { key: 'works_per_page', label: '作品每页', type: 'number', group: 'pagination', default: '12', description: '' },
+ { key: 'snippets_per_page', label: '代码每页', type: 'number', group: 'pagination', default: '12', description: '' },
+ { key: 'footer_icp', label: 'ICP 备案号', type: 'text', group: 'contact', default: '', description: '' },
+ { key: 'contact_email', label: '联系邮箱', type: 'email', group: 'contact', default: '', description: '' },
+]
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/about/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/about/index.vue
new file mode 100644
index 0000000..8396328
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/about/index.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 主档案
+ form.isPrimary = v ? 1 : 0" />
+
+
+
+
+
+ 技术栈
+
+ {{ t }} ×
+
+
+
+ 添加
+
+
+
+
+ 工作经历
+ 添加
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/analytics/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/analytics/index.vue
new file mode 100644
index 0000000..8b776e9
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/analytics/index.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+ 今日
+ 近7天
+ 近30天
+
+
+
+ {{ item.label }}
+ {{ item.value }}
+
+
+
+ 发文 / UV 趋势
+
+
+
+
+ 热门文章
+
+
+
+
+ 访问地区 TOP
+
+ {{ i + 1 }}. {{ r.name }}
+ {{ r.value }}
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/attachments/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/attachments/index.vue
new file mode 100644
index 0000000..5a0ad1c
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/attachments/index.vue
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 视频
+
+
+ {{ item.originalName || item.fileName || item.id }}
+
+
+
+
+
+
+
+
+ 视频
+
+
+ {{ item.originalName || item.fileName || item.id }}
+
+
+
+
+ 上拉加载更多
+
+
+
+
+
+
+ 改分类
+
+
+ {{ c.name }}
+
+
+
+
+ 复制 URL
+ 删除
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/columns/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/columns/form.vue
new file mode 100644
index 0000000..172f68a
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/columns/form.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+ 启用
+ form.isActive = (typeof v === 'boolean' ? v : v.value) ? 1 : 0" />
+
+
+
+ 保存
+
+
+
+
+ 专栏文章
+
+ {{ p.title }}
+ 移除
+
+
+
+ {{ p.title }}
+ 添加
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/dashboard/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/dashboard/index.vue
new file mode 100644
index 0000000..b0224ee
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/dashboard/index.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+ Dashboard
+ 概览
+
+
+
+ {{ item.label }}
+ {{ item.value }}
+
+
+
+
+ 发文 / UV 趋势
+
+
+
+
+
+ 热门文章阅读
+
+
+
+
+
+ 最近文章
+ 全部
+
+
+ {{ item.title }}
+ {{ item.categoryName || '' }} · {{ item.date || '' }}
+
+
+
+ 最近操作
+ 全部
+
+
+ {{ logLabel(item) }}
+ {{ logTime(item) }}
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/explore/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/explore/index.vue
new file mode 100644
index 0000000..4b46201
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/explore/index.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ Admin
+ 后台菜单
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/inquiries/list.vue b/blog-wot-uniapp/src/subPackages/admin/pages/inquiries/list.vue
new file mode 100644
index 0000000..99cf8d4
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/inquiries/list.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.name || '匿名' }}
+
+
+ {{ item.company || '—' }} · {{ item.createdAt || '' }}
+
+
+
+
+
+
+
+
+ 标为已读
+ 标为已联系
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/oss-configs/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/oss-configs/index.vue
new file mode 100644
index 0000000..3ce355d
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/oss-configs/index.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 启用
+ form.isActive = v ? 1 : 0" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 本地存储无需额外密钥,仅需启用即可。
+
+
+ 保存
+ 测试连接
+ 删除
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/posts/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/posts/form.vue
new file mode 100644
index 0000000..72ed2e3
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/posts/form.vue
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 分类{{ catLabel() }}
+
+
+ 专栏{{ colLabel() }}
+
+
+
+
+
+ 发布
+ form.isPublished = v ? 1 : 0" />
+
+
+ 标签
+
+
+ {{ t.name }}
+
+
+
+
+ 加粗
+ 链接
+ 插图
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+ 恢复此版本
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/posts/list.vue b/blog-wot-uniapp/src/subPackages/admin/pages/posts/list.vue
new file mode 100644
index 0000000..04bf50a
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/posts/list.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+ {{ item.categoryName || '未分类' }} · {{ item.date || '' }}
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/profile/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/profile/index.vue
new file mode 100644
index 0000000..6ac998f
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/profile/index.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+ {{ user.username }}
+ {{ user.role || 'staff' }}
+
+
+
+
+ 个人资料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存资料
+
+
+
+
+ 修改密码
+
+
+
+
+
+
+
+
+
+
+ 更新密码
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/resource/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/resource/form.vue
new file mode 100644
index 0000000..637a130
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/resource/form.vue
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+
+
+ form[f.key] = v"
+ />
+
+
+ form[f.key] = v"
+ />
+
+ form[f.key] = v"
+ />
+
+ {{ f.label }}
+ form[f.key] = v ? 1 : 0"
+ />
+
+
+ {{ f.label }}
+
+
+ ★
+
+
+
+ { form[f.key] = (value?.[0] as { value?: unknown })?.value ?? value?.[0] }"
+ >
+
+ {{ f.label }}
+ {{ selectLabel(f) }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ jsonMode ? '表单模式' : 'JSON 模式' }}
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/resource/list.vue b/blog-wot-uniapp/src/subPackages/admin/pages/resource/list.vue
new file mode 100644
index 0000000..077aa7c
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/resource/list.vue
@@ -0,0 +1,404 @@
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+ {{ itemTitle(item) }}
+
+
+ {{ itemSubtitle(item) }}
+
+
+ 删除
+
+
+
+
+ 上拉加载更多
+
+
+
+
+
+
+
+
+
+
+
+ inlineForm[f.key] = v"
+ />
+
+ {{ f.label }}
+ inlineForm[f.key] = v ? 1 : 0" />
+
+
+
+ 保存
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/settings/index.vue b/blog-wot-uniapp/src/subPackages/admin/pages/settings/index.vue
new file mode 100644
index 0000000..9c5c581
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/settings/index.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存本组
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/snippets/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/snippets/form.vue
new file mode 100644
index 0000000..fde1638
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/snippets/form.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+ { form.codeTypeId = (value?.[0] as { value?: number })?.value ?? value?.[0] as number }"
+ >
+ 分类{{ typeLabel() }}
+
+
+
+
+ 关联文章
+
+
+ {{ p.title }}
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/users/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/users/form.vue
new file mode 100644
index 0000000..ee4204d
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/users/form.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { form.role = String((value?.[0] as { value?: string })?.value ?? value?.[0] ?? 'editor') }"
+ >
+ 角色{{ form.role }}
+
+
+ 启用
+ form.isActive = v ? 1 : 0" />
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/users/list.vue b/blog-wot-uniapp/src/subPackages/admin/pages/users/list.vue
new file mode 100644
index 0000000..73d8730
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/users/list.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.username }}
+
+
+ {{ item.email }} · {{ item.role }}
+
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/video-albums/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/video-albums/form.vue
new file mode 100644
index 0000000..9f88c2a
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/video-albums/form.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+ { form.categoryId = (value?.[0] as { value?: number })?.value ?? value?.[0] as number }"
+ >
+ 分类{{ catLabel() }}
+
+
+
+
+ 启用
+ form.isActive = v ? 1 : 0" />
+
+
+
+ 关联视频 ({{ selectedIds.length }})
+
+
+ {{ v.title }}
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/videos/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/videos/form.vue
new file mode 100644
index 0000000..f233a0d
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/videos/form.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+ { form.categoryId = (value?.[0] as { value?: number })?.value ?? value?.[0] as number }"
+ >
+ 分类{{ catLabel() }}
+
+
+
+
+
+
+ 发布
+ form.isPublished = v ? 1 : 0" />
+
+
+ 所属专辑
+
+
+ {{ a.name }}
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/videos/list.vue b/blog-wot-uniapp/src/subPackages/admin/pages/videos/list.vue
new file mode 100644
index 0000000..04ff7fd
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/videos/list.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+ {{ item.categoryName || '未分类' }} · {{ item.createdAt || '' }}
+
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/works/form.vue b/blog-wot-uniapp/src/subPackages/admin/pages/works/form.vue
new file mode 100644
index 0000000..c039bde
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/works/form.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 技术栈
+
+ {{ t }} ×
+
+
+
+ 添加
+
+
+
+ 图集 ({{ gallery.length }}/20)
+
+
+ +
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/admin/pages/works/list.vue b/blog-wot-uniapp/src/subPackages/admin/pages/works/list.vue
new file mode 100644
index 0000000..cee157e
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/admin/pages/works/list.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+ {}" @reset="keyword = ''; category = ''; year = ''" />
+
+ 全部分类
+ {{ c }}
+
+
+ 全部年份
+ {{ y }}
+
+
+
+ {{ item.title }}
+ {{ item.category || '—' }} · {{ item.year || '—' }}
+
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/components/CodeBlock.vue b/blog-wot-uniapp/src/subPackages/content/components/CodeBlock.vue
new file mode 100644
index 0000000..6af6c8f
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/components/CodeBlock.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/components/ContentPageHeader.vue b/blog-wot-uniapp/src/subPackages/content/components/ContentPageHeader.vue
new file mode 100644
index 0000000..6286217
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/components/ContentPageHeader.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/components/StaffLoginForm.vue b/blog-wot-uniapp/src/subPackages/content/components/StaffLoginForm.vue
new file mode 100644
index 0000000..b7ea03e
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/components/StaffLoginForm.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+ {{ submitLabel }}
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/lib/codeHighlight.ts b/blog-wot-uniapp/src/subPackages/content/lib/codeHighlight.ts
new file mode 100644
index 0000000..02b4c7d
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/lib/codeHighlight.ts
@@ -0,0 +1,24 @@
+/**
+ * 代码语言别名:对齐 PC client/src/utils/codeHighlight.ts
+ * 放在 content/lib,避免分包 utils 与主包 utils 路径冲突。
+ */
+const LANGUAGE_ALIASES: Record = {
+ js: 'javascript',
+ ts: 'typescript',
+ py: 'python',
+ rb: 'ruby',
+ sh: 'bash',
+ yml: 'yaml',
+ md: 'markdown',
+ xml: 'xml',
+ svg: 'xml',
+ noise: 'xml',
+}
+
+/** 把业务侧语言名解析成 highlight.js 注册名 */
+export function resolveHighlightLanguage(typeName?: string): string {
+ if (!typeName) return 'plaintext'
+ const key = typeName.trim().toLowerCase()
+ if (!key) return 'plaintext'
+ return LANGUAGE_ALIASES[key] || key
+}
diff --git a/blog-wot-uniapp/src/subPackages/content/lib/markdownRenderer.ts b/blog-wot-uniapp/src/subPackages/content/lib/markdownRenderer.ts
new file mode 100644
index 0000000..565b2d9
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/lib/markdownRenderer.ts
@@ -0,0 +1,120 @@
+/**
+ * Markdown 渲染:marked + 树摇 highlight.js。
+ * 放在 content/lib(勿用分包 utils,会与主包 utils 撞路径导致 ENOENT)。
+ * 不做行号(对齐 PC 移动端)。
+ */
+import { marked, type Tokens } from 'marked'
+import type { HLJSApi, LanguageFn } from 'highlight.js'
+import hljsCore from 'highlight.js/lib/core'
+import javascript from 'highlight.js/lib/languages/javascript'
+import typescript from 'highlight.js/lib/languages/typescript'
+import python from 'highlight.js/lib/languages/python'
+import go from 'highlight.js/lib/languages/go'
+import java from 'highlight.js/lib/languages/java'
+import css from 'highlight.js/lib/languages/css'
+import xml from 'highlight.js/lib/languages/xml'
+import json from 'highlight.js/lib/languages/json'
+import bash from 'highlight.js/lib/languages/bash'
+import sql from 'highlight.js/lib/languages/sql'
+import yaml from 'highlight.js/lib/languages/yaml'
+import markdown from 'highlight.js/lib/languages/markdown'
+import { resolveHighlightLanguage } from './codeHighlight'
+import { rewriteHtmlMediaUrls } from '@/utils/request'
+
+const LANGUAGE_REGISTRY: Array<[string, LanguageFn]> = [
+ ['javascript', javascript],
+ ['typescript', typescript],
+ ['python', python],
+ ['go', go],
+ ['java', java],
+ ['css', css],
+ ['xml', xml],
+ ['html', xml],
+ ['json', json],
+ ['bash', bash],
+ ['sh', bash],
+ ['sql', sql],
+ ['yaml', yaml],
+ ['yml', yaml],
+ ['markdown', markdown],
+ ['md', markdown],
+]
+
+let hljsInstance: HLJSApi | null = null
+let markedReady = false
+
+function getHljs(): HLJSApi {
+ if (!hljsInstance) {
+ hljsInstance = hljsCore
+ for (const [name, register] of LANGUAGE_REGISTRY) {
+ hljsInstance.registerLanguage(name, register)
+ }
+ }
+ return hljsInstance
+}
+
+/** 转义 HTML,避免未高亮代码注入 */
+function escapeHtml(text: string): string {
+ return text
+ .replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"')
+}
+
+/**
+ * 单段代码 → 带 Mac 风格头栏的 HTML(供 mp-html)
+ */
+export function highlightCodeBlock(code: string, language?: string): string {
+ const hljs = getHljs()
+ const lang = resolveHighlightLanguage(language)
+ let highlighted: string
+ if (lang && lang !== 'plaintext' && hljs.getLanguage(lang)) {
+ try {
+ highlighted = hljs.highlight(code, { language: lang, ignoreIllegals: true }).value
+ }
+ catch {
+ highlighted = escapeHtml(code)
+ }
+ }
+ else {
+ highlighted = escapeHtml(code)
+ }
+ const label = (lang && lang !== 'plaintext' ? lang : 'TEXT').toUpperCase()
+ return `
+`
+}
+
+function ensureMarked() {
+ if (markedReady) return
+ const renderer = new marked.Renderer()
+ renderer.code = ({ text, lang }: Tokens.Code) => highlightCodeBlock(text, lang || '')
+ marked.setOptions({
+ gfm: true,
+ breaks: false,
+ })
+ marked.use({ renderer })
+ markedReady = true
+}
+
+/** 渲染 Markdown 为 HTML(含代码高亮块);相对图片路径拼上传域名 */
+export async function renderMarkdown(content: string): Promise {
+ if (!content) return ''
+ getHljs()
+ ensureMarked()
+ const html = marked.parse(content) as string
+ return rewriteHtmlMediaUrls(html)
+}
+
+/** 预加载 highlight(进入详情/弹层前可调用) */
+export function preloadMarkdownRenderer(): void {
+ getHljs()
+}
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/about/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/about/index.vue
new file mode 100644
index 0000000..450cda8
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/about/index.vue
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ profile.name || '关于我' }}
+
+
+ {{ profile.location }}
+
+
+
+
+
+
+
+ 联系方式
+
+
+ {{ profile.email }}
+
+
+
+ WeChat: {{ profile.wechat }}
+
+
+
+
+ 技术栈
+
+ {{ t }}
+
+
+
+
+ 经历
+
+
+
+
+
+ {{ exp.year }}
+
+ {{ exp.role }}
+ {{ exp.company }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/blog/detail.vue b/blog-wot-uniapp/src/subPackages/content/pages/blog/detail.vue
new file mode 100644
index 0000000..96fdf94
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/blog/detail.vue
@@ -0,0 +1,368 @@
+
+
+
+
+
+
+
+
+
+
+ {{ post.categoryName }}
+
+
+ {{ columnName }}
+
+ {{ post.date }}
+
+
+ {{ post.title }}
+
+
+
+ {{ post.userName }}
+
+
+
+
+ #{{ t.name }}
+
+
+
+
+
+
+
+
+
+ 专栏其它文章
+ 全部 ›
+
+
+ {{ item.title }}
+ {{ item.date || '' }}
+
+
+
+
+ 相关推荐
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/blog/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/blog/index.vue
new file mode 100644
index 0000000..b3873c5
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/blog/index.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+ {{ filterLabel }}
+ 清除
+
+
+
+
+
+ 搜索历史
+ 清空
+
+
+
+ {{ k }}
+
+
+
+
+
+
+
+ 热搜
+
+
+ {{ k }}
+
+
+
+
+
+
+ 热搜
+
+
+ {{ k }}
+
+
+
+
+
+
+
+ 导出功能 ›
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/blog/ppt.vue b/blog-wot-uniapp/src/subPackages/content/pages/blog/ppt.vue
new file mode 100644
index 0000000..e5dbad9
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/blog/ppt.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ {{ post?.title || 'PPT' }}
+ 结构化 PPT 演示在小程序端能力受限。可点击下方按钮了解。
+
+ 打开完整 PPT 能力
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/columns/detail.vue b/blog-wot-uniapp/src/subPackages/content/pages/columns/detail.vue
new file mode 100644
index 0000000..c26e177
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/columns/detail.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+ Column
+ {{ column.title }}
+ {{ column.description }}
+
+ 文章列表
+ {{ posts.length }} 篇
+
+
+ {{ item.date || item.categoryName }}
+ {{ item.title }}
+ {{ item.summary }}
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/columns/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/columns/index.vue
new file mode 100644
index 0000000..b24ded7
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/columns/index.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ Columns
+ 专栏
+
+
+
+ {{ item.title }}
+ {{ item.description }}
+ {{ item.postCount }} 篇
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/login/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/login/index.vue
new file mode 100644
index 0000000..232ef3f
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/login/index.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+ {{ hintText }}
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/services/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/services/index.vue
new file mode 100644
index 0000000..26a37d4
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/services/index.vue
@@ -0,0 +1,396 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ c.title }}
+ {{ c.desc }}
+
+
+
+
+ 创作流程
+
+
+
+ {{ String(i + 1).padStart(2, '0') }}
+ {{ step.title }}
+
+
+ {{ step.desc }}
+
+
+
+
+
+ 客户原声
+
+
+
+
+
+ {{ item.name }}
+ "{{ item.content }}"
+
+
+
+
+
+
+ {{ item.name }}
+ "{{ item.content }}"
+
+
+
+
+
+
+
+ 准备好开始了吗?
+ 无论是一个疯狂的想法,还是一个具体的业务需求,我都乐意倾听。
+
+ 发起合作咨询
+
+
+
+
+ 提交咨询
+
+
+
+
+
+
+ 提交
+
+
+
+
+
+ Trusted By
+
+
+
+ {{ p.name }}
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/snippets/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/snippets/index.vue
new file mode 100644
index 0000000..4e56e0a
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/snippets/index.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ Snippets
+ 代码片段
+
+ {{ item.language || 'code' }}
+ {{ item.title }}
+ {{ item.description }}
+
+
+
+
+
+
+
+
+ {{ active.language || 'plaintext' }}
+
+
+
+
+ 复制代码
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/theme/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/theme/index.vue
new file mode 100644
index 0000000..ea31e49
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/theme/index.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+ 当前:{{ themeLabel }}
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/videos/album.vue b/blog-wot-uniapp/src/subPackages/content/pages/videos/album.vue
new file mode 100644
index 0000000..53ffc46
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/videos/album.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+ {{ album.videoCount }} 集
+ · {{ album.categoryName }}
+
+
+
+
+
+ {{ item.title }}
+ {{ item.description }}
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/videos/detail.vue b/blog-wot-uniapp/src/subPackages/content/pages/videos/detail.vue
new file mode 100644
index 0000000..1780170
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/videos/detail.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+ 暂无视频地址
+
+ Video
+ {{ video.title }}
+ {{ metaLine }}
+ {{ video.description }}
+
+
+
+ 专辑
+ {{ video.albumContext.albumName }}
+
+
+
+
+
+
+ 上一集
+
+
+
+ 当前
+
+
+
+ 下一集
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/videos/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/videos/index.vue
new file mode 100644
index 0000000..52fc10e
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/videos/index.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 专辑
+
+
+
+
+
+
+ {{ alb.name }}
+
+ {{ alb.videoCount }} 集
+
+
+
+
+
+
+
+ 最新视频
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+ {{ metaLine(item) }}
+ {{ item.description }}
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/works/detail.vue b/blog-wot-uniapp/src/subPackages/content/pages/works/detail.vue
new file mode 100644
index 0000000..13b1208
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/works/detail.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ meta }}
+ {{ work.title }}
+
+
+ 关于项目
+
+
+
+
+ 技术全景
+
+ {{ g.category }}
+
+ {{ t }}
+
+
+
+
+
+ 相关链接
+
+
+
+ 线上项目
+
+
+
+
+ 演示
+
+
+
+
+ 源码
+
+
+
+
+
+
+ 图集
+
+
+
+
+ 下一个作品
+ 继续浏览 →
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/subPackages/content/pages/works/index.vue b/blog-wot-uniapp/src/subPackages/content/pages/works/index.vue
new file mode 100644
index 0000000..216d931
--- /dev/null
+++ b/blog-wot-uniapp/src/subPackages/content/pages/works/index.vue
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ meta(item) }}
+ {{ item.title }}
+ {{ workDesc(item) }}
+
+ {{ t }}
+
+
+
+ 线上
+
+
+ 演示
+
+
+ 源码
+
+
+ 查看项目详情 →
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-wot-uniapp/src/theme.json b/blog-wot-uniapp/src/theme.json
new file mode 100644
index 0000000..6c3cd07
--- /dev/null
+++ b/blog-wot-uniapp/src/theme.json
@@ -0,0 +1,26 @@
+{
+ "light": {
+ "bgColor": "#faf8f4",
+ "bgColorBottom": "#faf8f4",
+ "bgColorTop": "#faf8f4",
+ "bgTxtStyle": "dark",
+ "navBgColor": "#faf8f4",
+ "navTxtStyle": "black",
+ "tabBgColor": "#ffffff",
+ "tabBorderStyle": "black",
+ "tabFontColor": "#6b6b6b",
+ "tabSelectedColor": "#d4b383"
+ },
+ "dark": {
+ "bgColor": "#050505",
+ "bgColorBottom": "#050505",
+ "bgColorTop": "#050505",
+ "bgTxtStyle": "light",
+ "navBgColor": "#050505",
+ "navTxtStyle": "white",
+ "tabBgColor": "#121214",
+ "tabBorderStyle": "white",
+ "tabFontColor": "#888888",
+ "tabSelectedColor": "#d4b383"
+ }
+}
diff --git a/blog-wot-uniapp/src/uni.scss b/blog-wot-uniapp/src/uni.scss
new file mode 100644
index 0000000..c4c8ed7
--- /dev/null
+++ b/blog-wot-uniapp/src/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #d4b383;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color: #333; // 基本色
+$uni-text-color-inverse: #fff; // 反色
+$uni-text-color-grey: #999; // 辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable: #c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color: #fff;
+$uni-bg-color-grey: #f8f8f8;
+$uni-bg-color-hover: #f1f1f1; // 点击状态颜色
+$uni-bg-color-mask: rgba(0, 0, 0, 0.4); // 遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color: #c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm: 12px;
+$uni-font-size-base: 14px;
+$uni-font-size-lg: 16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm: 20px;
+$uni-img-size-base: 26px;
+$uni-img-size-lg: 40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2c405a; // 文章标题颜色
+$uni-font-size-title: 20px;
+$uni-color-subtitle: #555; // 二级标题颜色
+$uni-font-size-subtitle: 18px;
+$uni-color-paragraph: #3f536e; // 文章段落颜色
+$uni-font-size-paragraph: 15px;
diff --git a/blog-wot-uniapp/src/utils/content.ts b/blog-wot-uniapp/src/utils/content.ts
new file mode 100644
index 0000000..f4e13ea
--- /dev/null
+++ b/blog-wot-uniapp/src/utils/content.ts
@@ -0,0 +1,62 @@
+/**
+ * 去掉 HTML 标签,用于列表摘要展示。
+ * 保留实体简单还原,避免简介全是标签噪音。
+ */
+export function stripHtml(html?: string | null): string {
+ if (!html) return ''
+ return String(html)
+ .replace(/<[^>]+>/g, ' ')
+ .replace(/ /gi, ' ')
+ .replace(/&/gi, '&')
+ .replace(/</gi, '<')
+ .replace(/>/gi, '>')
+ .replace(/\s+/g, ' ')
+ .trim()
+}
+
+/**
+ * 外链打开:H5 新开;小程序复制到剪贴板(无 web-view 页时的折中)。
+ */
+export function openExternalUrl(url?: string) {
+ const u = String(url || '').trim()
+ if (!u) return
+ // #ifdef H5
+ window.open(u, '_blank')
+ // #endif
+ // #ifndef H5
+ uni.setClipboardData({
+ data: u,
+ success: () => uni.showToast({ title: '链接已复制', icon: 'none' }),
+ })
+ // #endif
+}
+
+/** 解析作品 links(可能是 JSON 字符串) */
+export function parseWorkLinks(links: unknown): { live?: string, demo?: string, github?: string } {
+ if (!links) return {}
+ if (typeof links === 'string') {
+ try {
+ return JSON.parse(links) as { live?: string, demo?: string, github?: string }
+ }
+ catch {
+ return {}
+ }
+ }
+ if (typeof links === 'object') return links as { live?: string, demo?: string, github?: string }
+ return {}
+}
+
+/** 展平技术栈分组为标签列表 */
+export function flattenTechStack(stack?: { category?: string, items?: string[], [k: string]: unknown }[]): string[] {
+ if (!Array.isArray(stack)) return []
+ const out: string[] = []
+ stack.forEach((g) => {
+ const items = Array.isArray(g.items) ? g.items : []
+ items.forEach((i) => {
+ if (i) out.push(String(i))
+ })
+ // 兼容 { category, item } 扁平行
+ if (!items.length && g.item) out.push(String(g.item))
+ })
+ return out
+}
diff --git a/blog-wot-uniapp/src/utils/markdownRenderer.ts b/blog-wot-uniapp/src/utils/markdownRenderer.ts
new file mode 100644
index 0000000..35e32ee
--- /dev/null
+++ b/blog-wot-uniapp/src/utils/markdownRenderer.ts
@@ -0,0 +1,103 @@
+import { marked } from 'marked'
+import type { HLJSApi, LanguageFn } from 'highlight.js'
+import hljsCore from 'highlight.js/lib/core'
+import javascript from 'highlight.js/lib/languages/javascript'
+import typescript from 'highlight.js/lib/languages/typescript'
+import python from 'highlight.js/lib/languages/python'
+import go from 'highlight.js/lib/languages/go'
+import java from 'highlight.js/lib/languages/java'
+import css from 'highlight.js/lib/languages/css'
+import xml from 'highlight.js/lib/languages/xml'
+import json from 'highlight.js/lib/languages/json'
+import bash from 'highlight.js/lib/languages/bash'
+import sql from 'highlight.js/lib/languages/sql'
+import yaml from 'highlight.js/lib/languages/yaml'
+import markdown from 'highlight.js/lib/languages/markdown'
+import rust from 'highlight.js/lib/languages/rust'
+import cpp from 'highlight.js/lib/languages/cpp'
+import c from 'highlight.js/lib/languages/c'
+import php from 'highlight.js/lib/languages/php'
+import shell from 'highlight.js/lib/languages/shell'
+
+const LANGUAGE_REGISTRY: Array<[string, LanguageFn]> = [
+ ['javascript', javascript],
+ ['typescript', typescript],
+ ['python', python],
+ ['go', go],
+ ['java', java],
+ ['css', css],
+ ['xml', xml],
+ ['html', xml],
+ ['json', json],
+ ['bash', bash],
+ ['sh', bash],
+ ['sql', sql],
+ ['yaml', yaml],
+ ['yml', yaml],
+ ['markdown', markdown],
+ ['md', markdown],
+ ['rust', rust],
+ ['cpp', cpp],
+ ['c', c],
+ ['php', php],
+ ['shell', shell],
+]
+
+let hljsInstance: HLJSApi | null = null
+let configured = false
+
+function getHljs(): HLJSApi {
+ if (!hljsInstance) {
+ hljsInstance = hljsCore
+ for (const [name, register] of LANGUAGE_REGISTRY) {
+ hljsInstance.registerLanguage(name, register)
+ }
+ }
+ return hljsInstance
+}
+
+function ensureMarked() {
+ if (configured) return
+ const hljs = getHljs()
+ marked.setOptions({
+ gfm: true,
+ breaks: false,
+ })
+ const renderer = new marked.Renderer()
+ renderer.code = ({ text, lang }: { text: string, lang?: string }) => {
+ const language = (lang || '').split(/\s+/)[0]
+ let highlighted = text
+ if (language && hljs.getLanguage(language)) {
+ try {
+ highlighted = hljs.highlight(text, { language, ignoreIllegals: true }).value
+ }
+ catch {
+ highlighted = hljs.highlightAuto(text).value
+ }
+ }
+ else {
+ highlighted = hljs.highlightAuto(text).value
+ }
+ return `${highlighted}
\n`
+ }
+ renderer.heading = ({ text, depth }: { text: string, depth: number }) => {
+ const slug = `heading-${String(text).toLowerCase().replace(/[^\w\u4e00-\u9fa5]+/g, '-')}`
+ return `${text}\n`
+ }
+ renderer.image = ({ href, text }: { href: string, text: string }) => {
+ return `
`
+ }
+ marked.use({ renderer })
+ configured = true
+}
+
+export async function renderMarkdown(content: string): Promise {
+ if (!content) return ''
+ ensureMarked()
+ return marked.parse(content) as string
+}
+
+export function preloadMarkdownRenderer(): void {
+ getHljs()
+ ensureMarked()
+}
diff --git a/blog-wot-uniapp/src/utils/request.ts b/blog-wot-uniapp/src/utils/request.ts
new file mode 100644
index 0000000..b2188bf
--- /dev/null
+++ b/blog-wot-uniapp/src/utils/request.ts
@@ -0,0 +1,184 @@
+import { useAuth } from '@/composables/useAuth'
+
+export interface ApiResponse {
+ code: number
+ message: string
+ result: T
+}
+
+const API_BASE = import.meta.env.VITE_API_BASE || 'http://127.0.0.1:8081/api'
+export const UPLOAD_BASE = import.meta.env.VITE_UPLOAD_BASE || 'http://127.0.0.1:8081'
+
+/**
+ * 媒体地址:已是完整链接 / data: 则原样返回;否则拼上传域名(后端 /uploads 等)。
+ */
+export function getImageUrl(url?: string | null): string {
+ if (!url) return ''
+ const raw = String(url).trim()
+ if (!raw) return ''
+ if (/^https?:\/\//i.test(raw) || raw.startsWith('data:') || raw.startsWith('//')) return raw
+ if (raw.startsWith('/')) return `${UPLOAD_BASE}${raw}`
+ return `${UPLOAD_BASE}/${raw}`
+}
+
+/** 兼容旧名,与 getImageUrl 同逻辑 */
+export const resolveMediaUrl = getImageUrl
+
+/**
+ * 重写 HTML 中相对路径的 src/href(如 /uploads/...),供 mp-html / rich-text 使用。
+ * 已是 http(s) / data: / 协议相对 // 的不改。
+ */
+export function rewriteHtmlMediaUrls(html?: string | null): string {
+ if (!html) return ''
+ return String(html).replace(
+ /\b(src|href)\s*=\s*(["'])(\/[^"'>\s]*)\2/gi,
+ (_m, attr: string, quote: string, path: string) => {
+ // 协议相对 //cdn... 不要当成本地路径
+ if (path.startsWith('//')) return `${attr}=${quote}${path}${quote}`
+ return `${attr}=${quote}${getImageUrl(path)}${quote}`
+ },
+ )
+}
+
+function joinUrl(path: string): string {
+ if (/^https?:\/\//i.test(path)) return path
+ const base = API_BASE.replace(/\/$/, '')
+ const p = path.startsWith('/') ? path : `/${path}`
+ if (p.startsWith('/api/')) return `${UPLOAD_BASE}${p}`
+ return `${base}${p}`
+}
+
+/**
+ * GET 查询参数清洗:去掉 undefined/null/'',避免 uni.request 把 undefined 序列化成字面量 "undefined"。
+ */
+function omitEmptyQueryParams(data?: Record) {
+ if (!data) return undefined
+ const entries = Object.entries(data).filter(([, v]) => v !== undefined && v !== null && v !== '')
+ if (!entries.length) return undefined
+ return Object.fromEntries(entries)
+}
+
+type RequestOpts = {
+ method?: UniApp.RequestOptions['method']
+ data?: UniApp.RequestOptions['data']
+ header?: Record
+ auth?: boolean
+ skipSessionExpired?: boolean
+}
+
+export async function request(path: string, options: RequestOpts = {}): Promise {
+ const { auth = false, skipSessionExpired = false, header = {}, method = 'GET', data } = options
+ const headers: Record = {
+ 'Content-Type': 'application/json',
+ ...header,
+ }
+
+ if (auth) {
+ const { getToken } = useAuth()
+ const token = getToken()
+ if (token) headers.Authorization = `Bearer ${token}`
+ }
+
+ /** GET 走清洗后的 query;其它方法保持原 body */
+ const payload = method === 'GET'
+ ? omitEmptyQueryParams(data as Record | undefined)
+ : data
+
+ return new Promise((resolve, reject) => {
+ uni.request({
+ url: joinUrl(path),
+ method,
+ data: payload,
+ header: headers,
+ success: (res) => {
+ const body = res.data as ApiResponse
+ if (!body || typeof body !== 'object' || !('code' in body)) {
+ reject(new Error('响应解析失败'))
+ return
+ }
+ if (body.code === 401 && !skipSessionExpired) {
+ const { handleSessionExpired } = useAuth()
+ handleSessionExpired()
+ reject(new Error(body.message || '登录已过期,请重新登录'))
+ return
+ }
+ if (body.code !== 200) {
+ reject(new Error(body.message || '请求失败'))
+ return
+ }
+ resolve(body.result)
+ },
+ fail: (err) => reject(new Error(err.errMsg || '网络错误')),
+ })
+ })
+}
+
+export function get(path: string, data?: Record, auth = false) {
+ return request(path, { method: 'GET', data, auth })
+}
+
+export function post(path: string, data?: unknown, auth = false) {
+ return request(path, { method: 'POST', data: data as UniApp.RequestOptions['data'], auth })
+}
+
+export function put(path: string, data?: unknown, auth = false) {
+ return request(path, { method: 'PUT', data: data as UniApp.RequestOptions['data'], auth })
+}
+
+export function del(path: string, auth = true) {
+ return request(path, { method: 'DELETE', auth })
+}
+
+/** PATCH 请求(文章发布状态等) */
+export function patch(path: string, data?: unknown, auth = false) {
+ return request(path, {
+ method: 'PATCH' as UniApp.RequestOptions['method'],
+ data: data as UniApp.RequestOptions['data'],
+ auth,
+ })
+}
+
+/**
+ * 直传文件到后台附件接口。
+ * uni.uploadFile 不走 JSON Content-Type,需单独拼 Authorization。
+ */
+export function uploadFile(
+ path: string,
+ filePath: string,
+ formData: Record = {},
+ name = 'file',
+): Promise {
+ const { getToken } = useAuth()
+ const token = getToken()
+ const header: Record = {}
+ if (token) header.Authorization = `Bearer ${token}`
+ return new Promise((resolve, reject) => {
+ uni.uploadFile({
+ url: joinUrl(path),
+ filePath,
+ name,
+ formData,
+ header,
+ success: (res) => {
+ try {
+ const body = JSON.parse(res.data) as ApiResponse
+ if (body.code === 401) {
+ const { handleSessionExpired } = useAuth()
+ handleSessionExpired()
+ reject(new Error(body.message || '登录已过期,请重新登录'))
+ return
+ }
+ if (body.code !== 200) {
+ reject(new Error(body.message || '上传失败'))
+ return
+ }
+ resolve(body.result)
+ }
+ catch {
+ reject(new Error('上传响应解析失败'))
+ }
+ },
+ fail: (err) => reject(new Error(err.errMsg || '上传失败')),
+ })
+ })
+}
diff --git a/blog-wot-uniapp/src/utils/unsupported.ts b/blog-wot-uniapp/src/utils/unsupported.ts
new file mode 100644
index 0000000..f0ff65a
--- /dev/null
+++ b/blog-wot-uniapp/src/utils/unsupported.ts
@@ -0,0 +1,20 @@
+import { useDialog } from '@wot-ui/ui'
+
+/** 小程序/App 暂不支持的能力统一提示 */
+export function showUnsupported(featureName: string) {
+ try {
+ const dialog = useDialog()
+ dialog.alert({
+ title: '暂时不支持',
+ msg: `「${featureName}」在当前端暂不可用,请前往网页端使用。`,
+ confirmButtonText: '知道了',
+ })
+ }
+ catch {
+ uni.showModal({
+ title: '暂时不支持',
+ content: `「${featureName}」在当前端暂不可用,请前往网页端使用。`,
+ showCancel: false,
+ })
+ }
+}
diff --git a/blog-wot-uniapp/tsconfig.json b/blog-wot-uniapp/tsconfig.json
new file mode 100644
index 0000000..c2ab89b
--- /dev/null
+++ b/blog-wot-uniapp/tsconfig.json
@@ -0,0 +1,40 @@
+{
+ "compilerOptions": {
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "resolveJsonModule": true,
+ "jsx": "preserve",
+ "jsxImportSource": "vue",
+ "noImplicitThis": true,
+ "strict": true,
+ "verbatimModuleSyntax": true,
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "skipLibCheck": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ },
+ "types": [
+ "vite/client",
+ "@dcloudio/types",
+ "@mini-types/alipay",
+ "miniprogram-api-typings",
+ "@wot-ui/ui/global",
+ "@uni-helper/uni-types"
+ ]
+ },
+ "include": [
+ "**/*.d.ts",
+ "src/**/*.ts",
+ "src/**/*.tsx",
+ "src/**/*.jsx",
+ "src/**/*.vue"
+ ],
+ "vueCompilerOptions": {
+ "plugins": ["@uni-helper/uni-types/volar-plugin"]
+ }
+}
diff --git a/blog-wot-uniapp/vite.config.ts b/blog-wot-uniapp/vite.config.ts
new file mode 100644
index 0000000..6a96736
--- /dev/null
+++ b/blog-wot-uniapp/vite.config.ts
@@ -0,0 +1,27 @@
+import { fileURLToPath, URL } from 'node:url'
+import { defineConfig } from 'vite'
+import Components from '@uni-helper/vite-plugin-uni-components'
+import Uni from '@uni-helper/plugin-uni'
+import { WotResolver } from './src/resolvers/wot-ui-resolver'
+
+export default defineConfig({
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url)),
+ },
+ },
+ css: {
+ preprocessorOptions: {
+ scss: {
+ silenceDeprecations: ['legacy-js-api', 'import'],
+ },
+ },
+ },
+ plugins: [
+ Components({
+ dts: true,
+ resolvers: [WotResolver()],
+ }),
+ Uni(),
+ ],
+})