diff --git a/.trae/specs/customer-management-core/checklist.md b/.trae/specs/customer-management-core/checklist.md new file mode 100644 index 0000000..302a532 --- /dev/null +++ b/.trae/specs/customer-management-core/checklist.md @@ -0,0 +1,108 @@ +# Checklist - 客户管理核心模块(客户信息 + 客户部门 + 客户账号) + +## 数据库 Entity 与表结构检查 +- [ ] `server/src/entity/customer.entity.ts` 存在,字段齐全:id/customer_no(UNIQUE)/customer_name/province/city/district/address/contact_person/contact_phone/postal_code/fax/customer_level/status/salesman_id(FK)/created_at/updated_at +- [ ] `customer_department.entity.ts` 字段齐全:id/customer_id(FK)/dept_name/contact_person/contact_phone/function_desc/created_at;BelongsTo Customer 关联 +- [ ] `customer_account.entity.ts` 字段齐全:id/customer_id(FK)/phone(UNIQUE)/password_hash/wx_openid/status/last_login_at/created_at;BelongsTo Customer 关联 +- [ ] 3 张 Entity 均定义正确索引:customer(customer_name, salesman_id, status, customer_no unique) / department(customer_id) / account(customer_id, phone unique) +- [ ] Midway 启动时 3 张 Entity 正确加载,PostgreSQL 中 `\d customer / \d customer_department / \d customer_account` 建表成功,外键约束存在,字段类型/长度/默认值与设计一致 +- [ ] Sequelize Entity 字段均加了中文 `comment`,snake_case 列名通过 `field` 映射,无驼峰列误建 + +## db_seed.sql 菜单与权限种子数据检查 +- [ ] 脚本幂等:连续执行 2 次无报错,序列 id 不漂移 +- [ ] id=1「客户管理」menu_type=1(目录),parent_id=NULL +- [ ] 新增 3 条子菜单:id=12 客户信息 /customer/info (permission=customer:list) / id=13 客户部门 /customer/department (customer:department) / id=14 客户账号 /customer/account (customer:account),parent_id=1,component 分别为 customer/info/index 等 +- [ ] 新增 9 条按钮权限(menu_type=3)id=15~23:customer:create/update/delete × 1、department: × 1、account: × 1,permission 标识命名正确 +- [ ] `sys_role_menu` 中 role_id=1(ADMIN)绑定 id 1~23 全部;role_id=2(SALESMAN)绑定 id 1, 12~23(客户域全部) +- [ ] SELECT count(*) FROM sys_menu = 23(原 11 条 + 新增 12 条);SELECT count(*) FROM sys_role_menu 数量正确 + +## 鉴权中间件与 RBAC 检查 +- [ ] `rbac.middleware.ts` 的 `PERMISSION_MAP` 新增 3 条:`/api/customers→customer:list`、`/api/customer-departments→customer:department`、`/api/customer-accounts→customer:account` +- [ ] 未登录访问 3 组接口 → 返回 401 code=401 message=未登录 +- [ ] ADMIN token 访问所有接口 → 200 放行 +- [ ] SALESMAN token 访问列表接口 → 返回 salesman_id 过滤后的行级数据;访问他人客户的 PUT/DELETE → 403 无权限 +- [ ] SALESMAN 创建客户时,传入 salesman_id=3 被覆盖为自己的 id,保存后数据库 salesman_id 正确 +- [ ] WORKER/CUSTOMER 角色 token 访问客户域接口 → 403 无权限 + +## 客户信息 CRUD 接口检查(/api/customers) +- [ ] GET / 分页搜索:page=1&pageSize=10&keyword=xx&status=1&salesmanId=1 → 返回 `{code:200,data:{list,total,page,pageSize}}` 结构正确 +- [ ] customer_no 生成规则:同日连建 3 条 → 编号 KH+YYYYMMDD+001/002/003;UNIQUE 冲突时无崩溃 +- [ ] POST 创建:必填项缺失 → 400 参数错误(DTO 校验工作);contact_phone 非手机号 regex 拒绝 +- [ ] GET /:id 不存在 → 404;存在但 SALESMAN 无权限 → 403 +- [ ] PUT /:id 更新:customer_no 不可改;非 ADMIN 无法修改 salesman_id +- [ ] DELETE /:id:存在 customer_department 或 customer_account 关联时 → 返回 400 禁止删除;无关联删除成功 +- [ ] PUT /:id/status 状态切换(1→2→3→4)成功 +- [ ] 列表和详情返回字段中 **绝不** 出现 `password_hash` / `wx_openid` / `password` 任何敏感列 + +## 客户部门 CRUD 接口检查(/api/customer-departments) +- [ ] 按 customer_id 过滤:GET /?customerId=N → 返回只属于该客户的部门 +- [ ] SALESMAN 越权创建:传 customer_id=(别人客户)→ 403;传自己客户 → 创建成功 +- [ ] 更新/删除归属校验:SALESMAN 不能改别人客户下的部门 +- [ ] DTO 校验:dept_name 空值 → 400;字段长度超限 → 400 + +## 客户账号 CRUD 接口检查(/api/customer-accounts) +- [ ] 创建账号:phone=13800001234 → 默认密码 hash 通过 bcrypt.compare('001234', hash) === true;phone 不足 6 位时默认密码为 123456 +- [ ] 创建重复 phone → 返回 400 '手机号已存在' +- [ ] 列表 / 详情接口响应 JSON 中字段白名单:id/customerId/phone/status/createdAt/lastLoginAt(不含 password_hash / wx_openid) +- [ ] 更新状态成功;resetPassword=true 触发重新哈希默认密码 +- [ ] SALESMAN 归属校验:只允许操作自己客户下的账号,否则 403 +- [ ] customer_account.status = 0 禁用账号后,若未来有登录接口需拒绝(本期无登录实现,但字段必须正确写入) + +## DTO 参数校验与类型检查 +- [ ] 非法 pageSize(>200、非数字)→ 返回 400 校验错误 +- [ ] 注入型 keyword(`` / `' OR 1=1 --`)→ DTO 长度/regex 校验或正常参数化查询,接口无 500 +- [ ] 所有接口均不使用 `any` 类型(Controller @Body/@Query 绑定具体 DTO 类,Service 参数具名 interface 类型) +- [ ] server package.json 安装的 class-validator / class-transformer 已正确应用装饰器(@IsString/@IsInt/@Max/@Min/@Matches 等) + +## 前端路由、菜单、API 封装检查 +- [ ] router/index.ts 中 /customer 拆成 3 条子路由:/info /department /account,component 指向各自 vue,meta.permission 与菜单对应 +- [ ] 登录后侧边栏「客户管理」目录可展开为 3 个子菜单,点击分别跳转;面包屑正确 +- [ ] 3 个 api/*.ts 文件存在:customer.ts / customerDepartment.ts / customerAccount.ts;全部走 @/utils/request(Axios)、携带 Authorization 拦截器、错误统一提示 +- [ ] TypeScript 类型定义完整:CustomerInfo / CustomerQuery / DepartmentInfo 等接口导出,页面使用时无隐式 any + +## 客户信息前端页面(customer/info/index.vue) +- [ ] UI 风格与 system/user/index.vue 完全一致:a-card 标题 / 顶部新增批量删除按钮 / 搜索栏 / 表格 / 弹窗 +- [ ] 搜索:关键词输入、状态下拉、业务员下拉(ADMIN 显示、SALESMAN 隐藏/禁用);查询/重置按钮 +- [ ] 表格列:客户编号/名称/省市区(拼接)/地址/联系人/电话/客户级别/状态(a-switch)/创建时间/操作;列宽合理、ellipsis 生效 +- [ ] 新增/编辑弹窗:a-cascader 省市区级联可用、数据来源于 regionOptions(region.ts);表单必填校验 + 手机号 regex + 长度限制;保存成功 → 弹窗关闭 → page=1 → 刷新列表(保留筛选) +- [ ] 编辑时 customer_no 字段只读(禁用或隐藏) +- [ ] 删除确认弹框(a-popconfirm)生效;批量删除按钮选中时启用 +- [ ] useTableScroll 正确应用:wrapperRef + tableHeight,表格 body 内部滚动,整页无垂直滚动条溢出 +- [ ] 状态 switch 点开关即时调用 updateStatus 接口,成功后 message.success + +## 客户部门/账号前端页面检查 +- [ ] 部门页:客户下拉可用(ADMIN 全量/SALESMAN 仅自己客户);新增/编辑表单客户字段必填校验 +- [ ] 账号页:顶部展示「默认密码=手机号后 6 位」文字提示;重置密码按钮/复选框存在并生效 +- [ ] 三页面列表刷新链路一致:新增/编辑/删除成功后统一 reset page to 1 → refetch,筛选条件保留 +- [ ] SALESMAN 登录时,页面 UI 与权限一致:客户下拉过滤、越权操作按钮隐藏(若通过接口已 403,则按钮隐藏更友好) + +## 安全防护检查 +- [ ] 前端防 XSS:所有表格列使用 AntDV 默认文本渲染,无一处使用 v-html;表单 maxlength 限制 + 正则过滤 script 标签;注入输入保存后列表纯文本显示、浏览器无 alert 弹窗 +- [ ] 后端防 SQL 注入:grep server/src 无任何 `sequelize.query()` 字符串拼接 SQL(若有必须用 replacements 参数化);所有查询走 Sequelize Model 方法 + where 对象;用 Postman 发 `' OR 1=1 -- ` keyword 不返回全表数据 +- [ ] 接口鉴权覆盖:3 个模块 × 6 方法共 18 个接口,均经过 auth + rbac 中间件,无匿名可写接口 +- [ ] 密码加密:customer_account 创建和重置密码时使用 hashPassword 生成 bcrypt(saltRounds≥10),数据库仅存哈希,无明文登录密码任何位置落盘/日志 +- [ ] 敏感字段脱敏:customer_account 列表/详情响应不返回 password_hash 与 wx_openid(浏览器 DevTools Network 面板确认) + +## 业务员 APP 接口兼容性检查 +- [ ] 用 Postman/curl 带相同 JWT 头(Authorization: Bearer xxx)调用 3 个模块的 GET/POST/PUT/DELETE 接口,返回结构与 Web 端完全相同(code/message/data 字段一致) +- [ ] 分页参数 page/pageSize、筛选 keyword/status 行为完全相同;分页上限保护 APP 侧调超大 pageSize 时 400 正确拒绝 +- [ ] 错误码映射:401/403/400/404/500 都有明确 message,APP 侧可据此弹窗提示 +- [ ] 同一 SALESMAN token,Web 和 APP 端同时调用 list,返回数据集完全一致(同一行级隔离) + +## 集成与端到端流程检查 +- [ ] ADMIN 完整走通:登录 → 客户管理展开 → 客户信息新增 2 条 → 给每条新增 1 个部门 + 1 个账号 → 列表分页翻到第 2 页 → 搜索关键词命中 → 编辑修改 → 删除 1 条客户(先删部门和账号再删客户成功,未删时报 400)→ 全程无 401/403/500 +- [ ] SALESMAN 完整走通:登录 → 客户列表仅见归属自己的 → 新增客户(salesman_id 自动写自己)→ 新增自己客户的部门/账号成功 → 尝试在 URL 手改别人客户 ID PUT 接口 → 返回 403 且数据未变 +- [ ] db_seed.sql 重新执行不影响已录入的客户域业务数据(仅系统表按 id 幂等更新,customer 等业务表无 TRUNCATE) + +## 代码质量与构建检查 +- [ ] Server:`yarn lint` 无 ESLint 错误;`yarn build`(midway-bin build -c)构建成功,tsc 无类型错误 +- [ ] Client:`yarn build`(vite build)无 TS 错误、无警告;ESLint 无告警 +- [ ] 无硬编码敏感信息(JWT secret、db password)仍留在代码中的问题;统一从 config 读取 +- [ ] 新增代码文件命名/目录与现有约定一致:entity/*.entity.ts、dto/*.dto.ts、service/*.service.ts、controller/*.controller.ts、views/customer/*/index.vue +- [ ] 前后端字段名映射正确:后端 snake_case(DB)→ camelCase(Entity + JSON 响应)→ 前端 camelCase 使用,无错配(例:password_hash → passwordHash → 返回 JSON 无此字段即白名单过滤生效) + +## 业务一致性 / 边界用例检查 +- [ ] 删除客户:先建客户→建部门→直接删客户→接口返回400禁止→先删部门/账号→再删客户成功(外键保护链路) +- [ ] customer_no 跨天:模拟 23:59 和 00:01 分别创建,序号从 001 重新起 +- [ ] 空列表:新建干净数据库客户域无数据,三页面均展示 a-empty 无报错 +- [ ] 超长字段:客户地址传 256+ 字符 → DTO 校验截断或报错,数据库不静默截断导致数据丢失 diff --git a/.trae/specs/customer-management-core/spec.md b/.trae/specs/customer-management-core/spec.md new file mode 100644 index 0000000..c30a459 --- /dev/null +++ b/.trae/specs/customer-management-core/spec.md @@ -0,0 +1,185 @@ +# 鑫潼智电系统 · 客户管理核心模块 (V1.0) - Product Requirement Document + +## Overview +- **Summary**: 基于数据库设计文档 D2 客户域,实现「客户信息 + 客户部门 + 客户访问账号」三个核心子模块的完整前后端功能,覆盖 CRUD、分页搜索、数据权限隔离、基础安全防护,并兼容业务员移动端 APP(复用同一套 REST API 和 sys_user 账号体系)。 +- **Purpose**: 为业务员和运营管理员提供结构化的客户档案管理能力,是后续项目管理、派单管理、设备管理、用电统计等所有下游业务模块的数据基础。 +- **Target Users**: 运营管理员(ADMIN 角色,全量数据)、业务员(SALESMAN 角色,仅本人客户数据)、业务员 APP(同 SALESMAN 权限,移动端使用)。 + +## Goals +- 实现客户信息(customer)完整 CRUD,含业务编号自动生成、省市区地址、状态流转、负责业务员分配 +- 实现客户部门(customer_department)完整 CRUD,按客户归属过滤 +- 实现客户访问账号(customer_account)完整 CRUD,按客户归属过滤,默认密码自动生成与 bcrypt 加密 +- 接入现有 RBAC 鉴权体系:菜单/按钮权限 + 行级数据隔离(ADMIN 全量、SALESMAN 按 salesman_id 过滤) +- 前端 UI 与现有用户管理页保持一致风格(搜索栏 + 表格 + 弹窗),省市区级联、表格内部滚动 +- 接口防 SQL 注入(参数化查询),前端防 XSS(输入校验 + 避免 v-html),敏感字段脱敏 +- 同一套 API 无差别兼容 Web 管理后台和业务员 APP + +## Non-Goals (Out of Scope) +- 客户拜访(customer_visit)、客户建筑(customer_building)、客户房间(customer_room)、客户设备(customer_equipment)四个子模块(后续迭代) +- 共享电工 APP(WORKER 角色)和客户微信小程序(CUSTOMER 角色)的专属接口(文档确认本期不含) +- 业务员 APP 的移动端 UI 页面(本期仅保证 API 可用,UI 由独立 uni-app 项目负责) +- 客户状态驱动的自动流转、客户画像/报表分析(后续统计报表模块) +- 文件上传(设备照片、合同文件)、短信通知初始密码、首次登录强制改密码 + +## Background & Context +- **现有架构**: 后端 Midway.js (Koa) + Sequelize-typescript + PostgreSQL;前端 Vue3 + Ant Design Vue 4 + Vite;鉴权 JWT + RBAC 中间件(`rbac.middleware.ts` 基于路径前缀匹配权限码) +- **已有数据库种子**(`database/db_seed.sql`):4 个角色(ADMIN/SALESMAN/WORKER/CUSTOMER)、6 条顶级菜单(含「客户管理」parent_id=NULL id=1 permission=customer:list)、SALESMAN 角色已绑定客户/项目/统计报表 3 个顶级菜单 +- **已有客户管理路由占位**(`client/src/router/index.ts`):`/customer` 路径指向 Placeholder.vue,permission=customer:list +- **RBAC 中间件映射表**(`rbac.middleware.ts` PERMISSION_MAP):当前仅含 /api/users、/api/roles 等系统管理路由,需新增客户域 3 条映射 +- **数据隔离要求**:SALESMAN 角色只能看到自己负责的客户;customer、customer_department、customer_account 三张表均需支持 salesman_id 行级过滤(customer_account 通过 customer_id → customer.salesman_id 关联) + +## Functional Requirements +### FR-1:客户信息管理(customer) +系统 SHALL 提供客户信息的完整 CRUD 和查询能力: +- 列表:分页(page/pageSize)、关键词搜索(客户名称/联系人/电话)、状态筛选(1意向/2签约/3运维中/4终止)、负责业务员筛选 +- 字段:id、customer_no(自动生成,KH+YYYYMMDD+3位序号,UNIQUE)、customer_name(必填)、province/city/district(省市区级联)、address、contact_person、contact_phone、postal_code、fax、customer_level(学校/医院/企业等)、status(默认1意向)、salesman_id(关联 sys_user.id,允许 NULL 由 ADMIN 分配)、created_at、updated_at +- 创建:必填校验、customer_no 自动生成、写入 salesman_id(若当前角色为 SALESMAN 则强制=当前用户ID) +- 更新:字段白名单更新、customer_no 只读不可改 +- 删除:硬删除,若存在关联 customer_department / customer_account 则提示禁止删除或级联删除(参照外键约束) +- 列表返回不包含敏感字段(无密码类字段) + +### FR-2:客户部门管理(customer_department) +系统 SHALL 提供客户部门的完整 CRUD,数据按所属客户过滤: +- 列表:分页、关键词搜索(部门名称/联系人/电话)、按 customer_id 过滤(必选或必带权限过滤) +- 字段:id、customer_id(FK customer,必填)、dept_name(必填)、contact_person、contact_phone、function_desc、created_at +- 行级权限:SALESMAN 仅可操作自己客户下的部门(通过 customer.salesman_id 关联校验) +- 删除:若存在关联 customer_room(虽本期不实现,但需保留外键约束友好提示) + +### FR-3:客户访问账号管理(customer_account) +系统 SHALL 提供客户侧访问账号的完整 CRUD,数据按所属客户过滤: +- 列表:分页、关键词搜索(电话)、按 customer_id 过滤、状态筛选(1启用/0禁用) +- 字段:id、customer_id(FK customer,必填)、phone(UNIQUE,必填,登录账号)、password_hash(bcrypt)、wx_openid(本期可NULL)、status(默认1启用)、last_login_at、created_at +- 创建:默认密码 = 手机号后6位(不足6位用 123456),自动 bcrypt 后存 password_hash +- 更新:可改状态;修改密码需单独字段触发并重新 bcrypt +- 行级权限:SALESMAN 仅可操作自己客户下的账号 +- 列表返回不得携带 password_hash / wx_openid 等敏感字段 + +### FR-4:接口鉴权与数据权限(复用现有体系扩展) +系统 SHALL 将客户域接口接入现有认证与权限体系: +- 所有客户域接口要求登录(走 auth.middleware → JWT 校验) +- RBAC 中间件新增 3 条路径映射:`/api/customers→customer:list`、`/api/customer-departments→customer:department`、`/api/customer-accounts→customer:account` +- 超级管理员(ADMIN)直接放行 +- 行级数据隔离:SALESMAN 角色的 customer 列表自动加 `salesman_id = ctx.state.user.userId` 条件;customer_department / customer_account 通过 customer_id JOIN customer.salesman_id 过滤 +- 越权访问控制:SALESMAN 更新/删除时校验目标记录是否归属自己,否则返回 403 + +### FR-5:菜单与按钮权限(db_seed.sql 扩展) +系统 SHALL 在种子数据中补全客户域菜单与按钮权限: +- 将「客户管理」顶级菜单(id=1)改为目录类型 menu_type=1,作为父节点 +- 新增 3 条子菜单:客户信息(/customer/info / customer/info/index / permission=customer:list)、客户部门(/customer/department / customer/department/index / permission=customer:department)、客户账号(/customer/account / customer/account/index / permission=customer:account) +- 新增若干按钮权限(menu_type=3):各模块的 create / update / delete 按钮权限(如 customer:create、customer:update、customer:delete) +- 角色-菜单绑定:ADMIN 全部绑定,SALESMAN 绑定客户域全部菜单和按钮 + +### FR-6:前端页面(Web 端 3 个页面) +系统 SHALL 提供 3 个 Vue 页面,风格与现有用户管理完全一致: +- 客户信息页(customer/info/index.vue):搜索栏(关键词、状态、业务员下拉)+ 表格(列含客户编号、名称、省市区、联系人、电话、级别、状态、创建时间、操作)+ 新增/编辑弹窗(含省市区 a-cascader + 业务员下拉 + 表单校验) +- 客户部门页(customer/department/index.vue):搜索栏(关键词、客户下拉)+ 表格 + 弹窗(部门名称、联系人、电话、职能描述) +- 客户账号页(customer/account/index.vue):搜索栏(关键词、客户下拉、状态)+ 表格(列含客户名称、电话、状态、创建时间、操作;提示默认密码=手机后6位)+ 弹窗(客户下拉、电话、状态;编辑时提供"重置密码为手机后6位"快捷操作) +- 通用:表格内部滚动(复用 useTableScroll composable)、新增/编辑成功后页码重置到第一页并重新拉取列表、删除二次确认、状态 switch 一键切换 + +### FR-7:前后端接口契约一致性(兼容 APP) +系统 SHALL 提供统一的 REST 接口,Web 后台和业务员 APP 共用: +- 路径前缀:`/api/customers`、`/api/customer-departments`、`/api/customer-accounts`(与现有 /api/users 风格一致) +- 通用返回结构:`{ code: 200, message: '...', data: { list, total, page, pageSize } }`(列表)或 `{ code: 200, message, data: {...} | null }`(单条/写操作) +- 鉴权方式:统一 Authorization: Bearer (JWT),APP 端和 Web 端完全相同 +- 错误码:401 未登录 / 403 无权限 / 400 参数错误 / 404 不存在 / 500 服务异常 +- 分页参数:page、pageSize;搜索 keyword;筛选字段均为 Query 参数,后端统一做数字类型校验和上限保护(pageSize ≤ 200) +- 接口幂等:写操作均通过 id 区分,UNIQUE 字段(customer_no、customer_account.phone)冲突返回 400 + 明确 message + +## Non-Functional Requirements +### NFR-1:防 SQL 注入 +所有数据库查询必须通过 Sequelize 参数化 API(`findAndCountAll`、`create`、`update`、`destroy` + `where` 对象),禁止任何字符串拼接 SQL;LIKE 模糊查询使用 `{ [Op.like]: \`%\${keyword}%\` }` 而非字符串模板。 + +### NFR-2:前端防 XSS +- 前端不使用 `v-html` 渲染任何用户输入字段,全部使用 `v-text` 或 AntDV 默认文本渲染(AntDV 默认转义) +- 表单输入添加长度限制(VARCHAR 字段按数据库长度上限 + regex 过滤 `<` `>` `"` `'` `` +- **When**: 保存后列表页渲染该客户名称 +- **Then**: 名称以纯文本展示(脚本不执行);浏览器 Console 无异常报错 +- **Verification**: `human-judgment`(页面观察) + +### AC-8:业务员 APP 接口兼容 +- **Given**: 使用任意 HTTP 客户端(curl/Postman)模拟 APP 请求,Authorization 头携带 SALESMAN 的有效 JWT +- **When**: 调用客户域 GET/POST/PUT/DELETE 接口 +- **Then**: 返回结构与 Web 端调用完全一致(同 code/message/data 结构);分页/搜索/鉴权行为无差别 +- **Verification**: `programmatic` + +### AC-9:前端列表刷新链路 +- **Given**: 当前在客户列表第 3 页 +- **When**: 新增/编辑/删除一条记录成功 +- **Then**: 分页页码重置为 1,列表重新拉取显示最新数据;搜索筛选条件保留(不清空 keyword/status) +- **Verification**: `human-judgment` + `programmatic`(网络面板确认请求 page=1) + +## Open Questions +- [ ] (已确认)功能范围:仅客户信息 + 客户部门 + 客户账号 3 个模块 +- [ ] (已确认)customer.salesman_id 行级隔离 + ADMIN 全量 +- [ ] (已确认)APP 兼容 = 业务员 APP 与后台共用 API,复用 sys_user 登录 +- [ ] (已确认)customer.status 枚举 1意向/2签约/3运维中/4终止;customer_no 自动生成 +- [ ] (已确认)customer_account 默认密码=手机后6位,bcrypt 加密 +- [ ] (已确认)前端 UI:a-cascader 省市区 + 弹窗模式 + 表格内滚动 diff --git a/.trae/specs/customer-management-core/tasks.md b/.trae/specs/customer-management-core/tasks.md new file mode 100644 index 0000000..db42f92 --- /dev/null +++ b/.trae/specs/customer-management-core/tasks.md @@ -0,0 +1,212 @@ +# 鑫潼智电系统 · 客户管理核心模块 - The Implementation Plan (Decomposed and Prioritized Task List) + +## [x] Task 1: 新增 3 个 Sequelize Entity 模型文件 +- **Priority**: high +- **Depends On**: None +- **Description**: + - 在 `server/src/entity/` 下新增 `customer.entity.ts`:字段严格对齐 spec.md + DB 设计文档,新增 `customer_no` (VARCHAR(64) UNIQUE) 和 `salesman_id` (BIGINT FK→sys_user.id),province/city/district/address/contact_person/contact_phone/postal_code/fax/customer_level/status(SMALLINT default 1)/created_at/updated_at + - 新增 `customer_department.entity.ts`:id/customer_id(FK)/dept_name/contact_person/contact_phone/function_desc/created_at,BelongsTo Customer 关联 + - 新增 `customer_account.entity.ts`:id/customer_id(FK)/phone(UNIQUE)/password_hash/wx_openid/status/last_login_at/created_at,BelongsTo Customer 关联 + - 每个 Entity 定义必要索引(customer: customer_name, salesman_id, status, customer_no unique; department: customer_id; account: customer_id, phone unique) + - 字段使用 `field` 映射 snake_case 列名,`comment` 加中文注释,`@CreatedAt @UpdatedAt` 装饰器 +- **Acceptance Criteria Addressed**: FR-1, FR-2, FR-3, NFR-1 +- **Test Requirements**: + - `programmatic` TR-1.1: Sequelize sync 后 PostgreSQL 中三张表成功建立,字段类型/长度/默认值/索引与定义一致,外键约束存在 + - `programmatic` TR-1.2: customer 表插入一条含 phone 的 customer_account,尝试重号 phone 抛唯一约束错误 + - `human-judgement` TR-1.3: 代码 review 确认字段未遗漏 customer_no / salesman_id / password_hash / status 等关键列 +- **Notes**: 沿用现有 `sysUser.entity.ts` 风格,DataType + 注释 + timestamps 配置一致 + +## [x] Task 2: 扩展 db_seed.sql 客户域菜单与权限 +- **Priority**: high +- **Depends On**: None +- **Description**: + - 把现有 id=1「客户管理」顶级菜单 menu_type 从 2 改为 1(目录),parent_id=NULL 不变 + - 新增 3 条子菜单(id=12/13/14),parent_id=1:12=客户信息(/customer/info component=customer/info/index permission=customer:list)、13=客户部门(/customer/department component=customer/department/index permission=customer:department)、14=客户账号(/customer/account component=customer/account/index permission=customer:account) + - 新增 9 条按钮权限菜单(menu_type=3)id=15~23:customer:create / customer:update / customer:delete / department:create / department:update / department:delete / account:create / account:update / account:delete + - UPDATE `sys_role_menu`:ADMIN(role_id=1) 新增绑定 12~23 全部;SALESMAN(role_id=2) 新增绑定 12~23 全部(删除原只绑定 id=1 的记录,或新增并保留 id=1) + - 保持 ON CONFLICT DO UPDATE / DO NOTHING 幂等性 +- **Acceptance Criteria Addressed**: FR-5, AC-4 +- **Test Requirements**: + - `programmatic` TR-2.1: 执行 psql -f db_seed.sql 后 sys_menu 表 id 1~23 全部存在,id=1 menu_type=1,id=12/13/14 parent_id=1 + - `programmatic` TR-2.2: sys_role_menu 中 role_id=1 包含 menu_id 1~23 全部;role_id=2 至少包含 1,12,13,14,15..23 +- **Notes**: 先 TRUNCATE 或逐条 DELETE ON CONFLICT 前需注意不要误删系统管理菜单,建议所有 INSERT 使用显式 id + ON CONFLICT (id) DO UPDATE + +## [x] Task 3: 扩展 RBAC 中间件 + 注册 Entity 到配置 +- **Priority**: high +- **Depends On**: [Task 1, Task 2] +- **Description**: + - 在 `server/src/middleware/rbac.middleware.ts` 的 `PERMISSION_MAP` 中新增 3 条: + - `/api/customers` → `customer:list` + - `/api/customer-departments` → `customer:department` + - `/api/customer-accounts` → `customer:account` + - 在 `server/src/configuration.ts` 或 Sequelize 配置 `config.default.ts` 的 `models` 数组中,显式 import 并加入 `Customer` / `CustomerDepartment` / `CustomerAccount` 三个 Entity(确保 sync 时加载) +- **Acceptance Criteria Addressed**: FR-4, AC-2, AC-4 +- **Test Requirements**: + - `programmatic` TR-3.1: 用无权限 token 访问 GET /api/customers 返回 403(rbac 中间件工作);ADMIN token 返回 200 + - `programmatic` TR-3.2: 服务启动无 Entity 加载报错,sync 后 3 张表存在 +- **Notes**: 若 models 采用目录扫描自动加载,Task 1 把 Entity 放对目录即可;如显式 import 列表则需手动追加 + +## [x] Task 4: 新增客户域 DTO 参数校验类 +- **Priority**: high +- **Depends On**: [Task 1] +- **Description**: + - 新建 `server/src/dto/customer.dto.ts`: + - `CustomerQueryDto`:page/ pageSize(number, min 1, max 200)/ keyword(string, max 64)/ status(SMALLINT 1-4)/ salesmanId(optional) + - `CustomerCreateDto`:customerName(required, max 128, regex 禁 script tag)/ province/city/district/address(max 256)/ contactPerson/ contactPhone(regex 手机号)/ postalCode?/ fax?/ customerLevel?/ status(default 1)/ salesmanId? + - `CustomerUpdateDto`:字段可选,与 create 共用正则 + - 新建 `server/src/dto/customer.department.dto.ts`:CustomerDepartmentQueryDto / Create / Update(customerId required 数字) + - 新建 `server/src/dto/customer.account.dto.ts`:CustomerAccountQueryDto / Create / Update;CreateDto 无 password 字段(由 service 自动生成),UpdateDto 含可选 resetPassword 标志位 + status +- **Acceptance Criteria Addressed**: FR-1, FR-2, FR-3, NFR-6 +- **Test Requirements**: + - `programmatic` TR-4.1: 传空 customerName 创建 → 返回 400 参数错误 + - `programmatic` TR-4.2: 传 pageSize=500 → 校验失败,返回 max 200 提示 + - `programmatic` TR-4.3: contactPhone 传 'abc' → regex 校验失败 +- **Notes**: 使用 @midwayjs/validate + class-validator 装饰器,与现有 dto/*.ts 风格一致;禁止使用 any + +## [x] Task 5: 实现 CustomerService(含 customer_no 生成 + 行级过滤) +- **Priority**: high +- **Depends On**: [Task 1, Task 4] +- **Description**: + - 新建 `server/src/service/customer.service.ts`,@Provide() 类 + - list(query, ctx):分页 + 关键词模糊查询 Op.or [customer_name, contact_person, contact_phone] + status 筛选;SALESMAN 角色强制追加 where salesman_id = ctx.state.user.userId;ADMIN 不加 + - detail(id, ctx):按 id 查询,SALESMAN 校验 salesman_id 归属,否则 403 + - generateCustomerNo():查询当日 customer_no 最大序号,规则 `KH + YYYYMMDD + 3位序号`(001 起始);捕获 UNIQUE 冲突重试 1 次 + - create(data, ctx):校验必要字段;若 SALESMAN 创建则 data.salesmanId 强制覆盖为 ctx.state.user.userId;调用 generateCustomerNo();写入后返回完整创建对象 + - update(id, data, ctx):归属校验;字段白名单更新(customer_no / salesman_id(非ADMIN)不可改) + - delete(id, ctx):归属校验;先查是否存在 customer_department 或 customer_account 关联,有则返回 {code:400, message:'该客户存在关联部门/账号,无法删除'};否则删除 + - updateStatus(id, status, ctx):快捷更新状态 +- **Acceptance Criteria Addressed**: FR-1, FR-4, AC-1, AC-2 +- **Test Requirements**: + - `programmatic` TR-5.1: ADMIN 创建 2 个客户后,SALESMAN(id=2) list 返回 total ≤ ADMIN 看到的 total,且返回每条 salesman_id=2 + - `programmatic` TR-5.2: 同一天连续 create 3 条客户,customer_no 分别为 KH001 / 002 / 003,格式正确 + - `programmatic` TR-5.3: SALESMAN 尝试传 salesman_id=3 创建,保存后实际 salesman_id=2(被覆盖) + - `programmatic` TR-5.4: 删除有关联部门的客户 → 返回 400 禁止 +- **Notes**: 所有查询用 Sequelize 参数化 where 对象,禁止拼接;关联 existence 检查用 `findOne({ where: { customerId: id }, limit: 1 })` 而非 countAll,提高性能 + +## [x] Task 6: 实现 CustomerDepartmentService + CustomerAccountService +- **Priority**: high +- **Depends On**: [Task 1, Task 4, Task 5] +- **Description**: + - `customer.department.service.ts`:list(关键词搜索 + 按 customer_id 过滤;SALESMAN 通过 customer_id JOIN customer.salesman_id 过滤);create(校验 customer_id 归属:SALESMAN 需确保目标 customer.salesman_id = 自己);update / delete(归属校验 + 外键关联提示) + - `customer.account.service.ts`:list(按 customer_id / status / keyword phone 模糊;SALESMAN JOIN 过滤;返回 exclude password_hash, wx_openid);create(默认密码=phone 后 6 位 → bcrypt 加密;phone UNIQUE 校验);update(字段白名单;若 resetPassword=true 则重新计算密码 hash;返回值永远不带 password_hash);delete(归属校验);updateStatus(快捷切换) + - 复用 hashPassword 工具:`server/src/util/crypto.ts` +- **Acceptance Criteria Addressed**: FR-2, FR-3, AC-3, AC-5 +- **Test Requirements**: + - `programmatic` TR-6.1: SALESMAN 对自己客户创建部门 → 成功;对别人客户创建部门 → 403 + - `programmatic` TR-6.2: 创建 account phone=13800001234,数据库 password_hash 经过 bcrypt 验证等于 '001234'(可用单元测试对比) + - `programmatic` TR-6.3: 同 phone 创建第二个 account → 返回 400 '手机号已存在' + - `programmatic` TR-6.4: list 接口响应 JSON 中不含 password_hash / wx_openid 字段 +- **Notes**: bcrypt 比较使用 `bcryptjs.compare`;密码生成函数单独抽出便于单元测试 + +## [x] Task 7: 实现客户域 3 个 Controller +- **Priority**: high +- **Depends On**: [Task 5, Task 6] +- **Description**: + - 新建 `server/src/controller/customer.controller.ts`: + - @Controller('/api/customers');@Inject ctx + customerService + - GET '/' list(@Query() query) → service.list(query, ctx) + - GET '/:id' detail(@Param('id') id) → service.detail(id, ctx) + - POST '/' create(@Body() body) → service.create(body, ctx) + - PUT '/:id' update(@Param('id') id, @Body() body) → service.update(id, body, ctx) + - DELETE '/:id' delete(@Param('id') id) → service.delete(id, ctx) + - PUT '/:id/status' updateStatus → service.updateStatus + - 新建 `customer.department.controller.ts`:@Controller('/api/customer-departments'),同上 6 个方法 + - 新建 `customer.account.controller.ts`:@Controller('/api/customer-accounts'),同上 6 个方法 + 可选 POST '/:id/reset-password' + - 所有写操作:@UseMiddleware(AuthMiddleware, RbacMiddleware) 或沿用全局注册方式 + - 统一返回结构:`{ code, message, data }`,与现有 user.service 对齐 +- **Acceptance Criteria Addressed**: FR-7, AC-8 +- **Test Requirements**: + - `programmatic` TR-7.1: 用 curl 调 ADMIN token GET /api/customers?page=1&pageSize=10 → 返回结构 {code:200,message,data:{list,total,page,pageSize}} + - `programmatic` TR-7.2: 无 Authorization 头 → 401 + - `programmatic` TR-7.3: PUT /api/customers/99999(不存在) → 404 +- **Notes**: 检查全局中间件是否已经自动 apply(auth + rbac),如全局已注册则 Controller 不再重复装饰;沿用现有 `user.controller.ts` 风格 + +## [x] Task 8: 前端 API 封装 + 路由改造 +- **Priority**: high +- **Depends On**: [Task 7] +- **Description**: + - 新建 `client/src/api/customer.ts`:`getCustomerList` / `getCustomerDetail` / `createCustomer` / `updateCustomer` / `deleteCustomer` / `updateCustomerStatus`;类型接口 CustomerInfo / CustomerQuery / CustomerCreate 等 + - 新建 `client/src/api/customerDepartment.ts`:对应 CRUD + 类型 + - 新建 `client/src/api/customerAccount.ts`:CRUD + `resetAccountPassword` + 类型 + - 更新 `client/src/router/index.ts`:将原 `/customer` Placeholder 路由拆为 3 条嵌套子路由:`/customer/info` → views/customer/info/index.vue,`/customer/department` → views/customer/department/index.vue,`/customer/account` → views/customer/account/index.vue;父级 component 仍使用 Layout,权限 customer:list/department/account 分别设置 +- **Acceptance Criteria Addressed**: FR-6, FR-7 +- **Test Requirements**: + - `programmatic` TR-8.1: 登录后访问浏览器 /customer/info → 路由正确命中(非 404/403,权限验证通过时) + - `programmatic` TR-8.2: 触发 createCustomer 请求 → Network 面板 url/method/payload 正确,拦截器注入 Authorization +- **Notes**: 所有 API 方法复用 `@/utils/request` 实例(Axios 封装);类型定义 export 供页面使用 + +## [x] Task 9: 前端省市区数据 + 客户信息页面实现 +- **Priority**: high +- **Depends On**: [Task 8] +- **Description**: + - 新建 `client/src/assets/data/region.ts`:轻量省→市→区 3 级 JSON 树(可引入开源数据或手写示例子集至少 10 省+常用市+区),导出 `regionOptions: CascaderOption[]` + - 新建 `client/src/views/customer/info/index.vue`: + - 完全对齐现有 `system/user/index.vue` 布局风格 + - 搜索栏:关键词输入框 + 状态 a-select(字典 customer_status 1~4)+ 业务员 a-select(拉 sys_user 简化列表)+ 查询/重置按钮 + - 表格列:客户编号(ellipsis)、客户名称、省市区(拼接显示)、详细地址、联系人、电话、客户级别、状态(a-switch)、创建时间(formatDateTime)、操作(编辑/删除) + - 弹窗:客户基本信息表单 + 省市区 a-cascader(options=regionOptions, 双向绑定数组 [province,city,district])+ 业务员下拉(仅 ADMIN 可见可改,SALESMAN 登录时隐藏/只读)+ AntD form 校验规则(名称必填、电话 regex、长度限制、XSS 关键字过滤) + - 表格内部滚动:复用 `useTableScroll` composable(wrapperRef, tableHeight) + - 增删成功后:关闭弹窗 → `searchForm.page = 1` → `fetchList()`(保留筛选条件) +- **Acceptance Criteria Addressed**: FR-6, AC-7, AC-9 +- **Test Requirements**: + - `human-judgement` TR-9.1: 页面 UI 与用户管理页风格一致,表格滚动正常,弹窗表单校验生效 + - `programmatic` TR-9.2: 新增客户后 Network 返回 code=200,列表自动刷新并回到 page=1,搜索栏关键词未清空 + - `human-judgement` TR-9.3: 输入客户名称 `` 保存后列表以纯文本显示,脚本不执行 + +## [x] Task 10: 客户部门 + 客户账号前端页面实现 +- **Priority**: high +- **Depends On**: [Task 9] +- **Description**: + - `customer/department/index.vue`: + - 搜索栏:关键词 + 客户下拉(调用 customerApi.getCustomerList({pageSize: 999}) 取简表,ADMIN 显示全部,SALESMAN 只显示自己客户)+ 查询/重置 + - 表格列:所属客户、部门名称、联系人、联系电话、职能描述、创建时间、操作 + - 弹窗:客户下拉(必填)+ 部门名称(必填)+ 联系人 + 电话(regex)+ 职能描述 a-textarea + - 行级归属:SALESMAN 新增/编辑时客户下拉只显示自己客户选项 + - `customer/account/index.vue`: + - 搜索栏:关键词(电话)+ 客户下拉 + 状态 + 查询/重置 + - 表格列:所属客户、登录电话、状态(a-switch)、创建时间、操作(编辑/删除/重置密码按钮) + - 弹窗:客户下拉(必填)+ 登录电话(必填 regex)+ 状态;编辑表单提示「默认密码=手机号后6位」;编辑页底部提供「重置为默认密码」a-checkbox 勾选,勾选后请求体传 resetPassword:true + - 列表顶部提示:默认密码规则说明 +- **Acceptance Criteria Addressed**: FR-6, AC-3, AC-5 +- **Test Requirements**: + - `human-judgement` TR-10.1: SALESMAN 登录新增部门,客户下拉只显示归属自己的客户 + - `programmatic` TR-10.2: 重置默认密码 → 后端更新 hash,用 bcrypt 验证对应密码正确(可后端打临时日志验证或通过 customer_account 登录接口间接测) + - `human-judgement` TR-10.3: 删除确认二次弹框正常工作 + +## [x] Task 11: 集成联调 + 权限/隔离验证 +- **Priority**: high +- **Depends On**: [Task 7, Task 8, Task 9, Task 10] +- **Description**: + - 启动 server(midway dev)+ client(vite dev) + - 场景 1 ADMIN:客户信息/部门/账号 三模块完整 CRUD 走通一遍(新增2条 → 编辑 → 列表搜索/分页/筛选 → 删除1条 → 状态切换) + - 场景 2 SALESMAN:登录 salesman01 → list 仅见自己客户;尝试通过 Postman 越权 PUT /api/customers/<他人客户ID> → 403 + - 场景 3 数据一致性:customer_id 外键删除保护、customer_no UNIQUE、customer_account phone UNIQUE 三项约束均触发成功 + - 场景 4 APP 兼容:用 Postman 模拟 APP 请求(同 JWT token 同 header)→ 所有列表/写操作返回结构与浏览器一致 + - 场景 5 前端 XSS:在 3 个模块的文本输入字段分别注入 `` + `` → 保存后列表纯文本展示不执行 +- **Acceptance Criteria Addressed**: AC-1, AC-2, AC-3, AC-7, AC-8 +- **Test Requirements**: + - `programmatic` TR-11.1: 5 个场景全部通过,接口无 500 + - `human-judgement` TR-11.2: 浏览器 Console 无 JS 报错,XSS 注入脚本不执行 + +## [x] Task 12: SQL 注入安全验证 + 构建/Lint 检查 +- **Priority**: medium +- **Depends On**: [Task 11] +- **Description**: + - 用 Postman 对 3 个列表接口发送 keyword = `' OR 1=1 -- ` 以及 `' OR '1'='1` → 返回结果数量与正常模糊匹配一致(可能=0),不出现全表数据泄露 + - 验证后端所有 Sequelize 代码均未使用 `sequelize.query()` 拼接字符串 SQL(grep 检查) + - 运行 `cd server && yarn lint` + `cd client && yarn build` 确保无 TS 类型错误和 Lint 告警 + - 运行 db_seed.sql 脚本幂等:连续执行 2 次无异常,菜单/角色数据无重复漂移 +- **Acceptance Criteria Addressed**: AC-6, NFR-1, NFR-2, NFR-6 +- **Test Requirements**: + - `programmatic` TR-12.1: SQL 注入测试返回 total 符合预期(无全表) + - `programmatic` TR-12.2: yarn build 两端均通过,0 Error + - `programmatic` TR-12.3: db_seed.sql 第二次执行仍成功,SELECT count(*) FROM sys_menu = 23 +- **Notes**: 若有 `sequelize.query()` 用于 customer_no 生成等场景,强制使用 replacements 参数化,禁止 `\`\${var}\`\`` 字符串拼接 + +## Task Dependencies (DAG) +``` +Task1 ─┐ +Task2 ─┼─→ Task3 ─┐ +Task4 ─┼─→ Task5 ─→ Task7 ─→ Task8 ─→ Task9 ─→ Task10 ─→ Task11 ─→ Task12 + └─→ Task6 ──┘ +``` diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..d1636d0 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,5670 @@ +{ + "name": "client", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "client", + "version": "0.0.0", + "dependencies": { + "@ant-design/icons-vue": "^7.0.1", + "ant-design-vue": "^4.2.6", + "axios": "^1.16.1", + "clsx": "^2.1.1", + "dayjs": "^1.11.21", + "echarts": "^6.1.0", + "less": "^4.6.4", + "lucide-vue-next": "^0.511.0", + "pinia": "^3.0.4", + "tailwind-merge": "^3.3.0", + "vue": "^3.4.15", + "vue-echarts": "^8.0.1", + "vue-router": "4" + }, + "devDependencies": { + "@types/node": "^22.15.30", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", + "@vitejs/plugin-vue": "^5.0.3", + "@vue/runtime-dom": "^3.4.15", + "@vue/tsconfig": "^0.7.0", + "autoprefixer": "^10.4.17", + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.20.1", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "typescript": "~5.3.3", + "unplugin-vue-dev-locator": "^1.0.0", + "vite": "^5.0.12", + "vite-plugin-trae-solo-badge": "^1.0.0", + "vue-tsc": "^1.8.27" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz", + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/icons-vue": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz", + "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-svg": "^4.2.1" + }, + "peerDependencies": { + "vue": ">=3.0.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz", + "integrity": "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-decorators": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz", + "integrity": "sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz", + "integrity": "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz", + "integrity": "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz", + "integrity": "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz", + "integrity": "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz", + "integrity": "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz", + "integrity": "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz", + "integrity": "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz", + "integrity": "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz", + "integrity": "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz", + "integrity": "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz", + "integrity": "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz", + "integrity": "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz", + "integrity": "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz", + "integrity": "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz", + "integrity": "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz", + "integrity": "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz", + "integrity": "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz", + "integrity": "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz", + "integrity": "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz", + "integrity": "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz", + "integrity": "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz", + "integrity": "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz", + "integrity": "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz", + "integrity": "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz", + "integrity": "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@simonwep/pickr": { + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz", + "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", + "license": "MIT", + "dependencies": { + "core-js": "^3.15.1", + "nanopop": "^2.1.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.19.19", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.19.19.tgz", + "integrity": "sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz", + "integrity": "sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz", + "integrity": "sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.2", + "@vue/babel-helper-vue-transform-on": "1.5.0", + "@vue/babel-plugin-resolve-type": "1.5.0", + "@vue/shared": "^3.5.18" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz", + "integrity": "sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/parser": "^7.28.0", + "@vue/compiler-sfc": "^3.5.18" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.34.tgz", + "integrity": "sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.34", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz", + "integrity": "sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz", + "integrity": "sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.34", + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.14", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz", + "integrity": "sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.9", + "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", + "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.9", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.9", + "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", + "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.34.tgz", + "integrity": "sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.34.tgz", + "integrity": "sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz", + "integrity": "sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/runtime-core": "3.5.34", + "@vue/shared": "3.5.34", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.34.tgz", + "integrity": "sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "vue": "3.5.34" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.34.tgz", + "integrity": "sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.7.0.tgz", + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ant-design-vue": { + "version": "4.2.6", + "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.2.6.tgz", + "integrity": "sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-vue": "^7.0.0", + "@babel/runtime": "^7.10.5", + "@ctrl/tinycolor": "^3.5.0", + "@emotion/hash": "^0.9.0", + "@emotion/unitless": "^0.8.0", + "@simonwep/pickr": "~1.8.0", + "array-tree-filter": "^2.1.0", + "async-validator": "^4.0.0", + "csstype": "^3.1.1", + "dayjs": "^1.10.5", + "dom-align": "^1.12.1", + "dom-scroll-into-view": "^2.0.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.15", + "resize-observer-polyfill": "^1.5.1", + "scroll-into-view-if-needed": "^2.2.25", + "shallow-equal": "^1.0.0", + "stylis": "^4.1.3", + "throttle-debounce": "^5.0.0", + "vue-types": "^3.0.0", + "warning": "^4.0.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design-vue" + }, + "peerDependencies": { + "vue": ">=3.2.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.16.1", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.16.1.tgz", + "integrity": "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.32", + "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", + "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmmirror.com/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001793", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", + "license": "MIT" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.21", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.21.tgz", + "integrity": "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-align": { + "version": "1.12.4", + "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz", + "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==", + "license": "MIT" + }, + "node_modules/dom-scroll-into-view": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", + "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==", + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/echarts": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-6.1.0.tgz", + "integrity": "sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "6.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.362", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.362.tgz", + "integrity": "sha512-PUY2DrLvkjkUuWqq+KPL2iWshrJsZOcIojzRQ7eXFacc9dWga7MGMJAa15VbiejSZB1PAXaRLAiKgruHP8LB1w==", + "dev": true, + "license": "ISC" + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC", + "optional": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/less": { + "version": "4.6.4", + "resolved": "https://registry.npmmirror.com/less/-/less-4.6.4.tgz", + "integrity": "sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==", + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^3.0.5", + "parse-node-version": "^1.0.1" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-vue-next": { + "version": "0.511.0", + "resolved": "https://registry.npmmirror.com/lucide-vue-next/-/lucide-vue-next-0.511.0.tgz", + "integrity": "sha512-VSv0F3pHniGN7JMMzDcLFNMQbl8381+shNnHwV8hi+El7xl2ZL8qdNuzPoiBViKk8mTKK5K3ZDfmE/wEcTZVIQ==", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanopop": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz", + "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/node-releases": { + "version": "2.0.46", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.46.tgz", + "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinia": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-3.0.4.tgz", + "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.7" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.5.0", + "vue": "^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/@vue/devtools-api": { + "version": "7.7.9", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT", + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.60.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.60.4.tgz", + "integrity": "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.4", + "@rollup/rollup-android-arm64": "4.60.4", + "@rollup/rollup-darwin-arm64": "4.60.4", + "@rollup/rollup-darwin-x64": "4.60.4", + "@rollup/rollup-freebsd-arm64": "4.60.4", + "@rollup/rollup-freebsd-x64": "4.60.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", + "@rollup/rollup-linux-arm-musleabihf": "4.60.4", + "@rollup/rollup-linux-arm64-gnu": "4.60.4", + "@rollup/rollup-linux-arm64-musl": "4.60.4", + "@rollup/rollup-linux-loong64-gnu": "4.60.4", + "@rollup/rollup-linux-loong64-musl": "4.60.4", + "@rollup/rollup-linux-ppc64-gnu": "4.60.4", + "@rollup/rollup-linux-ppc64-musl": "4.60.4", + "@rollup/rollup-linux-riscv64-gnu": "4.60.4", + "@rollup/rollup-linux-riscv64-musl": "4.60.4", + "@rollup/rollup-linux-s390x-gnu": "4.60.4", + "@rollup/rollup-linux-x64-gnu": "4.60.4", + "@rollup/rollup-linux-x64-musl": "4.60.4", + "@rollup/rollup-openbsd-x64": "4.60.4", + "@rollup/rollup-openharmony-arm64": "4.60.4", + "@rollup/rollup-win32-arm64-msvc": "4.60.4", + "@rollup/rollup-win32-ia32-msvc": "4.60.4", + "@rollup/rollup-win32-x64-gnu": "4.60.4", + "@rollup/rollup-win32-x64-msvc": "4.60.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^1.0.20" + } + }, + "node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylis": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.4.0.tgz", + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/superjson": { + "version": "2.2.6", + "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/superjson/node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/superjson/node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-3.6.0.tgz", + "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-vue-dev-locator": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/unplugin-vue-dev-locator/-/unplugin-vue-dev-locator-1.0.3.tgz", + "integrity": "sha512-pF+qbHcfsUXXg2XzA7mn/uzNweeIr8rW/1LfCgMBP2n1vpLjjJDW0UhrPuQC283ye7+NZGfuDciwPcODVkfemw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kolorist": "^1.8.0", + "unplugin": "^1.5.0", + "vite-plugin-vue-dev-locator": "1.0.3" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-trae-solo-badge": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/vite-plugin-trae-solo-badge/-/vite-plugin-trae-solo-badge-1.0.0.tgz", + "integrity": "sha512-vrNr4QmbcqqMeJPzHBqef70nqDzN6CQngFwuXTJMAgn3zMU4TWzvY0B3BRdjUjvg/BtvNJLlwu2cPKXTUjalHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + }, + "peerDependencies": { + "vite": ">=4.0.0" + } + }, + "node_modules/vite-plugin-trae-solo-badge/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/vite-plugin-vue-dev-locator": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-dev-locator/-/vite-plugin-vue-dev-locator-1.0.3.tgz", + "integrity": "sha512-Gcclrry8LlgbJafrv3+PQW1TS1CBJlSdr8w7nechAjCJ6joqticcYw1ovuK+9LvSM11n9ZzDH7afTaC6dzJeQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@babel/types": "7.23.0", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite-plugin-vue-dev-locator/node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/vue": { + "version": "3.5.34", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.34.tgz", + "integrity": "sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-sfc": "3.5.34", + "@vue/runtime-dom": "3.5.34", + "@vue/server-renderer": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-echarts": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-8.0.1.tgz", + "integrity": "sha512-23rJTFLu1OUEGRWjJGmdGt8fP+8+ja1gVgzMYPIPaHWpXegcO1viIAaeu2H4QHESlVeHzUAHIxKXGrwjsyXAaA==", + "license": "MIT", + "peerDependencies": { + "echarts": "^6.0.0", + "vue": "^3.3.0" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-types": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz", + "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", + "license": "MIT", + "dependencies": { + "is-plain-object": "3.0.1" + }, + "engines": { + "node": ">=10.15.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zrender": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-6.1.0.tgz", + "integrity": "sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/client/src/api/customer.ts b/client/src/api/customer.ts new file mode 100644 index 0000000..6af002f --- /dev/null +++ b/client/src/api/customer.ts @@ -0,0 +1,92 @@ +import request from '@/utils/request'; + +export interface CustomerInfo { + id: number; + customerNo: string; + customerName: string; + province?: string; + city?: string; + district?: string; + address?: string; + contactPerson?: string; + contactPhone?: string; + postalCode?: string; + fax?: string; + customerLevel?: string; + status: number; + salesmanId?: number; + createdAt: string; + updatedAt: string; +} + +export interface CustomerQuery { + page?: number; + pageSize?: number; + keyword?: string; + status?: number; + salesmanId?: number; +} + +export interface CustomerListResult { + list: CustomerInfo[]; + total: number; + page: number; + pageSize: number; +} + +export interface CustomerCreateParams { + customerName: string; + province?: string; + city?: string; + district?: string; + address?: string; + contactPerson?: string; + contactPhone?: string; + postalCode?: string; + fax?: string; + customerLevel?: string; + status?: number; + salesmanId?: number; +} + +export interface CustomerUpdateParams { + customerName?: string; + province?: string; + city?: string; + district?: string; + address?: string; + contactPerson?: string; + contactPhone?: string; + postalCode?: string; + fax?: string; + customerLevel?: string; + status?: number; + salesmanId?: number; +} + +export interface CustomerStatusParams { + status: number; +} + +export const customerApi = { + getCustomerList: (params: CustomerQuery) => + request.get('/customers', { params }), + + getCustomerDetail: (id: number) => + request.get(`/customers/${id}`), + + getCustomerOptions: () => + request.get('/customers/options/all'), + + createCustomer: (data: CustomerCreateParams) => + request.post('/customers', data), + + updateCustomer: (id: number, data: CustomerUpdateParams) => + request.put(`/customers/${id}`, data), + + deleteCustomer: (id: number) => + request.delete(`/customers/${id}`), + + updateCustomerStatus: (id: number, status: number) => + request.put(`/customers/${id}/status`, { status }), +}; diff --git a/client/src/api/customerAccount.ts b/client/src/api/customerAccount.ts new file mode 100644 index 0000000..7bf4f66 --- /dev/null +++ b/client/src/api/customerAccount.ts @@ -0,0 +1,64 @@ +import request from '@/utils/request'; + +export interface CustomerAccountInfo { + id: number; + customerId: number; + phone: string; + status: number; + lastLoginAt?: string | null; + createdAt: string; +} + +export interface AccountQuery { + page?: number; + pageSize?: number; + keyword?: string; + customerId?: number; + status?: number; +} + +export interface AccountListResult { + list: CustomerAccountInfo[]; + total: number; + page: number; + pageSize: number; +} + +export interface AccountCreateParams { + customerId: number; + phone: string; + status?: number; +} + +export interface AccountUpdateParams { + phone?: string; + status?: number; + resetPassword?: boolean; +} + +export interface AccountStatusParams { + status: number; +} + +export const customerAccountApi = { + getAccountList: (params: AccountQuery) => + request.get('/customer-accounts', { params }), + + getAccountDetail: (id: number) => + request.get(`/customer-accounts/${id}`), + + createAccount: (data: AccountCreateParams) => + request.post('/customer-accounts', data), + + updateAccount: (id: number, data: AccountUpdateParams) => + request.put(`/customer-accounts/${id}`, data), + + deleteAccount: (id: number) => + request.delete(`/customer-accounts/${id}`), + + updateAccountStatus: (id: number, status: number) => + request.put(`/customer-accounts/${id}/status`, { status }), + + resetAccountPassword: (id: number) => + request.post(`/customer-accounts/${id}/reset-password`), +}; diff --git a/client/src/api/customerDepartment.ts b/client/src/api/customerDepartment.ts new file mode 100644 index 0000000..c13ad75 --- /dev/null +++ b/client/src/api/customerDepartment.ts @@ -0,0 +1,58 @@ +import request from '@/utils/request'; + +export interface CustomerDepartmentInfo { + id: number; + customerId: number; + deptName: string; + contactPerson?: string; + contactPhone?: string; + functionDesc?: string; + createdAt: string; +} + +export interface DepartmentQuery { + page?: number; + pageSize?: number; + keyword?: string; + customerId?: number; +} + +export interface DepartmentListResult { + list: CustomerDepartmentInfo[]; + total: number; + page: number; + pageSize: number; +} + +export interface DepartmentCreateParams { + customerId: number; + deptName: string; + contactPerson?: string; + contactPhone?: string; + functionDesc?: string; +} + +export interface DepartmentUpdateParams { + customerId?: number; + deptName?: string; + contactPerson?: string; + contactPhone?: string; + functionDesc?: string; +} + +export const customerDepartmentApi = { + getDepartmentList: (params: DepartmentQuery) => + request.get('/customer-departments', { params }), + + getDepartmentDetail: (id: number) => + request.get(`/customer-departments/${id}`), + + createDepartment: (data: DepartmentCreateParams) => + request.post('/customer-departments', data), + + updateDepartment: (id: number, data: DepartmentUpdateParams) => + request.put(`/customer-departments/${id}`, data), + + deleteDepartment: (id: number) => + request.delete(`/customer-departments/${id}`), +}; diff --git a/client/src/assets/data/region.ts b/client/src/assets/data/region.ts new file mode 100644 index 0000000..dd53871 --- /dev/null +++ b/client/src/assets/data/region.ts @@ -0,0 +1,16340 @@ +// 自动生成:基于 @vant/area-data(民政部 GB/T 2260 行政区划数据) +// 生成时间:2026-08-23 +// 包含 34 个省级行政区、368 个市、3479 个区县 + +export interface CascaderOption { + value: string; + label: string; + children?: CascaderOption[]; +} + +export const regionOptions: CascaderOption[] = [ + { + value: "北京市", + label: "北京市", + children: [ + { + value: "北京市", + label: "北京市", + children: [ + { + value: "东城区", + label: "东城区" + }, + { + value: "西城区", + label: "西城区" + }, + { + value: "朝阳区", + label: "朝阳区" + }, + { + value: "丰台区", + label: "丰台区" + }, + { + value: "石景山区", + label: "石景山区" + }, + { + value: "海淀区", + label: "海淀区" + }, + { + value: "门头沟区", + label: "门头沟区" + }, + { + value: "房山区", + label: "房山区" + }, + { + value: "通州区", + label: "通州区" + }, + { + value: "顺义区", + label: "顺义区" + }, + { + value: "昌平区", + label: "昌平区" + }, + { + value: "大兴区", + label: "大兴区" + }, + { + value: "怀柔区", + label: "怀柔区" + }, + { + value: "平谷区", + label: "平谷区" + }, + { + value: "密云区", + label: "密云区" + }, + { + value: "延庆区", + label: "延庆区" + } + ] + } + ] + }, + { + value: "天津市", + label: "天津市", + children: [ + { + value: "天津市", + label: "天津市", + children: [ + { + value: "和平区", + label: "和平区" + }, + { + value: "河东区", + label: "河东区" + }, + { + value: "河西区", + label: "河西区" + }, + { + value: "南开区", + label: "南开区" + }, + { + value: "河北区", + label: "河北区" + }, + { + value: "红桥区", + label: "红桥区" + }, + { + value: "东丽区", + label: "东丽区" + }, + { + value: "西青区", + label: "西青区" + }, + { + value: "津南区", + label: "津南区" + }, + { + value: "北辰区", + label: "北辰区" + }, + { + value: "武清区", + label: "武清区" + }, + { + value: "宝坻区", + label: "宝坻区" + }, + { + value: "滨海新区", + label: "滨海新区" + }, + { + value: "宁河区", + label: "宁河区" + }, + { + value: "静海区", + label: "静海区" + }, + { + value: "蓟州区", + label: "蓟州区" + } + ] + } + ] + }, + { + value: "河北省", + label: "河北省", + children: [ + { + value: "石家庄市", + label: "石家庄市", + children: [ + { + value: "长安区", + label: "长安区" + }, + { + value: "桥西区", + label: "桥西区" + }, + { + value: "新华区", + label: "新华区" + }, + { + value: "井陉矿区", + label: "井陉矿区" + }, + { + value: "裕华区", + label: "裕华区" + }, + { + value: "藁城区", + label: "藁城区" + }, + { + value: "鹿泉区", + label: "鹿泉区" + }, + { + value: "栾城区", + label: "栾城区" + }, + { + value: "井陉县", + label: "井陉县" + }, + { + value: "正定县", + label: "正定县" + }, + { + value: "行唐县", + label: "行唐县" + }, + { + value: "灵寿县", + label: "灵寿县" + }, + { + value: "高邑县", + label: "高邑县" + }, + { + value: "深泽县", + label: "深泽县" + }, + { + value: "赞皇县", + label: "赞皇县" + }, + { + value: "无极县", + label: "无极县" + }, + { + value: "平山县", + label: "平山县" + }, + { + value: "元氏县", + label: "元氏县" + }, + { + value: "赵县", + label: "赵县" + }, + { + value: "石家庄高新技术产业开发区", + label: "石家庄高新技术产业开发区" + }, + { + value: "石家庄循环化工园区", + label: "石家庄循环化工园区" + }, + { + value: "辛集市", + label: "辛集市" + }, + { + value: "晋州市", + label: "晋州市" + }, + { + value: "新乐市", + label: "新乐市" + } + ] + }, + { + value: "唐山市", + label: "唐山市", + children: [ + { + value: "路南区", + label: "路南区" + }, + { + value: "路北区", + label: "路北区" + }, + { + value: "古冶区", + label: "古冶区" + }, + { + value: "开平区", + label: "开平区" + }, + { + value: "丰南区", + label: "丰南区" + }, + { + value: "丰润区", + label: "丰润区" + }, + { + value: "曹妃甸区", + label: "曹妃甸区" + }, + { + value: "滦南县", + label: "滦南县" + }, + { + value: "乐亭县", + label: "乐亭县" + }, + { + value: "迁西县", + label: "迁西县" + }, + { + value: "玉田县", + label: "玉田县" + }, + { + value: "唐山高新技术产业开发区", + label: "唐山高新技术产业开发区" + }, + { + value: "河北唐山海港经济开发区", + label: "河北唐山海港经济开发区" + }, + { + value: "遵化市", + label: "遵化市" + }, + { + value: "迁安市", + label: "迁安市" + }, + { + value: "滦州市", + label: "滦州市" + } + ] + }, + { + value: "秦皇岛市", + label: "秦皇岛市", + children: [ + { + value: "海港区", + label: "海港区" + }, + { + value: "山海关区", + label: "山海关区" + }, + { + value: "北戴河区", + label: "北戴河区" + }, + { + value: "抚宁区", + label: "抚宁区" + }, + { + value: "青龙满族自治县", + label: "青龙满族自治县" + }, + { + value: "昌黎县", + label: "昌黎县" + }, + { + value: "卢龙县", + label: "卢龙县" + }, + { + value: "秦皇岛市经济技术开发区", + label: "秦皇岛市经济技术开发区" + }, + { + value: "北戴河新区", + label: "北戴河新区" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "邯郸市", + label: "邯郸市", + children: [ + { + value: "邯山区", + label: "邯山区" + }, + { + value: "丛台区", + label: "丛台区" + }, + { + value: "复兴区", + label: "复兴区" + }, + { + value: "峰峰矿区", + label: "峰峰矿区" + }, + { + value: "肥乡区", + label: "肥乡区" + }, + { + value: "永年区", + label: "永年区" + }, + { + value: "临漳县", + label: "临漳县" + }, + { + value: "成安县", + label: "成安县" + }, + { + value: "大名县", + label: "大名县" + }, + { + value: "涉县", + label: "涉县" + }, + { + value: "磁县", + label: "磁县" + }, + { + value: "邱县", + label: "邱县" + }, + { + value: "鸡泽县", + label: "鸡泽县" + }, + { + value: "广平县", + label: "广平县" + }, + { + value: "馆陶县", + label: "馆陶县" + }, + { + value: "魏县", + label: "魏县" + }, + { + value: "曲周县", + label: "曲周县" + }, + { + value: "邯郸经济技术开发区", + label: "邯郸经济技术开发区" + }, + { + value: "邯郸冀南新区", + label: "邯郸冀南新区" + }, + { + value: "武安市", + label: "武安市" + } + ] + }, + { + value: "邢台市", + label: "邢台市", + children: [ + { + value: "襄都区", + label: "襄都区" + }, + { + value: "信都区", + label: "信都区" + }, + { + value: "任泽区", + label: "任泽区" + }, + { + value: "南和区", + label: "南和区" + }, + { + value: "临城县", + label: "临城县" + }, + { + value: "内丘县", + label: "内丘县" + }, + { + value: "柏乡县", + label: "柏乡县" + }, + { + value: "隆尧县", + label: "隆尧县" + }, + { + value: "宁晋县", + label: "宁晋县" + }, + { + value: "巨鹿县", + label: "巨鹿县" + }, + { + value: "新河县", + label: "新河县" + }, + { + value: "广宗县", + label: "广宗县" + }, + { + value: "平乡县", + label: "平乡县" + }, + { + value: "威县", + label: "威县" + }, + { + value: "清河县", + label: "清河县" + }, + { + value: "临西县", + label: "临西县" + }, + { + value: "河北邢台经济开发区", + label: "河北邢台经济开发区" + }, + { + value: "南宫市", + label: "南宫市" + }, + { + value: "沙河市", + label: "沙河市" + } + ] + }, + { + value: "保定市", + label: "保定市", + children: [ + { + value: "竞秀区", + label: "竞秀区" + }, + { + value: "莲池区", + label: "莲池区" + }, + { + value: "满城区", + label: "满城区" + }, + { + value: "清苑区", + label: "清苑区" + }, + { + value: "徐水区", + label: "徐水区" + }, + { + value: "涞水县", + label: "涞水县" + }, + { + value: "阜平县", + label: "阜平县" + }, + { + value: "定兴县", + label: "定兴县" + }, + { + value: "唐县", + label: "唐县" + }, + { + value: "高阳县", + label: "高阳县" + }, + { + value: "容城县", + label: "容城县" + }, + { + value: "涞源县", + label: "涞源县" + }, + { + value: "望都县", + label: "望都县" + }, + { + value: "安新县", + label: "安新县" + }, + { + value: "易县", + label: "易县" + }, + { + value: "曲阳县", + label: "曲阳县" + }, + { + value: "蠡县", + label: "蠡县" + }, + { + value: "顺平县", + label: "顺平县" + }, + { + value: "博野县", + label: "博野县" + }, + { + value: "雄县", + label: "雄县" + }, + { + value: "保定高新技术产业开发区", + label: "保定高新技术产业开发区" + }, + { + value: "保定白沟新城", + label: "保定白沟新城" + }, + { + value: "涿州市", + label: "涿州市" + }, + { + value: "定州市", + label: "定州市" + }, + { + value: "安国市", + label: "安国市" + }, + { + value: "高碑店市", + label: "高碑店市" + } + ] + }, + { + value: "张家口市", + label: "张家口市", + children: [ + { + value: "桥东区", + label: "桥东区" + }, + { + value: "桥西区", + label: "桥西区" + }, + { + value: "宣化区", + label: "宣化区" + }, + { + value: "下花园区", + label: "下花园区" + }, + { + value: "万全区", + label: "万全区" + }, + { + value: "崇礼区", + label: "崇礼区" + }, + { + value: "张北县", + label: "张北县" + }, + { + value: "康保县", + label: "康保县" + }, + { + value: "沽源县", + label: "沽源县" + }, + { + value: "尚义县", + label: "尚义县" + }, + { + value: "蔚县", + label: "蔚县" + }, + { + value: "阳原县", + label: "阳原县" + }, + { + value: "怀安县", + label: "怀安县" + }, + { + value: "怀来县", + label: "怀来县" + }, + { + value: "涿鹿县", + label: "涿鹿县" + }, + { + value: "赤城县", + label: "赤城县" + }, + { + value: "张家口市察北管理区", + label: "张家口市察北管理区" + } + ] + }, + { + value: "承德市", + label: "承德市", + children: [ + { + value: "双桥区", + label: "双桥区" + }, + { + value: "双滦区", + label: "双滦区" + }, + { + value: "鹰手营子矿区", + label: "鹰手营子矿区" + }, + { + value: "承德县", + label: "承德县" + }, + { + value: "兴隆县", + label: "兴隆县" + }, + { + value: "滦平县", + label: "滦平县" + }, + { + value: "隆化县", + label: "隆化县" + }, + { + value: "丰宁满族自治县", + label: "丰宁满族自治县" + }, + { + value: "宽城满族自治县", + label: "宽城满族自治县" + }, + { + value: "围场满族蒙古族自治县", + label: "围场满族蒙古族自治县" + }, + { + value: "承德高新技术产业开发区", + label: "承德高新技术产业开发区" + }, + { + value: "平泉市", + label: "平泉市" + } + ] + }, + { + value: "沧州市", + label: "沧州市", + children: [ + { + value: "新华区", + label: "新华区" + }, + { + value: "运河区", + label: "运河区" + }, + { + value: "沧县", + label: "沧县" + }, + { + value: "青县", + label: "青县" + }, + { + value: "东光县", + label: "东光县" + }, + { + value: "海兴县", + label: "海兴县" + }, + { + value: "盐山县", + label: "盐山县" + }, + { + value: "肃宁县", + label: "肃宁县" + }, + { + value: "南皮县", + label: "南皮县" + }, + { + value: "吴桥县", + label: "吴桥县" + }, + { + value: "献县", + label: "献县" + }, + { + value: "孟村回族自治县", + label: "孟村回族自治县" + }, + { + value: "河北沧州经济开发区", + label: "河北沧州经济开发区" + }, + { + value: "沧州高新技术产业开发区", + label: "沧州高新技术产业开发区" + }, + { + value: "沧州渤海新区", + label: "沧州渤海新区" + }, + { + value: "泊头市", + label: "泊头市" + }, + { + value: "任丘市", + label: "任丘市" + }, + { + value: "黄骅市", + label: "黄骅市" + }, + { + value: "河间市", + label: "河间市" + } + ] + }, + { + value: "廊坊市", + label: "廊坊市", + children: [ + { + value: "安次区", + label: "安次区" + }, + { + value: "广阳区", + label: "广阳区" + }, + { + value: "固安县", + label: "固安县" + }, + { + value: "永清县", + label: "永清县" + }, + { + value: "香河县", + label: "香河县" + }, + { + value: "大城县", + label: "大城县" + }, + { + value: "文安县", + label: "文安县" + }, + { + value: "大厂回族自治县", + label: "大厂回族自治县" + }, + { + value: "廊坊经济技术开发区", + label: "廊坊经济技术开发区" + }, + { + value: "霸州市", + label: "霸州市" + }, + { + value: "三河市", + label: "三河市" + }, + { + value: "开发区", + label: "开发区" + } + ] + }, + { + value: "衡水市", + label: "衡水市", + children: [ + { + value: "桃城区", + label: "桃城区" + }, + { + value: "冀州区", + label: "冀州区" + }, + { + value: "枣强县", + label: "枣强县" + }, + { + value: "武邑县", + label: "武邑县" + }, + { + value: "武强县", + label: "武强县" + }, + { + value: "饶阳县", + label: "饶阳县" + }, + { + value: "安平县", + label: "安平县" + }, + { + value: "故城县", + label: "故城县" + }, + { + value: "景县", + label: "景县" + }, + { + value: "阜城县", + label: "阜城县" + }, + { + value: "河北衡水经济开发区", + label: "河北衡水经济开发区" + }, + { + value: "衡水滨湖新区", + label: "衡水滨湖新区" + }, + { + value: "深州市", + label: "深州市" + } + ] + } + ] + }, + { + value: "山西省", + label: "山西省", + children: [ + { + value: "太原市", + label: "太原市", + children: [ + { + value: "小店区", + label: "小店区" + }, + { + value: "迎泽区", + label: "迎泽区" + }, + { + value: "杏花岭区", + label: "杏花岭区" + }, + { + value: "尖草坪区", + label: "尖草坪区" + }, + { + value: "万柏林区", + label: "万柏林区" + }, + { + value: "晋源区", + label: "晋源区" + }, + { + value: "清徐县", + label: "清徐县" + }, + { + value: "阳曲县", + label: "阳曲县" + }, + { + value: "娄烦县", + label: "娄烦县" + }, + { + value: "古交市", + label: "古交市" + } + ] + }, + { + value: "大同市", + label: "大同市", + children: [ + { + value: "新荣区", + label: "新荣区" + }, + { + value: "平城区", + label: "平城区" + }, + { + value: "云冈区", + label: "云冈区" + }, + { + value: "云州区", + label: "云州区" + }, + { + value: "阳高县", + label: "阳高县" + }, + { + value: "天镇县", + label: "天镇县" + }, + { + value: "广灵县", + label: "广灵县" + }, + { + value: "灵丘县", + label: "灵丘县" + }, + { + value: "浑源县", + label: "浑源县" + }, + { + value: "左云县", + label: "左云县" + }, + { + value: "山西大同经济开发区", + label: "山西大同经济开发区" + } + ] + }, + { + value: "阳泉市", + label: "阳泉市", + children: [ + { + value: "城区", + label: "城区" + }, + { + value: "矿区", + label: "矿区" + }, + { + value: "郊区", + label: "郊区" + }, + { + value: "平定县", + label: "平定县" + }, + { + value: "盂县", + label: "盂县" + } + ] + }, + { + value: "长治市", + label: "长治市", + children: [ + { + value: "潞州区", + label: "潞州区" + }, + { + value: "上党区", + label: "上党区" + }, + { + value: "屯留区", + label: "屯留区" + }, + { + value: "潞城区", + label: "潞城区" + }, + { + value: "襄垣县", + label: "襄垣县" + }, + { + value: "平顺县", + label: "平顺县" + }, + { + value: "黎城县", + label: "黎城县" + }, + { + value: "壶关县", + label: "壶关县" + }, + { + value: "长子县", + label: "长子县" + }, + { + value: "武乡县", + label: "武乡县" + }, + { + value: "沁县", + label: "沁县" + }, + { + value: "沁源县", + label: "沁源县" + }, + { + value: "山西长治高新技术产业园区", + label: "山西长治高新技术产业园区" + } + ] + }, + { + value: "晋城市", + label: "晋城市", + children: [ + { + value: "城区", + label: "城区" + }, + { + value: "沁水县", + label: "沁水县" + }, + { + value: "阳城县", + label: "阳城县" + }, + { + value: "陵川县", + label: "陵川县" + }, + { + value: "泽州县", + label: "泽州县" + }, + { + value: "高平市", + label: "高平市" + } + ] + }, + { + value: "朔州市", + label: "朔州市", + children: [ + { + value: "朔城区", + label: "朔城区" + }, + { + value: "平鲁区", + label: "平鲁区" + }, + { + value: "山阴县", + label: "山阴县" + }, + { + value: "应县", + label: "应县" + }, + { + value: "右玉县", + label: "右玉县" + }, + { + value: "山西朔州经济开发区", + label: "山西朔州经济开发区" + }, + { + value: "怀仁市", + label: "怀仁市" + } + ] + }, + { + value: "晋中市", + label: "晋中市", + children: [ + { + value: "榆次区", + label: "榆次区" + }, + { + value: "太谷区", + label: "太谷区" + }, + { + value: "榆社县", + label: "榆社县" + }, + { + value: "左权县", + label: "左权县" + }, + { + value: "和顺县", + label: "和顺县" + }, + { + value: "昔阳县", + label: "昔阳县" + }, + { + value: "寿阳县", + label: "寿阳县" + }, + { + value: "祁县", + label: "祁县" + }, + { + value: "平遥县", + label: "平遥县" + }, + { + value: "灵石县", + label: "灵石县" + }, + { + value: "介休市", + label: "介休市" + } + ] + }, + { + value: "运城市", + label: "运城市", + children: [ + { + value: "盐湖区", + label: "盐湖区" + }, + { + value: "临猗县", + label: "临猗县" + }, + { + value: "万荣县", + label: "万荣县" + }, + { + value: "闻喜县", + label: "闻喜县" + }, + { + value: "稷山县", + label: "稷山县" + }, + { + value: "新绛县", + label: "新绛县" + }, + { + value: "绛县", + label: "绛县" + }, + { + value: "垣曲县", + label: "垣曲县" + }, + { + value: "夏县", + label: "夏县" + }, + { + value: "平陆县", + label: "平陆县" + }, + { + value: "芮城县", + label: "芮城县" + }, + { + value: "永济市", + label: "永济市" + }, + { + value: "河津市", + label: "河津市" + } + ] + }, + { + value: "忻州市", + label: "忻州市", + children: [ + { + value: "忻府区", + label: "忻府区" + }, + { + value: "定襄县", + label: "定襄县" + }, + { + value: "五台县", + label: "五台县" + }, + { + value: "代县", + label: "代县" + }, + { + value: "繁峙县", + label: "繁峙县" + }, + { + value: "宁武县", + label: "宁武县" + }, + { + value: "静乐县", + label: "静乐县" + }, + { + value: "神池县", + label: "神池县" + }, + { + value: "五寨县", + label: "五寨县" + }, + { + value: "岢岚县", + label: "岢岚县" + }, + { + value: "河曲县", + label: "河曲县" + }, + { + value: "保德县", + label: "保德县" + }, + { + value: "偏关县", + label: "偏关县" + }, + { + value: "五台山风景名胜区", + label: "五台山风景名胜区" + }, + { + value: "原平市", + label: "原平市" + } + ] + }, + { + value: "临汾市", + label: "临汾市", + children: [ + { + value: "尧都区", + label: "尧都区" + }, + { + value: "曲沃县", + label: "曲沃县" + }, + { + value: "翼城县", + label: "翼城县" + }, + { + value: "襄汾县", + label: "襄汾县" + }, + { + value: "洪洞县", + label: "洪洞县" + }, + { + value: "古县", + label: "古县" + }, + { + value: "安泽县", + label: "安泽县" + }, + { + value: "浮山县", + label: "浮山县" + }, + { + value: "吉县", + label: "吉县" + }, + { + value: "乡宁县", + label: "乡宁县" + }, + { + value: "大宁县", + label: "大宁县" + }, + { + value: "隰县", + label: "隰县" + }, + { + value: "永和县", + label: "永和县" + }, + { + value: "蒲县", + label: "蒲县" + }, + { + value: "汾西县", + label: "汾西县" + }, + { + value: "侯马市", + label: "侯马市" + }, + { + value: "霍州市", + label: "霍州市" + } + ] + }, + { + value: "吕梁市", + label: "吕梁市", + children: [ + { + value: "离石区", + label: "离石区" + }, + { + value: "文水县", + label: "文水县" + }, + { + value: "交城县", + label: "交城县" + }, + { + value: "兴县", + label: "兴县" + }, + { + value: "临县", + label: "临县" + }, + { + value: "柳林县", + label: "柳林县" + }, + { + value: "石楼县", + label: "石楼县" + }, + { + value: "岚县", + label: "岚县" + }, + { + value: "方山县", + label: "方山县" + }, + { + value: "中阳县", + label: "中阳县" + }, + { + value: "交口县", + label: "交口县" + }, + { + value: "孝义市", + label: "孝义市" + }, + { + value: "汾阳市", + label: "汾阳市" + } + ] + } + ] + }, + { + value: "内蒙古自治区", + label: "内蒙古自治区", + children: [ + { + value: "呼和浩特市", + label: "呼和浩特市", + children: [ + { + value: "新城区", + label: "新城区" + }, + { + value: "回民区", + label: "回民区" + }, + { + value: "玉泉区", + label: "玉泉区" + }, + { + value: "赛罕区", + label: "赛罕区" + }, + { + value: "土默特左旗", + label: "土默特左旗" + }, + { + value: "托克托县", + label: "托克托县" + }, + { + value: "和林格尔县", + label: "和林格尔县" + }, + { + value: "清水河县", + label: "清水河县" + }, + { + value: "武川县", + label: "武川县" + }, + { + value: "呼和浩特经济技术开发区", + label: "呼和浩特经济技术开发区" + } + ] + }, + { + value: "包头市", + label: "包头市", + children: [ + { + value: "东河区", + label: "东河区" + }, + { + value: "昆都仑区", + label: "昆都仑区" + }, + { + value: "青山区", + label: "青山区" + }, + { + value: "石拐区", + label: "石拐区" + }, + { + value: "白云鄂博矿区", + label: "白云鄂博矿区" + }, + { + value: "九原区", + label: "九原区" + }, + { + value: "土默特右旗", + label: "土默特右旗" + }, + { + value: "固阳县", + label: "固阳县" + }, + { + value: "达尔罕茂明安联合旗", + label: "达尔罕茂明安联合旗" + }, + { + value: "包头稀土高新技术产业开发区", + label: "包头稀土高新技术产业开发区" + } + ] + }, + { + value: "乌海市", + label: "乌海市", + children: [ + { + value: "海勃湾区", + label: "海勃湾区" + }, + { + value: "海南区", + label: "海南区" + }, + { + value: "乌达区", + label: "乌达区" + } + ] + }, + { + value: "赤峰市", + label: "赤峰市", + children: [ + { + value: "红山区", + label: "红山区" + }, + { + value: "元宝山区", + label: "元宝山区" + }, + { + value: "松山区", + label: "松山区" + }, + { + value: "阿鲁科尔沁旗", + label: "阿鲁科尔沁旗" + }, + { + value: "巴林左旗", + label: "巴林左旗" + }, + { + value: "巴林右旗", + label: "巴林右旗" + }, + { + value: "林西县", + label: "林西县" + }, + { + value: "克什克腾旗", + label: "克什克腾旗" + }, + { + value: "翁牛特旗", + label: "翁牛特旗" + }, + { + value: "喀喇沁旗", + label: "喀喇沁旗" + }, + { + value: "宁城县", + label: "宁城县" + }, + { + value: "敖汉旗", + label: "敖汉旗" + } + ] + }, + { + value: "通辽市", + label: "通辽市", + children: [ + { + value: "科尔沁区", + label: "科尔沁区" + }, + { + value: "科尔沁左翼中旗", + label: "科尔沁左翼中旗" + }, + { + value: "科尔沁左翼后旗", + label: "科尔沁左翼后旗" + }, + { + value: "开鲁县", + label: "开鲁县" + }, + { + value: "库伦旗", + label: "库伦旗" + }, + { + value: "奈曼旗", + label: "奈曼旗" + }, + { + value: "扎鲁特旗", + label: "扎鲁特旗" + }, + { + value: "通辽经济技术开发区", + label: "通辽经济技术开发区" + }, + { + value: "霍林郭勒市", + label: "霍林郭勒市" + } + ] + }, + { + value: "鄂尔多斯市", + label: "鄂尔多斯市", + children: [ + { + value: "东胜区", + label: "东胜区" + }, + { + value: "康巴什区", + label: "康巴什区" + }, + { + value: "达拉特旗", + label: "达拉特旗" + }, + { + value: "准格尔旗", + label: "准格尔旗" + }, + { + value: "鄂托克前旗", + label: "鄂托克前旗" + }, + { + value: "鄂托克旗", + label: "鄂托克旗" + }, + { + value: "杭锦旗", + label: "杭锦旗" + }, + { + value: "乌审旗", + label: "乌审旗" + }, + { + value: "伊金霍洛旗", + label: "伊金霍洛旗" + } + ] + }, + { + value: "呼伦贝尔市", + label: "呼伦贝尔市", + children: [ + { + value: "海拉尔区", + label: "海拉尔区" + }, + { + value: "扎赉诺尔区", + label: "扎赉诺尔区" + }, + { + value: "阿荣旗", + label: "阿荣旗" + }, + { + value: "莫力达瓦达斡尔族自治旗", + label: "莫力达瓦达斡尔族自治旗" + }, + { + value: "鄂伦春自治旗", + label: "鄂伦春自治旗" + }, + { + value: "鄂温克族自治旗", + label: "鄂温克族自治旗" + }, + { + value: "陈巴尔虎旗", + label: "陈巴尔虎旗" + }, + { + value: "新巴尔虎左旗", + label: "新巴尔虎左旗" + }, + { + value: "新巴尔虎右旗", + label: "新巴尔虎右旗" + }, + { + value: "满洲里市", + label: "满洲里市" + }, + { + value: "牙克石市", + label: "牙克石市" + }, + { + value: "扎兰屯市", + label: "扎兰屯市" + }, + { + value: "额尔古纳市", + label: "额尔古纳市" + }, + { + value: "根河市", + label: "根河市" + } + ] + }, + { + value: "巴彦淖尔市", + label: "巴彦淖尔市", + children: [ + { + value: "临河区", + label: "临河区" + }, + { + value: "五原县", + label: "五原县" + }, + { + value: "磴口县", + label: "磴口县" + }, + { + value: "乌拉特前旗", + label: "乌拉特前旗" + }, + { + value: "乌拉特中旗", + label: "乌拉特中旗" + }, + { + value: "乌拉特后旗", + label: "乌拉特后旗" + }, + { + value: "杭锦后旗", + label: "杭锦后旗" + } + ] + }, + { + value: "乌兰察布市", + label: "乌兰察布市", + children: [ + { + value: "集宁区", + label: "集宁区" + }, + { + value: "卓资县", + label: "卓资县" + }, + { + value: "化德县", + label: "化德县" + }, + { + value: "商都县", + label: "商都县" + }, + { + value: "兴和县", + label: "兴和县" + }, + { + value: "凉城县", + label: "凉城县" + }, + { + value: "察哈尔右翼前旗", + label: "察哈尔右翼前旗" + }, + { + value: "察哈尔右翼中旗", + label: "察哈尔右翼中旗" + }, + { + value: "察哈尔右翼后旗", + label: "察哈尔右翼后旗" + }, + { + value: "四子王旗", + label: "四子王旗" + }, + { + value: "丰镇市", + label: "丰镇市" + } + ] + }, + { + value: "兴安盟", + label: "兴安盟", + children: [ + { + value: "乌兰浩特市", + label: "乌兰浩特市" + }, + { + value: "阿尔山市", + label: "阿尔山市" + }, + { + value: "科尔沁右翼前旗", + label: "科尔沁右翼前旗" + }, + { + value: "科尔沁右翼中旗", + label: "科尔沁右翼中旗" + }, + { + value: "扎赉特旗", + label: "扎赉特旗" + }, + { + value: "突泉县", + label: "突泉县" + } + ] + }, + { + value: "锡林郭勒盟", + label: "锡林郭勒盟", + children: [ + { + value: "二连浩特市", + label: "二连浩特市" + }, + { + value: "锡林浩特市", + label: "锡林浩特市" + }, + { + value: "阿巴嘎旗", + label: "阿巴嘎旗" + }, + { + value: "苏尼特左旗", + label: "苏尼特左旗" + }, + { + value: "苏尼特右旗", + label: "苏尼特右旗" + }, + { + value: "东乌珠穆沁旗", + label: "东乌珠穆沁旗" + }, + { + value: "西乌珠穆沁旗", + label: "西乌珠穆沁旗" + }, + { + value: "太仆寺旗", + label: "太仆寺旗" + }, + { + value: "镶黄旗", + label: "镶黄旗" + }, + { + value: "正镶白旗", + label: "正镶白旗" + }, + { + value: "正蓝旗", + label: "正蓝旗" + }, + { + value: "多伦县", + label: "多伦县" + }, + { + value: "乌拉盖管委会", + label: "乌拉盖管委会" + } + ] + }, + { + value: "阿拉善盟", + label: "阿拉善盟", + children: [ + { + value: "阿拉善左旗", + label: "阿拉善左旗" + }, + { + value: "阿拉善右旗", + label: "阿拉善右旗" + }, + { + value: "额济纳旗", + label: "额济纳旗" + }, + { + value: "内蒙古阿拉善经济开发区", + label: "内蒙古阿拉善经济开发区" + } + ] + } + ] + }, + { + value: "辽宁省", + label: "辽宁省", + children: [ + { + value: "沈阳市", + label: "沈阳市", + children: [ + { + value: "和平区", + label: "和平区" + }, + { + value: "沈河区", + label: "沈河区" + }, + { + value: "大东区", + label: "大东区" + }, + { + value: "皇姑区", + label: "皇姑区" + }, + { + value: "铁西区", + label: "铁西区" + }, + { + value: "苏家屯区", + label: "苏家屯区" + }, + { + value: "浑南区", + label: "浑南区" + }, + { + value: "沈北新区", + label: "沈北新区" + }, + { + value: "于洪区", + label: "于洪区" + }, + { + value: "辽中区", + label: "辽中区" + }, + { + value: "康平县", + label: "康平县" + }, + { + value: "法库县", + label: "法库县" + }, + { + value: "新民市", + label: "新民市" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "大连市", + label: "大连市", + children: [ + { + value: "中山区", + label: "中山区" + }, + { + value: "西岗区", + label: "西岗区" + }, + { + value: "沙河口区", + label: "沙河口区" + }, + { + value: "甘井子区", + label: "甘井子区" + }, + { + value: "旅顺口区", + label: "旅顺口区" + }, + { + value: "金州区", + label: "金州区" + }, + { + value: "普兰店区", + label: "普兰店区" + }, + { + value: "长海县", + label: "长海县" + }, + { + value: "瓦房店市", + label: "瓦房店市" + }, + { + value: "庄河市", + label: "庄河市" + } + ] + }, + { + value: "鞍山市", + label: "鞍山市", + children: [ + { + value: "铁东区", + label: "铁东区" + }, + { + value: "铁西区", + label: "铁西区" + }, + { + value: "立山区", + label: "立山区" + }, + { + value: "千山区", + label: "千山区" + }, + { + value: "台安县", + label: "台安县" + }, + { + value: "岫岩满族自治县", + label: "岫岩满族自治县" + }, + { + value: "海城市", + label: "海城市" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "抚顺市", + label: "抚顺市", + children: [ + { + value: "新抚区", + label: "新抚区" + }, + { + value: "东洲区", + label: "东洲区" + }, + { + value: "望花区", + label: "望花区" + }, + { + value: "顺城区", + label: "顺城区" + }, + { + value: "抚顺县", + label: "抚顺县" + }, + { + value: "新宾满族自治县", + label: "新宾满族自治县" + }, + { + value: "清原满族自治县", + label: "清原满族自治县" + } + ] + }, + { + value: "本溪市", + label: "本溪市", + children: [ + { + value: "平山区", + label: "平山区" + }, + { + value: "溪湖区", + label: "溪湖区" + }, + { + value: "明山区", + label: "明山区" + }, + { + value: "南芬区", + label: "南芬区" + }, + { + value: "本溪满族自治县", + label: "本溪满族自治县" + }, + { + value: "桓仁满族自治县", + label: "桓仁满族自治县" + } + ] + }, + { + value: "丹东市", + label: "丹东市", + children: [ + { + value: "元宝区", + label: "元宝区" + }, + { + value: "振兴区", + label: "振兴区" + }, + { + value: "振安区", + label: "振安区" + }, + { + value: "宽甸满族自治县", + label: "宽甸满族自治县" + }, + { + value: "东港市", + label: "东港市" + }, + { + value: "凤城市", + label: "凤城市" + } + ] + }, + { + value: "锦州市", + label: "锦州市", + children: [ + { + value: "古塔区", + label: "古塔区" + }, + { + value: "凌河区", + label: "凌河区" + }, + { + value: "太和区", + label: "太和区" + }, + { + value: "黑山县", + label: "黑山县" + }, + { + value: "义县", + label: "义县" + }, + { + value: "凌海市", + label: "凌海市" + }, + { + value: "北镇市", + label: "北镇市" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "营口市", + label: "营口市", + children: [ + { + value: "站前区", + label: "站前区" + }, + { + value: "西市区", + label: "西市区" + }, + { + value: "鲅鱼圈区", + label: "鲅鱼圈区" + }, + { + value: "老边区", + label: "老边区" + }, + { + value: "盖州市", + label: "盖州市" + }, + { + value: "大石桥市", + label: "大石桥市" + } + ] + }, + { + value: "阜新市", + label: "阜新市", + children: [ + { + value: "海州区", + label: "海州区" + }, + { + value: "新邱区", + label: "新邱区" + }, + { + value: "太平区", + label: "太平区" + }, + { + value: "清河门区", + label: "清河门区" + }, + { + value: "细河区", + label: "细河区" + }, + { + value: "阜新蒙古族自治县", + label: "阜新蒙古族自治县" + }, + { + value: "彰武县", + label: "彰武县" + } + ] + }, + { + value: "辽阳市", + label: "辽阳市", + children: [ + { + value: "白塔区", + label: "白塔区" + }, + { + value: "文圣区", + label: "文圣区" + }, + { + value: "宏伟区", + label: "宏伟区" + }, + { + value: "弓长岭区", + label: "弓长岭区" + }, + { + value: "太子河区", + label: "太子河区" + }, + { + value: "辽阳县", + label: "辽阳县" + }, + { + value: "灯塔市", + label: "灯塔市" + } + ] + }, + { + value: "盘锦市", + label: "盘锦市", + children: [ + { + value: "双台子区", + label: "双台子区" + }, + { + value: "兴隆台区", + label: "兴隆台区" + }, + { + value: "大洼区", + label: "大洼区" + }, + { + value: "盘山县", + label: "盘山县" + } + ] + }, + { + value: "铁岭市", + label: "铁岭市", + children: [ + { + value: "银州区", + label: "银州区" + }, + { + value: "清河区", + label: "清河区" + }, + { + value: "铁岭县", + label: "铁岭县" + }, + { + value: "西丰县", + label: "西丰县" + }, + { + value: "昌图县", + label: "昌图县" + }, + { + value: "调兵山市", + label: "调兵山市" + }, + { + value: "开原市", + label: "开原市" + } + ] + }, + { + value: "朝阳市", + label: "朝阳市", + children: [ + { + value: "双塔区", + label: "双塔区" + }, + { + value: "龙城区", + label: "龙城区" + }, + { + value: "朝阳县", + label: "朝阳县" + }, + { + value: "建平县", + label: "建平县" + }, + { + value: "喀喇沁左翼蒙古族自治县", + label: "喀喇沁左翼蒙古族自治县" + }, + { + value: "北票市", + label: "北票市" + }, + { + value: "凌源市", + label: "凌源市" + } + ] + }, + { + value: "葫芦岛市", + label: "葫芦岛市", + children: [ + { + value: "连山区", + label: "连山区" + }, + { + value: "龙港区", + label: "龙港区" + }, + { + value: "南票区", + label: "南票区" + }, + { + value: "绥中县", + label: "绥中县" + }, + { + value: "建昌县", + label: "建昌县" + }, + { + value: "兴城市", + label: "兴城市" + } + ] + } + ] + }, + { + value: "吉林省", + label: "吉林省", + children: [ + { + value: "长春市", + label: "长春市", + children: [ + { + value: "南关区", + label: "南关区" + }, + { + value: "宽城区", + label: "宽城区" + }, + { + value: "朝阳区", + label: "朝阳区" + }, + { + value: "二道区", + label: "二道区" + }, + { + value: "绿园区", + label: "绿园区" + }, + { + value: "双阳区", + label: "双阳区" + }, + { + value: "九台区", + label: "九台区" + }, + { + value: "农安县", + label: "农安县" + }, + { + value: "长春经济技术开发区", + label: "长春经济技术开发区" + }, + { + value: "长春净月高新技术产业开发区", + label: "长春净月高新技术产业开发区" + }, + { + value: "长春高新技术产业开发区", + label: "长春高新技术产业开发区" + }, + { + value: "长春汽车经济技术开发区", + label: "长春汽车经济技术开发区" + }, + { + value: "榆树市", + label: "榆树市" + }, + { + value: "德惠市", + label: "德惠市" + }, + { + value: "公主岭市", + label: "公主岭市" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "吉林市", + label: "吉林市", + children: [ + { + value: "昌邑区", + label: "昌邑区" + }, + { + value: "龙潭区", + label: "龙潭区" + }, + { + value: "船营区", + label: "船营区" + }, + { + value: "丰满区", + label: "丰满区" + }, + { + value: "永吉县", + label: "永吉县" + }, + { + value: "吉林经济开发区", + label: "吉林经济开发区" + }, + { + value: "吉林高新技术产业开发区", + label: "吉林高新技术产业开发区" + }, + { + value: "蛟河市", + label: "蛟河市" + }, + { + value: "桦甸市", + label: "桦甸市" + }, + { + value: "舒兰市", + label: "舒兰市" + }, + { + value: "磐石市", + label: "磐石市" + } + ] + }, + { + value: "四平市", + label: "四平市", + children: [ + { + value: "铁西区", + label: "铁西区" + }, + { + value: "铁东区", + label: "铁东区" + }, + { + value: "梨树县", + label: "梨树县" + }, + { + value: "伊通满族自治县", + label: "伊通满族自治县" + }, + { + value: "双辽市", + label: "双辽市" + } + ] + }, + { + value: "辽源市", + label: "辽源市", + children: [ + { + value: "龙山区", + label: "龙山区" + }, + { + value: "西安区", + label: "西安区" + }, + { + value: "东丰县", + label: "东丰县" + }, + { + value: "东辽县", + label: "东辽县" + } + ] + }, + { + value: "通化市", + label: "通化市", + children: [ + { + value: "东昌区", + label: "东昌区" + }, + { + value: "二道江区", + label: "二道江区" + }, + { + value: "通化县", + label: "通化县" + }, + { + value: "辉南县", + label: "辉南县" + }, + { + value: "柳河县", + label: "柳河县" + }, + { + value: "梅河口市", + label: "梅河口市" + }, + { + value: "集安市", + label: "集安市" + } + ] + }, + { + value: "白山市", + label: "白山市", + children: [ + { + value: "浑江区", + label: "浑江区" + }, + { + value: "江源区", + label: "江源区" + }, + { + value: "抚松县", + label: "抚松县" + }, + { + value: "靖宇县", + label: "靖宇县" + }, + { + value: "长白朝鲜族自治县", + label: "长白朝鲜族自治县" + }, + { + value: "临江市", + label: "临江市" + } + ] + }, + { + value: "松原市", + label: "松原市", + children: [ + { + value: "宁江区", + label: "宁江区" + }, + { + value: "前郭尔罗斯蒙古族自治县", + label: "前郭尔罗斯蒙古族自治县" + }, + { + value: "长岭县", + label: "长岭县" + }, + { + value: "乾安县", + label: "乾安县" + }, + { + value: "吉林松原经济开发区", + label: "吉林松原经济开发区" + }, + { + value: "扶余市", + label: "扶余市" + } + ] + }, + { + value: "白城市", + label: "白城市", + children: [ + { + value: "洮北区", + label: "洮北区" + }, + { + value: "镇赉县", + label: "镇赉县" + }, + { + value: "通榆县", + label: "通榆县" + }, + { + value: "吉林白城经济开发区", + label: "吉林白城经济开发区" + }, + { + value: "洮南市", + label: "洮南市" + }, + { + value: "大安市", + label: "大安市" + } + ] + }, + { + value: "延边朝鲜族自治州", + label: "延边朝鲜族自治州", + children: [ + { + value: "延吉市", + label: "延吉市" + }, + { + value: "图们市", + label: "图们市" + }, + { + value: "敦化市", + label: "敦化市" + }, + { + value: "珲春市", + label: "珲春市" + }, + { + value: "龙井市", + label: "龙井市" + }, + { + value: "和龙市", + label: "和龙市" + }, + { + value: "汪清县", + label: "汪清县" + }, + { + value: "安图县", + label: "安图县" + } + ] + } + ] + }, + { + value: "黑龙江省", + label: "黑龙江省", + children: [ + { + value: "哈尔滨市", + label: "哈尔滨市", + children: [ + { + value: "道里区", + label: "道里区" + }, + { + value: "南岗区", + label: "南岗区" + }, + { + value: "道外区", + label: "道外区" + }, + { + value: "平房区", + label: "平房区" + }, + { + value: "松北区", + label: "松北区" + }, + { + value: "香坊区", + label: "香坊区" + }, + { + value: "呼兰区", + label: "呼兰区" + }, + { + value: "阿城区", + label: "阿城区" + }, + { + value: "双城区", + label: "双城区" + }, + { + value: "依兰县", + label: "依兰县" + }, + { + value: "方正县", + label: "方正县" + }, + { + value: "宾县", + label: "宾县" + }, + { + value: "巴彦县", + label: "巴彦县" + }, + { + value: "木兰县", + label: "木兰县" + }, + { + value: "通河县", + label: "通河县" + }, + { + value: "延寿县", + label: "延寿县" + }, + { + value: "尚志市", + label: "尚志市" + }, + { + value: "五常市", + label: "五常市" + } + ] + }, + { + value: "齐齐哈尔市", + label: "齐齐哈尔市", + children: [ + { + value: "龙沙区", + label: "龙沙区" + }, + { + value: "建华区", + label: "建华区" + }, + { + value: "铁锋区", + label: "铁锋区" + }, + { + value: "昂昂溪区", + label: "昂昂溪区" + }, + { + value: "富拉尔基区", + label: "富拉尔基区" + }, + { + value: "碾子山区", + label: "碾子山区" + }, + { + value: "梅里斯达斡尔族区", + label: "梅里斯达斡尔族区" + }, + { + value: "龙江县", + label: "龙江县" + }, + { + value: "依安县", + label: "依安县" + }, + { + value: "泰来县", + label: "泰来县" + }, + { + value: "甘南县", + label: "甘南县" + }, + { + value: "富裕县", + label: "富裕县" + }, + { + value: "克山县", + label: "克山县" + }, + { + value: "克东县", + label: "克东县" + }, + { + value: "拜泉县", + label: "拜泉县" + }, + { + value: "讷河市", + label: "讷河市" + } + ] + }, + { + value: "鸡西市", + label: "鸡西市", + children: [ + { + value: "鸡冠区", + label: "鸡冠区" + }, + { + value: "恒山区", + label: "恒山区" + }, + { + value: "滴道区", + label: "滴道区" + }, + { + value: "梨树区", + label: "梨树区" + }, + { + value: "城子河区", + label: "城子河区" + }, + { + value: "麻山区", + label: "麻山区" + }, + { + value: "鸡东县", + label: "鸡东县" + }, + { + value: "虎林市", + label: "虎林市" + }, + { + value: "密山市", + label: "密山市" + } + ] + }, + { + value: "鹤岗市", + label: "鹤岗市", + children: [ + { + value: "向阳区", + label: "向阳区" + }, + { + value: "工农区", + label: "工农区" + }, + { + value: "南山区", + label: "南山区" + }, + { + value: "兴安区", + label: "兴安区" + }, + { + value: "东山区", + label: "东山区" + }, + { + value: "兴山区", + label: "兴山区" + }, + { + value: "萝北县", + label: "萝北县" + }, + { + value: "绥滨县", + label: "绥滨县" + } + ] + }, + { + value: "双鸭山市", + label: "双鸭山市", + children: [ + { + value: "尖山区", + label: "尖山区" + }, + { + value: "岭东区", + label: "岭东区" + }, + { + value: "四方台区", + label: "四方台区" + }, + { + value: "宝山区", + label: "宝山区" + }, + { + value: "集贤县", + label: "集贤县" + }, + { + value: "友谊县", + label: "友谊县" + }, + { + value: "宝清县", + label: "宝清县" + }, + { + value: "饶河县", + label: "饶河县" + } + ] + }, + { + value: "大庆市", + label: "大庆市", + children: [ + { + value: "萨尔图区", + label: "萨尔图区" + }, + { + value: "龙凤区", + label: "龙凤区" + }, + { + value: "让胡路区", + label: "让胡路区" + }, + { + value: "红岗区", + label: "红岗区" + }, + { + value: "大同区", + label: "大同区" + }, + { + value: "肇州县", + label: "肇州县" + }, + { + value: "肇源县", + label: "肇源县" + }, + { + value: "林甸县", + label: "林甸县" + }, + { + value: "杜尔伯特蒙古族自治县", + label: "杜尔伯特蒙古族自治县" + }, + { + value: "大庆高新技术产业开发区", + label: "大庆高新技术产业开发区" + } + ] + }, + { + value: "伊春市", + label: "伊春市", + children: [ + { + value: "伊美区", + label: "伊美区" + }, + { + value: "乌翠区", + label: "乌翠区" + }, + { + value: "友好区", + label: "友好区" + }, + { + value: "嘉荫县", + label: "嘉荫县" + }, + { + value: "汤旺县", + label: "汤旺县" + }, + { + value: "丰林县", + label: "丰林县" + }, + { + value: "大箐山县", + label: "大箐山县" + }, + { + value: "南岔县", + label: "南岔县" + }, + { + value: "金林区", + label: "金林区" + }, + { + value: "铁力市", + label: "铁力市" + } + ] + }, + { + value: "佳木斯市", + label: "佳木斯市", + children: [ + { + value: "向阳区", + label: "向阳区" + }, + { + value: "前进区", + label: "前进区" + }, + { + value: "东风区", + label: "东风区" + }, + { + value: "郊区", + label: "郊区" + }, + { + value: "桦南县", + label: "桦南县" + }, + { + value: "桦川县", + label: "桦川县" + }, + { + value: "汤原县", + label: "汤原县" + }, + { + value: "同江市", + label: "同江市" + }, + { + value: "富锦市", + label: "富锦市" + }, + { + value: "抚远市", + label: "抚远市" + } + ] + }, + { + value: "七台河市", + label: "七台河市", + children: [ + { + value: "新兴区", + label: "新兴区" + }, + { + value: "桃山区", + label: "桃山区" + }, + { + value: "茄子河区", + label: "茄子河区" + }, + { + value: "勃利县", + label: "勃利县" + } + ] + }, + { + value: "牡丹江市", + label: "牡丹江市", + children: [ + { + value: "东安区", + label: "东安区" + }, + { + value: "阳明区", + label: "阳明区" + }, + { + value: "爱民区", + label: "爱民区" + }, + { + value: "西安区", + label: "西安区" + }, + { + value: "林口县", + label: "林口县" + }, + { + value: "绥芬河市", + label: "绥芬河市" + }, + { + value: "海林市", + label: "海林市" + }, + { + value: "宁安市", + label: "宁安市" + }, + { + value: "穆棱市", + label: "穆棱市" + }, + { + value: "东宁市", + label: "东宁市" + } + ] + }, + { + value: "黑河市", + label: "黑河市", + children: [ + { + value: "爱辉区", + label: "爱辉区" + }, + { + value: "逊克县", + label: "逊克县" + }, + { + value: "孙吴县", + label: "孙吴县" + }, + { + value: "北安市", + label: "北安市" + }, + { + value: "五大连池市", + label: "五大连池市" + }, + { + value: "嫩江市", + label: "嫩江市" + } + ] + }, + { + value: "绥化市", + label: "绥化市", + children: [ + { + value: "北林区", + label: "北林区" + }, + { + value: "望奎县", + label: "望奎县" + }, + { + value: "兰西县", + label: "兰西县" + }, + { + value: "青冈县", + label: "青冈县" + }, + { + value: "庆安县", + label: "庆安县" + }, + { + value: "明水县", + label: "明水县" + }, + { + value: "绥棱县", + label: "绥棱县" + }, + { + value: "安达市", + label: "安达市" + }, + { + value: "肇东市", + label: "肇东市" + }, + { + value: "海伦市", + label: "海伦市" + } + ] + }, + { + value: "大兴安岭地区", + label: "大兴安岭地区", + children: [ + { + value: "漠河市", + label: "漠河市" + }, + { + value: "呼玛县", + label: "呼玛县" + }, + { + value: "塔河县", + label: "塔河县" + }, + { + value: "加格达奇区", + label: "加格达奇区" + }, + { + value: "松岭区", + label: "松岭区" + }, + { + value: "新林区", + label: "新林区" + }, + { + value: "呼中区", + label: "呼中区" + } + ] + } + ] + }, + { + value: "上海市", + label: "上海市", + children: [ + { + value: "上海市", + label: "上海市", + children: [ + { + value: "黄浦区", + label: "黄浦区" + }, + { + value: "徐汇区", + label: "徐汇区" + }, + { + value: "长宁区", + label: "长宁区" + }, + { + value: "静安区", + label: "静安区" + }, + { + value: "普陀区", + label: "普陀区" + }, + { + value: "虹口区", + label: "虹口区" + }, + { + value: "杨浦区", + label: "杨浦区" + }, + { + value: "闵行区", + label: "闵行区" + }, + { + value: "宝山区", + label: "宝山区" + }, + { + value: "嘉定区", + label: "嘉定区" + }, + { + value: "浦东新区", + label: "浦东新区" + }, + { + value: "金山区", + label: "金山区" + }, + { + value: "松江区", + label: "松江区" + }, + { + value: "青浦区", + label: "青浦区" + }, + { + value: "奉贤区", + label: "奉贤区" + }, + { + value: "崇明区", + label: "崇明区" + } + ] + } + ] + }, + { + value: "江苏省", + label: "江苏省", + children: [ + { + value: "南京市", + label: "南京市", + children: [ + { + value: "玄武区", + label: "玄武区" + }, + { + value: "秦淮区", + label: "秦淮区" + }, + { + value: "建邺区", + label: "建邺区" + }, + { + value: "鼓楼区", + label: "鼓楼区" + }, + { + value: "浦口区", + label: "浦口区" + }, + { + value: "江北新区", + label: "江北新区" + }, + { + value: "栖霞区", + label: "栖霞区" + }, + { + value: "雨花台区", + label: "雨花台区" + }, + { + value: "江宁区", + label: "江宁区" + }, + { + value: "六合区", + label: "六合区" + }, + { + value: "溧水区", + label: "溧水区" + }, + { + value: "高淳区", + label: "高淳区" + } + ] + }, + { + value: "无锡市", + label: "无锡市", + children: [ + { + value: "锡山区", + label: "锡山区" + }, + { + value: "惠山区", + label: "惠山区" + }, + { + value: "滨湖区", + label: "滨湖区" + }, + { + value: "梁溪区", + label: "梁溪区" + }, + { + value: "新吴区", + label: "新吴区" + }, + { + value: "江阴市", + label: "江阴市" + }, + { + value: "宜兴市", + label: "宜兴市" + } + ] + }, + { + value: "徐州市", + label: "徐州市", + children: [ + { + value: "鼓楼区", + label: "鼓楼区" + }, + { + value: "云龙区", + label: "云龙区" + }, + { + value: "贾汪区", + label: "贾汪区" + }, + { + value: "泉山区", + label: "泉山区" + }, + { + value: "铜山区", + label: "铜山区" + }, + { + value: "丰县", + label: "丰县" + }, + { + value: "沛县", + label: "沛县" + }, + { + value: "睢宁县", + label: "睢宁县" + }, + { + value: "徐州经济技术开发区", + label: "徐州经济技术开发区" + }, + { + value: "新沂市", + label: "新沂市" + }, + { + value: "邳州市", + label: "邳州市" + }, + { + value: "工业园区", + label: "工业园区" + } + ] + }, + { + value: "常州市", + label: "常州市", + children: [ + { + value: "天宁区", + label: "天宁区" + }, + { + value: "钟楼区", + label: "钟楼区" + }, + { + value: "新北区", + label: "新北区" + }, + { + value: "武进区", + label: "武进区" + }, + { + value: "金坛区", + label: "金坛区" + }, + { + value: "溧阳市", + label: "溧阳市" + } + ] + }, + { + value: "苏州市", + label: "苏州市", + children: [ + { + value: "虎丘区", + label: "虎丘区" + }, + { + value: "吴中区", + label: "吴中区" + }, + { + value: "相城区", + label: "相城区" + }, + { + value: "姑苏区", + label: "姑苏区" + }, + { + value: "吴江区", + label: "吴江区" + }, + { + value: "苏州工业园区", + label: "苏州工业园区" + }, + { + value: "常熟市", + label: "常熟市" + }, + { + value: "张家港市", + label: "张家港市" + }, + { + value: "昆山市", + label: "昆山市" + }, + { + value: "太仓市", + label: "太仓市" + }, + { + value: "工业园区", + label: "工业园区" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "南通市", + label: "南通市", + children: [ + { + value: "港闸区", + label: "港闸区" + }, + { + value: "通州区", + label: "通州区" + }, + { + value: "崇川区", + label: "崇川区" + }, + { + value: "海门区", + label: "海门区" + }, + { + value: "如东县", + label: "如东县" + }, + { + value: "启东市", + label: "启东市" + }, + { + value: "如皋市", + label: "如皋市" + }, + { + value: "海安市", + label: "海安市" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "连云港市", + label: "连云港市", + children: [ + { + value: "连云区", + label: "连云区" + }, + { + value: "海州区", + label: "海州区" + }, + { + value: "赣榆区", + label: "赣榆区" + }, + { + value: "东海县", + label: "东海县" + }, + { + value: "灌云县", + label: "灌云县" + }, + { + value: "灌南县", + label: "灌南县" + }, + { + value: "连云港经济技术开发区", + label: "连云港经济技术开发区" + } + ] + }, + { + value: "淮安市", + label: "淮安市", + children: [ + { + value: "淮安区", + label: "淮安区" + }, + { + value: "淮阴区", + label: "淮阴区" + }, + { + value: "清江浦区", + label: "清江浦区" + }, + { + value: "洪泽区", + label: "洪泽区" + }, + { + value: "涟水县", + label: "涟水县" + }, + { + value: "盱眙县", + label: "盱眙县" + }, + { + value: "金湖县", + label: "金湖县" + }, + { + value: "淮安经济技术开发区", + label: "淮安经济技术开发区" + }, + { + value: "经济开发区", + label: "经济开发区" + } + ] + }, + { + value: "盐城市", + label: "盐城市", + children: [ + { + value: "亭湖区", + label: "亭湖区" + }, + { + value: "盐都区", + label: "盐都区" + }, + { + value: "大丰区", + label: "大丰区" + }, + { + value: "响水县", + label: "响水县" + }, + { + value: "滨海县", + label: "滨海县" + }, + { + value: "阜宁县", + label: "阜宁县" + }, + { + value: "射阳县", + label: "射阳县" + }, + { + value: "建湖县", + label: "建湖县" + }, + { + value: "盐城经济技术开发区", + label: "盐城经济技术开发区" + }, + { + value: "东台市", + label: "东台市" + } + ] + }, + { + value: "扬州市", + label: "扬州市", + children: [ + { + value: "广陵区", + label: "广陵区" + }, + { + value: "邗江区", + label: "邗江区" + }, + { + value: "江都区", + label: "江都区" + }, + { + value: "宝应县", + label: "宝应县" + }, + { + value: "扬州经济技术开发区", + label: "扬州经济技术开发区" + }, + { + value: "仪征市", + label: "仪征市" + }, + { + value: "高邮市", + label: "高邮市" + }, + { + value: "经济开发区", + label: "经济开发区" + } + ] + }, + { + value: "镇江市", + label: "镇江市", + children: [ + { + value: "京口区", + label: "京口区" + }, + { + value: "润州区", + label: "润州区" + }, + { + value: "丹徒区", + label: "丹徒区" + }, + { + value: "镇江新区", + label: "镇江新区" + }, + { + value: "丹阳市", + label: "丹阳市" + }, + { + value: "扬中市", + label: "扬中市" + }, + { + value: "句容市", + label: "句容市" + } + ] + }, + { + value: "泰州市", + label: "泰州市", + children: [ + { + value: "海陵区", + label: "海陵区" + }, + { + value: "高港区", + label: "高港区" + }, + { + value: "姜堰区", + label: "姜堰区" + }, + { + value: "泰州医药高新技术产业开发区", + label: "泰州医药高新技术产业开发区" + }, + { + value: "兴化市", + label: "兴化市" + }, + { + value: "靖江市", + label: "靖江市" + }, + { + value: "泰兴市", + label: "泰兴市" + } + ] + }, + { + value: "宿迁市", + label: "宿迁市", + children: [ + { + value: "宿城区", + label: "宿城区" + }, + { + value: "宿豫区", + label: "宿豫区" + }, + { + value: "沭阳县", + label: "沭阳县" + }, + { + value: "泗阳县", + label: "泗阳县" + }, + { + value: "泗洪县", + label: "泗洪县" + }, + { + value: "宿迁经济技术开发区", + label: "宿迁经济技术开发区" + } + ] + } + ] + }, + { + value: "浙江省", + label: "浙江省", + children: [ + { + value: "杭州市", + label: "杭州市", + children: [ + { + value: "上城区", + label: "上城区" + }, + { + value: "拱墅区", + label: "拱墅区" + }, + { + value: "西湖区", + label: "西湖区" + }, + { + value: "滨江区", + label: "滨江区" + }, + { + value: "萧山区", + label: "萧山区" + }, + { + value: "余杭区", + label: "余杭区" + }, + { + value: "富阳区", + label: "富阳区" + }, + { + value: "临安区", + label: "临安区" + }, + { + value: "临平区", + label: "临平区" + }, + { + value: "钱塘区", + label: "钱塘区" + }, + { + value: "桐庐县", + label: "桐庐县" + }, + { + value: "淳安县", + label: "淳安县" + }, + { + value: "建德市", + label: "建德市" + } + ] + }, + { + value: "宁波市", + label: "宁波市", + children: [ + { + value: "海曙区", + label: "海曙区" + }, + { + value: "江北区", + label: "江北区" + }, + { + value: "北仑区", + label: "北仑区" + }, + { + value: "镇海区", + label: "镇海区" + }, + { + value: "鄞州区", + label: "鄞州区" + }, + { + value: "奉化区", + label: "奉化区" + }, + { + value: "象山县", + label: "象山县" + }, + { + value: "宁海县", + label: "宁海县" + }, + { + value: "余姚市", + label: "余姚市" + }, + { + value: "慈溪市", + label: "慈溪市" + } + ] + }, + { + value: "温州市", + label: "温州市", + children: [ + { + value: "鹿城区", + label: "鹿城区" + }, + { + value: "龙湾区", + label: "龙湾区" + }, + { + value: "瓯海区", + label: "瓯海区" + }, + { + value: "洞头区", + label: "洞头区" + }, + { + value: "永嘉县", + label: "永嘉县" + }, + { + value: "平阳县", + label: "平阳县" + }, + { + value: "苍南县", + label: "苍南县" + }, + { + value: "文成县", + label: "文成县" + }, + { + value: "泰顺县", + label: "泰顺县" + }, + { + value: "瑞安市", + label: "瑞安市" + }, + { + value: "乐清市", + label: "乐清市" + }, + { + value: "龙港市", + label: "龙港市" + } + ] + }, + { + value: "嘉兴市", + label: "嘉兴市", + children: [ + { + value: "南湖区", + label: "南湖区" + }, + { + value: "秀洲区", + label: "秀洲区" + }, + { + value: "嘉善县", + label: "嘉善县" + }, + { + value: "海盐县", + label: "海盐县" + }, + { + value: "海宁市", + label: "海宁市" + }, + { + value: "平湖市", + label: "平湖市" + }, + { + value: "桐乡市", + label: "桐乡市" + } + ] + }, + { + value: "湖州市", + label: "湖州市", + children: [ + { + value: "吴兴区", + label: "吴兴区" + }, + { + value: "南浔区", + label: "南浔区" + }, + { + value: "德清县", + label: "德清县" + }, + { + value: "长兴县", + label: "长兴县" + }, + { + value: "安吉县", + label: "安吉县" + } + ] + }, + { + value: "绍兴市", + label: "绍兴市", + children: [ + { + value: "越城区", + label: "越城区" + }, + { + value: "柯桥区", + label: "柯桥区" + }, + { + value: "上虞区", + label: "上虞区" + }, + { + value: "新昌县", + label: "新昌县" + }, + { + value: "诸暨市", + label: "诸暨市" + }, + { + value: "嵊州市", + label: "嵊州市" + } + ] + }, + { + value: "金华市", + label: "金华市", + children: [ + { + value: "婺城区", + label: "婺城区" + }, + { + value: "金东区", + label: "金东区" + }, + { + value: "武义县", + label: "武义县" + }, + { + value: "浦江县", + label: "浦江县" + }, + { + value: "磐安县", + label: "磐安县" + }, + { + value: "兰溪市", + label: "兰溪市" + }, + { + value: "义乌市", + label: "义乌市" + }, + { + value: "东阳市", + label: "东阳市" + }, + { + value: "永康市", + label: "永康市" + } + ] + }, + { + value: "衢州市", + label: "衢州市", + children: [ + { + value: "柯城区", + label: "柯城区" + }, + { + value: "衢江区", + label: "衢江区" + }, + { + value: "常山县", + label: "常山县" + }, + { + value: "开化县", + label: "开化县" + }, + { + value: "龙游县", + label: "龙游县" + }, + { + value: "江山市", + label: "江山市" + } + ] + }, + { + value: "舟山市", + label: "舟山市", + children: [ + { + value: "定海区", + label: "定海区" + }, + { + value: "普陀区", + label: "普陀区" + }, + { + value: "岱山县", + label: "岱山县" + }, + { + value: "嵊泗县", + label: "嵊泗县" + } + ] + }, + { + value: "台州市", + label: "台州市", + children: [ + { + value: "椒江区", + label: "椒江区" + }, + { + value: "黄岩区", + label: "黄岩区" + }, + { + value: "路桥区", + label: "路桥区" + }, + { + value: "三门县", + label: "三门县" + }, + { + value: "天台县", + label: "天台县" + }, + { + value: "仙居县", + label: "仙居县" + }, + { + value: "温岭市", + label: "温岭市" + }, + { + value: "临海市", + label: "临海市" + }, + { + value: "玉环市", + label: "玉环市" + } + ] + }, + { + value: "丽水市", + label: "丽水市", + children: [ + { + value: "莲都区", + label: "莲都区" + }, + { + value: "青田县", + label: "青田县" + }, + { + value: "缙云县", + label: "缙云县" + }, + { + value: "遂昌县", + label: "遂昌县" + }, + { + value: "松阳县", + label: "松阳县" + }, + { + value: "云和县", + label: "云和县" + }, + { + value: "庆元县", + label: "庆元县" + }, + { + value: "景宁畲族自治县", + label: "景宁畲族自治县" + }, + { + value: "龙泉市", + label: "龙泉市" + } + ] + } + ] + }, + { + value: "安徽省", + label: "安徽省", + children: [ + { + value: "合肥市", + label: "合肥市", + children: [ + { + value: "瑶海区", + label: "瑶海区" + }, + { + value: "庐阳区", + label: "庐阳区" + }, + { + value: "蜀山区", + label: "蜀山区" + }, + { + value: "包河区", + label: "包河区" + }, + { + value: "长丰县", + label: "长丰县" + }, + { + value: "肥东县", + label: "肥东县" + }, + { + value: "肥西县", + label: "肥西县" + }, + { + value: "庐江县", + label: "庐江县" + }, + { + value: "合肥高新技术产业开发区", + label: "合肥高新技术产业开发区" + }, + { + value: "合肥经济技术开发区", + label: "合肥经济技术开发区" + }, + { + value: "合肥新站高新技术产业开发区", + label: "合肥新站高新技术产业开发区" + }, + { + value: "巢湖市", + label: "巢湖市" + }, + { + value: "高新技术开发区", + label: "高新技术开发区" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "芜湖市", + label: "芜湖市", + children: [ + { + value: "镜湖区", + label: "镜湖区" + }, + { + value: "鸠江区", + label: "鸠江区" + }, + { + value: "弋江区", + label: "弋江区" + }, + { + value: "湾沚区", + label: "湾沚区" + }, + { + value: "繁昌区", + label: "繁昌区" + }, + { + value: "南陵县", + label: "南陵县" + }, + { + value: "无为市", + label: "无为市" + } + ] + }, + { + value: "蚌埠市", + label: "蚌埠市", + children: [ + { + value: "龙子湖区", + label: "龙子湖区" + }, + { + value: "蚌山区", + label: "蚌山区" + }, + { + value: "禹会区", + label: "禹会区" + }, + { + value: "淮上区", + label: "淮上区" + }, + { + value: "怀远县", + label: "怀远县" + }, + { + value: "五河县", + label: "五河县" + }, + { + value: "固镇县", + label: "固镇县" + }, + { + value: "蚌埠市高新技术开发区", + label: "蚌埠市高新技术开发区" + }, + { + value: "蚌埠市经济开发区", + label: "蚌埠市经济开发区" + } + ] + }, + { + value: "淮南市", + label: "淮南市", + children: [ + { + value: "大通区", + label: "大通区" + }, + { + value: "田家庵区", + label: "田家庵区" + }, + { + value: "谢家集区", + label: "谢家集区" + }, + { + value: "八公山区", + label: "八公山区" + }, + { + value: "潘集区", + label: "潘集区" + }, + { + value: "凤台县", + label: "凤台县" + }, + { + value: "寿县", + label: "寿县" + } + ] + }, + { + value: "马鞍山市", + label: "马鞍山市", + children: [ + { + value: "花山区", + label: "花山区" + }, + { + value: "雨山区", + label: "雨山区" + }, + { + value: "博望区", + label: "博望区" + }, + { + value: "当涂县", + label: "当涂县" + }, + { + value: "含山县", + label: "含山县" + }, + { + value: "和县", + label: "和县" + } + ] + }, + { + value: "淮北市", + label: "淮北市", + children: [ + { + value: "杜集区", + label: "杜集区" + }, + { + value: "相山区", + label: "相山区" + }, + { + value: "烈山区", + label: "烈山区" + }, + { + value: "濉溪县", + label: "濉溪县" + } + ] + }, + { + value: "铜陵市", + label: "铜陵市", + children: [ + { + value: "铜官区", + label: "铜官区" + }, + { + value: "义安区", + label: "义安区" + }, + { + value: "郊区", + label: "郊区" + }, + { + value: "枞阳县", + label: "枞阳县" + } + ] + }, + { + value: "安庆市", + label: "安庆市", + children: [ + { + value: "迎江区", + label: "迎江区" + }, + { + value: "大观区", + label: "大观区" + }, + { + value: "宜秀区", + label: "宜秀区" + }, + { + value: "怀宁县", + label: "怀宁县" + }, + { + value: "太湖县", + label: "太湖县" + }, + { + value: "宿松县", + label: "宿松县" + }, + { + value: "望江县", + label: "望江县" + }, + { + value: "岳西县", + label: "岳西县" + }, + { + value: "桐城市", + label: "桐城市" + }, + { + value: "潜山市", + label: "潜山市" + } + ] + }, + { + value: "黄山市", + label: "黄山市", + children: [ + { + value: "屯溪区", + label: "屯溪区" + }, + { + value: "黄山区", + label: "黄山区" + }, + { + value: "徽州区", + label: "徽州区" + }, + { + value: "歙县", + label: "歙县" + }, + { + value: "休宁县", + label: "休宁县" + }, + { + value: "黟县", + label: "黟县" + }, + { + value: "祁门县", + label: "祁门县" + } + ] + }, + { + value: "滁州市", + label: "滁州市", + children: [ + { + value: "琅琊区", + label: "琅琊区" + }, + { + value: "南谯区", + label: "南谯区" + }, + { + value: "来安县", + label: "来安县" + }, + { + value: "全椒县", + label: "全椒县" + }, + { + value: "定远县", + label: "定远县" + }, + { + value: "凤阳县", + label: "凤阳县" + }, + { + value: "天长市", + label: "天长市" + }, + { + value: "明光市", + label: "明光市" + } + ] + }, + { + value: "阜阳市", + label: "阜阳市", + children: [ + { + value: "颍州区", + label: "颍州区" + }, + { + value: "颍东区", + label: "颍东区" + }, + { + value: "颍泉区", + label: "颍泉区" + }, + { + value: "临泉县", + label: "临泉县" + }, + { + value: "太和县", + label: "太和县" + }, + { + value: "阜南县", + label: "阜南县" + }, + { + value: "颍上县", + label: "颍上县" + }, + { + value: "阜阳合肥现代产业园区", + label: "阜阳合肥现代产业园区" + }, + { + value: "界首市", + label: "界首市" + } + ] + }, + { + value: "宿州市", + label: "宿州市", + children: [ + { + value: "埇桥区", + label: "埇桥区" + }, + { + value: "砀山县", + label: "砀山县" + }, + { + value: "萧县", + label: "萧县" + }, + { + value: "灵璧县", + label: "灵璧县" + }, + { + value: "泗县", + label: "泗县" + }, + { + value: "宿州马鞍山现代产业园区", + label: "宿州马鞍山现代产业园区" + }, + { + value: "宿州经济技术开发区", + label: "宿州经济技术开发区" + }, + { + value: "经济开发区", + label: "经济开发区" + } + ] + }, + { + value: "六安市", + label: "六安市", + children: [ + { + value: "金安区", + label: "金安区" + }, + { + value: "裕安区", + label: "裕安区" + }, + { + value: "叶集区", + label: "叶集区" + }, + { + value: "霍邱县", + label: "霍邱县" + }, + { + value: "舒城县", + label: "舒城县" + }, + { + value: "金寨县", + label: "金寨县" + }, + { + value: "霍山县", + label: "霍山县" + } + ] + }, + { + value: "亳州市", + label: "亳州市", + children: [ + { + value: "谯城区", + label: "谯城区" + }, + { + value: "涡阳县", + label: "涡阳县" + }, + { + value: "蒙城县", + label: "蒙城县" + }, + { + value: "利辛县", + label: "利辛县" + } + ] + }, + { + value: "池州市", + label: "池州市", + children: [ + { + value: "贵池区", + label: "贵池区" + }, + { + value: "东至县", + label: "东至县" + }, + { + value: "石台县", + label: "石台县" + }, + { + value: "青阳县", + label: "青阳县" + } + ] + }, + { + value: "宣城市", + label: "宣城市", + children: [ + { + value: "宣州区", + label: "宣州区" + }, + { + value: "郎溪县", + label: "郎溪县" + }, + { + value: "泾县", + label: "泾县" + }, + { + value: "绩溪县", + label: "绩溪县" + }, + { + value: "旌德县", + label: "旌德县" + }, + { + value: "宣城市经济开发区", + label: "宣城市经济开发区" + }, + { + value: "宁国市", + label: "宁国市" + }, + { + value: "广德市", + label: "广德市" + } + ] + } + ] + }, + { + value: "福建省", + label: "福建省", + children: [ + { + value: "福州市", + label: "福州市", + children: [ + { + value: "鼓楼区", + label: "鼓楼区" + }, + { + value: "台江区", + label: "台江区" + }, + { + value: "仓山区", + label: "仓山区" + }, + { + value: "马尾区", + label: "马尾区" + }, + { + value: "晋安区", + label: "晋安区" + }, + { + value: "长乐区", + label: "长乐区" + }, + { + value: "闽侯县", + label: "闽侯县" + }, + { + value: "连江县", + label: "连江县" + }, + { + value: "罗源县", + label: "罗源县" + }, + { + value: "闽清县", + label: "闽清县" + }, + { + value: "永泰县", + label: "永泰县" + }, + { + value: "平潭县", + label: "平潭县" + }, + { + value: "福清市", + label: "福清市" + } + ] + }, + { + value: "厦门市", + label: "厦门市", + children: [ + { + value: "思明区", + label: "思明区" + }, + { + value: "海沧区", + label: "海沧区" + }, + { + value: "湖里区", + label: "湖里区" + }, + { + value: "集美区", + label: "集美区" + }, + { + value: "同安区", + label: "同安区" + }, + { + value: "翔安区", + label: "翔安区" + } + ] + }, + { + value: "莆田市", + label: "莆田市", + children: [ + { + value: "城厢区", + label: "城厢区" + }, + { + value: "涵江区", + label: "涵江区" + }, + { + value: "荔城区", + label: "荔城区" + }, + { + value: "秀屿区", + label: "秀屿区" + }, + { + value: "仙游县", + label: "仙游县" + } + ] + }, + { + value: "三明市", + label: "三明市", + children: [ + { + value: "梅列区", + label: "梅列区" + }, + { + value: "三元区", + label: "三元区" + }, + { + value: "沙县区", + label: "沙县区" + }, + { + value: "明溪县", + label: "明溪县" + }, + { + value: "清流县", + label: "清流县" + }, + { + value: "宁化县", + label: "宁化县" + }, + { + value: "大田县", + label: "大田县" + }, + { + value: "尤溪县", + label: "尤溪县" + }, + { + value: "将乐县", + label: "将乐县" + }, + { + value: "泰宁县", + label: "泰宁县" + }, + { + value: "建宁县", + label: "建宁县" + }, + { + value: "永安市", + label: "永安市" + } + ] + }, + { + value: "泉州市", + label: "泉州市", + children: [ + { + value: "鲤城区", + label: "鲤城区" + }, + { + value: "丰泽区", + label: "丰泽区" + }, + { + value: "洛江区", + label: "洛江区" + }, + { + value: "泉港区", + label: "泉港区" + }, + { + value: "惠安县", + label: "惠安县" + }, + { + value: "安溪县", + label: "安溪县" + }, + { + value: "永春县", + label: "永春县" + }, + { + value: "德化县", + label: "德化县" + }, + { + value: "金门县", + label: "金门县" + }, + { + value: "石狮市", + label: "石狮市" + }, + { + value: "晋江市", + label: "晋江市" + }, + { + value: "南安市", + label: "南安市" + } + ] + }, + { + value: "漳州市", + label: "漳州市", + children: [ + { + value: "芗城区", + label: "芗城区" + }, + { + value: "龙文区", + label: "龙文区" + }, + { + value: "龙海区", + label: "龙海区" + }, + { + value: "长泰区", + label: "长泰区" + }, + { + value: "云霄县", + label: "云霄县" + }, + { + value: "漳浦县", + label: "漳浦县" + }, + { + value: "诏安县", + label: "诏安县" + }, + { + value: "东山县", + label: "东山县" + }, + { + value: "南靖县", + label: "南靖县" + }, + { + value: "平和县", + label: "平和县" + }, + { + value: "华安县", + label: "华安县" + } + ] + }, + { + value: "南平市", + label: "南平市", + children: [ + { + value: "延平区", + label: "延平区" + }, + { + value: "建阳区", + label: "建阳区" + }, + { + value: "顺昌县", + label: "顺昌县" + }, + { + value: "浦城县", + label: "浦城县" + }, + { + value: "光泽县", + label: "光泽县" + }, + { + value: "松溪县", + label: "松溪县" + }, + { + value: "政和县", + label: "政和县" + }, + { + value: "邵武市", + label: "邵武市" + }, + { + value: "武夷山市", + label: "武夷山市" + }, + { + value: "建瓯市", + label: "建瓯市" + } + ] + }, + { + value: "龙岩市", + label: "龙岩市", + children: [ + { + value: "新罗区", + label: "新罗区" + }, + { + value: "永定区", + label: "永定区" + }, + { + value: "长汀县", + label: "长汀县" + }, + { + value: "上杭县", + label: "上杭县" + }, + { + value: "武平县", + label: "武平县" + }, + { + value: "连城县", + label: "连城县" + }, + { + value: "漳平市", + label: "漳平市" + } + ] + }, + { + value: "宁德市", + label: "宁德市", + children: [ + { + value: "蕉城区", + label: "蕉城区" + }, + { + value: "霞浦县", + label: "霞浦县" + }, + { + value: "古田县", + label: "古田县" + }, + { + value: "屏南县", + label: "屏南县" + }, + { + value: "寿宁县", + label: "寿宁县" + }, + { + value: "周宁县", + label: "周宁县" + }, + { + value: "柘荣县", + label: "柘荣县" + }, + { + value: "福安市", + label: "福安市" + }, + { + value: "福鼎市", + label: "福鼎市" + } + ] + } + ] + }, + { + value: "江西省", + label: "江西省", + children: [ + { + value: "南昌市", + label: "南昌市", + children: [ + { + value: "东湖区", + label: "东湖区" + }, + { + value: "西湖区", + label: "西湖区" + }, + { + value: "青云谱区", + label: "青云谱区" + }, + { + value: "青山湖区", + label: "青山湖区" + }, + { + value: "新建区", + label: "新建区" + }, + { + value: "红谷滩区", + label: "红谷滩区" + }, + { + value: "南昌县", + label: "南昌县" + }, + { + value: "安义县", + label: "安义县" + }, + { + value: "进贤县", + label: "进贤县" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "景德镇市", + label: "景德镇市", + children: [ + { + value: "昌江区", + label: "昌江区" + }, + { + value: "珠山区", + label: "珠山区" + }, + { + value: "浮梁县", + label: "浮梁县" + }, + { + value: "乐平市", + label: "乐平市" + } + ] + }, + { + value: "萍乡市", + label: "萍乡市", + children: [ + { + value: "安源区", + label: "安源区" + }, + { + value: "湘东区", + label: "湘东区" + }, + { + value: "莲花县", + label: "莲花县" + }, + { + value: "上栗县", + label: "上栗县" + }, + { + value: "芦溪县", + label: "芦溪县" + } + ] + }, + { + value: "九江市", + label: "九江市", + children: [ + { + value: "濂溪区", + label: "濂溪区" + }, + { + value: "浔阳区", + label: "浔阳区" + }, + { + value: "柴桑区", + label: "柴桑区" + }, + { + value: "武宁县", + label: "武宁县" + }, + { + value: "修水县", + label: "修水县" + }, + { + value: "永修县", + label: "永修县" + }, + { + value: "德安县", + label: "德安县" + }, + { + value: "都昌县", + label: "都昌县" + }, + { + value: "湖口县", + label: "湖口县" + }, + { + value: "彭泽县", + label: "彭泽县" + }, + { + value: "瑞昌市", + label: "瑞昌市" + }, + { + value: "共青城市", + label: "共青城市" + }, + { + value: "庐山市", + label: "庐山市" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "新余市", + label: "新余市", + children: [ + { + value: "渝水区", + label: "渝水区" + }, + { + value: "分宜县", + label: "分宜县" + } + ] + }, + { + value: "鹰潭市", + label: "鹰潭市", + children: [ + { + value: "月湖区", + label: "月湖区" + }, + { + value: "余江区", + label: "余江区" + }, + { + value: "贵溪市", + label: "贵溪市" + } + ] + }, + { + value: "赣州市", + label: "赣州市", + children: [ + { + value: "章贡区", + label: "章贡区" + }, + { + value: "南康区", + label: "南康区" + }, + { + value: "赣县区", + label: "赣县区" + }, + { + value: "信丰县", + label: "信丰县" + }, + { + value: "大余县", + label: "大余县" + }, + { + value: "上犹县", + label: "上犹县" + }, + { + value: "崇义县", + label: "崇义县" + }, + { + value: "安远县", + label: "安远县" + }, + { + value: "定南县", + label: "定南县" + }, + { + value: "全南县", + label: "全南县" + }, + { + value: "宁都县", + label: "宁都县" + }, + { + value: "于都县", + label: "于都县" + }, + { + value: "兴国县", + label: "兴国县" + }, + { + value: "会昌县", + label: "会昌县" + }, + { + value: "寻乌县", + label: "寻乌县" + }, + { + value: "石城县", + label: "石城县" + }, + { + value: "瑞金市", + label: "瑞金市" + }, + { + value: "龙南市", + label: "龙南市" + } + ] + }, + { + value: "吉安市", + label: "吉安市", + children: [ + { + value: "吉州区", + label: "吉州区" + }, + { + value: "青原区", + label: "青原区" + }, + { + value: "吉安县", + label: "吉安县" + }, + { + value: "吉水县", + label: "吉水县" + }, + { + value: "峡江县", + label: "峡江县" + }, + { + value: "新干县", + label: "新干县" + }, + { + value: "永丰县", + label: "永丰县" + }, + { + value: "泰和县", + label: "泰和县" + }, + { + value: "遂川县", + label: "遂川县" + }, + { + value: "万安县", + label: "万安县" + }, + { + value: "安福县", + label: "安福县" + }, + { + value: "永新县", + label: "永新县" + }, + { + value: "井冈山市", + label: "井冈山市" + } + ] + }, + { + value: "宜春市", + label: "宜春市", + children: [ + { + value: "袁州区", + label: "袁州区" + }, + { + value: "奉新县", + label: "奉新县" + }, + { + value: "万载县", + label: "万载县" + }, + { + value: "上高县", + label: "上高县" + }, + { + value: "宜丰县", + label: "宜丰县" + }, + { + value: "靖安县", + label: "靖安县" + }, + { + value: "铜鼓县", + label: "铜鼓县" + }, + { + value: "丰城市", + label: "丰城市" + }, + { + value: "樟树市", + label: "樟树市" + }, + { + value: "高安市", + label: "高安市" + } + ] + }, + { + value: "抚州市", + label: "抚州市", + children: [ + { + value: "临川区", + label: "临川区" + }, + { + value: "东乡区", + label: "东乡区" + }, + { + value: "南城县", + label: "南城县" + }, + { + value: "黎川县", + label: "黎川县" + }, + { + value: "南丰县", + label: "南丰县" + }, + { + value: "崇仁县", + label: "崇仁县" + }, + { + value: "乐安县", + label: "乐安县" + }, + { + value: "宜黄县", + label: "宜黄县" + }, + { + value: "金溪县", + label: "金溪县" + }, + { + value: "资溪县", + label: "资溪县" + }, + { + value: "广昌县", + label: "广昌县" + } + ] + }, + { + value: "上饶市", + label: "上饶市", + children: [ + { + value: "信州区", + label: "信州区" + }, + { + value: "广丰区", + label: "广丰区" + }, + { + value: "广信区", + label: "广信区" + }, + { + value: "玉山县", + label: "玉山县" + }, + { + value: "铅山县", + label: "铅山县" + }, + { + value: "横峰县", + label: "横峰县" + }, + { + value: "弋阳县", + label: "弋阳县" + }, + { + value: "余干县", + label: "余干县" + }, + { + value: "鄱阳县", + label: "鄱阳县" + }, + { + value: "万年县", + label: "万年县" + }, + { + value: "婺源县", + label: "婺源县" + }, + { + value: "德兴市", + label: "德兴市" + } + ] + } + ] + }, + { + value: "山东省", + label: "山东省", + children: [ + { + value: "济南市", + label: "济南市", + children: [ + { + value: "历下区", + label: "历下区" + }, + { + value: "市中区", + label: "市中区" + }, + { + value: "槐荫区", + label: "槐荫区" + }, + { + value: "天桥区", + label: "天桥区" + }, + { + value: "历城区", + label: "历城区" + }, + { + value: "长清区", + label: "长清区" + }, + { + value: "章丘区", + label: "章丘区" + }, + { + value: "济阳区", + label: "济阳区" + }, + { + value: "莱芜区", + label: "莱芜区" + }, + { + value: "钢城区", + label: "钢城区" + }, + { + value: "平阴县", + label: "平阴县" + }, + { + value: "商河县", + label: "商河县" + }, + { + value: "济南高新技术产业开发区", + label: "济南高新技术产业开发区" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "青岛市", + label: "青岛市", + children: [ + { + value: "市南区", + label: "市南区" + }, + { + value: "市北区", + label: "市北区" + }, + { + value: "黄岛区", + label: "黄岛区" + }, + { + value: "崂山区", + label: "崂山区" + }, + { + value: "李沧区", + label: "李沧区" + }, + { + value: "城阳区", + label: "城阳区" + }, + { + value: "即墨区", + label: "即墨区" + }, + { + value: "青岛高新技术产业开发区", + label: "青岛高新技术产业开发区" + }, + { + value: "胶州市", + label: "胶州市" + }, + { + value: "平度市", + label: "平度市" + }, + { + value: "莱西市", + label: "莱西市" + }, + { + value: "开发区", + label: "开发区" + } + ] + }, + { + value: "淄博市", + label: "淄博市", + children: [ + { + value: "淄川区", + label: "淄川区" + }, + { + value: "张店区", + label: "张店区" + }, + { + value: "博山区", + label: "博山区" + }, + { + value: "临淄区", + label: "临淄区" + }, + { + value: "周村区", + label: "周村区" + }, + { + value: "桓台县", + label: "桓台县" + }, + { + value: "高青县", + label: "高青县" + }, + { + value: "沂源县", + label: "沂源县" + } + ] + }, + { + value: "枣庄市", + label: "枣庄市", + children: [ + { + value: "市中区", + label: "市中区" + }, + { + value: "薛城区", + label: "薛城区" + }, + { + value: "峄城区", + label: "峄城区" + }, + { + value: "台儿庄区", + label: "台儿庄区" + }, + { + value: "山亭区", + label: "山亭区" + }, + { + value: "滕州市", + label: "滕州市" + } + ] + }, + { + value: "东营市", + label: "东营市", + children: [ + { + value: "东营区", + label: "东营区" + }, + { + value: "河口区", + label: "河口区" + }, + { + value: "垦利区", + label: "垦利区" + }, + { + value: "利津县", + label: "利津县" + }, + { + value: "广饶县", + label: "广饶县" + }, + { + value: "东营经济技术开发区", + label: "东营经济技术开发区" + }, + { + value: "东营港经济开发区", + label: "东营港经济开发区" + } + ] + }, + { + value: "烟台市", + label: "烟台市", + children: [ + { + value: "芝罘区", + label: "芝罘区" + }, + { + value: "福山区", + label: "福山区" + }, + { + value: "牟平区", + label: "牟平区" + }, + { + value: "莱山区", + label: "莱山区" + }, + { + value: "蓬莱区", + label: "蓬莱区" + }, + { + value: "长岛县", + label: "长岛县" + }, + { + value: "烟台高新技术产业开发区", + label: "烟台高新技术产业开发区" + }, + { + value: "烟台经济技术开发区", + label: "烟台经济技术开发区" + }, + { + value: "龙口市", + label: "龙口市" + }, + { + value: "莱阳市", + label: "莱阳市" + }, + { + value: "莱州市", + label: "莱州市" + }, + { + value: "招远市", + label: "招远市" + }, + { + value: "栖霞市", + label: "栖霞市" + }, + { + value: "海阳市", + label: "海阳市" + }, + { + value: "开发区", + label: "开发区" + } + ] + }, + { + value: "潍坊市", + label: "潍坊市", + children: [ + { + value: "潍城区", + label: "潍城区" + }, + { + value: "寒亭区", + label: "寒亭区" + }, + { + value: "坊子区", + label: "坊子区" + }, + { + value: "奎文区", + label: "奎文区" + }, + { + value: "临朐县", + label: "临朐县" + }, + { + value: "昌乐县", + label: "昌乐县" + }, + { + value: "潍坊滨海经济技术开发区", + label: "潍坊滨海经济技术开发区" + }, + { + value: "青州市", + label: "青州市" + }, + { + value: "诸城市", + label: "诸城市" + }, + { + value: "寿光市", + label: "寿光市" + }, + { + value: "安丘市", + label: "安丘市" + }, + { + value: "高密市", + label: "高密市" + }, + { + value: "昌邑市", + label: "昌邑市" + }, + { + value: "开发区", + label: "开发区" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "济宁市", + label: "济宁市", + children: [ + { + value: "任城区", + label: "任城区" + }, + { + value: "兖州区", + label: "兖州区" + }, + { + value: "微山县", + label: "微山县" + }, + { + value: "鱼台县", + label: "鱼台县" + }, + { + value: "金乡县", + label: "金乡县" + }, + { + value: "嘉祥县", + label: "嘉祥县" + }, + { + value: "汶上县", + label: "汶上县" + }, + { + value: "泗水县", + label: "泗水县" + }, + { + value: "梁山县", + label: "梁山县" + }, + { + value: "济宁高新技术产业开发区", + label: "济宁高新技术产业开发区" + }, + { + value: "曲阜市", + label: "曲阜市" + }, + { + value: "邹城市", + label: "邹城市" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "泰安市", + label: "泰安市", + children: [ + { + value: "泰山区", + label: "泰山区" + }, + { + value: "岱岳区", + label: "岱岳区" + }, + { + value: "宁阳县", + label: "宁阳县" + }, + { + value: "东平县", + label: "东平县" + }, + { + value: "新泰市", + label: "新泰市" + }, + { + value: "肥城市", + label: "肥城市" + } + ] + }, + { + value: "威海市", + label: "威海市", + children: [ + { + value: "环翠区", + label: "环翠区" + }, + { + value: "文登区", + label: "文登区" + }, + { + value: "威海火炬高技术产业开发区", + label: "威海火炬高技术产业开发区" + }, + { + value: "威海经济技术开发区", + label: "威海经济技术开发区" + }, + { + value: "荣成市", + label: "荣成市" + }, + { + value: "乳山市", + label: "乳山市" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "日照市", + label: "日照市", + children: [ + { + value: "东港区", + label: "东港区" + }, + { + value: "岚山区", + label: "岚山区" + }, + { + value: "五莲县", + label: "五莲县" + }, + { + value: "莒县", + label: "莒县" + }, + { + value: "日照经济技术开发区", + label: "日照经济技术开发区" + } + ] + }, + { + value: "临沂市", + label: "临沂市", + children: [ + { + value: "兰山区", + label: "兰山区" + }, + { + value: "罗庄区", + label: "罗庄区" + }, + { + value: "河东区", + label: "河东区" + }, + { + value: "沂南县", + label: "沂南县" + }, + { + value: "郯城县", + label: "郯城县" + }, + { + value: "沂水县", + label: "沂水县" + }, + { + value: "兰陵县", + label: "兰陵县" + }, + { + value: "费县", + label: "费县" + }, + { + value: "平邑县", + label: "平邑县" + }, + { + value: "莒南县", + label: "莒南县" + }, + { + value: "蒙阴县", + label: "蒙阴县" + }, + { + value: "临沭县", + label: "临沭县" + }, + { + value: "临沂高新技术产业开发区", + label: "临沂高新技术产业开发区" + } + ] + }, + { + value: "德州市", + label: "德州市", + children: [ + { + value: "德城区", + label: "德城区" + }, + { + value: "陵城区", + label: "陵城区" + }, + { + value: "宁津县", + label: "宁津县" + }, + { + value: "庆云县", + label: "庆云县" + }, + { + value: "临邑县", + label: "临邑县" + }, + { + value: "齐河县", + label: "齐河县" + }, + { + value: "平原县", + label: "平原县" + }, + { + value: "夏津县", + label: "夏津县" + }, + { + value: "武城县", + label: "武城县" + }, + { + value: "德州运河经济开发区", + label: "德州运河经济开发区" + }, + { + value: "乐陵市", + label: "乐陵市" + }, + { + value: "禹城市", + label: "禹城市" + } + ] + }, + { + value: "聊城市", + label: "聊城市", + children: [ + { + value: "东昌府区", + label: "东昌府区" + }, + { + value: "茌平区", + label: "茌平区" + }, + { + value: "阳谷县", + label: "阳谷县" + }, + { + value: "莘县", + label: "莘县" + }, + { + value: "东阿县", + label: "东阿县" + }, + { + value: "冠县", + label: "冠县" + }, + { + value: "高唐县", + label: "高唐县" + }, + { + value: "临清市", + label: "临清市" + } + ] + }, + { + value: "滨州市", + label: "滨州市", + children: [ + { + value: "滨城区", + label: "滨城区" + }, + { + value: "沾化区", + label: "沾化区" + }, + { + value: "惠民县", + label: "惠民县" + }, + { + value: "阳信县", + label: "阳信县" + }, + { + value: "无棣县", + label: "无棣县" + }, + { + value: "博兴县", + label: "博兴县" + }, + { + value: "邹平市", + label: "邹平市" + } + ] + }, + { + value: "菏泽市", + label: "菏泽市", + children: [ + { + value: "牡丹区", + label: "牡丹区" + }, + { + value: "定陶区", + label: "定陶区" + }, + { + value: "曹县", + label: "曹县" + }, + { + value: "单县", + label: "单县" + }, + { + value: "成武县", + label: "成武县" + }, + { + value: "巨野县", + label: "巨野县" + }, + { + value: "郓城县", + label: "郓城县" + }, + { + value: "鄄城县", + label: "鄄城县" + }, + { + value: "东明县", + label: "东明县" + }, + { + value: "菏泽经济技术开发区", + label: "菏泽经济技术开发区" + }, + { + value: "菏泽高新技术开发区", + label: "菏泽高新技术开发区" + } + ] + } + ] + }, + { + value: "河南省", + label: "河南省", + children: [ + { + value: "郑州市", + label: "郑州市", + children: [ + { + value: "中原区", + label: "中原区" + }, + { + value: "二七区", + label: "二七区" + }, + { + value: "管城回族区", + label: "管城回族区" + }, + { + value: "金水区", + label: "金水区" + }, + { + value: "上街区", + label: "上街区" + }, + { + value: "惠济区", + label: "惠济区" + }, + { + value: "中牟县", + label: "中牟县" + }, + { + value: "郑州经济技术开发区", + label: "郑州经济技术开发区" + }, + { + value: "郑州高新技术产业开发区", + label: "郑州高新技术产业开发区" + }, + { + value: "郑州航空港经济综合实验区", + label: "郑州航空港经济综合实验区" + }, + { + value: "巩义市", + label: "巩义市" + }, + { + value: "荥阳市", + label: "荥阳市" + }, + { + value: "新密市", + label: "新密市" + }, + { + value: "新郑市", + label: "新郑市" + }, + { + value: "登封市", + label: "登封市" + }, + { + value: "高新技术开发区", + label: "高新技术开发区" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "开封市", + label: "开封市", + children: [ + { + value: "龙亭区", + label: "龙亭区" + }, + { + value: "顺河回族区", + label: "顺河回族区" + }, + { + value: "鼓楼区", + label: "鼓楼区" + }, + { + value: "禹王台区", + label: "禹王台区" + }, + { + value: "祥符区", + label: "祥符区" + }, + { + value: "杞县", + label: "杞县" + }, + { + value: "通许县", + label: "通许县" + }, + { + value: "尉氏县", + label: "尉氏县" + }, + { + value: "兰考县", + label: "兰考县" + } + ] + }, + { + value: "洛阳市", + label: "洛阳市", + children: [ + { + value: "老城区", + label: "老城区" + }, + { + value: "西工区", + label: "西工区" + }, + { + value: "瀍河回族区", + label: "瀍河回族区" + }, + { + value: "涧西区", + label: "涧西区" + }, + { + value: "偃师区", + label: "偃师区" + }, + { + value: "孟津区", + label: "孟津区" + }, + { + value: "洛龙区", + label: "洛龙区" + }, + { + value: "新安县", + label: "新安县" + }, + { + value: "栾川县", + label: "栾川县" + }, + { + value: "嵩县", + label: "嵩县" + }, + { + value: "汝阳县", + label: "汝阳县" + }, + { + value: "宜阳县", + label: "宜阳县" + }, + { + value: "洛宁县", + label: "洛宁县" + }, + { + value: "伊川县", + label: "伊川县" + } + ] + }, + { + value: "平顶山市", + label: "平顶山市", + children: [ + { + value: "新华区", + label: "新华区" + }, + { + value: "卫东区", + label: "卫东区" + }, + { + value: "石龙区", + label: "石龙区" + }, + { + value: "湛河区", + label: "湛河区" + }, + { + value: "宝丰县", + label: "宝丰县" + }, + { + value: "叶县", + label: "叶县" + }, + { + value: "鲁山县", + label: "鲁山县" + }, + { + value: "郏县", + label: "郏县" + }, + { + value: "平顶山高新技术产业开发区", + label: "平顶山高新技术产业开发区" + }, + { + value: "舞钢市", + label: "舞钢市" + }, + { + value: "汝州市", + label: "汝州市" + } + ] + }, + { + value: "安阳市", + label: "安阳市", + children: [ + { + value: "文峰区", + label: "文峰区" + }, + { + value: "北关区", + label: "北关区" + }, + { + value: "殷都区", + label: "殷都区" + }, + { + value: "龙安区", + label: "龙安区" + }, + { + value: "安阳县", + label: "安阳县" + }, + { + value: "汤阴县", + label: "汤阴县" + }, + { + value: "滑县", + label: "滑县" + }, + { + value: "内黄县", + label: "内黄县" + }, + { + value: "林州市", + label: "林州市" + }, + { + value: "开发区", + label: "开发区" + } + ] + }, + { + value: "鹤壁市", + label: "鹤壁市", + children: [ + { + value: "鹤山区", + label: "鹤山区" + }, + { + value: "山城区", + label: "山城区" + }, + { + value: "淇滨区", + label: "淇滨区" + }, + { + value: "浚县", + label: "浚县" + }, + { + value: "淇县", + label: "淇县" + } + ] + }, + { + value: "新乡市", + label: "新乡市", + children: [ + { + value: "红旗区", + label: "红旗区" + }, + { + value: "卫滨区", + label: "卫滨区" + }, + { + value: "凤泉区", + label: "凤泉区" + }, + { + value: "牧野区", + label: "牧野区" + }, + { + value: "新乡县", + label: "新乡县" + }, + { + value: "获嘉县", + label: "获嘉县" + }, + { + value: "原阳县", + label: "原阳县" + }, + { + value: "延津县", + label: "延津县" + }, + { + value: "封丘县", + label: "封丘县" + }, + { + value: "新乡高新技术产业开发区", + label: "新乡高新技术产业开发区" + }, + { + value: "新乡经济技术开发区", + label: "新乡经济技术开发区" + }, + { + value: "卫辉市", + label: "卫辉市" + }, + { + value: "辉县市", + label: "辉县市" + }, + { + value: "长垣市", + label: "长垣市" + } + ] + }, + { + value: "焦作市", + label: "焦作市", + children: [ + { + value: "解放区", + label: "解放区" + }, + { + value: "中站区", + label: "中站区" + }, + { + value: "马村区", + label: "马村区" + }, + { + value: "山阳区", + label: "山阳区" + }, + { + value: "修武县", + label: "修武县" + }, + { + value: "博爱县", + label: "博爱县" + }, + { + value: "武陟县", + label: "武陟县" + }, + { + value: "温县", + label: "温县" + }, + { + value: "焦作城乡一体化示范区", + label: "焦作城乡一体化示范区" + }, + { + value: "沁阳市", + label: "沁阳市" + }, + { + value: "孟州市", + label: "孟州市" + } + ] + }, + { + value: "濮阳市", + label: "濮阳市", + children: [ + { + value: "华龙区", + label: "华龙区" + }, + { + value: "清丰县", + label: "清丰县" + }, + { + value: "南乐县", + label: "南乐县" + }, + { + value: "范县", + label: "范县" + }, + { + value: "台前县", + label: "台前县" + }, + { + value: "濮阳县", + label: "濮阳县" + }, + { + value: "河南濮阳工业园区", + label: "河南濮阳工业园区" + } + ] + }, + { + value: "许昌市", + label: "许昌市", + children: [ + { + value: "魏都区", + label: "魏都区" + }, + { + value: "建安区", + label: "建安区" + }, + { + value: "鄢陵县", + label: "鄢陵县" + }, + { + value: "襄城县", + label: "襄城县" + }, + { + value: "许昌经济技术开发区", + label: "许昌经济技术开发区" + }, + { + value: "禹州市", + label: "禹州市" + }, + { + value: "长葛市", + label: "长葛市" + } + ] + }, + { + value: "漯河市", + label: "漯河市", + children: [ + { + value: "源汇区", + label: "源汇区" + }, + { + value: "郾城区", + label: "郾城区" + }, + { + value: "召陵区", + label: "召陵区" + }, + { + value: "舞阳县", + label: "舞阳县" + }, + { + value: "临颍县", + label: "临颍县" + }, + { + value: "漯河经济技术开发区", + label: "漯河经济技术开发区" + } + ] + }, + { + value: "三门峡市", + label: "三门峡市", + children: [ + { + value: "湖滨区", + label: "湖滨区" + }, + { + value: "陕州区", + label: "陕州区" + }, + { + value: "渑池县", + label: "渑池县" + }, + { + value: "卢氏县", + label: "卢氏县" + }, + { + value: "河南三门峡经济开发区", + label: "河南三门峡经济开发区" + }, + { + value: "义马市", + label: "义马市" + }, + { + value: "灵宝市", + label: "灵宝市" + } + ] + }, + { + value: "南阳市", + label: "南阳市", + children: [ + { + value: "宛城区", + label: "宛城区" + }, + { + value: "卧龙区", + label: "卧龙区" + }, + { + value: "南召县", + label: "南召县" + }, + { + value: "方城县", + label: "方城县" + }, + { + value: "西峡县", + label: "西峡县" + }, + { + value: "镇平县", + label: "镇平县" + }, + { + value: "内乡县", + label: "内乡县" + }, + { + value: "淅川县", + label: "淅川县" + }, + { + value: "社旗县", + label: "社旗县" + }, + { + value: "唐河县", + label: "唐河县" + }, + { + value: "新野县", + label: "新野县" + }, + { + value: "桐柏县", + label: "桐柏县" + }, + { + value: "南阳市城乡一体化示范区", + label: "南阳市城乡一体化示范区" + }, + { + value: "邓州市", + label: "邓州市" + } + ] + }, + { + value: "商丘市", + label: "商丘市", + children: [ + { + value: "梁园区", + label: "梁园区" + }, + { + value: "睢阳区", + label: "睢阳区" + }, + { + value: "民权县", + label: "民权县" + }, + { + value: "睢县", + label: "睢县" + }, + { + value: "宁陵县", + label: "宁陵县" + }, + { + value: "柘城县", + label: "柘城县" + }, + { + value: "虞城县", + label: "虞城县" + }, + { + value: "夏邑县", + label: "夏邑县" + }, + { + value: "永城市", + label: "永城市" + } + ] + }, + { + value: "信阳市", + label: "信阳市", + children: [ + { + value: "浉河区", + label: "浉河区" + }, + { + value: "平桥区", + label: "平桥区" + }, + { + value: "罗山县", + label: "罗山县" + }, + { + value: "光山县", + label: "光山县" + }, + { + value: "新县", + label: "新县" + }, + { + value: "商城县", + label: "商城县" + }, + { + value: "固始县", + label: "固始县" + }, + { + value: "潢川县", + label: "潢川县" + }, + { + value: "淮滨县", + label: "淮滨县" + }, + { + value: "息县", + label: "息县" + } + ] + }, + { + value: "周口市", + label: "周口市", + children: [ + { + value: "川汇区", + label: "川汇区" + }, + { + value: "淮阳区", + label: "淮阳区" + }, + { + value: "扶沟县", + label: "扶沟县" + }, + { + value: "西华县", + label: "西华县" + }, + { + value: "商水县", + label: "商水县" + }, + { + value: "沈丘县", + label: "沈丘县" + }, + { + value: "郸城县", + label: "郸城县" + }, + { + value: "太康县", + label: "太康县" + }, + { + value: "鹿邑县", + label: "鹿邑县" + }, + { + value: "河南周口经济开发区", + label: "河南周口经济开发区" + }, + { + value: "项城市", + label: "项城市" + }, + { + value: "经济开发区", + label: "经济开发区" + } + ] + }, + { + value: "驻马店市", + label: "驻马店市", + children: [ + { + value: "驿城区", + label: "驿城区" + }, + { + value: "西平县", + label: "西平县" + }, + { + value: "上蔡县", + label: "上蔡县" + }, + { + value: "平舆县", + label: "平舆县" + }, + { + value: "正阳县", + label: "正阳县" + }, + { + value: "确山县", + label: "确山县" + }, + { + value: "泌阳县", + label: "泌阳县" + }, + { + value: "汝南县", + label: "汝南县" + }, + { + value: "遂平县", + label: "遂平县" + }, + { + value: "新蔡县", + label: "新蔡县" + } + ] + }, + { + value: "省直辖县", + label: "省直辖县", + children: [ + { + value: "济源市", + label: "济源市" + } + ] + } + ] + }, + { + value: "湖北省", + label: "湖北省", + children: [ + { + value: "武汉市", + label: "武汉市", + children: [ + { + value: "江岸区", + label: "江岸区" + }, + { + value: "江汉区", + label: "江汉区" + }, + { + value: "硚口区", + label: "硚口区" + }, + { + value: "汉阳区", + label: "汉阳区" + }, + { + value: "武昌区", + label: "武昌区" + }, + { + value: "青山区", + label: "青山区" + }, + { + value: "洪山区", + label: "洪山区" + }, + { + value: "东西湖区", + label: "东西湖区" + }, + { + value: "汉南区", + label: "汉南区" + }, + { + value: "蔡甸区", + label: "蔡甸区" + }, + { + value: "江夏区", + label: "江夏区" + }, + { + value: "黄陂区", + label: "黄陂区" + }, + { + value: "新洲区", + label: "新洲区" + } + ] + }, + { + value: "黄石市", + label: "黄石市", + children: [ + { + value: "黄石港区", + label: "黄石港区" + }, + { + value: "西塞山区", + label: "西塞山区" + }, + { + value: "下陆区", + label: "下陆区" + }, + { + value: "铁山区", + label: "铁山区" + }, + { + value: "阳新县", + label: "阳新县" + }, + { + value: "大冶市", + label: "大冶市" + } + ] + }, + { + value: "十堰市", + label: "十堰市", + children: [ + { + value: "茅箭区", + label: "茅箭区" + }, + { + value: "张湾区", + label: "张湾区" + }, + { + value: "郧阳区", + label: "郧阳区" + }, + { + value: "郧西县", + label: "郧西县" + }, + { + value: "竹山县", + label: "竹山县" + }, + { + value: "竹溪县", + label: "竹溪县" + }, + { + value: "房县", + label: "房县" + }, + { + value: "丹江口市", + label: "丹江口市" + } + ] + }, + { + value: "宜昌市", + label: "宜昌市", + children: [ + { + value: "西陵区", + label: "西陵区" + }, + { + value: "伍家岗区", + label: "伍家岗区" + }, + { + value: "点军区", + label: "点军区" + }, + { + value: "猇亭区", + label: "猇亭区" + }, + { + value: "夷陵区", + label: "夷陵区" + }, + { + value: "远安县", + label: "远安县" + }, + { + value: "兴山县", + label: "兴山县" + }, + { + value: "秭归县", + label: "秭归县" + }, + { + value: "长阳土家族自治县", + label: "长阳土家族自治县" + }, + { + value: "五峰土家族自治县", + label: "五峰土家族自治县" + }, + { + value: "宜都市", + label: "宜都市" + }, + { + value: "当阳市", + label: "当阳市" + }, + { + value: "枝江市", + label: "枝江市" + }, + { + value: "经济开发区", + label: "经济开发区" + } + ] + }, + { + value: "襄阳市", + label: "襄阳市", + children: [ + { + value: "襄城区", + label: "襄城区" + }, + { + value: "樊城区", + label: "樊城区" + }, + { + value: "襄州区", + label: "襄州区" + }, + { + value: "南漳县", + label: "南漳县" + }, + { + value: "谷城县", + label: "谷城县" + }, + { + value: "保康县", + label: "保康县" + }, + { + value: "老河口市", + label: "老河口市" + }, + { + value: "枣阳市", + label: "枣阳市" + }, + { + value: "宜城市", + label: "宜城市" + } + ] + }, + { + value: "鄂州市", + label: "鄂州市", + children: [ + { + value: "梁子湖区", + label: "梁子湖区" + }, + { + value: "华容区", + label: "华容区" + }, + { + value: "鄂城区", + label: "鄂城区" + } + ] + }, + { + value: "荆门市", + label: "荆门市", + children: [ + { + value: "东宝区", + label: "东宝区" + }, + { + value: "掇刀区", + label: "掇刀区" + }, + { + value: "沙洋县", + label: "沙洋县" + }, + { + value: "钟祥市", + label: "钟祥市" + }, + { + value: "京山市", + label: "京山市" + } + ] + }, + { + value: "孝感市", + label: "孝感市", + children: [ + { + value: "孝南区", + label: "孝南区" + }, + { + value: "孝昌县", + label: "孝昌县" + }, + { + value: "大悟县", + label: "大悟县" + }, + { + value: "云梦县", + label: "云梦县" + }, + { + value: "应城市", + label: "应城市" + }, + { + value: "安陆市", + label: "安陆市" + }, + { + value: "汉川市", + label: "汉川市" + } + ] + }, + { + value: "荆州市", + label: "荆州市", + children: [ + { + value: "沙市区", + label: "沙市区" + }, + { + value: "荆州区", + label: "荆州区" + }, + { + value: "公安县", + label: "公安县" + }, + { + value: "江陵县", + label: "江陵县" + }, + { + value: "石首市", + label: "石首市" + }, + { + value: "洪湖市", + label: "洪湖市" + }, + { + value: "松滋市", + label: "松滋市" + }, + { + value: "监利市", + label: "监利市" + } + ] + }, + { + value: "黄冈市", + label: "黄冈市", + children: [ + { + value: "黄州区", + label: "黄州区" + }, + { + value: "团风县", + label: "团风县" + }, + { + value: "红安县", + label: "红安县" + }, + { + value: "罗田县", + label: "罗田县" + }, + { + value: "英山县", + label: "英山县" + }, + { + value: "浠水县", + label: "浠水县" + }, + { + value: "蕲春县", + label: "蕲春县" + }, + { + value: "黄梅县", + label: "黄梅县" + }, + { + value: "龙感湖管理区", + label: "龙感湖管理区" + }, + { + value: "麻城市", + label: "麻城市" + }, + { + value: "武穴市", + label: "武穴市" + } + ] + }, + { + value: "咸宁市", + label: "咸宁市", + children: [ + { + value: "咸安区", + label: "咸安区" + }, + { + value: "嘉鱼县", + label: "嘉鱼县" + }, + { + value: "通城县", + label: "通城县" + }, + { + value: "崇阳县", + label: "崇阳县" + }, + { + value: "通山县", + label: "通山县" + }, + { + value: "赤壁市", + label: "赤壁市" + } + ] + }, + { + value: "随州市", + label: "随州市", + children: [ + { + value: "曾都区", + label: "曾都区" + }, + { + value: "随县", + label: "随县" + }, + { + value: "广水市", + label: "广水市" + } + ] + }, + { + value: "恩施土家族苗族自治州", + label: "恩施土家族苗族自治州", + children: [ + { + value: "恩施市", + label: "恩施市" + }, + { + value: "利川市", + label: "利川市" + }, + { + value: "建始县", + label: "建始县" + }, + { + value: "巴东县", + label: "巴东县" + }, + { + value: "宣恩县", + label: "宣恩县" + }, + { + value: "咸丰县", + label: "咸丰县" + }, + { + value: "来凤县", + label: "来凤县" + }, + { + value: "鹤峰县", + label: "鹤峰县" + } + ] + }, + { + value: "省直辖县", + label: "省直辖县", + children: [ + { + value: "仙桃市", + label: "仙桃市" + }, + { + value: "潜江市", + label: "潜江市" + }, + { + value: "天门市", + label: "天门市" + }, + { + value: "神农架林区", + label: "神农架林区" + } + ] + } + ] + }, + { + value: "湖南省", + label: "湖南省", + children: [ + { + value: "长沙市", + label: "长沙市", + children: [ + { + value: "芙蓉区", + label: "芙蓉区" + }, + { + value: "天心区", + label: "天心区" + }, + { + value: "岳麓区", + label: "岳麓区" + }, + { + value: "开福区", + label: "开福区" + }, + { + value: "雨花区", + label: "雨花区" + }, + { + value: "望城区", + label: "望城区" + }, + { + value: "长沙县", + label: "长沙县" + }, + { + value: "浏阳市", + label: "浏阳市" + }, + { + value: "宁乡市", + label: "宁乡市" + } + ] + }, + { + value: "株洲市", + label: "株洲市", + children: [ + { + value: "荷塘区", + label: "荷塘区" + }, + { + value: "芦淞区", + label: "芦淞区" + }, + { + value: "石峰区", + label: "石峰区" + }, + { + value: "天元区", + label: "天元区" + }, + { + value: "渌口区", + label: "渌口区" + }, + { + value: "攸县", + label: "攸县" + }, + { + value: "茶陵县", + label: "茶陵县" + }, + { + value: "炎陵县", + label: "炎陵县" + }, + { + value: "云龙示范区", + label: "云龙示范区" + }, + { + value: "醴陵市", + label: "醴陵市" + } + ] + }, + { + value: "湘潭市", + label: "湘潭市", + children: [ + { + value: "雨湖区", + label: "雨湖区" + }, + { + value: "岳塘区", + label: "岳塘区" + }, + { + value: "湘潭县", + label: "湘潭县" + }, + { + value: "湘潭九华示范区", + label: "湘潭九华示范区" + }, + { + value: "湘乡市", + label: "湘乡市" + }, + { + value: "韶山市", + label: "韶山市" + } + ] + }, + { + value: "衡阳市", + label: "衡阳市", + children: [ + { + value: "珠晖区", + label: "珠晖区" + }, + { + value: "雁峰区", + label: "雁峰区" + }, + { + value: "石鼓区", + label: "石鼓区" + }, + { + value: "蒸湘区", + label: "蒸湘区" + }, + { + value: "南岳区", + label: "南岳区" + }, + { + value: "衡阳县", + label: "衡阳县" + }, + { + value: "衡南县", + label: "衡南县" + }, + { + value: "衡山县", + label: "衡山县" + }, + { + value: "衡东县", + label: "衡东县" + }, + { + value: "祁东县", + label: "祁东县" + }, + { + value: "耒阳市", + label: "耒阳市" + }, + { + value: "常宁市", + label: "常宁市" + } + ] + }, + { + value: "邵阳市", + label: "邵阳市", + children: [ + { + value: "双清区", + label: "双清区" + }, + { + value: "大祥区", + label: "大祥区" + }, + { + value: "北塔区", + label: "北塔区" + }, + { + value: "新邵县", + label: "新邵县" + }, + { + value: "邵阳县", + label: "邵阳县" + }, + { + value: "隆回县", + label: "隆回县" + }, + { + value: "洞口县", + label: "洞口县" + }, + { + value: "绥宁县", + label: "绥宁县" + }, + { + value: "新宁县", + label: "新宁县" + }, + { + value: "城步苗族自治县", + label: "城步苗族自治县" + }, + { + value: "武冈市", + label: "武冈市" + }, + { + value: "邵东市", + label: "邵东市" + } + ] + }, + { + value: "岳阳市", + label: "岳阳市", + children: [ + { + value: "岳阳楼区", + label: "岳阳楼区" + }, + { + value: "云溪区", + label: "云溪区" + }, + { + value: "君山区", + label: "君山区" + }, + { + value: "岳阳县", + label: "岳阳县" + }, + { + value: "华容县", + label: "华容县" + }, + { + value: "湘阴县", + label: "湘阴县" + }, + { + value: "平江县", + label: "平江县" + }, + { + value: "汨罗市", + label: "汨罗市" + }, + { + value: "临湘市", + label: "临湘市" + } + ] + }, + { + value: "常德市", + label: "常德市", + children: [ + { + value: "武陵区", + label: "武陵区" + }, + { + value: "鼎城区", + label: "鼎城区" + }, + { + value: "安乡县", + label: "安乡县" + }, + { + value: "汉寿县", + label: "汉寿县" + }, + { + value: "澧县", + label: "澧县" + }, + { + value: "临澧县", + label: "临澧县" + }, + { + value: "桃源县", + label: "桃源县" + }, + { + value: "石门县", + label: "石门县" + }, + { + value: "津市市", + label: "津市市" + } + ] + }, + { + value: "张家界市", + label: "张家界市", + children: [ + { + value: "永定区", + label: "永定区" + }, + { + value: "武陵源区", + label: "武陵源区" + }, + { + value: "慈利县", + label: "慈利县" + }, + { + value: "桑植县", + label: "桑植县" + } + ] + }, + { + value: "益阳市", + label: "益阳市", + children: [ + { + value: "资阳区", + label: "资阳区" + }, + { + value: "赫山区", + label: "赫山区" + }, + { + value: "南县", + label: "南县" + }, + { + value: "桃江县", + label: "桃江县" + }, + { + value: "安化县", + label: "安化县" + }, + { + value: "益阳市大通湖管理区", + label: "益阳市大通湖管理区" + }, + { + value: "沅江市", + label: "沅江市" + } + ] + }, + { + value: "郴州市", + label: "郴州市", + children: [ + { + value: "北湖区", + label: "北湖区" + }, + { + value: "苏仙区", + label: "苏仙区" + }, + { + value: "桂阳县", + label: "桂阳县" + }, + { + value: "宜章县", + label: "宜章县" + }, + { + value: "永兴县", + label: "永兴县" + }, + { + value: "嘉禾县", + label: "嘉禾县" + }, + { + value: "临武县", + label: "临武县" + }, + { + value: "汝城县", + label: "汝城县" + }, + { + value: "桂东县", + label: "桂东县" + }, + { + value: "安仁县", + label: "安仁县" + }, + { + value: "资兴市", + label: "资兴市" + } + ] + }, + { + value: "永州市", + label: "永州市", + children: [ + { + value: "零陵区", + label: "零陵区" + }, + { + value: "冷水滩区", + label: "冷水滩区" + }, + { + value: "东安县", + label: "东安县" + }, + { + value: "双牌县", + label: "双牌县" + }, + { + value: "道县", + label: "道县" + }, + { + value: "江永县", + label: "江永县" + }, + { + value: "宁远县", + label: "宁远县" + }, + { + value: "蓝山县", + label: "蓝山县" + }, + { + value: "新田县", + label: "新田县" + }, + { + value: "江华瑶族自治县", + label: "江华瑶族自治县" + }, + { + value: "祁阳市", + label: "祁阳市" + } + ] + }, + { + value: "怀化市", + label: "怀化市", + children: [ + { + value: "鹤城区", + label: "鹤城区" + }, + { + value: "中方县", + label: "中方县" + }, + { + value: "沅陵县", + label: "沅陵县" + }, + { + value: "辰溪县", + label: "辰溪县" + }, + { + value: "溆浦县", + label: "溆浦县" + }, + { + value: "会同县", + label: "会同县" + }, + { + value: "麻阳苗族自治县", + label: "麻阳苗族自治县" + }, + { + value: "新晃侗族自治县", + label: "新晃侗族自治县" + }, + { + value: "芷江侗族自治县", + label: "芷江侗族自治县" + }, + { + value: "靖州苗族侗族自治县", + label: "靖州苗族侗族自治县" + }, + { + value: "通道侗族自治县", + label: "通道侗族自治县" + }, + { + value: "怀化市洪江管理区", + label: "怀化市洪江管理区" + }, + { + value: "洪江市", + label: "洪江市" + } + ] + }, + { + value: "娄底市", + label: "娄底市", + children: [ + { + value: "娄星区", + label: "娄星区" + }, + { + value: "双峰县", + label: "双峰县" + }, + { + value: "新化县", + label: "新化县" + }, + { + value: "冷水江市", + label: "冷水江市" + }, + { + value: "涟源市", + label: "涟源市" + } + ] + }, + { + value: "湘西土家族苗族自治州", + label: "湘西土家族苗族自治州", + children: [ + { + value: "吉首市", + label: "吉首市" + }, + { + value: "泸溪县", + label: "泸溪县" + }, + { + value: "凤凰县", + label: "凤凰县" + }, + { + value: "花垣县", + label: "花垣县" + }, + { + value: "保靖县", + label: "保靖县" + }, + { + value: "古丈县", + label: "古丈县" + }, + { + value: "永顺县", + label: "永顺县" + }, + { + value: "龙山县", + label: "龙山县" + } + ] + } + ] + }, + { + value: "广东省", + label: "广东省", + children: [ + { + value: "广州市", + label: "广州市", + children: [ + { + value: "荔湾区", + label: "荔湾区" + }, + { + value: "越秀区", + label: "越秀区" + }, + { + value: "海珠区", + label: "海珠区" + }, + { + value: "天河区", + label: "天河区" + }, + { + value: "白云区", + label: "白云区" + }, + { + value: "黄埔区", + label: "黄埔区" + }, + { + value: "番禺区", + label: "番禺区" + }, + { + value: "花都区", + label: "花都区" + }, + { + value: "南沙区", + label: "南沙区" + }, + { + value: "从化区", + label: "从化区" + }, + { + value: "增城区", + label: "增城区" + } + ] + }, + { + value: "韶关市", + label: "韶关市", + children: [ + { + value: "武江区", + label: "武江区" + }, + { + value: "浈江区", + label: "浈江区" + }, + { + value: "曲江区", + label: "曲江区" + }, + { + value: "始兴县", + label: "始兴县" + }, + { + value: "仁化县", + label: "仁化县" + }, + { + value: "翁源县", + label: "翁源县" + }, + { + value: "乳源瑶族自治县", + label: "乳源瑶族自治县" + }, + { + value: "新丰县", + label: "新丰县" + }, + { + value: "乐昌市", + label: "乐昌市" + }, + { + value: "南雄市", + label: "南雄市" + } + ] + }, + { + value: "深圳市", + label: "深圳市", + children: [ + { + value: "罗湖区", + label: "罗湖区" + }, + { + value: "福田区", + label: "福田区" + }, + { + value: "南山区", + label: "南山区" + }, + { + value: "宝安区", + label: "宝安区" + }, + { + value: "龙岗区", + label: "龙岗区" + }, + { + value: "盐田区", + label: "盐田区" + }, + { + value: "龙华区", + label: "龙华区" + }, + { + value: "坪山区", + label: "坪山区" + }, + { + value: "光明区", + label: "光明区" + } + ] + }, + { + value: "珠海市", + label: "珠海市", + children: [ + { + value: "香洲区", + label: "香洲区" + }, + { + value: "斗门区", + label: "斗门区" + }, + { + value: "金湾区", + label: "金湾区" + } + ] + }, + { + value: "汕头市", + label: "汕头市", + children: [ + { + value: "龙湖区", + label: "龙湖区" + }, + { + value: "金平区", + label: "金平区" + }, + { + value: "濠江区", + label: "濠江区" + }, + { + value: "潮阳区", + label: "潮阳区" + }, + { + value: "潮南区", + label: "潮南区" + }, + { + value: "澄海区", + label: "澄海区" + }, + { + value: "南澳县", + label: "南澳县" + } + ] + }, + { + value: "佛山市", + label: "佛山市", + children: [ + { + value: "禅城区", + label: "禅城区" + }, + { + value: "南海区", + label: "南海区" + }, + { + value: "顺德区", + label: "顺德区" + }, + { + value: "三水区", + label: "三水区" + }, + { + value: "高明区", + label: "高明区" + } + ] + }, + { + value: "江门市", + label: "江门市", + children: [ + { + value: "蓬江区", + label: "蓬江区" + }, + { + value: "江海区", + label: "江海区" + }, + { + value: "新会区", + label: "新会区" + }, + { + value: "台山市", + label: "台山市" + }, + { + value: "开平市", + label: "开平市" + }, + { + value: "鹤山市", + label: "鹤山市" + }, + { + value: "恩平市", + label: "恩平市" + } + ] + }, + { + value: "湛江市", + label: "湛江市", + children: [ + { + value: "赤坎区", + label: "赤坎区" + }, + { + value: "霞山区", + label: "霞山区" + }, + { + value: "坡头区", + label: "坡头区" + }, + { + value: "麻章区", + label: "麻章区" + }, + { + value: "遂溪县", + label: "遂溪县" + }, + { + value: "徐闻县", + label: "徐闻县" + }, + { + value: "廉江市", + label: "廉江市" + }, + { + value: "雷州市", + label: "雷州市" + }, + { + value: "吴川市", + label: "吴川市" + }, + { + value: "经济技术开发区", + label: "经济技术开发区" + } + ] + }, + { + value: "茂名市", + label: "茂名市", + children: [ + { + value: "茂南区", + label: "茂南区" + }, + { + value: "电白区", + label: "电白区" + }, + { + value: "高州市", + label: "高州市" + }, + { + value: "化州市", + label: "化州市" + }, + { + value: "信宜市", + label: "信宜市" + } + ] + }, + { + value: "肇庆市", + label: "肇庆市", + children: [ + { + value: "端州区", + label: "端州区" + }, + { + value: "鼎湖区", + label: "鼎湖区" + }, + { + value: "高要区", + label: "高要区" + }, + { + value: "广宁县", + label: "广宁县" + }, + { + value: "怀集县", + label: "怀集县" + }, + { + value: "封开县", + label: "封开县" + }, + { + value: "德庆县", + label: "德庆县" + }, + { + value: "四会市", + label: "四会市" + } + ] + }, + { + value: "惠州市", + label: "惠州市", + children: [ + { + value: "惠城区", + label: "惠城区" + }, + { + value: "惠阳区", + label: "惠阳区" + }, + { + value: "博罗县", + label: "博罗县" + }, + { + value: "惠东县", + label: "惠东县" + }, + { + value: "龙门县", + label: "龙门县" + } + ] + }, + { + value: "梅州市", + label: "梅州市", + children: [ + { + value: "梅江区", + label: "梅江区" + }, + { + value: "梅县区", + label: "梅县区" + }, + { + value: "大埔县", + label: "大埔县" + }, + { + value: "丰顺县", + label: "丰顺县" + }, + { + value: "五华县", + label: "五华县" + }, + { + value: "平远县", + label: "平远县" + }, + { + value: "蕉岭县", + label: "蕉岭县" + }, + { + value: "兴宁市", + label: "兴宁市" + } + ] + }, + { + value: "汕尾市", + label: "汕尾市", + children: [ + { + value: "城区", + label: "城区" + }, + { + value: "海丰县", + label: "海丰县" + }, + { + value: "陆河县", + label: "陆河县" + }, + { + value: "陆丰市", + label: "陆丰市" + } + ] + }, + { + value: "河源市", + label: "河源市", + children: [ + { + value: "源城区", + label: "源城区" + }, + { + value: "紫金县", + label: "紫金县" + }, + { + value: "龙川县", + label: "龙川县" + }, + { + value: "连平县", + label: "连平县" + }, + { + value: "和平县", + label: "和平县" + }, + { + value: "东源县", + label: "东源县" + } + ] + }, + { + value: "阳江市", + label: "阳江市", + children: [ + { + value: "江城区", + label: "江城区" + }, + { + value: "阳东区", + label: "阳东区" + }, + { + value: "阳西县", + label: "阳西县" + }, + { + value: "阳春市", + label: "阳春市" + } + ] + }, + { + value: "清远市", + label: "清远市", + children: [ + { + value: "清城区", + label: "清城区" + }, + { + value: "清新区", + label: "清新区" + }, + { + value: "佛冈县", + label: "佛冈县" + }, + { + value: "阳山县", + label: "阳山县" + }, + { + value: "连山壮族瑶族自治县", + label: "连山壮族瑶族自治县" + }, + { + value: "连南瑶族自治县", + label: "连南瑶族自治县" + }, + { + value: "英德市", + label: "英德市" + }, + { + value: "连州市", + label: "连州市" + } + ] + }, + { + value: "东莞市", + label: "东莞市", + children: [ + { + value: "中堂镇", + label: "中堂镇" + }, + { + value: "南城街道", + label: "南城街道" + }, + { + value: "长安镇", + label: "长安镇" + }, + { + value: "东坑镇", + label: "东坑镇" + }, + { + value: "樟木头镇", + label: "樟木头镇" + }, + { + value: "莞城街道", + label: "莞城街道" + }, + { + value: "石龙镇", + label: "石龙镇" + }, + { + value: "桥头镇", + label: "桥头镇" + }, + { + value: "万江街道", + label: "万江街道" + }, + { + value: "麻涌镇", + label: "麻涌镇" + }, + { + value: "虎门镇", + label: "虎门镇" + }, + { + value: "谢岗镇", + label: "谢岗镇" + }, + { + value: "石碣镇", + label: "石碣镇" + }, + { + value: "茶山镇", + label: "茶山镇" + }, + { + value: "东城街道", + label: "东城街道" + }, + { + value: "洪梅镇", + label: "洪梅镇" + }, + { + value: "道滘镇", + label: "道滘镇" + }, + { + value: "高埗镇", + label: "高埗镇" + }, + { + value: "企石镇", + label: "企石镇" + }, + { + value: "凤岗镇", + label: "凤岗镇" + }, + { + value: "大岭山镇", + label: "大岭山镇" + }, + { + value: "松山湖", + label: "松山湖" + }, + { + value: "清溪镇", + label: "清溪镇" + }, + { + value: "望牛墩镇", + label: "望牛墩镇" + }, + { + value: "厚街镇", + label: "厚街镇" + }, + { + value: "常平镇", + label: "常平镇" + }, + { + value: "寮步镇", + label: "寮步镇" + }, + { + value: "石排镇", + label: "石排镇" + }, + { + value: "横沥镇", + label: "横沥镇" + }, + { + value: "塘厦镇", + label: "塘厦镇" + }, + { + value: "黄江镇", + label: "黄江镇" + }, + { + value: "大朗镇", + label: "大朗镇" + }, + { + value: "东莞港", + label: "东莞港" + }, + { + value: "东莞生态园", + label: "东莞生态园" + }, + { + value: "沙田镇", + label: "沙田镇" + } + ] + }, + { + value: "中山市", + label: "中山市", + children: [ + { + value: "南头镇", + label: "南头镇" + }, + { + value: "神湾镇", + label: "神湾镇" + }, + { + value: "东凤镇", + label: "东凤镇" + }, + { + value: "五桂山街道", + label: "五桂山街道" + }, + { + value: "黄圃镇", + label: "黄圃镇" + }, + { + value: "小榄镇", + label: "小榄镇" + }, + { + value: "石岐街道", + label: "石岐街道" + }, + { + value: "横栏镇", + label: "横栏镇" + }, + { + value: "三角镇", + label: "三角镇" + }, + { + value: "三乡镇", + label: "三乡镇" + }, + { + value: "港口镇", + label: "港口镇" + }, + { + value: "沙溪镇", + label: "沙溪镇" + }, + { + value: "板芙镇", + label: "板芙镇" + }, + { + value: "东升镇", + label: "东升镇" + }, + { + value: "阜沙镇", + label: "阜沙镇" + }, + { + value: "民众镇", + label: "民众镇" + }, + { + value: "东区街道", + label: "东区街道" + }, + { + value: "火炬开发区街道办事处", + label: "火炬开发区街道办事处" + }, + { + value: "西区街道", + label: "西区街道" + }, + { + value: "南区街道", + label: "南区街道" + }, + { + value: "古镇镇", + label: "古镇镇" + }, + { + value: "坦洲镇", + label: "坦洲镇" + }, + { + value: "大涌镇", + label: "大涌镇" + }, + { + value: "南朗镇", + label: "南朗镇" + } + ] + }, + { + value: "潮州市", + label: "潮州市", + children: [ + { + value: "湘桥区", + label: "湘桥区" + }, + { + value: "潮安区", + label: "潮安区" + }, + { + value: "饶平县", + label: "饶平县" + } + ] + }, + { + value: "揭阳市", + label: "揭阳市", + children: [ + { + value: "榕城区", + label: "榕城区" + }, + { + value: "揭东区", + label: "揭东区" + }, + { + value: "揭西县", + label: "揭西县" + }, + { + value: "惠来县", + label: "惠来县" + }, + { + value: "普宁市", + label: "普宁市" + } + ] + }, + { + value: "云浮市", + label: "云浮市", + children: [ + { + value: "云城区", + label: "云城区" + }, + { + value: "云安区", + label: "云安区" + }, + { + value: "新兴县", + label: "新兴县" + }, + { + value: "郁南县", + label: "郁南县" + }, + { + value: "罗定市", + label: "罗定市" + } + ] + } + ] + }, + { + value: "广西壮族自治区", + label: "广西壮族自治区", + children: [ + { + value: "南宁市", + label: "南宁市", + children: [ + { + value: "兴宁区", + label: "兴宁区" + }, + { + value: "青秀区", + label: "青秀区" + }, + { + value: "江南区", + label: "江南区" + }, + { + value: "西乡塘区", + label: "西乡塘区" + }, + { + value: "良庆区", + label: "良庆区" + }, + { + value: "邕宁区", + label: "邕宁区" + }, + { + value: "武鸣区", + label: "武鸣区" + }, + { + value: "隆安县", + label: "隆安县" + }, + { + value: "马山县", + label: "马山县" + }, + { + value: "上林县", + label: "上林县" + }, + { + value: "宾阳县", + label: "宾阳县" + }, + { + value: "横州市", + label: "横州市" + } + ] + }, + { + value: "柳州市", + label: "柳州市", + children: [ + { + value: "城中区", + label: "城中区" + }, + { + value: "鱼峰区", + label: "鱼峰区" + }, + { + value: "柳南区", + label: "柳南区" + }, + { + value: "柳北区", + label: "柳北区" + }, + { + value: "柳江区", + label: "柳江区" + }, + { + value: "柳城县", + label: "柳城县" + }, + { + value: "鹿寨县", + label: "鹿寨县" + }, + { + value: "融安县", + label: "融安县" + }, + { + value: "融水苗族自治县", + label: "融水苗族自治县" + }, + { + value: "三江侗族自治县", + label: "三江侗族自治县" + } + ] + }, + { + value: "桂林市", + label: "桂林市", + children: [ + { + value: "秀峰区", + label: "秀峰区" + }, + { + value: "叠彩区", + label: "叠彩区" + }, + { + value: "象山区", + label: "象山区" + }, + { + value: "七星区", + label: "七星区" + }, + { + value: "雁山区", + label: "雁山区" + }, + { + value: "临桂区", + label: "临桂区" + }, + { + value: "阳朔县", + label: "阳朔县" + }, + { + value: "灵川县", + label: "灵川县" + }, + { + value: "全州县", + label: "全州县" + }, + { + value: "兴安县", + label: "兴安县" + }, + { + value: "永福县", + label: "永福县" + }, + { + value: "灌阳县", + label: "灌阳县" + }, + { + value: "龙胜各族自治县", + label: "龙胜各族自治县" + }, + { + value: "资源县", + label: "资源县" + }, + { + value: "平乐县", + label: "平乐县" + }, + { + value: "恭城瑶族自治县", + label: "恭城瑶族自治县" + }, + { + value: "荔浦市", + label: "荔浦市" + } + ] + }, + { + value: "梧州市", + label: "梧州市", + children: [ + { + value: "万秀区", + label: "万秀区" + }, + { + value: "长洲区", + label: "长洲区" + }, + { + value: "龙圩区", + label: "龙圩区" + }, + { + value: "苍梧县", + label: "苍梧县" + }, + { + value: "藤县", + label: "藤县" + }, + { + value: "蒙山县", + label: "蒙山县" + }, + { + value: "岑溪市", + label: "岑溪市" + } + ] + }, + { + value: "北海市", + label: "北海市", + children: [ + { + value: "海城区", + label: "海城区" + }, + { + value: "银海区", + label: "银海区" + }, + { + value: "铁山港区", + label: "铁山港区" + }, + { + value: "合浦县", + label: "合浦县" + } + ] + }, + { + value: "防城港市", + label: "防城港市", + children: [ + { + value: "港口区", + label: "港口区" + }, + { + value: "防城区", + label: "防城区" + }, + { + value: "上思县", + label: "上思县" + }, + { + value: "东兴市", + label: "东兴市" + } + ] + }, + { + value: "钦州市", + label: "钦州市", + children: [ + { + value: "钦南区", + label: "钦南区" + }, + { + value: "钦北区", + label: "钦北区" + }, + { + value: "灵山县", + label: "灵山县" + }, + { + value: "浦北县", + label: "浦北县" + } + ] + }, + { + value: "贵港市", + label: "贵港市", + children: [ + { + value: "港北区", + label: "港北区" + }, + { + value: "港南区", + label: "港南区" + }, + { + value: "覃塘区", + label: "覃塘区" + }, + { + value: "平南县", + label: "平南县" + }, + { + value: "桂平市", + label: "桂平市" + } + ] + }, + { + value: "玉林市", + label: "玉林市", + children: [ + { + value: "玉州区", + label: "玉州区" + }, + { + value: "福绵区", + label: "福绵区" + }, + { + value: "容县", + label: "容县" + }, + { + value: "陆川县", + label: "陆川县" + }, + { + value: "博白县", + label: "博白县" + }, + { + value: "兴业县", + label: "兴业县" + }, + { + value: "北流市", + label: "北流市" + } + ] + }, + { + value: "百色市", + label: "百色市", + children: [ + { + value: "右江区", + label: "右江区" + }, + { + value: "田阳区", + label: "田阳区" + }, + { + value: "田东县", + label: "田东县" + }, + { + value: "德保县", + label: "德保县" + }, + { + value: "那坡县", + label: "那坡县" + }, + { + value: "凌云县", + label: "凌云县" + }, + { + value: "乐业县", + label: "乐业县" + }, + { + value: "田林县", + label: "田林县" + }, + { + value: "西林县", + label: "西林县" + }, + { + value: "隆林各族自治县", + label: "隆林各族自治县" + }, + { + value: "靖西市", + label: "靖西市" + }, + { + value: "平果市", + label: "平果市" + } + ] + }, + { + value: "贺州市", + label: "贺州市", + children: [ + { + value: "八步区", + label: "八步区" + }, + { + value: "平桂区", + label: "平桂区" + }, + { + value: "昭平县", + label: "昭平县" + }, + { + value: "钟山县", + label: "钟山县" + }, + { + value: "富川瑶族自治县", + label: "富川瑶族自治县" + } + ] + }, + { + value: "河池市", + label: "河池市", + children: [ + { + value: "金城江区", + label: "金城江区" + }, + { + value: "宜州区", + label: "宜州区" + }, + { + value: "南丹县", + label: "南丹县" + }, + { + value: "天峨县", + label: "天峨县" + }, + { + value: "凤山县", + label: "凤山县" + }, + { + value: "东兰县", + label: "东兰县" + }, + { + value: "罗城仫佬族自治县", + label: "罗城仫佬族自治县" + }, + { + value: "环江毛南族自治县", + label: "环江毛南族自治县" + }, + { + value: "巴马瑶族自治县", + label: "巴马瑶族自治县" + }, + { + value: "都安瑶族自治县", + label: "都安瑶族自治县" + }, + { + value: "大化瑶族自治县", + label: "大化瑶族自治县" + } + ] + }, + { + value: "来宾市", + label: "来宾市", + children: [ + { + value: "兴宾区", + label: "兴宾区" + }, + { + value: "忻城县", + label: "忻城县" + }, + { + value: "象州县", + label: "象州县" + }, + { + value: "武宣县", + label: "武宣县" + }, + { + value: "金秀瑶族自治县", + label: "金秀瑶族自治县" + }, + { + value: "合山市", + label: "合山市" + } + ] + }, + { + value: "崇左市", + label: "崇左市", + children: [ + { + value: "江州区", + label: "江州区" + }, + { + value: "扶绥县", + label: "扶绥县" + }, + { + value: "宁明县", + label: "宁明县" + }, + { + value: "龙州县", + label: "龙州县" + }, + { + value: "大新县", + label: "大新县" + }, + { + value: "天等县", + label: "天等县" + }, + { + value: "凭祥市", + label: "凭祥市" + } + ] + } + ] + }, + { + value: "海南省", + label: "海南省", + children: [ + { + value: "海口市", + label: "海口市", + children: [ + { + value: "秀英区", + label: "秀英区" + }, + { + value: "龙华区", + label: "龙华区" + }, + { + value: "琼山区", + label: "琼山区" + }, + { + value: "美兰区", + label: "美兰区" + } + ] + }, + { + value: "三亚市", + label: "三亚市", + children: [ + { + value: "海棠区", + label: "海棠区" + }, + { + value: "吉阳区", + label: "吉阳区" + }, + { + value: "天涯区", + label: "天涯区" + }, + { + value: "崖州区", + label: "崖州区" + } + ] + }, + { + value: "三沙市", + label: "三沙市", + children: [ + { + value: "西沙区", + label: "西沙区" + }, + { + value: "南沙区", + label: "南沙区" + } + ] + }, + { + value: "儋州市", + label: "儋州市", + children: [ + { + value: "那大镇", + label: "那大镇" + }, + { + value: "和庆镇", + label: "和庆镇" + }, + { + value: "南丰镇", + label: "南丰镇" + }, + { + value: "大成镇", + label: "大成镇" + }, + { + value: "雅星镇", + label: "雅星镇" + }, + { + value: "兰洋镇", + label: "兰洋镇" + }, + { + value: "光村镇", + label: "光村镇" + }, + { + value: "木棠镇", + label: "木棠镇" + }, + { + value: "海头镇", + label: "海头镇" + }, + { + value: "峨蔓镇", + label: "峨蔓镇" + }, + { + value: "王五镇", + label: "王五镇" + }, + { + value: "白马井镇", + label: "白马井镇" + }, + { + value: "中和镇", + label: "中和镇" + }, + { + value: "排浦镇", + label: "排浦镇" + }, + { + value: "东成镇", + label: "东成镇" + }, + { + value: "新州镇", + label: "新州镇" + }, + { + value: "洋浦经济开发区", + label: "洋浦经济开发区" + }, + { + value: "华南热作学院", + label: "华南热作学院" + } + ] + }, + { + value: "省直辖县", + label: "省直辖县", + children: [ + { + value: "五指山市", + label: "五指山市" + }, + { + value: "琼海市", + label: "琼海市" + }, + { + value: "文昌市", + label: "文昌市" + }, + { + value: "万宁市", + label: "万宁市" + }, + { + value: "东方市", + label: "东方市" + }, + { + value: "定安县", + label: "定安县" + }, + { + value: "屯昌县", + label: "屯昌县" + }, + { + value: "澄迈县", + label: "澄迈县" + }, + { + value: "临高县", + label: "临高县" + }, + { + value: "白沙黎族自治县", + label: "白沙黎族自治县" + }, + { + value: "昌江黎族自治县", + label: "昌江黎族自治县" + }, + { + value: "乐东黎族自治县", + label: "乐东黎族自治县" + }, + { + value: "陵水黎族自治县", + label: "陵水黎族自治县" + }, + { + value: "保亭黎族苗族自治县", + label: "保亭黎族苗族自治县" + }, + { + value: "琼中黎族苗族自治县", + label: "琼中黎族苗族自治县" + } + ] + } + ] + }, + { + value: "重庆市", + label: "重庆市", + children: [ + { + value: "重庆市", + label: "重庆市", + children: [ + { + value: "万州区", + label: "万州区" + }, + { + value: "涪陵区", + label: "涪陵区" + }, + { + value: "渝中区", + label: "渝中区" + }, + { + value: "大渡口区", + label: "大渡口区" + }, + { + value: "江北区", + label: "江北区" + }, + { + value: "沙坪坝区", + label: "沙坪坝区" + }, + { + value: "九龙坡区", + label: "九龙坡区" + }, + { + value: "南岸区", + label: "南岸区" + }, + { + value: "北碚区", + label: "北碚区" + }, + { + value: "綦江区", + label: "綦江区" + }, + { + value: "大足区", + label: "大足区" + }, + { + value: "渝北区", + label: "渝北区" + }, + { + value: "巴南区", + label: "巴南区" + }, + { + value: "黔江区", + label: "黔江区" + }, + { + value: "长寿区", + label: "长寿区" + }, + { + value: "江津区", + label: "江津区" + }, + { + value: "合川区", + label: "合川区" + }, + { + value: "永川区", + label: "永川区" + }, + { + value: "南川区", + label: "南川区" + }, + { + value: "璧山区", + label: "璧山区" + }, + { + value: "铜梁区", + label: "铜梁区" + }, + { + value: "潼南区", + label: "潼南区" + }, + { + value: "荣昌区", + label: "荣昌区" + }, + { + value: "开州区", + label: "开州区" + }, + { + value: "梁平区", + label: "梁平区" + }, + { + value: "武隆区", + label: "武隆区" + }, + { + value: "城口县", + label: "城口县" + }, + { + value: "丰都县", + label: "丰都县" + }, + { + value: "垫江县", + label: "垫江县" + }, + { + value: "忠县", + label: "忠县" + }, + { + value: "云阳县", + label: "云阳县" + }, + { + value: "奉节县", + label: "奉节县" + }, + { + value: "巫山县", + label: "巫山县" + }, + { + value: "巫溪县", + label: "巫溪县" + }, + { + value: "石柱土家族自治县", + label: "石柱土家族自治县" + }, + { + value: "秀山土家族苗族自治县", + label: "秀山土家族苗族自治县" + }, + { + value: "酉阳土家族苗族自治县", + label: "酉阳土家族苗族自治县" + }, + { + value: "彭水苗族土家族自治县", + label: "彭水苗族土家族自治县" + } + ] + } + ] + }, + { + value: "四川省", + label: "四川省", + children: [ + { + value: "成都市", + label: "成都市", + children: [ + { + value: "锦江区", + label: "锦江区" + }, + { + value: "青羊区", + label: "青羊区" + }, + { + value: "金牛区", + label: "金牛区" + }, + { + value: "武侯区", + label: "武侯区" + }, + { + value: "成华区", + label: "成华区" + }, + { + value: "龙泉驿区", + label: "龙泉驿区" + }, + { + value: "青白江区", + label: "青白江区" + }, + { + value: "新都区", + label: "新都区" + }, + { + value: "温江区", + label: "温江区" + }, + { + value: "双流区", + label: "双流区" + }, + { + value: "郫都区", + label: "郫都区" + }, + { + value: "新津区", + label: "新津区" + }, + { + value: "金堂县", + label: "金堂县" + }, + { + value: "大邑县", + label: "大邑县" + }, + { + value: "蒲江县", + label: "蒲江县" + }, + { + value: "都江堰市", + label: "都江堰市" + }, + { + value: "彭州市", + label: "彭州市" + }, + { + value: "邛崃市", + label: "邛崃市" + }, + { + value: "崇州市", + label: "崇州市" + }, + { + value: "简阳市", + label: "简阳市" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "自贡市", + label: "自贡市", + children: [ + { + value: "自流井区", + label: "自流井区" + }, + { + value: "贡井区", + label: "贡井区" + }, + { + value: "大安区", + label: "大安区" + }, + { + value: "沿滩区", + label: "沿滩区" + }, + { + value: "荣县", + label: "荣县" + }, + { + value: "富顺县", + label: "富顺县" + } + ] + }, + { + value: "攀枝花市", + label: "攀枝花市", + children: [ + { + value: "东区", + label: "东区" + }, + { + value: "西区", + label: "西区" + }, + { + value: "仁和区", + label: "仁和区" + }, + { + value: "米易县", + label: "米易县" + }, + { + value: "盐边县", + label: "盐边县" + } + ] + }, + { + value: "泸州市", + label: "泸州市", + children: [ + { + value: "江阳区", + label: "江阳区" + }, + { + value: "纳溪区", + label: "纳溪区" + }, + { + value: "龙马潭区", + label: "龙马潭区" + }, + { + value: "泸县", + label: "泸县" + }, + { + value: "合江县", + label: "合江县" + }, + { + value: "叙永县", + label: "叙永县" + }, + { + value: "古蔺县", + label: "古蔺县" + } + ] + }, + { + value: "德阳市", + label: "德阳市", + children: [ + { + value: "旌阳区", + label: "旌阳区" + }, + { + value: "罗江区", + label: "罗江区" + }, + { + value: "中江县", + label: "中江县" + }, + { + value: "广汉市", + label: "广汉市" + }, + { + value: "什邡市", + label: "什邡市" + }, + { + value: "绵竹市", + label: "绵竹市" + } + ] + }, + { + value: "绵阳市", + label: "绵阳市", + children: [ + { + value: "涪城区", + label: "涪城区" + }, + { + value: "游仙区", + label: "游仙区" + }, + { + value: "安州区", + label: "安州区" + }, + { + value: "三台县", + label: "三台县" + }, + { + value: "盐亭县", + label: "盐亭县" + }, + { + value: "梓潼县", + label: "梓潼县" + }, + { + value: "北川羌族自治县", + label: "北川羌族自治县" + }, + { + value: "平武县", + label: "平武县" + }, + { + value: "江油市", + label: "江油市" + }, + { + value: "高新区", + label: "高新区" + } + ] + }, + { + value: "广元市", + label: "广元市", + children: [ + { + value: "利州区", + label: "利州区" + }, + { + value: "昭化区", + label: "昭化区" + }, + { + value: "朝天区", + label: "朝天区" + }, + { + value: "旺苍县", + label: "旺苍县" + }, + { + value: "青川县", + label: "青川县" + }, + { + value: "剑阁县", + label: "剑阁县" + }, + { + value: "苍溪县", + label: "苍溪县" + } + ] + }, + { + value: "遂宁市", + label: "遂宁市", + children: [ + { + value: "船山区", + label: "船山区" + }, + { + value: "安居区", + label: "安居区" + }, + { + value: "蓬溪县", + label: "蓬溪县" + }, + { + value: "大英县", + label: "大英县" + }, + { + value: "射洪市", + label: "射洪市" + } + ] + }, + { + value: "内江市", + label: "内江市", + children: [ + { + value: "市中区", + label: "市中区" + }, + { + value: "东兴区", + label: "东兴区" + }, + { + value: "威远县", + label: "威远县" + }, + { + value: "资中县", + label: "资中县" + }, + { + value: "隆昌市", + label: "隆昌市" + } + ] + }, + { + value: "乐山市", + label: "乐山市", + children: [ + { + value: "市中区", + label: "市中区" + }, + { + value: "沙湾区", + label: "沙湾区" + }, + { + value: "五通桥区", + label: "五通桥区" + }, + { + value: "金口河区", + label: "金口河区" + }, + { + value: "犍为县", + label: "犍为县" + }, + { + value: "井研县", + label: "井研县" + }, + { + value: "夹江县", + label: "夹江县" + }, + { + value: "沐川县", + label: "沐川县" + }, + { + value: "峨边彝族自治县", + label: "峨边彝族自治县" + }, + { + value: "马边彝族自治县", + label: "马边彝族自治县" + }, + { + value: "峨眉山市", + label: "峨眉山市" + } + ] + }, + { + value: "南充市", + label: "南充市", + children: [ + { + value: "顺庆区", + label: "顺庆区" + }, + { + value: "高坪区", + label: "高坪区" + }, + { + value: "嘉陵区", + label: "嘉陵区" + }, + { + value: "南部县", + label: "南部县" + }, + { + value: "营山县", + label: "营山县" + }, + { + value: "蓬安县", + label: "蓬安县" + }, + { + value: "仪陇县", + label: "仪陇县" + }, + { + value: "西充县", + label: "西充县" + }, + { + value: "阆中市", + label: "阆中市" + } + ] + }, + { + value: "眉山市", + label: "眉山市", + children: [ + { + value: "东坡区", + label: "东坡区" + }, + { + value: "彭山区", + label: "彭山区" + }, + { + value: "仁寿县", + label: "仁寿县" + }, + { + value: "洪雅县", + label: "洪雅县" + }, + { + value: "丹棱县", + label: "丹棱县" + }, + { + value: "青神县", + label: "青神县" + } + ] + }, + { + value: "宜宾市", + label: "宜宾市", + children: [ + { + value: "翠屏区", + label: "翠屏区" + }, + { + value: "南溪区", + label: "南溪区" + }, + { + value: "叙州区", + label: "叙州区" + }, + { + value: "江安县", + label: "江安县" + }, + { + value: "长宁县", + label: "长宁县" + }, + { + value: "高县", + label: "高县" + }, + { + value: "珙县", + label: "珙县" + }, + { + value: "筠连县", + label: "筠连县" + }, + { + value: "兴文县", + label: "兴文县" + }, + { + value: "屏山县", + label: "屏山县" + } + ] + }, + { + value: "广安市", + label: "广安市", + children: [ + { + value: "广安区", + label: "广安区" + }, + { + value: "前锋区", + label: "前锋区" + }, + { + value: "岳池县", + label: "岳池县" + }, + { + value: "武胜县", + label: "武胜县" + }, + { + value: "邻水县", + label: "邻水县" + }, + { + value: "华蓥市", + label: "华蓥市" + } + ] + }, + { + value: "达州市", + label: "达州市", + children: [ + { + value: "通川区", + label: "通川区" + }, + { + value: "达川区", + label: "达川区" + }, + { + value: "宣汉县", + label: "宣汉县" + }, + { + value: "开江县", + label: "开江县" + }, + { + value: "大竹县", + label: "大竹县" + }, + { + value: "渠县", + label: "渠县" + }, + { + value: "万源市", + label: "万源市" + } + ] + }, + { + value: "雅安市", + label: "雅安市", + children: [ + { + value: "雨城区", + label: "雨城区" + }, + { + value: "名山区", + label: "名山区" + }, + { + value: "荥经县", + label: "荥经县" + }, + { + value: "汉源县", + label: "汉源县" + }, + { + value: "石棉县", + label: "石棉县" + }, + { + value: "天全县", + label: "天全县" + }, + { + value: "芦山县", + label: "芦山县" + }, + { + value: "宝兴县", + label: "宝兴县" + } + ] + }, + { + value: "巴中市", + label: "巴中市", + children: [ + { + value: "巴州区", + label: "巴州区" + }, + { + value: "恩阳区", + label: "恩阳区" + }, + { + value: "通江县", + label: "通江县" + }, + { + value: "南江县", + label: "南江县" + }, + { + value: "平昌县", + label: "平昌县" + }, + { + value: "巴中经济开发区", + label: "巴中经济开发区" + } + ] + }, + { + value: "资阳市", + label: "资阳市", + children: [ + { + value: "雁江区", + label: "雁江区" + }, + { + value: "安岳县", + label: "安岳县" + }, + { + value: "乐至县", + label: "乐至县" + } + ] + }, + { + value: "阿坝藏族羌族自治州", + label: "阿坝藏族羌族自治州", + children: [ + { + value: "马尔康市", + label: "马尔康市" + }, + { + value: "汶川县", + label: "汶川县" + }, + { + value: "理县", + label: "理县" + }, + { + value: "茂县", + label: "茂县" + }, + { + value: "松潘县", + label: "松潘县" + }, + { + value: "九寨沟县", + label: "九寨沟县" + }, + { + value: "金川县", + label: "金川县" + }, + { + value: "小金县", + label: "小金县" + }, + { + value: "黑水县", + label: "黑水县" + }, + { + value: "壤塘县", + label: "壤塘县" + }, + { + value: "阿坝县", + label: "阿坝县" + }, + { + value: "若尔盖县", + label: "若尔盖县" + }, + { + value: "红原县", + label: "红原县" + } + ] + }, + { + value: "甘孜藏族自治州", + label: "甘孜藏族自治州", + children: [ + { + value: "康定市", + label: "康定市" + }, + { + value: "泸定县", + label: "泸定县" + }, + { + value: "丹巴县", + label: "丹巴县" + }, + { + value: "九龙县", + label: "九龙县" + }, + { + value: "雅江县", + label: "雅江县" + }, + { + value: "道孚县", + label: "道孚县" + }, + { + value: "炉霍县", + label: "炉霍县" + }, + { + value: "甘孜县", + label: "甘孜县" + }, + { + value: "新龙县", + label: "新龙县" + }, + { + value: "德格县", + label: "德格县" + }, + { + value: "白玉县", + label: "白玉县" + }, + { + value: "石渠县", + label: "石渠县" + }, + { + value: "色达县", + label: "色达县" + }, + { + value: "理塘县", + label: "理塘县" + }, + { + value: "巴塘县", + label: "巴塘县" + }, + { + value: "乡城县", + label: "乡城县" + }, + { + value: "稻城县", + label: "稻城县" + }, + { + value: "得荣县", + label: "得荣县" + } + ] + }, + { + value: "凉山彝族自治州", + label: "凉山彝族自治州", + children: [ + { + value: "西昌市", + label: "西昌市" + }, + { + value: "会理市", + label: "会理市" + }, + { + value: "木里藏族自治县", + label: "木里藏族自治县" + }, + { + value: "盐源县", + label: "盐源县" + }, + { + value: "德昌县", + label: "德昌县" + }, + { + value: "会东县", + label: "会东县" + }, + { + value: "宁南县", + label: "宁南县" + }, + { + value: "普格县", + label: "普格县" + }, + { + value: "布拖县", + label: "布拖县" + }, + { + value: "金阳县", + label: "金阳县" + }, + { + value: "昭觉县", + label: "昭觉县" + }, + { + value: "喜德县", + label: "喜德县" + }, + { + value: "冕宁县", + label: "冕宁县" + }, + { + value: "越西县", + label: "越西县" + }, + { + value: "甘洛县", + label: "甘洛县" + }, + { + value: "美姑县", + label: "美姑县" + }, + { + value: "雷波县", + label: "雷波县" + } + ] + } + ] + }, + { + value: "贵州省", + label: "贵州省", + children: [ + { + value: "贵阳市", + label: "贵阳市", + children: [ + { + value: "南明区", + label: "南明区" + }, + { + value: "云岩区", + label: "云岩区" + }, + { + value: "花溪区", + label: "花溪区" + }, + { + value: "乌当区", + label: "乌当区" + }, + { + value: "白云区", + label: "白云区" + }, + { + value: "观山湖区", + label: "观山湖区" + }, + { + value: "开阳县", + label: "开阳县" + }, + { + value: "息烽县", + label: "息烽县" + }, + { + value: "修文县", + label: "修文县" + }, + { + value: "清镇市", + label: "清镇市" + } + ] + }, + { + value: "六盘水市", + label: "六盘水市", + children: [ + { + value: "钟山区", + label: "钟山区" + }, + { + value: "六枝特区", + label: "六枝特区" + }, + { + value: "水城区", + label: "水城区" + }, + { + value: "盘州市", + label: "盘州市" + } + ] + }, + { + value: "遵义市", + label: "遵义市", + children: [ + { + value: "红花岗区", + label: "红花岗区" + }, + { + value: "汇川区", + label: "汇川区" + }, + { + value: "播州区", + label: "播州区" + }, + { + value: "桐梓县", + label: "桐梓县" + }, + { + value: "绥阳县", + label: "绥阳县" + }, + { + value: "正安县", + label: "正安县" + }, + { + value: "道真仡佬族苗族自治县", + label: "道真仡佬族苗族自治县" + }, + { + value: "务川仡佬族苗族自治县", + label: "务川仡佬族苗族自治县" + }, + { + value: "凤冈县", + label: "凤冈县" + }, + { + value: "湄潭县", + label: "湄潭县" + }, + { + value: "余庆县", + label: "余庆县" + }, + { + value: "习水县", + label: "习水县" + }, + { + value: "赤水市", + label: "赤水市" + }, + { + value: "仁怀市", + label: "仁怀市" + } + ] + }, + { + value: "安顺市", + label: "安顺市", + children: [ + { + value: "西秀区", + label: "西秀区" + }, + { + value: "平坝区", + label: "平坝区" + }, + { + value: "普定县", + label: "普定县" + }, + { + value: "镇宁布依族苗族自治县", + label: "镇宁布依族苗族自治县" + }, + { + value: "关岭布依族苗族自治县", + label: "关岭布依族苗族自治县" + }, + { + value: "紫云苗族布依族自治县", + label: "紫云苗族布依族自治县" + } + ] + }, + { + value: "毕节市", + label: "毕节市", + children: [ + { + value: "七星关区", + label: "七星关区" + }, + { + value: "大方县", + label: "大方县" + }, + { + value: "金沙县", + label: "金沙县" + }, + { + value: "织金县", + label: "织金县" + }, + { + value: "纳雍县", + label: "纳雍县" + }, + { + value: "威宁彝族回族苗族自治县", + label: "威宁彝族回族苗族自治县" + }, + { + value: "赫章县", + label: "赫章县" + }, + { + value: "黔西市", + label: "黔西市" + } + ] + }, + { + value: "铜仁市", + label: "铜仁市", + children: [ + { + value: "碧江区", + label: "碧江区" + }, + { + value: "万山区", + label: "万山区" + }, + { + value: "江口县", + label: "江口县" + }, + { + value: "玉屏侗族自治县", + label: "玉屏侗族自治县" + }, + { + value: "石阡县", + label: "石阡县" + }, + { + value: "思南县", + label: "思南县" + }, + { + value: "印江土家族苗族自治县", + label: "印江土家族苗族自治县" + }, + { + value: "德江县", + label: "德江县" + }, + { + value: "沿河土家族自治县", + label: "沿河土家族自治县" + }, + { + value: "松桃苗族自治县", + label: "松桃苗族自治县" + } + ] + }, + { + value: "黔西南布依族苗族自治州", + label: "黔西南布依族苗族自治州", + children: [ + { + value: "兴义市", + label: "兴义市" + }, + { + value: "兴仁市", + label: "兴仁市" + }, + { + value: "普安县", + label: "普安县" + }, + { + value: "晴隆县", + label: "晴隆县" + }, + { + value: "贞丰县", + label: "贞丰县" + }, + { + value: "望谟县", + label: "望谟县" + }, + { + value: "册亨县", + label: "册亨县" + }, + { + value: "安龙县", + label: "安龙县" + } + ] + }, + { + value: "黔东南苗族侗族自治州", + label: "黔东南苗族侗族自治州", + children: [ + { + value: "凯里市", + label: "凯里市" + }, + { + value: "黄平县", + label: "黄平县" + }, + { + value: "施秉县", + label: "施秉县" + }, + { + value: "三穗县", + label: "三穗县" + }, + { + value: "镇远县", + label: "镇远县" + }, + { + value: "岑巩县", + label: "岑巩县" + }, + { + value: "天柱县", + label: "天柱县" + }, + { + value: "锦屏县", + label: "锦屏县" + }, + { + value: "剑河县", + label: "剑河县" + }, + { + value: "台江县", + label: "台江县" + }, + { + value: "黎平县", + label: "黎平县" + }, + { + value: "榕江县", + label: "榕江县" + }, + { + value: "从江县", + label: "从江县" + }, + { + value: "雷山县", + label: "雷山县" + }, + { + value: "麻江县", + label: "麻江县" + }, + { + value: "丹寨县", + label: "丹寨县" + } + ] + }, + { + value: "黔南布依族苗族自治州", + label: "黔南布依族苗族自治州", + children: [ + { + value: "都匀市", + label: "都匀市" + }, + { + value: "福泉市", + label: "福泉市" + }, + { + value: "荔波县", + label: "荔波县" + }, + { + value: "贵定县", + label: "贵定县" + }, + { + value: "瓮安县", + label: "瓮安县" + }, + { + value: "独山县", + label: "独山县" + }, + { + value: "平塘县", + label: "平塘县" + }, + { + value: "罗甸县", + label: "罗甸县" + }, + { + value: "长顺县", + label: "长顺县" + }, + { + value: "龙里县", + label: "龙里县" + }, + { + value: "惠水县", + label: "惠水县" + }, + { + value: "三都水族自治县", + label: "三都水族自治县" + } + ] + } + ] + }, + { + value: "云南省", + label: "云南省", + children: [ + { + value: "昆明市", + label: "昆明市", + children: [ + { + value: "五华区", + label: "五华区" + }, + { + value: "盘龙区", + label: "盘龙区" + }, + { + value: "官渡区", + label: "官渡区" + }, + { + value: "西山区", + label: "西山区" + }, + { + value: "东川区", + label: "东川区" + }, + { + value: "呈贡区", + label: "呈贡区" + }, + { + value: "晋宁区", + label: "晋宁区" + }, + { + value: "富民县", + label: "富民县" + }, + { + value: "宜良县", + label: "宜良县" + }, + { + value: "石林彝族自治县", + label: "石林彝族自治县" + }, + { + value: "嵩明县", + label: "嵩明县" + }, + { + value: "禄劝彝族苗族自治县", + label: "禄劝彝族苗族自治县" + }, + { + value: "寻甸回族彝族自治县", + label: "寻甸回族彝族自治县" + }, + { + value: "安宁市", + label: "安宁市" + } + ] + }, + { + value: "曲靖市", + label: "曲靖市", + children: [ + { + value: "麒麟区", + label: "麒麟区" + }, + { + value: "沾益区", + label: "沾益区" + }, + { + value: "马龙区", + label: "马龙区" + }, + { + value: "陆良县", + label: "陆良县" + }, + { + value: "师宗县", + label: "师宗县" + }, + { + value: "罗平县", + label: "罗平县" + }, + { + value: "富源县", + label: "富源县" + }, + { + value: "会泽县", + label: "会泽县" + }, + { + value: "宣威市", + label: "宣威市" + } + ] + }, + { + value: "玉溪市", + label: "玉溪市", + children: [ + { + value: "红塔区", + label: "红塔区" + }, + { + value: "江川区", + label: "江川区" + }, + { + value: "通海县", + label: "通海县" + }, + { + value: "华宁县", + label: "华宁县" + }, + { + value: "易门县", + label: "易门县" + }, + { + value: "峨山彝族自治县", + label: "峨山彝族自治县" + }, + { + value: "新平彝族傣族自治县", + label: "新平彝族傣族自治县" + }, + { + value: "元江哈尼族彝族傣族自治县", + label: "元江哈尼族彝族傣族自治县" + }, + { + value: "澄江市", + label: "澄江市" + } + ] + }, + { + value: "保山市", + label: "保山市", + children: [ + { + value: "隆阳区", + label: "隆阳区" + }, + { + value: "施甸县", + label: "施甸县" + }, + { + value: "龙陵县", + label: "龙陵县" + }, + { + value: "昌宁县", + label: "昌宁县" + }, + { + value: "腾冲市", + label: "腾冲市" + } + ] + }, + { + value: "昭通市", + label: "昭通市", + children: [ + { + value: "昭阳区", + label: "昭阳区" + }, + { + value: "鲁甸县", + label: "鲁甸县" + }, + { + value: "巧家县", + label: "巧家县" + }, + { + value: "盐津县", + label: "盐津县" + }, + { + value: "大关县", + label: "大关县" + }, + { + value: "永善县", + label: "永善县" + }, + { + value: "绥江县", + label: "绥江县" + }, + { + value: "镇雄县", + label: "镇雄县" + }, + { + value: "彝良县", + label: "彝良县" + }, + { + value: "威信县", + label: "威信县" + }, + { + value: "水富市", + label: "水富市" + } + ] + }, + { + value: "丽江市", + label: "丽江市", + children: [ + { + value: "古城区", + label: "古城区" + }, + { + value: "玉龙纳西族自治县", + label: "玉龙纳西族自治县" + }, + { + value: "永胜县", + label: "永胜县" + }, + { + value: "华坪县", + label: "华坪县" + }, + { + value: "宁蒗彝族自治县", + label: "宁蒗彝族自治县" + } + ] + }, + { + value: "普洱市", + label: "普洱市", + children: [ + { + value: "思茅区", + label: "思茅区" + }, + { + value: "宁洱哈尼族彝族自治县", + label: "宁洱哈尼族彝族自治县" + }, + { + value: "墨江哈尼族自治县", + label: "墨江哈尼族自治县" + }, + { + value: "景东彝族自治县", + label: "景东彝族自治县" + }, + { + value: "景谷傣族彝族自治县", + label: "景谷傣族彝族自治县" + }, + { + value: "镇沅彝族哈尼族拉祜族自治县", + label: "镇沅彝族哈尼族拉祜族自治县" + }, + { + value: "江城哈尼族彝族自治县", + label: "江城哈尼族彝族自治县" + }, + { + value: "孟连傣族拉祜族佤族自治县", + label: "孟连傣族拉祜族佤族自治县" + }, + { + value: "澜沧拉祜族自治县", + label: "澜沧拉祜族自治县" + }, + { + value: "西盟佤族自治县", + label: "西盟佤族自治县" + } + ] + }, + { + value: "临沧市", + label: "临沧市", + children: [ + { + value: "临翔区", + label: "临翔区" + }, + { + value: "凤庆县", + label: "凤庆县" + }, + { + value: "云县", + label: "云县" + }, + { + value: "永德县", + label: "永德县" + }, + { + value: "镇康县", + label: "镇康县" + }, + { + value: "双江拉祜族佤族布朗族傣族自治县", + label: "双江拉祜族佤族布朗族傣族自治县" + }, + { + value: "耿马傣族佤族自治县", + label: "耿马傣族佤族自治县" + }, + { + value: "沧源佤族自治县", + label: "沧源佤族自治县" + } + ] + }, + { + value: "楚雄彝族自治州", + label: "楚雄彝族自治州", + children: [ + { + value: "楚雄市", + label: "楚雄市" + }, + { + value: "禄丰市", + label: "禄丰市" + }, + { + value: "双柏县", + label: "双柏县" + }, + { + value: "牟定县", + label: "牟定县" + }, + { + value: "南华县", + label: "南华县" + }, + { + value: "姚安县", + label: "姚安县" + }, + { + value: "大姚县", + label: "大姚县" + }, + { + value: "永仁县", + label: "永仁县" + }, + { + value: "元谋县", + label: "元谋县" + }, + { + value: "武定县", + label: "武定县" + } + ] + }, + { + value: "红河哈尼族彝族自治州", + label: "红河哈尼族彝族自治州", + children: [ + { + value: "个旧市", + label: "个旧市" + }, + { + value: "开远市", + label: "开远市" + }, + { + value: "蒙自市", + label: "蒙自市" + }, + { + value: "弥勒市", + label: "弥勒市" + }, + { + value: "屏边苗族自治县", + label: "屏边苗族自治县" + }, + { + value: "建水县", + label: "建水县" + }, + { + value: "石屏县", + label: "石屏县" + }, + { + value: "泸西县", + label: "泸西县" + }, + { + value: "元阳县", + label: "元阳县" + }, + { + value: "红河县", + label: "红河县" + }, + { + value: "金平苗族瑶族傣族自治县", + label: "金平苗族瑶族傣族自治县" + }, + { + value: "绿春县", + label: "绿春县" + }, + { + value: "河口瑶族自治县", + label: "河口瑶族自治县" + } + ] + }, + { + value: "文山壮族苗族自治州", + label: "文山壮族苗族自治州", + children: [ + { + value: "文山市", + label: "文山市" + }, + { + value: "砚山县", + label: "砚山县" + }, + { + value: "西畴县", + label: "西畴县" + }, + { + value: "麻栗坡县", + label: "麻栗坡县" + }, + { + value: "马关县", + label: "马关县" + }, + { + value: "丘北县", + label: "丘北县" + }, + { + value: "广南县", + label: "广南县" + }, + { + value: "富宁县", + label: "富宁县" + } + ] + }, + { + value: "西双版纳傣族自治州", + label: "西双版纳傣族自治州", + children: [ + { + value: "景洪市", + label: "景洪市" + }, + { + value: "勐海县", + label: "勐海县" + }, + { + value: "勐腊县", + label: "勐腊县" + } + ] + }, + { + value: "大理白族自治州", + label: "大理白族自治州", + children: [ + { + value: "大理市", + label: "大理市" + }, + { + value: "漾濞彝族自治县", + label: "漾濞彝族自治县" + }, + { + value: "祥云县", + label: "祥云县" + }, + { + value: "宾川县", + label: "宾川县" + }, + { + value: "弥渡县", + label: "弥渡县" + }, + { + value: "南涧彝族自治县", + label: "南涧彝族自治县" + }, + { + value: "巍山彝族回族自治县", + label: "巍山彝族回族自治县" + }, + { + value: "永平县", + label: "永平县" + }, + { + value: "云龙县", + label: "云龙县" + }, + { + value: "洱源县", + label: "洱源县" + }, + { + value: "剑川县", + label: "剑川县" + }, + { + value: "鹤庆县", + label: "鹤庆县" + } + ] + }, + { + value: "德宏傣族景颇族自治州", + label: "德宏傣族景颇族自治州", + children: [ + { + value: "瑞丽市", + label: "瑞丽市" + }, + { + value: "芒市", + label: "芒市" + }, + { + value: "梁河县", + label: "梁河县" + }, + { + value: "盈江县", + label: "盈江县" + }, + { + value: "陇川县", + label: "陇川县" + } + ] + }, + { + value: "怒江傈僳族自治州", + label: "怒江傈僳族自治州", + children: [ + { + value: "泸水市", + label: "泸水市" + }, + { + value: "福贡县", + label: "福贡县" + }, + { + value: "贡山独龙族怒族自治县", + label: "贡山独龙族怒族自治县" + }, + { + value: "兰坪白族普米族自治县", + label: "兰坪白族普米族自治县" + } + ] + }, + { + value: "迪庆藏族自治州", + label: "迪庆藏族自治州", + children: [ + { + value: "香格里拉市", + label: "香格里拉市" + }, + { + value: "德钦县", + label: "德钦县" + }, + { + value: "维西傈僳族自治县", + label: "维西傈僳族自治县" + } + ] + } + ] + }, + { + value: "西藏自治区", + label: "西藏自治区", + children: [ + { + value: "拉萨市", + label: "拉萨市", + children: [ + { + value: "城关区", + label: "城关区" + }, + { + value: "堆龙德庆区", + label: "堆龙德庆区" + }, + { + value: "达孜区", + label: "达孜区" + }, + { + value: "林周县", + label: "林周县" + }, + { + value: "当雄县", + label: "当雄县" + }, + { + value: "尼木县", + label: "尼木县" + }, + { + value: "曲水县", + label: "曲水县" + }, + { + value: "墨竹工卡县", + label: "墨竹工卡县" + } + ] + }, + { + value: "日喀则市", + label: "日喀则市", + children: [ + { + value: "桑珠孜区", + label: "桑珠孜区" + }, + { + value: "南木林县", + label: "南木林县" + }, + { + value: "江孜县", + label: "江孜县" + }, + { + value: "定日县", + label: "定日县" + }, + { + value: "萨迦县", + label: "萨迦县" + }, + { + value: "拉孜县", + label: "拉孜县" + }, + { + value: "昂仁县", + label: "昂仁县" + }, + { + value: "谢通门县", + label: "谢通门县" + }, + { + value: "白朗县", + label: "白朗县" + }, + { + value: "仁布县", + label: "仁布县" + }, + { + value: "康马县", + label: "康马县" + }, + { + value: "定结县", + label: "定结县" + }, + { + value: "仲巴县", + label: "仲巴县" + }, + { + value: "亚东县", + label: "亚东县" + }, + { + value: "吉隆县", + label: "吉隆县" + }, + { + value: "聂拉木县", + label: "聂拉木县" + }, + { + value: "萨嘎县", + label: "萨嘎县" + }, + { + value: "岗巴县", + label: "岗巴县" + } + ] + }, + { + value: "昌都市", + label: "昌都市", + children: [ + { + value: "卡若区", + label: "卡若区" + }, + { + value: "江达县", + label: "江达县" + }, + { + value: "贡觉县", + label: "贡觉县" + }, + { + value: "类乌齐县", + label: "类乌齐县" + }, + { + value: "丁青县", + label: "丁青县" + }, + { + value: "察雅县", + label: "察雅县" + }, + { + value: "八宿县", + label: "八宿县" + }, + { + value: "左贡县", + label: "左贡县" + }, + { + value: "芒康县", + label: "芒康县" + }, + { + value: "洛隆县", + label: "洛隆县" + }, + { + value: "边坝县", + label: "边坝县" + } + ] + }, + { + value: "林芝市", + label: "林芝市", + children: [ + { + value: "巴宜区", + label: "巴宜区" + }, + { + value: "工布江达县", + label: "工布江达县" + }, + { + value: "墨脱县", + label: "墨脱县" + }, + { + value: "波密县", + label: "波密县" + }, + { + value: "察隅县", + label: "察隅县" + }, + { + value: "朗县", + label: "朗县" + }, + { + value: "米林市", + label: "米林市" + } + ] + }, + { + value: "山南市", + label: "山南市", + children: [ + { + value: "乃东区", + label: "乃东区" + }, + { + value: "扎囊县", + label: "扎囊县" + }, + { + value: "贡嘎县", + label: "贡嘎县" + }, + { + value: "桑日县", + label: "桑日县" + }, + { + value: "琼结县", + label: "琼结县" + }, + { + value: "曲松县", + label: "曲松县" + }, + { + value: "措美县", + label: "措美县" + }, + { + value: "洛扎县", + label: "洛扎县" + }, + { + value: "加查县", + label: "加查县" + }, + { + value: "隆子县", + label: "隆子县" + }, + { + value: "浪卡子县", + label: "浪卡子县" + }, + { + value: "错那市", + label: "错那市" + } + ] + }, + { + value: "那曲市", + label: "那曲市", + children: [ + { + value: "色尼区", + label: "色尼区" + }, + { + value: "嘉黎县", + label: "嘉黎县" + }, + { + value: "比如县", + label: "比如县" + }, + { + value: "聂荣县", + label: "聂荣县" + }, + { + value: "安多县", + label: "安多县" + }, + { + value: "申扎县", + label: "申扎县" + }, + { + value: "索县", + label: "索县" + }, + { + value: "班戈县", + label: "班戈县" + }, + { + value: "巴青县", + label: "巴青县" + }, + { + value: "尼玛县", + label: "尼玛县" + }, + { + value: "双湖县", + label: "双湖县" + } + ] + }, + { + value: "阿里地区", + label: "阿里地区", + children: [ + { + value: "普兰县", + label: "普兰县" + }, + { + value: "札达县", + label: "札达县" + }, + { + value: "噶尔县", + label: "噶尔县" + }, + { + value: "日土县", + label: "日土县" + }, + { + value: "革吉县", + label: "革吉县" + }, + { + value: "改则县", + label: "改则县" + }, + { + value: "措勤县", + label: "措勤县" + } + ] + } + ] + }, + { + value: "陕西省", + label: "陕西省", + children: [ + { + value: "西安市", + label: "西安市", + children: [ + { + value: "新城区", + label: "新城区" + }, + { + value: "碑林区", + label: "碑林区" + }, + { + value: "莲湖区", + label: "莲湖区" + }, + { + value: "灞桥区", + label: "灞桥区" + }, + { + value: "未央区", + label: "未央区" + }, + { + value: "雁塔区", + label: "雁塔区" + }, + { + value: "阎良区", + label: "阎良区" + }, + { + value: "临潼区", + label: "临潼区" + }, + { + value: "长安区", + label: "长安区" + }, + { + value: "高陵区", + label: "高陵区" + }, + { + value: "鄠邑区", + label: "鄠邑区" + }, + { + value: "蓝田县", + label: "蓝田县" + }, + { + value: "周至县", + label: "周至县" + } + ] + }, + { + value: "铜川市", + label: "铜川市", + children: [ + { + value: "王益区", + label: "王益区" + }, + { + value: "印台区", + label: "印台区" + }, + { + value: "耀州区", + label: "耀州区" + }, + { + value: "宜君县", + label: "宜君县" + } + ] + }, + { + value: "宝鸡市", + label: "宝鸡市", + children: [ + { + value: "渭滨区", + label: "渭滨区" + }, + { + value: "金台区", + label: "金台区" + }, + { + value: "陈仓区", + label: "陈仓区" + }, + { + value: "凤翔区", + label: "凤翔区" + }, + { + value: "岐山县", + label: "岐山县" + }, + { + value: "扶风县", + label: "扶风县" + }, + { + value: "眉县", + label: "眉县" + }, + { + value: "陇县", + label: "陇县" + }, + { + value: "千阳县", + label: "千阳县" + }, + { + value: "麟游县", + label: "麟游县" + }, + { + value: "凤县", + label: "凤县" + }, + { + value: "太白县", + label: "太白县" + } + ] + }, + { + value: "咸阳市", + label: "咸阳市", + children: [ + { + value: "秦都区", + label: "秦都区" + }, + { + value: "杨陵区", + label: "杨陵区" + }, + { + value: "渭城区", + label: "渭城区" + }, + { + value: "三原县", + label: "三原县" + }, + { + value: "泾阳县", + label: "泾阳县" + }, + { + value: "乾县", + label: "乾县" + }, + { + value: "礼泉县", + label: "礼泉县" + }, + { + value: "永寿县", + label: "永寿县" + }, + { + value: "长武县", + label: "长武县" + }, + { + value: "旬邑县", + label: "旬邑县" + }, + { + value: "淳化县", + label: "淳化县" + }, + { + value: "武功县", + label: "武功县" + }, + { + value: "兴平市", + label: "兴平市" + }, + { + value: "彬州市", + label: "彬州市" + } + ] + }, + { + value: "渭南市", + label: "渭南市", + children: [ + { + value: "临渭区", + label: "临渭区" + }, + { + value: "华州区", + label: "华州区" + }, + { + value: "潼关县", + label: "潼关县" + }, + { + value: "大荔县", + label: "大荔县" + }, + { + value: "合阳县", + label: "合阳县" + }, + { + value: "澄城县", + label: "澄城县" + }, + { + value: "蒲城县", + label: "蒲城县" + }, + { + value: "白水县", + label: "白水县" + }, + { + value: "富平县", + label: "富平县" + }, + { + value: "韩城市", + label: "韩城市" + }, + { + value: "华阴市", + label: "华阴市" + } + ] + }, + { + value: "延安市", + label: "延安市", + children: [ + { + value: "宝塔区", + label: "宝塔区" + }, + { + value: "安塞区", + label: "安塞区" + }, + { + value: "延长县", + label: "延长县" + }, + { + value: "延川县", + label: "延川县" + }, + { + value: "志丹县", + label: "志丹县" + }, + { + value: "吴起县", + label: "吴起县" + }, + { + value: "甘泉县", + label: "甘泉县" + }, + { + value: "富县", + label: "富县" + }, + { + value: "洛川县", + label: "洛川县" + }, + { + value: "宜川县", + label: "宜川县" + }, + { + value: "黄龙县", + label: "黄龙县" + }, + { + value: "黄陵县", + label: "黄陵县" + }, + { + value: "子长市", + label: "子长市" + } + ] + }, + { + value: "汉中市", + label: "汉中市", + children: [ + { + value: "汉台区", + label: "汉台区" + }, + { + value: "南郑区", + label: "南郑区" + }, + { + value: "城固县", + label: "城固县" + }, + { + value: "洋县", + label: "洋县" + }, + { + value: "西乡县", + label: "西乡县" + }, + { + value: "勉县", + label: "勉县" + }, + { + value: "宁强县", + label: "宁强县" + }, + { + value: "略阳县", + label: "略阳县" + }, + { + value: "镇巴县", + label: "镇巴县" + }, + { + value: "留坝县", + label: "留坝县" + }, + { + value: "佛坪县", + label: "佛坪县" + } + ] + }, + { + value: "榆林市", + label: "榆林市", + children: [ + { + value: "榆阳区", + label: "榆阳区" + }, + { + value: "横山区", + label: "横山区" + }, + { + value: "府谷县", + label: "府谷县" + }, + { + value: "靖边县", + label: "靖边县" + }, + { + value: "定边县", + label: "定边县" + }, + { + value: "绥德县", + label: "绥德县" + }, + { + value: "米脂县", + label: "米脂县" + }, + { + value: "佳县", + label: "佳县" + }, + { + value: "吴堡县", + label: "吴堡县" + }, + { + value: "清涧县", + label: "清涧县" + }, + { + value: "子洲县", + label: "子洲县" + }, + { + value: "神木市", + label: "神木市" + } + ] + }, + { + value: "安康市", + label: "安康市", + children: [ + { + value: "汉滨区", + label: "汉滨区" + }, + { + value: "汉阴县", + label: "汉阴县" + }, + { + value: "石泉县", + label: "石泉县" + }, + { + value: "宁陕县", + label: "宁陕县" + }, + { + value: "紫阳县", + label: "紫阳县" + }, + { + value: "岚皋县", + label: "岚皋县" + }, + { + value: "平利县", + label: "平利县" + }, + { + value: "镇坪县", + label: "镇坪县" + }, + { + value: "白河县", + label: "白河县" + }, + { + value: "旬阳市", + label: "旬阳市" + } + ] + }, + { + value: "商洛市", + label: "商洛市", + children: [ + { + value: "商州区", + label: "商州区" + }, + { + value: "洛南县", + label: "洛南县" + }, + { + value: "丹凤县", + label: "丹凤县" + }, + { + value: "商南县", + label: "商南县" + }, + { + value: "山阳县", + label: "山阳县" + }, + { + value: "镇安县", + label: "镇安县" + }, + { + value: "柞水县", + label: "柞水县" + } + ] + } + ] + }, + { + value: "甘肃省", + label: "甘肃省", + children: [ + { + value: "兰州市", + label: "兰州市", + children: [ + { + value: "城关区", + label: "城关区" + }, + { + value: "七里河区", + label: "七里河区" + }, + { + value: "西固区", + label: "西固区" + }, + { + value: "安宁区", + label: "安宁区" + }, + { + value: "红古区", + label: "红古区" + }, + { + value: "永登县", + label: "永登县" + }, + { + value: "皋兰县", + label: "皋兰县" + }, + { + value: "榆中县", + label: "榆中县" + }, + { + value: "兰州新区", + label: "兰州新区" + } + ] + }, + { + value: "嘉峪关市", + label: "嘉峪关市", + children: [ + { + value: "市辖区", + label: "市辖区" + }, + { + value: "雄关区", + label: "雄关区" + }, + { + value: "长城区", + label: "长城区" + }, + { + value: "镜铁区", + label: "镜铁区" + }, + { + value: "新城镇", + label: "新城镇" + }, + { + value: "峪泉镇", + label: "峪泉镇" + }, + { + value: "文殊镇", + label: "文殊镇" + } + ] + }, + { + value: "金昌市", + label: "金昌市", + children: [ + { + value: "金川区", + label: "金川区" + }, + { + value: "永昌县", + label: "永昌县" + } + ] + }, + { + value: "白银市", + label: "白银市", + children: [ + { + value: "白银区", + label: "白银区" + }, + { + value: "平川区", + label: "平川区" + }, + { + value: "靖远县", + label: "靖远县" + }, + { + value: "会宁县", + label: "会宁县" + }, + { + value: "景泰县", + label: "景泰县" + } + ] + }, + { + value: "天水市", + label: "天水市", + children: [ + { + value: "秦州区", + label: "秦州区" + }, + { + value: "麦积区", + label: "麦积区" + }, + { + value: "清水县", + label: "清水县" + }, + { + value: "秦安县", + label: "秦安县" + }, + { + value: "甘谷县", + label: "甘谷县" + }, + { + value: "武山县", + label: "武山县" + }, + { + value: "张家川回族自治县", + label: "张家川回族自治县" + } + ] + }, + { + value: "武威市", + label: "武威市", + children: [ + { + value: "凉州区", + label: "凉州区" + }, + { + value: "民勤县", + label: "民勤县" + }, + { + value: "古浪县", + label: "古浪县" + }, + { + value: "天祝藏族自治县", + label: "天祝藏族自治县" + } + ] + }, + { + value: "张掖市", + label: "张掖市", + children: [ + { + value: "甘州区", + label: "甘州区" + }, + { + value: "肃南裕固族自治县", + label: "肃南裕固族自治县" + }, + { + value: "民乐县", + label: "民乐县" + }, + { + value: "临泽县", + label: "临泽县" + }, + { + value: "高台县", + label: "高台县" + }, + { + value: "山丹县", + label: "山丹县" + } + ] + }, + { + value: "平凉市", + label: "平凉市", + children: [ + { + value: "崆峒区", + label: "崆峒区" + }, + { + value: "泾川县", + label: "泾川县" + }, + { + value: "灵台县", + label: "灵台县" + }, + { + value: "崇信县", + label: "崇信县" + }, + { + value: "庄浪县", + label: "庄浪县" + }, + { + value: "静宁县", + label: "静宁县" + }, + { + value: "华亭市", + label: "华亭市" + } + ] + }, + { + value: "酒泉市", + label: "酒泉市", + children: [ + { + value: "肃州区", + label: "肃州区" + }, + { + value: "金塔县", + label: "金塔县" + }, + { + value: "瓜州县", + label: "瓜州县" + }, + { + value: "肃北蒙古族自治县", + label: "肃北蒙古族自治县" + }, + { + value: "阿克塞哈萨克族自治县", + label: "阿克塞哈萨克族自治县" + }, + { + value: "玉门市", + label: "玉门市" + }, + { + value: "敦煌市", + label: "敦煌市" + } + ] + }, + { + value: "庆阳市", + label: "庆阳市", + children: [ + { + value: "西峰区", + label: "西峰区" + }, + { + value: "庆城县", + label: "庆城县" + }, + { + value: "环县", + label: "环县" + }, + { + value: "华池县", + label: "华池县" + }, + { + value: "合水县", + label: "合水县" + }, + { + value: "正宁县", + label: "正宁县" + }, + { + value: "宁县", + label: "宁县" + }, + { + value: "镇原县", + label: "镇原县" + } + ] + }, + { + value: "定西市", + label: "定西市", + children: [ + { + value: "安定区", + label: "安定区" + }, + { + value: "通渭县", + label: "通渭县" + }, + { + value: "陇西县", + label: "陇西县" + }, + { + value: "渭源县", + label: "渭源县" + }, + { + value: "临洮县", + label: "临洮县" + }, + { + value: "漳县", + label: "漳县" + }, + { + value: "岷县", + label: "岷县" + } + ] + }, + { + value: "陇南市", + label: "陇南市", + children: [ + { + value: "武都区", + label: "武都区" + }, + { + value: "成县", + label: "成县" + }, + { + value: "文县", + label: "文县" + }, + { + value: "宕昌县", + label: "宕昌县" + }, + { + value: "康县", + label: "康县" + }, + { + value: "西和县", + label: "西和县" + }, + { + value: "礼县", + label: "礼县" + }, + { + value: "徽县", + label: "徽县" + }, + { + value: "两当县", + label: "两当县" + } + ] + }, + { + value: "临夏回族自治州", + label: "临夏回族自治州", + children: [ + { + value: "临夏市", + label: "临夏市" + }, + { + value: "临夏县", + label: "临夏县" + }, + { + value: "康乐县", + label: "康乐县" + }, + { + value: "永靖县", + label: "永靖县" + }, + { + value: "广河县", + label: "广河县" + }, + { + value: "和政县", + label: "和政县" + }, + { + value: "东乡族自治县", + label: "东乡族自治县" + }, + { + value: "积石山保安族东乡族撒拉族自治县", + label: "积石山保安族东乡族撒拉族自治县" + } + ] + }, + { + value: "甘南藏族自治州", + label: "甘南藏族自治州", + children: [ + { + value: "合作市", + label: "合作市" + }, + { + value: "临潭县", + label: "临潭县" + }, + { + value: "卓尼县", + label: "卓尼县" + }, + { + value: "舟曲县", + label: "舟曲县" + }, + { + value: "迭部县", + label: "迭部县" + }, + { + value: "玛曲县", + label: "玛曲县" + }, + { + value: "碌曲县", + label: "碌曲县" + }, + { + value: "夏河县", + label: "夏河县" + } + ] + } + ] + }, + { + value: "青海省", + label: "青海省", + children: [ + { + value: "西宁市", + label: "西宁市", + children: [ + { + value: "城东区", + label: "城东区" + }, + { + value: "城中区", + label: "城中区" + }, + { + value: "城西区", + label: "城西区" + }, + { + value: "城北区", + label: "城北区" + }, + { + value: "湟中区", + label: "湟中区" + }, + { + value: "大通回族土族自治县", + label: "大通回族土族自治县" + }, + { + value: "湟源县", + label: "湟源县" + } + ] + }, + { + value: "海东市", + label: "海东市", + children: [ + { + value: "乐都区", + label: "乐都区" + }, + { + value: "平安区", + label: "平安区" + }, + { + value: "民和回族土族自治县", + label: "民和回族土族自治县" + }, + { + value: "互助土族自治县", + label: "互助土族自治县" + }, + { + value: "化隆回族自治县", + label: "化隆回族自治县" + }, + { + value: "循化撒拉族自治县", + label: "循化撒拉族自治县" + } + ] + }, + { + value: "海北藏族自治州", + label: "海北藏族自治州", + children: [ + { + value: "门源回族自治县", + label: "门源回族自治县" + }, + { + value: "祁连县", + label: "祁连县" + }, + { + value: "海晏县", + label: "海晏县" + }, + { + value: "刚察县", + label: "刚察县" + } + ] + }, + { + value: "黄南藏族自治州", + label: "黄南藏族自治州", + children: [ + { + value: "同仁市", + label: "同仁市" + }, + { + value: "尖扎县", + label: "尖扎县" + }, + { + value: "泽库县", + label: "泽库县" + }, + { + value: "河南蒙古族自治县", + label: "河南蒙古族自治县" + } + ] + }, + { + value: "海南藏族自治州", + label: "海南藏族自治州", + children: [ + { + value: "共和县", + label: "共和县" + }, + { + value: "同德县", + label: "同德县" + }, + { + value: "贵德县", + label: "贵德县" + }, + { + value: "兴海县", + label: "兴海县" + }, + { + value: "贵南县", + label: "贵南县" + } + ] + }, + { + value: "果洛藏族自治州", + label: "果洛藏族自治州", + children: [ + { + value: "玛沁县", + label: "玛沁县" + }, + { + value: "班玛县", + label: "班玛县" + }, + { + value: "甘德县", + label: "甘德县" + }, + { + value: "达日县", + label: "达日县" + }, + { + value: "久治县", + label: "久治县" + }, + { + value: "玛多县", + label: "玛多县" + } + ] + }, + { + value: "玉树藏族自治州", + label: "玉树藏族自治州", + children: [ + { + value: "玉树市", + label: "玉树市" + }, + { + value: "杂多县", + label: "杂多县" + }, + { + value: "称多县", + label: "称多县" + }, + { + value: "治多县", + label: "治多县" + }, + { + value: "囊谦县", + label: "囊谦县" + }, + { + value: "曲麻莱县", + label: "曲麻莱县" + } + ] + }, + { + value: "海西蒙古族藏族自治州", + label: "海西蒙古族藏族自治州", + children: [ + { + value: "格尔木市", + label: "格尔木市" + }, + { + value: "德令哈市", + label: "德令哈市" + }, + { + value: "茫崖市", + label: "茫崖市" + }, + { + value: "乌兰县", + label: "乌兰县" + }, + { + value: "都兰县", + label: "都兰县" + }, + { + value: "天峻县", + label: "天峻县" + }, + { + value: "大柴旦行政委员会", + label: "大柴旦行政委员会" + } + ] + } + ] + }, + { + value: "宁夏回族自治区", + label: "宁夏回族自治区", + children: [ + { + value: "银川市", + label: "银川市", + children: [ + { + value: "兴庆区", + label: "兴庆区" + }, + { + value: "西夏区", + label: "西夏区" + }, + { + value: "金凤区", + label: "金凤区" + }, + { + value: "永宁县", + label: "永宁县" + }, + { + value: "贺兰县", + label: "贺兰县" + }, + { + value: "灵武市", + label: "灵武市" + } + ] + }, + { + value: "石嘴山市", + label: "石嘴山市", + children: [ + { + value: "大武口区", + label: "大武口区" + }, + { + value: "惠农区", + label: "惠农区" + }, + { + value: "平罗县", + label: "平罗县" + } + ] + }, + { + value: "吴忠市", + label: "吴忠市", + children: [ + { + value: "利通区", + label: "利通区" + }, + { + value: "红寺堡区", + label: "红寺堡区" + }, + { + value: "盐池县", + label: "盐池县" + }, + { + value: "同心县", + label: "同心县" + }, + { + value: "青铜峡市", + label: "青铜峡市" + } + ] + }, + { + value: "固原市", + label: "固原市", + children: [ + { + value: "原州区", + label: "原州区" + }, + { + value: "西吉县", + label: "西吉县" + }, + { + value: "隆德县", + label: "隆德县" + }, + { + value: "泾源县", + label: "泾源县" + }, + { + value: "彭阳县", + label: "彭阳县" + } + ] + }, + { + value: "中卫市", + label: "中卫市", + children: [ + { + value: "沙坡头区", + label: "沙坡头区" + }, + { + value: "中宁县", + label: "中宁县" + }, + { + value: "海原县", + label: "海原县" + } + ] + } + ] + }, + { + value: "新疆维吾尔自治区", + label: "新疆维吾尔自治区", + children: [ + { + value: "乌鲁木齐市", + label: "乌鲁木齐市", + children: [ + { + value: "天山区", + label: "天山区" + }, + { + value: "沙依巴克区", + label: "沙依巴克区" + }, + { + value: "新市区", + label: "新市区" + }, + { + value: "水磨沟区", + label: "水磨沟区" + }, + { + value: "头屯河区", + label: "头屯河区" + }, + { + value: "达坂城区", + label: "达坂城区" + }, + { + value: "米东区", + label: "米东区" + }, + { + value: "乌鲁木齐县", + label: "乌鲁木齐县" + } + ] + }, + { + value: "克拉玛依市", + label: "克拉玛依市", + children: [ + { + value: "独山子区", + label: "独山子区" + }, + { + value: "克拉玛依区", + label: "克拉玛依区" + }, + { + value: "白碱滩区", + label: "白碱滩区" + }, + { + value: "乌尔禾区", + label: "乌尔禾区" + } + ] + }, + { + value: "吐鲁番市", + label: "吐鲁番市", + children: [ + { + value: "高昌区", + label: "高昌区" + }, + { + value: "鄯善县", + label: "鄯善县" + }, + { + value: "托克逊县", + label: "托克逊县" + } + ] + }, + { + value: "哈密市", + label: "哈密市", + children: [ + { + value: "伊州区", + label: "伊州区" + }, + { + value: "巴里坤哈萨克自治县", + label: "巴里坤哈萨克自治县" + }, + { + value: "伊吾县", + label: "伊吾县" + } + ] + }, + { + value: "昌吉回族自治州", + label: "昌吉回族自治州", + children: [ + { + value: "昌吉市", + label: "昌吉市" + }, + { + value: "阜康市", + label: "阜康市" + }, + { + value: "呼图壁县", + label: "呼图壁县" + }, + { + value: "玛纳斯县", + label: "玛纳斯县" + }, + { + value: "奇台县", + label: "奇台县" + }, + { + value: "吉木萨尔县", + label: "吉木萨尔县" + }, + { + value: "木垒哈萨克自治县", + label: "木垒哈萨克自治县" + } + ] + }, + { + value: "博尔塔拉蒙古自治州", + label: "博尔塔拉蒙古自治州", + children: [ + { + value: "博乐市", + label: "博乐市" + }, + { + value: "阿拉山口市", + label: "阿拉山口市" + }, + { + value: "精河县", + label: "精河县" + }, + { + value: "温泉县", + label: "温泉县" + } + ] + }, + { + value: "巴音郭楞蒙古自治州", + label: "巴音郭楞蒙古自治州", + children: [ + { + value: "库尔勒市", + label: "库尔勒市" + }, + { + value: "轮台县", + label: "轮台县" + }, + { + value: "尉犁县", + label: "尉犁县" + }, + { + value: "若羌县", + label: "若羌县" + }, + { + value: "且末县", + label: "且末县" + }, + { + value: "焉耆回族自治县", + label: "焉耆回族自治县" + }, + { + value: "和静县", + label: "和静县" + }, + { + value: "和硕县", + label: "和硕县" + }, + { + value: "博湖县", + label: "博湖县" + } + ] + }, + { + value: "阿克苏地区", + label: "阿克苏地区", + children: [ + { + value: "阿克苏市", + label: "阿克苏市" + }, + { + value: "库车市", + label: "库车市" + }, + { + value: "温宿县", + label: "温宿县" + }, + { + value: "沙雅县", + label: "沙雅县" + }, + { + value: "新和县", + label: "新和县" + }, + { + value: "拜城县", + label: "拜城县" + }, + { + value: "乌什县", + label: "乌什县" + }, + { + value: "阿瓦提县", + label: "阿瓦提县" + }, + { + value: "柯坪县", + label: "柯坪县" + } + ] + }, + { + value: "克孜勒苏柯尔克孜自治州", + label: "克孜勒苏柯尔克孜自治州", + children: [ + { + value: "阿图什市", + label: "阿图什市" + }, + { + value: "阿克陶县", + label: "阿克陶县" + }, + { + value: "阿合奇县", + label: "阿合奇县" + }, + { + value: "乌恰县", + label: "乌恰县" + } + ] + }, + { + value: "喀什地区", + label: "喀什地区", + children: [ + { + value: "喀什市", + label: "喀什市" + }, + { + value: "疏附县", + label: "疏附县" + }, + { + value: "疏勒县", + label: "疏勒县" + }, + { + value: "英吉沙县", + label: "英吉沙县" + }, + { + value: "泽普县", + label: "泽普县" + }, + { + value: "莎车县", + label: "莎车县" + }, + { + value: "叶城县", + label: "叶城县" + }, + { + value: "麦盖提县", + label: "麦盖提县" + }, + { + value: "岳普湖县", + label: "岳普湖县" + }, + { + value: "伽师县", + label: "伽师县" + }, + { + value: "巴楚县", + label: "巴楚县" + }, + { + value: "塔什库尔干塔吉克自治县", + label: "塔什库尔干塔吉克自治县" + } + ] + }, + { + value: "和田地区", + label: "和田地区", + children: [ + { + value: "和田市", + label: "和田市" + }, + { + value: "和田县", + label: "和田县" + }, + { + value: "墨玉县", + label: "墨玉县" + }, + { + value: "皮山县", + label: "皮山县" + }, + { + value: "洛浦县", + label: "洛浦县" + }, + { + value: "策勒县", + label: "策勒县" + }, + { + value: "于田县", + label: "于田县" + }, + { + value: "民丰县", + label: "民丰县" + }, + { + value: "和康县", + label: "和康县" + }, + { + value: "和安县", + label: "和安县" + } + ] + }, + { + value: "伊犁哈萨克自治州", + label: "伊犁哈萨克自治州", + children: [ + { + value: "伊宁市", + label: "伊宁市" + }, + { + value: "奎屯市", + label: "奎屯市" + }, + { + value: "霍尔果斯市", + label: "霍尔果斯市" + }, + { + value: "伊宁县", + label: "伊宁县" + }, + { + value: "察布查尔锡伯自治县", + label: "察布查尔锡伯自治县" + }, + { + value: "霍城县", + label: "霍城县" + }, + { + value: "巩留县", + label: "巩留县" + }, + { + value: "新源县", + label: "新源县" + }, + { + value: "昭苏县", + label: "昭苏县" + }, + { + value: "特克斯县", + label: "特克斯县" + }, + { + value: "尼勒克县", + label: "尼勒克县" + } + ] + }, + { + value: "塔城地区", + label: "塔城地区", + children: [ + { + value: "塔城市", + label: "塔城市" + }, + { + value: "乌苏市", + label: "乌苏市" + }, + { + value: "沙湾市", + label: "沙湾市" + }, + { + value: "额敏县", + label: "额敏县" + }, + { + value: "托里县", + label: "托里县" + }, + { + value: "裕民县", + label: "裕民县" + }, + { + value: "和布克赛尔蒙古自治县", + label: "和布克赛尔蒙古自治县" + } + ] + }, + { + value: "阿勒泰地区", + label: "阿勒泰地区", + children: [ + { + value: "阿勒泰市", + label: "阿勒泰市" + }, + { + value: "布尔津县", + label: "布尔津县" + }, + { + value: "富蕴县", + label: "富蕴县" + }, + { + value: "福海县", + label: "福海县" + }, + { + value: "哈巴河县", + label: "哈巴河县" + }, + { + value: "青河县", + label: "青河县" + }, + { + value: "吉木乃县", + label: "吉木乃县" + } + ] + }, + { + value: "自治区直辖县级行政区划", + label: "自治区直辖县级行政区划", + children: [ + { + value: "石河子市", + label: "石河子市" + }, + { + value: "阿拉尔市", + label: "阿拉尔市" + }, + { + value: "图木舒克市", + label: "图木舒克市" + }, + { + value: "五家渠市", + label: "五家渠市" + }, + { + value: "北屯市", + label: "北屯市" + }, + { + value: "铁门关市", + label: "铁门关市" + }, + { + value: "双河市", + label: "双河市" + }, + { + value: "可克达拉市", + label: "可克达拉市" + }, + { + value: "昆玉市", + label: "昆玉市" + }, + { + value: "胡杨河市", + label: "胡杨河市" + }, + { + value: "新星市", + label: "新星市" + }, + { + value: "白杨市", + label: "白杨市" + } + ] + } + ] + }, + { + value: "台湾省", + label: "台湾省", + children: [ + { + value: "台北市", + label: "台北市", + children: [ + { + value: "中正区", + label: "中正区" + }, + { + value: "大同区", + label: "大同区" + }, + { + value: "中山区", + label: "中山区" + }, + { + value: "松山区", + label: "松山区" + }, + { + value: "大安区", + label: "大安区" + }, + { + value: "万华区", + label: "万华区" + }, + { + value: "信义区", + label: "信义区" + }, + { + value: "士林区", + label: "士林区" + }, + { + value: "北投区", + label: "北投区" + }, + { + value: "内湖区", + label: "内湖区" + }, + { + value: "南港区", + label: "南港区" + }, + { + value: "文山区", + label: "文山区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "高雄市", + label: "高雄市", + children: [ + { + value: "新兴区", + label: "新兴区" + }, + { + value: "前金区", + label: "前金区" + }, + { + value: "芩雅区", + label: "芩雅区" + }, + { + value: "盐埕区", + label: "盐埕区" + }, + { + value: "鼓山区", + label: "鼓山区" + }, + { + value: "旗津区", + label: "旗津区" + }, + { + value: "前镇区", + label: "前镇区" + }, + { + value: "三民区", + label: "三民区" + }, + { + value: "左营区", + label: "左营区" + }, + { + value: "楠梓区", + label: "楠梓区" + }, + { + value: "小港区", + label: "小港区" + }, + { + value: "苓雅区", + label: "苓雅区" + }, + { + value: "仁武区", + label: "仁武区" + }, + { + value: "大社区", + label: "大社区" + }, + { + value: "冈山区", + label: "冈山区" + }, + { + value: "路竹区", + label: "路竹区" + }, + { + value: "阿莲区", + label: "阿莲区" + }, + { + value: "田寮区", + label: "田寮区" + }, + { + value: "燕巢区", + label: "燕巢区" + }, + { + value: "桥头区", + label: "桥头区" + }, + { + value: "梓官区", + label: "梓官区" + }, + { + value: "弥陀区", + label: "弥陀区" + }, + { + value: "永安区", + label: "永安区" + }, + { + value: "湖内区", + label: "湖内区" + }, + { + value: "凤山区", + label: "凤山区" + }, + { + value: "大寮区", + label: "大寮区" + }, + { + value: "林园区", + label: "林园区" + }, + { + value: "鸟松区", + label: "鸟松区" + }, + { + value: "大树区", + label: "大树区" + }, + { + value: "旗山区", + label: "旗山区" + }, + { + value: "美浓区", + label: "美浓区" + }, + { + value: "六龟区", + label: "六龟区" + }, + { + value: "内门区", + label: "内门区" + }, + { + value: "杉林区", + label: "杉林区" + }, + { + value: "甲仙区", + label: "甲仙区" + }, + { + value: "桃源区", + label: "桃源区" + }, + { + value: "那玛夏区", + label: "那玛夏区" + }, + { + value: "茂林区", + label: "茂林区" + }, + { + value: "茄萣区", + label: "茄萣区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "台南市", + label: "台南市", + children: [ + { + value: "中西区", + label: "中西区" + }, + { + value: "东区", + label: "东区" + }, + { + value: "南区", + label: "南区" + }, + { + value: "北区", + label: "北区" + }, + { + value: "安平区", + label: "安平区" + }, + { + value: "安南区", + label: "安南区" + }, + { + value: "永康区", + label: "永康区" + }, + { + value: "归仁区", + label: "归仁区" + }, + { + value: "新化区", + label: "新化区" + }, + { + value: "左镇区", + label: "左镇区" + }, + { + value: "玉井区", + label: "玉井区" + }, + { + value: "楠西区", + label: "楠西区" + }, + { + value: "南化区", + label: "南化区" + }, + { + value: "仁德区", + label: "仁德区" + }, + { + value: "关庙区", + label: "关庙区" + }, + { + value: "龙崎区", + label: "龙崎区" + }, + { + value: "官田区", + label: "官田区" + }, + { + value: "麻豆区", + label: "麻豆区" + }, + { + value: "佳里区", + label: "佳里区" + }, + { + value: "西港区", + label: "西港区" + }, + { + value: "七股区", + label: "七股区" + }, + { + value: "将军区", + label: "将军区" + }, + { + value: "学甲区", + label: "学甲区" + }, + { + value: "北门区", + label: "北门区" + }, + { + value: "新营区", + label: "新营区" + }, + { + value: "后壁区", + label: "后壁区" + }, + { + value: "白河区", + label: "白河区" + }, + { + value: "东山区", + label: "东山区" + }, + { + value: "六甲区", + label: "六甲区" + }, + { + value: "下营区", + label: "下营区" + }, + { + value: "柳营区", + label: "柳营区" + }, + { + value: "盐水区", + label: "盐水区" + }, + { + value: "善化区", + label: "善化区" + }, + { + value: "大内区", + label: "大内区" + }, + { + value: "山上区", + label: "山上区" + }, + { + value: "新市区", + label: "新市区" + }, + { + value: "安定区", + label: "安定区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "台中市", + label: "台中市", + children: [ + { + value: "中区", + label: "中区" + }, + { + value: "东区", + label: "东区" + }, + { + value: "南区", + label: "南区" + }, + { + value: "西区", + label: "西区" + }, + { + value: "北区", + label: "北区" + }, + { + value: "北屯区", + label: "北屯区" + }, + { + value: "西屯区", + label: "西屯区" + }, + { + value: "南屯区", + label: "南屯区" + }, + { + value: "太平区", + label: "太平区" + }, + { + value: "大里区", + label: "大里区" + }, + { + value: "雾峰区", + label: "雾峰区" + }, + { + value: "乌日区", + label: "乌日区" + }, + { + value: "丰原区", + label: "丰原区" + }, + { + value: "后里区", + label: "后里区" + }, + { + value: "石冈区", + label: "石冈区" + }, + { + value: "东势区", + label: "东势区" + }, + { + value: "和平区", + label: "和平区" + }, + { + value: "新社区", + label: "新社区" + }, + { + value: "潭子区", + label: "潭子区" + }, + { + value: "大雅区", + label: "大雅区" + }, + { + value: "神冈区", + label: "神冈区" + }, + { + value: "大肚区", + label: "大肚区" + }, + { + value: "沙鹿区", + label: "沙鹿区" + }, + { + value: "龙井区", + label: "龙井区" + }, + { + value: "梧栖区", + label: "梧栖区" + }, + { + value: "清水区", + label: "清水区" + }, + { + value: "大甲区", + label: "大甲区" + }, + { + value: "外埔区", + label: "外埔区" + }, + { + value: "大安区", + label: "大安区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "金门县", + label: "金门县", + children: [ + { + value: "金沙镇", + label: "金沙镇" + }, + { + value: "金湖镇", + label: "金湖镇" + }, + { + value: "金宁乡", + label: "金宁乡" + }, + { + value: "金城镇", + label: "金城镇" + }, + { + value: "烈屿乡", + label: "烈屿乡" + }, + { + value: "乌坵乡", + label: "乌坵乡" + } + ] + }, + { + value: "南投县", + label: "南投县", + children: [ + { + value: "南投市", + label: "南投市" + }, + { + value: "中寮乡", + label: "中寮乡" + }, + { + value: "草屯镇", + label: "草屯镇" + }, + { + value: "国姓乡", + label: "国姓乡" + }, + { + value: "埔里镇", + label: "埔里镇" + }, + { + value: "仁爱乡", + label: "仁爱乡" + }, + { + value: "名间乡", + label: "名间乡" + }, + { + value: "集集镇", + label: "集集镇" + }, + { + value: "水里乡", + label: "水里乡" + }, + { + value: "鱼池乡", + label: "鱼池乡" + }, + { + value: "信义乡", + label: "信义乡" + }, + { + value: "竹山镇", + label: "竹山镇" + }, + { + value: "鹿谷乡", + label: "鹿谷乡" + } + ] + }, + { + value: "基隆市", + label: "基隆市", + children: [ + { + value: "仁爱区", + label: "仁爱区" + }, + { + value: "信义区", + label: "信义区" + }, + { + value: "中正区", + label: "中正区" + }, + { + value: "中山区", + label: "中山区" + }, + { + value: "安乐区", + label: "安乐区" + }, + { + value: "暖暖区", + label: "暖暖区" + }, + { + value: "七堵区", + label: "七堵区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "新竹市", + label: "新竹市", + children: [ + { + value: "东区", + label: "东区" + }, + { + value: "北区", + label: "北区" + }, + { + value: "香山区", + label: "香山区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "嘉义市", + label: "嘉义市", + children: [ + { + value: "东区", + label: "东区" + }, + { + value: "西区", + label: "西区" + }, + { + value: "其它区", + label: "其它区" + } + ] + }, + { + value: "新北市", + label: "新北市", + children: [ + { + value: "万里区", + label: "万里区" + }, + { + value: "板桥区", + label: "板桥区" + }, + { + value: "汐止区", + label: "汐止区" + }, + { + value: "深坑区", + label: "深坑区" + }, + { + value: "石碇区", + label: "石碇区" + }, + { + value: "瑞芳区", + label: "瑞芳区" + }, + { + value: "平溪区", + label: "平溪区" + }, + { + value: "双溪区", + label: "双溪区" + }, + { + value: "贡寮区", + label: "贡寮区" + }, + { + value: "新店区", + label: "新店区" + }, + { + value: "坪林区", + label: "坪林区" + }, + { + value: "乌来区", + label: "乌来区" + }, + { + value: "永和区", + label: "永和区" + }, + { + value: "中和区", + label: "中和区" + }, + { + value: "土城区", + label: "土城区" + }, + { + value: "三峡区", + label: "三峡区" + }, + { + value: "树林区", + label: "树林区" + }, + { + value: "莺歌区", + label: "莺歌区" + }, + { + value: "三重区", + label: "三重区" + }, + { + value: "新庄区", + label: "新庄区" + }, + { + value: "泰山区", + label: "泰山区" + }, + { + value: "林口区", + label: "林口区" + }, + { + value: "芦洲区", + label: "芦洲区" + }, + { + value: "五股区", + label: "五股区" + }, + { + value: "八里区", + label: "八里区" + }, + { + value: "淡水区", + label: "淡水区" + }, + { + value: "三芝区", + label: "三芝区" + }, + { + value: "石门区", + label: "石门区" + } + ] + }, + { + value: "宜兰县", + label: "宜兰县", + children: [ + { + value: "宜兰市", + label: "宜兰市" + }, + { + value: "头城镇", + label: "头城镇" + }, + { + value: "礁溪乡", + label: "礁溪乡" + }, + { + value: "壮围乡", + label: "壮围乡" + }, + { + value: "员山乡", + label: "员山乡" + }, + { + value: "罗东镇", + label: "罗东镇" + }, + { + value: "三星乡", + label: "三星乡" + }, + { + value: "大同乡", + label: "大同乡" + }, + { + value: "五结乡", + label: "五结乡" + }, + { + value: "冬山乡", + label: "冬山乡" + }, + { + value: "苏澳镇", + label: "苏澳镇" + }, + { + value: "南澳乡", + label: "南澳乡" + }, + { + value: "钓鱼台", + label: "钓鱼台" + } + ] + }, + { + value: "新竹县", + label: "新竹县", + children: [ + { + value: "竹北市", + label: "竹北市" + }, + { + value: "湖口乡", + label: "湖口乡" + }, + { + value: "新丰乡", + label: "新丰乡" + }, + { + value: "新埔镇", + label: "新埔镇" + }, + { + value: "关西镇", + label: "关西镇" + }, + { + value: "芎林乡", + label: "芎林乡" + }, + { + value: "宝山乡", + label: "宝山乡" + }, + { + value: "竹东镇", + label: "竹东镇" + }, + { + value: "五峰乡", + label: "五峰乡" + }, + { + value: "横山乡", + label: "横山乡" + }, + { + value: "尖石乡", + label: "尖石乡" + }, + { + value: "北埔乡", + label: "北埔乡" + }, + { + value: "峨眉乡", + label: "峨眉乡" + } + ] + }, + { + value: "桃园市", + label: "桃园市", + children: [ + { + value: "中坜区", + label: "中坜区" + }, + { + value: "平镇区", + label: "平镇区" + }, + { + value: "杨梅区", + label: "杨梅区" + }, + { + value: "新屋区", + label: "新屋区" + }, + { + value: "观音区", + label: "观音区" + }, + { + value: "桃园区", + label: "桃园区" + }, + { + value: "龟山区", + label: "龟山区" + }, + { + value: "八德区", + label: "八德区" + }, + { + value: "大溪区", + label: "大溪区" + }, + { + value: "大园区", + label: "大园区" + }, + { + value: "芦竹区", + label: "芦竹区" + }, + { + value: "中坜市", + label: "中坜市" + }, + { + value: "平镇市", + label: "平镇市" + }, + { + value: "龙潭乡", + label: "龙潭乡" + }, + { + value: "杨梅市", + label: "杨梅市" + }, + { + value: "新屋乡", + label: "新屋乡" + }, + { + value: "观音乡", + label: "观音乡" + }, + { + value: "桃园市", + label: "桃园市" + }, + { + value: "龟山乡", + label: "龟山乡" + }, + { + value: "八德市", + label: "八德市" + }, + { + value: "大溪镇", + label: "大溪镇" + }, + { + value: "复兴乡", + label: "复兴乡" + }, + { + value: "大园乡", + label: "大园乡" + }, + { + value: "芦竹乡", + label: "芦竹乡" + } + ] + }, + { + value: "苗栗县", + label: "苗栗县", + children: [ + { + value: "头份市", + label: "头份市" + }, + { + value: "竹南镇", + label: "竹南镇" + }, + { + value: "头份镇", + label: "头份镇" + }, + { + value: "三湾乡", + label: "三湾乡" + }, + { + value: "南庄乡", + label: "南庄乡" + }, + { + value: "狮潭乡", + label: "狮潭乡" + }, + { + value: "后龙镇", + label: "后龙镇" + }, + { + value: "通霄镇", + label: "通霄镇" + }, + { + value: "苑里镇", + label: "苑里镇" + }, + { + value: "苗栗市", + label: "苗栗市" + }, + { + value: "造桥乡", + label: "造桥乡" + }, + { + value: "头屋乡", + label: "头屋乡" + }, + { + value: "公馆乡", + label: "公馆乡" + }, + { + value: "大湖乡", + label: "大湖乡" + }, + { + value: "泰安乡", + label: "泰安乡" + }, + { + value: "铜锣乡", + label: "铜锣乡" + }, + { + value: "三义乡", + label: "三义乡" + }, + { + value: "西湖乡", + label: "西湖乡" + }, + { + value: "卓兰镇", + label: "卓兰镇" + } + ] + }, + { + value: "彰化县", + label: "彰化县", + children: [ + { + value: "员林市", + label: "员林市" + }, + { + value: "彰化市", + label: "彰化市" + }, + { + value: "芬园乡", + label: "芬园乡" + }, + { + value: "花坛乡", + label: "花坛乡" + }, + { + value: "秀水乡", + label: "秀水乡" + }, + { + value: "鹿港镇", + label: "鹿港镇" + }, + { + value: "福兴乡", + label: "福兴乡" + }, + { + value: "线西乡", + label: "线西乡" + }, + { + value: "和美镇", + label: "和美镇" + }, + { + value: "伸港乡", + label: "伸港乡" + }, + { + value: "员林镇", + label: "员林镇" + }, + { + value: "社头乡", + label: "社头乡" + }, + { + value: "永靖乡", + label: "永靖乡" + }, + { + value: "埔心乡", + label: "埔心乡" + }, + { + value: "溪湖镇", + label: "溪湖镇" + }, + { + value: "大村乡", + label: "大村乡" + }, + { + value: "埔盐乡", + label: "埔盐乡" + }, + { + value: "田中镇", + label: "田中镇" + }, + { + value: "北斗镇", + label: "北斗镇" + }, + { + value: "田尾乡", + label: "田尾乡" + }, + { + value: "埤头乡", + label: "埤头乡" + }, + { + value: "溪州乡", + label: "溪州乡" + }, + { + value: "竹塘乡", + label: "竹塘乡" + }, + { + value: "二林镇", + label: "二林镇" + }, + { + value: "大城乡", + label: "大城乡" + }, + { + value: "芳苑乡", + label: "芳苑乡" + }, + { + value: "二水乡", + label: "二水乡" + } + ] + }, + { + value: "嘉义县", + label: "嘉义县", + children: [ + { + value: "番路乡", + label: "番路乡" + }, + { + value: "梅山乡", + label: "梅山乡" + }, + { + value: "竹崎乡", + label: "竹崎乡" + }, + { + value: "阿里山乡", + label: "阿里山乡" + }, + { + value: "中埔乡", + label: "中埔乡" + }, + { + value: "大埔乡", + label: "大埔乡" + }, + { + value: "水上乡", + label: "水上乡" + }, + { + value: "鹿草乡", + label: "鹿草乡" + }, + { + value: "太保市", + label: "太保市" + }, + { + value: "朴子市", + label: "朴子市" + }, + { + value: "东石乡", + label: "东石乡" + }, + { + value: "六脚乡", + label: "六脚乡" + }, + { + value: "新港乡", + label: "新港乡" + }, + { + value: "民雄乡", + label: "民雄乡" + }, + { + value: "大林镇", + label: "大林镇" + }, + { + value: "溪口乡", + label: "溪口乡" + }, + { + value: "义竹乡", + label: "义竹乡" + }, + { + value: "布袋镇", + label: "布袋镇" + } + ] + }, + { + value: "云林县", + label: "云林县", + children: [ + { + value: "斗南镇", + label: "斗南镇" + }, + { + value: "大埤乡", + label: "大埤乡" + }, + { + value: "虎尾镇", + label: "虎尾镇" + }, + { + value: "土库镇", + label: "土库镇" + }, + { + value: "褒忠乡", + label: "褒忠乡" + }, + { + value: "东势乡", + label: "东势乡" + }, + { + value: "台西乡", + label: "台西乡" + }, + { + value: "仑背乡", + label: "仑背乡" + }, + { + value: "麦寮乡", + label: "麦寮乡" + }, + { + value: "斗六市", + label: "斗六市" + }, + { + value: "林内乡", + label: "林内乡" + }, + { + value: "古坑乡", + label: "古坑乡" + }, + { + value: "莿桐乡", + label: "莿桐乡" + }, + { + value: "西螺镇", + label: "西螺镇" + }, + { + value: "二仑乡", + label: "二仑乡" + }, + { + value: "北港镇", + label: "北港镇" + }, + { + value: "水林乡", + label: "水林乡" + }, + { + value: "口湖乡", + label: "口湖乡" + }, + { + value: "四湖乡", + label: "四湖乡" + }, + { + value: "元长乡", + label: "元长乡" + } + ] + }, + { + value: "屏东县", + label: "屏东县", + children: [ + { + value: "崁顶乡", + label: "崁顶乡" + }, + { + value: "屏东市", + label: "屏东市" + }, + { + value: "三地门乡", + label: "三地门乡" + }, + { + value: "雾台乡", + label: "雾台乡" + }, + { + value: "玛家乡", + label: "玛家乡" + }, + { + value: "九如乡", + label: "九如乡" + }, + { + value: "里港乡", + label: "里港乡" + }, + { + value: "高树乡", + label: "高树乡" + }, + { + value: "盐埔乡", + label: "盐埔乡" + }, + { + value: "长治乡", + label: "长治乡" + }, + { + value: "麟洛乡", + label: "麟洛乡" + }, + { + value: "竹田乡", + label: "竹田乡" + }, + { + value: "内埔乡", + label: "内埔乡" + }, + { + value: "万丹乡", + label: "万丹乡" + }, + { + value: "潮州镇", + label: "潮州镇" + }, + { + value: "泰武乡", + label: "泰武乡" + }, + { + value: "来义乡", + label: "来义乡" + }, + { + value: "万峦乡", + label: "万峦乡" + }, + { + value: "莰顶乡", + label: "莰顶乡" + }, + { + value: "新埤乡", + label: "新埤乡" + }, + { + value: "南州乡", + label: "南州乡" + }, + { + value: "林边乡", + label: "林边乡" + }, + { + value: "东港镇", + label: "东港镇" + }, + { + value: "琉球乡", + label: "琉球乡" + }, + { + value: "佳冬乡", + label: "佳冬乡" + }, + { + value: "新园乡", + label: "新园乡" + }, + { + value: "枋寮乡", + label: "枋寮乡" + }, + { + value: "枋山乡", + label: "枋山乡" + }, + { + value: "春日乡", + label: "春日乡" + }, + { + value: "狮子乡", + label: "狮子乡" + }, + { + value: "车城乡", + label: "车城乡" + }, + { + value: "牡丹乡", + label: "牡丹乡" + }, + { + value: "恒春镇", + label: "恒春镇" + }, + { + value: "满州乡", + label: "满州乡" + } + ] + }, + { + value: "台东县", + label: "台东县", + children: [ + { + value: "台东市", + label: "台东市" + }, + { + value: "绿岛乡", + label: "绿岛乡" + }, + { + value: "兰屿乡", + label: "兰屿乡" + }, + { + value: "延平乡", + label: "延平乡" + }, + { + value: "卑南乡", + label: "卑南乡" + }, + { + value: "鹿野乡", + label: "鹿野乡" + }, + { + value: "关山镇", + label: "关山镇" + }, + { + value: "海端乡", + label: "海端乡" + }, + { + value: "池上乡", + label: "池上乡" + }, + { + value: "东河乡", + label: "东河乡" + }, + { + value: "成功镇", + label: "成功镇" + }, + { + value: "长滨乡", + label: "长滨乡" + }, + { + value: "金峰乡", + label: "金峰乡" + }, + { + value: "大武乡", + label: "大武乡" + }, + { + value: "达仁乡", + label: "达仁乡" + }, + { + value: "太麻里乡", + label: "太麻里乡" + } + ] + }, + { + value: "花莲县", + label: "花莲县", + children: [ + { + value: "花莲市", + label: "花莲市" + }, + { + value: "新城乡", + label: "新城乡" + }, + { + value: "太鲁阁", + label: "太鲁阁" + }, + { + value: "秀林乡", + label: "秀林乡" + }, + { + value: "吉安乡", + label: "吉安乡" + }, + { + value: "寿丰乡", + label: "寿丰乡" + }, + { + value: "凤林镇", + label: "凤林镇" + }, + { + value: "光复乡", + label: "光复乡" + }, + { + value: "丰滨乡", + label: "丰滨乡" + }, + { + value: "瑞穗乡", + label: "瑞穗乡" + }, + { + value: "万荣乡", + label: "万荣乡" + }, + { + value: "玉里镇", + label: "玉里镇" + }, + { + value: "卓溪乡", + label: "卓溪乡" + }, + { + value: "富里乡", + label: "富里乡" + } + ] + }, + { + value: "澎湖县", + label: "澎湖县", + children: [ + { + value: "马公市", + label: "马公市" + }, + { + value: "西屿乡", + label: "西屿乡" + }, + { + value: "望安乡", + label: "望安乡" + }, + { + value: "七美乡", + label: "七美乡" + }, + { + value: "白沙乡", + label: "白沙乡" + }, + { + value: "湖西乡", + label: "湖西乡" + } + ] + }, + { + value: "连江县", + label: "连江县", + children: [ + { + value: "南竿乡", + label: "南竿乡" + }, + { + value: "北竿乡", + label: "北竿乡" + }, + { + value: "东引乡", + label: "东引乡" + }, + { + value: "莒光乡", + label: "莒光乡" + } + ] + } + ] + }, + { + value: "香港特别行政区", + label: "香港特别行政区", + children: [ + { + value: "香港岛", + label: "香港岛", + children: [ + { + value: "中西区", + label: "中西区" + }, + { + value: "湾仔区", + label: "湾仔区" + }, + { + value: "东区", + label: "东区" + }, + { + value: "南区", + label: "南区" + } + ] + }, + { + value: "九龙", + label: "九龙", + children: [ + { + value: "九龙城区", + label: "九龙城区" + }, + { + value: "油尖旺区", + label: "油尖旺区" + }, + { + value: "深水埗区", + label: "深水埗区" + }, + { + value: "黄大仙区", + label: "黄大仙区" + }, + { + value: "观塘区", + label: "观塘区" + } + ] + }, + { + value: "新界", + label: "新界", + children: [ + { + value: "北区", + label: "北区" + }, + { + value: "大埔区", + label: "大埔区" + }, + { + value: "沙田区", + label: "沙田区" + }, + { + value: "西贡区", + label: "西贡区" + }, + { + value: "元朗区", + label: "元朗区" + }, + { + value: "屯门区", + label: "屯门区" + }, + { + value: "荃湾区", + label: "荃湾区" + }, + { + value: "葵青区", + label: "葵青区" + }, + { + value: "离岛区", + label: "离岛区" + } + ] + } + ] + }, + { + value: "澳门特别行政区", + label: "澳门特别行政区", + children: [ + { + value: "澳门半岛", + label: "澳门半岛", + children: [ + { + value: "花地玛堂区", + label: "花地玛堂区" + }, + { + value: "花王堂区", + label: "花王堂区" + }, + { + value: "望德堂区", + label: "望德堂区" + }, + { + value: "大堂区", + label: "大堂区" + }, + { + value: "风顺堂区", + label: "风顺堂区" + } + ] + }, + { + value: "离岛", + label: "离岛", + children: [ + { + value: "嘉模堂区", + label: "嘉模堂区" + }, + { + value: "路氹填海区", + label: "路氹填海区" + }, + { + value: "圣方济各堂区", + label: "圣方济各堂区" + } + ] + } + ] + } +]; diff --git a/client/src/router/index.ts b/client/src/router/index.ts index edb8052..77d6994 100644 --- a/client/src/router/index.ts +++ b/client/src/router/index.ts @@ -30,12 +30,24 @@ const routes: RouteRecordRaw[] = [ title: "仪表盘" } }, - // 业务模块(未开发,先使用占位页;菜单 component 落地后替换为真实组件) + // 业务模块 { - path: "customer", - name: "Customer", - component: () => import("@/views/Placeholder.vue"), - meta: { requiresAuth: true, title: "客户管理", permission: "customer:list" } + path: "customer/info", + name: "CustomerInfo", + component: () => import("@/views/customer/info/index.vue"), + meta: { requiresAuth: true, title: "客户信息", permission: "customer:list" } + }, + { + path: "customer/department", + name: "CustomerDept", + component: () => import("@/views/customer/department/index.vue"), + meta: { requiresAuth: true, title: "客户部门", permission: "customer:department" } + }, + { + path: "customer/account", + name: "CustomerAccount", + component: () => import("@/views/customer/account/index.vue"), + meta: { requiresAuth: true, title: "客户账号", permission: "customer:account" } }, { path: "project", diff --git a/client/src/views/customer/account/index.vue b/client/src/views/customer/account/index.vue new file mode 100644 index 0000000..19dd1e2 --- /dev/null +++ b/client/src/views/customer/account/index.vue @@ -0,0 +1,459 @@ + + + + + diff --git a/client/src/views/customer/department/index.vue b/client/src/views/customer/department/index.vue new file mode 100644 index 0000000..35ee73a --- /dev/null +++ b/client/src/views/customer/department/index.vue @@ -0,0 +1,401 @@ + + + + + diff --git a/client/src/views/customer/info/index.vue b/client/src/views/customer/info/index.vue new file mode 100644 index 0000000..bcb5eb4 --- /dev/null +++ b/client/src/views/customer/info/index.vue @@ -0,0 +1,496 @@ + + + + + diff --git a/client/yarn.lock b/client/yarn.lock index 78eb55a..3a17d95 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -4,24 +4,24 @@ "@alloc/quick-lru@^5.2.0": version "5.2.0" - resolved "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + resolved "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== "@ant-design/colors@^6.0.0": version "6.0.0" - resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298" + resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz" integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== dependencies: "@ctrl/tinycolor" "^3.4.0" "@ant-design/icons-svg@^4.2.1": version "4.4.2" - resolved "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6" + resolved "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz" integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== "@ant-design/icons-vue@^7.0.0", "@ant-design/icons-vue@^7.0.1": version "7.0.1" - resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz#83de301771fadd03f3890e627314102405c31c22" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz" integrity sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q== dependencies: "@ant-design/colors" "^6.0.0" @@ -29,7 +29,7 @@ "@babel/code-frame@^7.27.1", "@babel/code-frame@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.7.tgz" integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== dependencies: "@babel/helper-validator-identifier" "^7.29.7" @@ -38,12 +38,12 @@ "@babel/compat-data@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.29.7.tgz" integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== -"@babel/core@^7.23.0": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.23.0": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7" + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.29.7.tgz" integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== dependencies: "@babel/code-frame" "^7.29.7" @@ -64,7 +64,7 @@ "@babel/generator@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.29.7.tgz" integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ== dependencies: "@babel/parser" "^7.29.7" @@ -75,14 +75,14 @@ "@babel/helper-annotate-as-pure@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz" integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== dependencies: "@babel/types" "^7.29.7" "@babel/helper-compilation-targets@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz" integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g== dependencies: "@babel/compat-data" "^7.29.7" @@ -93,7 +93,7 @@ "@babel/helper-create-class-features-plugin@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz#6eddf286f2ec418f740c91d60a83347c55838ddd" + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz" integrity sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg== dependencies: "@babel/helper-annotate-as-pure" "^7.29.7" @@ -106,12 +106,12 @@ "@babel/helper-globals@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" + resolved "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz" integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== "@babel/helper-member-expression-to-functions@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz#8dbdb3ce0b5c487e1aec10e13c9a43a500814df8" + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz" integrity sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg== dependencies: "@babel/traverse" "^7.29.7" @@ -119,7 +119,7 @@ "@babel/helper-module-imports@^7.27.1", "@babel/helper-module-imports@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz" integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== dependencies: "@babel/traverse" "^7.29.7" @@ -127,7 +127,7 @@ "@babel/helper-module-transforms@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz" integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg== dependencies: "@babel/helper-module-imports" "^7.29.7" @@ -136,19 +136,19 @@ "@babel/helper-optimise-call-expression@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz#77b0b5b94f1997fa9d6e3125f445227b1faf9d85" + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz" integrity sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong== dependencies: "@babel/types" "^7.29.7" "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz" integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== "@babel/helper-replace-supers@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz#bc3c3964329043c79112e513c1b198f16589ac21" + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz" integrity sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ== dependencies: "@babel/helper-member-expression-to-functions" "^7.29.7" @@ -157,7 +157,7 @@ "@babel/helper-skip-transparent-expression-wrappers@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz#50c95c7e4c4f54936cfa0116428edc559862d551" + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz" integrity sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ== dependencies: "@babel/traverse" "^7.29.7" @@ -165,22 +165,22 @@ "@babel/helper-string-parser@^7.22.5", "@babel/helper-string-parser@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz" integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== "@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz" integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== "@babel/helper-validator-option@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz" integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== "@babel/helpers@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607" + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.29.7.tgz" integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg== dependencies: "@babel/template" "^7.29.7" @@ -188,14 +188,14 @@ "@babel/parser@^7.28.0", "@babel/parser@^7.29.3", "@babel/parser@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.7.tgz" integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== dependencies: "@babel/types" "^7.29.7" "@babel/plugin-proposal-decorators@^7.23.0": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz#ebc57bd4d711df920a553de8a456a3a020ce0d72" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz" integrity sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg== dependencies: "@babel/helper-create-class-features-plugin" "^7.29.7" @@ -204,42 +204,42 @@ "@babel/plugin-syntax-decorators@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz#9a23ab91fb8e61d142684108bca6f343ceee88f6" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz" integrity sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg== dependencies: "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-syntax-import-attributes@^7.22.5": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz#6115264516e95ead0f35a41710906612e447f605" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz" integrity sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg== dependencies: "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx@^7.27.1": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz" integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== dependencies: "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-syntax-typescript@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz#7c29388932313ed58413a0343048d75d92fb5b24" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz" integrity sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA== dependencies: "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-transform-typescript@^7.22.15": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz#f0449c3df7037bbe232043476851c38f5e4a7615" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz" integrity sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw== dependencies: "@babel/helper-annotate-as-pure" "^7.29.7" @@ -250,12 +250,12 @@ "@babel/runtime@^7.10.5": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.29.7.tgz" integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== "@babel/template@^7.27.2", "@babel/template@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.29.7.tgz" integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== dependencies: "@babel/code-frame" "^7.29.7" @@ -264,7 +264,7 @@ "@babel/traverse@^7.28.0", "@babel/traverse@^7.29.7": version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.29.7.tgz" integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw== dependencies: "@babel/code-frame" "^7.29.7" @@ -275,168 +275,58 @@ "@babel/types" "^7.29.7" debug "^4.3.1" +"@babel/types@^7.28.2", "@babel/types@^7.29.7": + version "7.29.7" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.29.7.tgz" + integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== + dependencies: + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + "@babel/types@7.23.0": version "7.23.0" - resolved "https://registry.npmmirror.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.23.0.tgz" integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.28.2", "@babel/types@^7.29.7": - version "7.29.7" - resolved "https://registry.npmmirror.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92" - integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== - dependencies: - "@babel/helper-string-parser" "^7.29.7" - "@babel/helper-validator-identifier" "^7.29.7" - "@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.5.0": version "3.6.1" - resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" + resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz" integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== "@emotion/hash@^0.9.0": version "0.9.2" - resolved "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b" + resolved "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz" integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== "@emotion/unitless@^0.8.0": version "0.8.1" - resolved "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + resolved "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz" integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - "@esbuild/win32-x64@0.21.5": version "0.21.5" - resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.9.1" - resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" + resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz" integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== dependencies: eslint-visitor-keys "^3.4.3" "@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.12.2" - resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" + resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz" integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -451,12 +341,12 @@ "@eslint/js@8.57.1": version "8.57.1" - resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.57.1.tgz" integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== "@humanwhocodes/config-array@^0.13.0": version "0.13.0" - resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz" integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== dependencies: "@humanwhocodes/object-schema" "^2.0.3" @@ -465,17 +355,17 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.3": version "2.0.3" - resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" - resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -483,7 +373,7 @@ "@jridgewell/remapping@^2.3.5": version "2.3.5" - resolved "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + resolved "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz" integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -491,17 +381,17 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" - resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": version "0.3.31" - resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -509,153 +399,38 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@rollup/rollup-android-arm-eabi@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz#3a04f01e9f01392bbef5920b94aa3b88794be7ab" - integrity sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ== - -"@rollup/rollup-android-arm64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz#e371b653ceabc900790ae73f5548a0fd7cd63a70" - integrity sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw== - -"@rollup/rollup-darwin-arm64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz#2a5aa70432e39816d666d79287a7324cfc3b4e72" - integrity sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA== - -"@rollup/rollup-darwin-x64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz#c3b5b49629379cd9cdc5d841bf00ed44ebf393dd" - integrity sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg== - -"@rollup/rollup-freebsd-arm64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz#f929d8e0462fae6602fc960beeabd7287d859283" - integrity sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g== - -"@rollup/rollup-freebsd-x64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz#c01cb58031226f95d0900b1ec847f4fb32c6e809" - integrity sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw== - -"@rollup/rollup-linux-arm-gnueabihf@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz#f29d890c4858c8e0d3be01677eef4f6a359eed9d" - integrity sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA== - -"@rollup/rollup-linux-arm-musleabihf@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz#1ebfc8eb9f66136ed2faae5f44995add5ca3c964" - integrity sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w== - -"@rollup/rollup-linux-arm64-gnu@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz#c1fa823c2c4ce46ba7f61de1a4c3fdadd4fb4e7b" - integrity sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg== - -"@rollup/rollup-linux-arm64-musl@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz#a7f18854d0471b78bda8ea38f0891a4e059b571d" - integrity sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A== - -"@rollup/rollup-linux-loong64-gnu@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz#83658a9a4576bcce8cef85b2c78b9b649d2200c4" - integrity sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ== - -"@rollup/rollup-linux-loong64-musl@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz#fd2af677ae3417bb58d57ae37dd0d84686e40244" - integrity sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw== - -"@rollup/rollup-linux-ppc64-gnu@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz#6481647181c4cf8f1ddbd99f62c84cfc56c1a94a" - integrity sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg== - -"@rollup/rollup-linux-ppc64-musl@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz#18610a1a1550e28a5042ca916f898419540f17f4" - integrity sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A== - -"@rollup/rollup-linux-riscv64-gnu@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz#597bb80465a2621dbe0de0a41c66394a8a7e9a6e" - integrity sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA== - -"@rollup/rollup-linux-riscv64-musl@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz#a2a919a9f927ef7f24a60af77e3cb55f1ad59e4d" - integrity sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw== - -"@rollup/rollup-linux-s390x-gnu@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz#3166f6ceae7df9bbfddf9f36be1937231e13e3c6" - integrity sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ== - -"@rollup/rollup-linux-x64-gnu@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz#23c9bf79771d804fb87415eb0767569f273261e5" - integrity sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ== - -"@rollup/rollup-linux-x64-musl@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz#97941c6b94d67fe25cde0f027c10a19f2d1fdd39" - integrity sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg== - -"@rollup/rollup-openbsd-x64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz#7aeb7d92e2cd1d399f56daf75c39040b777b6c77" - integrity sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA== - -"@rollup/rollup-openharmony-arm64@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz#925de61ae83bf99aa636e8acea87432e8c0ffaab" - integrity sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg== - -"@rollup/rollup-win32-arm64-msvc@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz#888ab83842721491044c46a7407e1f38f3235bb4" - integrity sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw== - -"@rollup/rollup-win32-ia32-msvc@4.60.4": - version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz#fa30ac24e3f0232139d2a47500560a28695764d4" - integrity sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA== - "@rollup/rollup-win32-x64-gnu@4.60.4": version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz#223e2bc93f86e0707568e1fadb5b537e50c976c7" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz" integrity sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw== "@rollup/rollup-win32-x64-msvc@4.60.4": version "4.60.4" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz#da4f1676d87e2bdf744291b504b0ab79550c3e61" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz" integrity sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw== "@simonwep/pickr@~1.8.0": version "1.8.2" - resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz#96dc86675940d7cad63d69c22083dd1cbb9797cb" + resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz" integrity sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA== dependencies: core-js "^3.15.1" @@ -663,19 +438,19 @@ "@types/estree@1.0.8": version "1.0.8" - resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/node@^22.15.30": +"@types/node@^18.0.0 || >=20.0.0", "@types/node@^22.15.30": version "22.19.19" - resolved "https://registry.npmmirror.com/@types/node/-/node-22.19.19.tgz#3124bf26ded54168b768138321fef99b420c6112" + resolved "https://registry.npmmirror.com/@types/node/-/node-22.19.19.tgz" integrity sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew== dependencies: undici-types "~6.21.0" "@typescript-eslint/eslint-plugin@^7.0.1": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz" integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== dependencies: "@eslint-community/regexpp" "^4.10.0" @@ -688,9 +463,9 @@ natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.0.1": +"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.0.1": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" + resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.18.0.tgz" integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== dependencies: "@typescript-eslint/scope-manager" "7.18.0" @@ -701,7 +476,7 @@ "@typescript-eslint/scope-manager@7.18.0": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz" integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== dependencies: "@typescript-eslint/types" "7.18.0" @@ -709,7 +484,7 @@ "@typescript-eslint/type-utils@7.18.0": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz" integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== dependencies: "@typescript-eslint/typescript-estree" "7.18.0" @@ -719,12 +494,12 @@ "@typescript-eslint/types@7.18.0": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-7.18.0.tgz" integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== "@typescript-eslint/typescript-estree@7.18.0": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz" integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== dependencies: "@typescript-eslint/types" "7.18.0" @@ -738,7 +513,7 @@ "@typescript-eslint/utils@7.18.0": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-7.18.0.tgz" integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -748,7 +523,7 @@ "@typescript-eslint/visitor-keys@7.18.0": version "7.18.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz" integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== dependencies: "@typescript-eslint/types" "7.18.0" @@ -756,31 +531,31 @@ "@ungap/structured-clone@^1.2.0": version "1.3.1" - resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.3.1.tgz#0e8f34854df7966b09304a18e808b23997bb9fc1" + resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.3.1.tgz" integrity sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ== "@vitejs/plugin-vue@^5.0.3": version "5.2.4" - resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz#9e8a512eb174bfc2a333ba959bbf9de428d89ad8" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz" integrity sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA== -"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": +"@volar/language-core@~1.11.1", "@volar/language-core@1.11.1": version "1.11.1" - resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" + resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz" integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== dependencies: "@volar/source-map" "1.11.1" -"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": +"@volar/source-map@~1.11.1", "@volar/source-map@1.11.1": version "1.11.1" - resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" + resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz" integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== dependencies: muggle-string "^0.3.1" "@volar/typescript@~1.11.1": version "1.11.1" - resolved "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" + resolved "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz" integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== dependencies: "@volar/language-core" "1.11.1" @@ -788,12 +563,12 @@ "@vue/babel-helper-vue-transform-on@1.5.0": version "1.5.0" - resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz#b7e99d37eeb144d7b9757d7a1f40cd977fde748a" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz" integrity sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA== "@vue/babel-plugin-jsx@^1.1.5": version "1.5.0" - resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz#1b988b497cb1f79725da94463e75cebe60b72e70" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz" integrity sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw== dependencies: "@babel/helper-module-imports" "^7.27.1" @@ -808,7 +583,7 @@ "@vue/babel-plugin-resolve-type@1.5.0": version "1.5.0" - resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz#6881d7b1478e9fc0ea4bb08aaad1f4d206655568" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz" integrity sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w== dependencies: "@babel/code-frame" "^7.27.1" @@ -819,7 +594,7 @@ "@vue/compiler-core@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.34.tgz#6d84a46b7fdf1162cf8225aa2be42918a76ab827" + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.34.tgz" integrity sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw== dependencies: "@babel/parser" "^7.29.3" @@ -828,17 +603,17 @@ estree-walker "^2.0.2" source-map-js "^1.2.1" -"@vue/compiler-dom@3.5.34", "@vue/compiler-dom@^3.3.0", "@vue/compiler-dom@^3.3.4": +"@vue/compiler-dom@^3.3.0", "@vue/compiler-dom@^3.3.4", "@vue/compiler-dom@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz#6b943e8106822868e74d66c615432bbba6a589be" + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz" integrity sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw== dependencies: "@vue/compiler-core" "3.5.34" "@vue/shared" "3.5.34" -"@vue/compiler-sfc@3.5.34", "@vue/compiler-sfc@^3.5.18": +"@vue/compiler-sfc@^3.5.18", "@vue/compiler-sfc@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz#93b6aeb3393cd7b3c71ff07f28879558f72e5f1d" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz" integrity sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg== dependencies: "@babel/parser" "^7.29.3" @@ -853,7 +628,7 @@ "@vue/compiler-ssr@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz#0561ae3f9b81564929a8544769eee9cc92a76c42" + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz" integrity sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ== dependencies: "@vue/compiler-dom" "3.5.34" @@ -861,19 +636,19 @@ "@vue/devtools-api@^6.6.4": version "6.6.4" - resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz" integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== "@vue/devtools-api@^7.7.7": version "7.7.9" - resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.9.tgz#999dbea50da6b00cf59a1336f11fdc2b43d9e063" + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.9.tgz" integrity sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g== dependencies: "@vue/devtools-kit" "^7.7.9" "@vue/devtools-kit@^7.7.9": version "7.7.9" - resolved "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz#bc218a815616e8987df7ab3e10fc1fb3b8706c58" + resolved "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz" integrity sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA== dependencies: "@vue/devtools-shared" "^7.7.9" @@ -886,14 +661,14 @@ "@vue/devtools-shared@^7.7.9": version "7.7.9" - resolved "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz#fa4c096b744927081a7dda5fcf05f34b1ae6ca14" + resolved "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz" integrity sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA== dependencies: rfdc "^1.4.1" "@vue/language-core@1.8.27": version "1.8.27" - resolved "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" + resolved "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz" integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== dependencies: "@volar/language-core" "~1.11.1" @@ -908,22 +683,22 @@ "@vue/reactivity@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.34.tgz#d41355f7e8b1784078ea498ec7d974e4e26d4b74" + resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.34.tgz" integrity sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ== dependencies: "@vue/shared" "3.5.34" "@vue/runtime-core@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.34.tgz#1b4ce2ebf94d670acbd8f22d92e45908e2a2c96a" + resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.34.tgz" integrity sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw== dependencies: "@vue/reactivity" "3.5.34" "@vue/shared" "3.5.34" -"@vue/runtime-dom@3.5.34", "@vue/runtime-dom@^3.4.15": +"@vue/runtime-dom@^3.4.15", "@vue/runtime-dom@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz#1b4e5c009fe9d6ce682cfc2372da4abd40614d29" + resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz" integrity sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg== dependencies: "@vue/reactivity" "3.5.34" @@ -933,42 +708,42 @@ "@vue/server-renderer@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.34.tgz#e0776f839312b4111fb5bd742a70f435298a3e21" + resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.34.tgz" integrity sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew== dependencies: "@vue/compiler-ssr" "3.5.34" "@vue/shared" "3.5.34" -"@vue/shared@3.5.34", "@vue/shared@^3.3.0", "@vue/shared@^3.5.18": +"@vue/shared@^3.3.0", "@vue/shared@^3.5.18", "@vue/shared@3.5.34": version "3.5.34" - resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.34.tgz#665f2b2fd600f6c180668423909a6fde64cbfccd" + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.34.tgz" integrity sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA== "@vue/tsconfig@^0.7.0": version "0.7.0" - resolved "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.7.0.tgz#67044c847b7a137b8cbfd6b23104c36dbaf80d1d" + resolved "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.7.0.tgz" integrity sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg== acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.14.0, acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.9.0: version "8.16.0" - resolved "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz" integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== agent-base@6: version "6.0.2" - resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" ajv@^6.12.4: version "6.15.0" - resolved "https://registry.npmmirror.com/ajv/-/ajv-6.15.0.tgz#07e982c74626167aa7a2495c53817892d7139492" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.15.0.tgz" integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== dependencies: fast-deep-equal "^3.1.1" @@ -978,19 +753,19 @@ ajv@^6.12.4: ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ant-design-vue@^4.2.6: version "4.2.6" - resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.2.6.tgz#e4ce6944457cd1cd61d8b3fe52793ab58b94e337" + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.2.6.tgz" integrity sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q== dependencies: "@ant-design/colors" "^6.0.0" @@ -1018,12 +793,12 @@ ant-design-vue@^4.2.6: any-promise@^1.0.0: version "1.3.0" - resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1031,37 +806,37 @@ anymatch@~3.1.2: arg@^5.0.2: version "5.0.2" - resolved "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + resolved "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-tree-filter@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz" integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== async-validator@^4.0.0: version "4.2.5" - resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz" integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== autoprefixer@^10.4.17: version "10.5.0" - resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.5.0.tgz#33d87e443430f020a0f85319d6ff1593cb291be9" + resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.5.0.tgz" integrity sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong== dependencies: browserslist "^4.28.2" @@ -1072,7 +847,7 @@ autoprefixer@^10.4.17: axios@^1.16.1: version "1.16.1" - resolved "https://registry.npmmirror.com/axios/-/axios-1.16.1.tgz#517e29291d19d6e8cf919ff264f4fe157261ba12" + resolved "https://registry.npmmirror.com/axios/-/axios-1.16.1.tgz" integrity sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A== dependencies: follow-redirects "^1.16.0" @@ -1082,32 +857,32 @@ axios@^1.16.1: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== baseline-browser-mapping@^2.10.12: version "2.10.32" - resolved "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz#b6b553a4285fdd606327a617de36a5351e3aaa64" + resolved "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz" integrity sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== birpc@^2.3.0: version "2.9.0" - resolved "https://registry.npmmirror.com/birpc/-/birpc-2.9.0.tgz#b59550897e4cd96a223e2a6c1475b572236ed145" + resolved "https://registry.npmmirror.com/birpc/-/birpc-2.9.0.tgz" integrity sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw== boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.15" - resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.15.tgz#a6d90d54067236e5f42570a3b7378d594d9b7738" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.15.tgz" integrity sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg== dependencies: balanced-match "^1.0.0" @@ -1115,21 +890,21 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.2: version "2.1.1" - resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.1.1.tgz#c68b1c4111c76aae3a6fba55d496cee10c39dad8" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.1.1.tgz" integrity sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA== dependencies: balanced-match "^1.0.0" braces@^3.0.3, braces@~3.0.2: version "3.0.3" - resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -browserslist@^4.24.0, browserslist@^4.28.2: +browserslist@^4.24.0, browserslist@^4.28.2, "browserslist@>= 4.21.0": version "4.28.2" - resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz#f50b65362ef48974ca9f50b3680566d786b811d2" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz" integrity sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg== dependencies: baseline-browser-mapping "^2.10.12" @@ -1140,7 +915,7 @@ browserslist@^4.24.0, browserslist@^4.28.2: call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" - resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" @@ -1148,22 +923,22 @@ call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase-css@^2.0.1: version "2.0.1" - resolved "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + resolved "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== caniuse-lite@^1.0.30001782, caniuse-lite@^1.0.30001787: version "1.0.30001793" - resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz#238887ddf5fcfc8c36d872394d0a78a517312a72" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz" integrity sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA== chalk@^4.0.0: version "4.1.2" - resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -1171,7 +946,7 @@ chalk@^4.0.0: chokidar@^3.6.0: version "3.6.0" - resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -1186,75 +961,75 @@ chokidar@^3.6.0: clsx@^2.1.1: version "2.1.1" - resolved "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + resolved "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@^4.0.0: version "4.1.1" - resolved "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + resolved "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== compute-scroll-into-view@^1.0.20: version "1.0.20" - resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz" integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== computeds@^0.0.1: version "0.0.1" - resolved "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" + resolved "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz" integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== copy-anything@^3.0.5: version "3.0.5" - resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz" integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== dependencies: is-what "^4.1.8" copy-anything@^4: version "4.0.5" - resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-4.0.5.tgz#16cabafd1ea4bb327a540b750f2b4df522825aea" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-4.0.5.tgz" integrity sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA== dependencies: is-what "^5.2.0" core-js@^3.15.1: version "3.49.0" - resolved "https://registry.npmmirror.com/core-js/-/core-js-3.49.0.tgz#8b4d520ac034311fa21aa616f017ada0e0dbbddd" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.49.0.tgz" integrity sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg== cross-spawn@^7.0.2: version "7.0.6" - resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -1263,87 +1038,87 @@ cross-spawn@^7.0.2: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== csstype@^3.1.1, csstype@^3.2.3: version "3.2.3" - resolved "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== dayjs@^1.10.5, dayjs@^1.11.21: version "1.11.21" - resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.21.tgz#57f87562e62de76f3c704bd2b8d522fc33068eb2" + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.21.tgz" integrity sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA== de-indent@^1.0.2: version "1.0.2" - resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -debug@4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4: version "4.4.3" - resolved "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + resolved "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== didyoumean@^1.2.2: version "1.2.2" - resolved "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + resolved "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" dlv@^1.1.3: version "1.1.3" - resolved "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + resolved "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-align@^1.12.1: version "1.12.4" - resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" + resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz" integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== dom-scroll-into-view@^2.0.0: version "2.0.1" - resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" + resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz" integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== dunder-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: call-bind-apply-helpers "^1.0.1" es-errors "^1.3.0" gopd "^1.2.0" -echarts@^6.1.0: +echarts@^6.0.0, echarts@^6.1.0: version "6.1.0" - resolved "https://registry.npmmirror.com/echarts/-/echarts-6.1.0.tgz#ae0f68590f5ebbd728d900907c27acde7c5456d1" + resolved "https://registry.npmmirror.com/echarts/-/echarts-6.1.0.tgz" integrity sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA== dependencies: tslib "2.3.0" @@ -1351,41 +1126,41 @@ echarts@^6.1.0: electron-to-chromium@^1.5.328: version "1.5.362" - resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.362.tgz#0696661e1e8ea46248e82f62f0a0bfe1aac2ce76" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.362.tgz" integrity sha512-PUY2DrLvkjkUuWqq+KPL2iWshrJsZOcIojzRQ7eXFacc9dWga7MGMJAa15VbiejSZB1PAXaRLAiKgruHP8LB1w== entities@^7.0.1: version "7.0.1" - resolved "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz#26e8a88889db63417dcb9a1e79a3f1bc92b5976b" + resolved "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz" integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== errno@^0.1.1: version "0.1.8" - resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" es-define-property@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.2" - resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz" integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== dependencies: es-errors "^1.3.0" es-set-tostringtag@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: es-errors "^1.3.0" @@ -1395,7 +1170,7 @@ es-set-tostringtag@^2.1.0: esbuild@^0.21.3: version "0.21.5" - resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz" integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: "@esbuild/aix-ppc64" "0.21.5" @@ -1424,17 +1199,17 @@ esbuild@^0.21.3: escalade@^3.2.0: version "3.2.0" - resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-plugin-vue@^9.20.1: version "9.33.0" - resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz#de33eba8f78e1d172c59c8ec7fbfd60c6ca35c39" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz" integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -1448,7 +1223,7 @@ eslint-plugin-vue@^9.20.1: eslint-scope@^7.1.1, eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -1456,12 +1231,12 @@ eslint-scope@^7.1.1, eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.56.0: +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", eslint@^8.56.0, eslint@>=6.0.0: version "8.57.1" - resolved "https://registry.npmmirror.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + resolved "https://registry.npmmirror.com/eslint/-/eslint-8.57.1.tgz" integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -1505,7 +1280,7 @@ eslint@^8.56.0: espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -1514,41 +1289,41 @@ espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: esquery@^1.4.0, esquery@^1.4.2: version "1.7.0" - resolved "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d" + resolved "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz" integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.3" - resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -1559,43 +1334,43 @@ fast-glob@^3.2.9, fast-glob@^3.3.2: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.20.1" - resolved "https://registry.npmmirror.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + resolved "https://registry.npmmirror.com/fastq/-/fastq-1.20.1.tgz" integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" fdir@^6.5.0: version "6.5.0" - resolved "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + resolved "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -1603,7 +1378,7 @@ find-up@^5.0.0: flat-cache@^3.0.4: version "3.2.0" - resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz" integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: flatted "^3.2.9" @@ -1612,17 +1387,17 @@ flat-cache@^3.0.4: flatted@^3.2.9: version "3.4.2" - resolved "https://registry.npmmirror.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726" + resolved "https://registry.npmmirror.com/flatted/-/flatted-3.4.2.tgz" integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA== follow-redirects@^1.16.0: version "1.16.0" - resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.16.0.tgz" integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== form-data@^4.0.5: version "4.0.5" - resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz" integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" @@ -1633,32 +1408,27 @@ form-data@^4.0.5: fraction.js@^5.3.4: version "5.3.4" - resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-5.3.4.tgz#8c0fcc6a9908262df4ed197427bdeef563e0699a" + resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-5.3.4.tgz" integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-intrinsic@^1.2.6: version "1.3.0" - resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: call-bind-apply-helpers "^1.0.2" @@ -1674,7 +1444,7 @@ get-intrinsic@^1.2.6: get-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: dunder-proto "^1.0.1" @@ -1682,21 +1452,21 @@ get-proto@^1.0.1: glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@^7.1.3: version "7.2.3" - resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1708,14 +1478,14 @@ glob@^7.1.3: globals@^13.19.0, globals@^13.24.0: version "13.24.0" - resolved "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + resolved "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -1727,56 +1497,56 @@ globby@^11.1.0: gopd@^1.2.0: version "1.2.0" - resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graceful-fs@^4.1.2: version "4.2.11" - resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" hasown@^2.0.2, hasown@^2.0.3: version "2.0.3" - resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.3.tgz#5e5c2b15b60370a4c7930c383dfb76bf17bc403c" + resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.3.tgz" integrity sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg== dependencies: function-bind "^1.1.2" he@^1.2.0: version "1.2.0" - resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hookable@^5.5.3: version "5.5.3" - resolved "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" + resolved "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz" integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== https-proxy-agent@^5.0.1: version "5.0.1" - resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -1784,24 +1554,24 @@ https-proxy-agent@^5.0.1: iconv-lite@^0.6.3: version "0.6.3" - resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" - resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== image-size@~0.5.0: version "0.5.5" - resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== import-fresh@^3.2.1: version "3.3.1" - resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz" integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" @@ -1809,12 +1579,12 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -1822,122 +1592,122 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-core-module@^2.16.1: version "2.16.2" - resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082" + resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.2.tgz" integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== dependencies: hasown "^2.0.3" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-object@3.0.1: version "3.0.1" - resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz" integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== is-what@^4.1.8: version "4.1.16" - resolved "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" + resolved "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz" integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== is-what@^5.2.0: version "5.5.0" - resolved "https://registry.npmmirror.com/is-what/-/is-what-5.5.0.tgz#a3031815757cfe1f03fed990bf6355a2d3f628c4" + resolved "https://registry.npmmirror.com/is-what/-/is-what-5.5.0.tgz" integrity sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jiti@^1.21.7: +jiti@^1.21.7, jiti@>=1.21.0: version "1.21.7" - resolved "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" + resolved "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz" integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.1" - resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" jsesc@^3.0.2: version "3.1.0" - resolved "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^2.2.3: version "2.2.3" - resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== keyv@^4.5.3: version "4.5.4" - resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kolorist@^1.8.0: version "1.8.0" - resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz" integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== -less@^4.6.4: +less@*, less@^4.6.4: version "4.6.4" - resolved "https://registry.npmmirror.com/less/-/less-4.6.4.tgz#3ff8068e6c8a59f1ece8a6b9227bda28c1ed68a2" + resolved "https://registry.npmmirror.com/less/-/less-4.6.4.tgz" integrity sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg== dependencies: copy-anything "^3.0.5" @@ -1953,7 +1723,7 @@ less@^4.6.4: levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -1961,65 +1731,65 @@ levn@^0.4.1: lilconfig@^3.1.1, lilconfig@^3.1.3: version "3.1.3" - resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz" integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash-es@^4.17.15: version "4.18.1" - resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.18.1.tgz#b962eeb80d9d983a900bf342961fb7418ca10b1d" + resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.18.1.tgz" integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.17.21: version "4.18.1" - resolved "https://registry.npmmirror.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.18.1.tgz" integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== loose-envify@^1.0.0: version "1.4.0" - resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lucide-vue-next@^0.511.0: version "0.511.0" - resolved "https://registry.npmmirror.com/lucide-vue-next/-/lucide-vue-next-0.511.0.tgz#4a2ce4a7aad312f0513235322af00fb0c3a8f0c4" + resolved "https://registry.npmmirror.com/lucide-vue-next/-/lucide-vue-next-0.511.0.tgz" integrity sha512-VSv0F3pHniGN7JMMzDcLFNMQbl8381+shNnHwV8hi+El7xl2ZL8qdNuzPoiBViKk8mTKK5K3ZDfmE/wEcTZVIQ== magic-string@^0.30.21, magic-string@^0.30.4: version "0.30.21" - resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz" integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: "@jridgewell/sourcemap-codec" "^1.5.5" make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" @@ -2027,17 +1797,17 @@ make-dir@^2.1.0: math-intrinsics@^1.1.0: version "1.1.0" - resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.8: version "4.0.8" - resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" @@ -2045,53 +1815,60 @@ micromatch@^4.0.8: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12: version "2.1.35" - resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@^1.4.1: version "1.6.0" - resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.5" - resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.5.tgz" integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.3, minimatch@^9.0.4: +minimatch@^9.0.3: version "9.0.9" - resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.9.tgz" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== + dependencies: + brace-expansion "^2.0.2" + +minimatch@^9.0.4: + version "9.0.9" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.9.tgz" integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== dependencies: brace-expansion "^2.0.2" mitt@^3.0.1: version "3.0.1" - resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== muggle-string@^0.3.1: version "0.3.1" - resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" + resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz" integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== mz@^2.7.0: version "2.7.0" - resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== dependencies: any-promise "^1.0.0" @@ -2100,22 +1877,22 @@ mz@^2.7.0: nanoid@^3.3.12: version "3.3.12" - resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.12.tgz" integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== nanopop@^2.1.0: version "2.4.2" - resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz#b55482135be7e64f2d0f5aa8ef51a58104ac7b13" + resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz" integrity sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== needle@^3.1.0: version "3.5.0" - resolved "https://registry.npmmirror.com/needle/-/needle-3.5.0.tgz#aa2023642cb41b11a11babb733fd8fa952919112" + resolved "https://registry.npmmirror.com/needle/-/needle-3.5.0.tgz" integrity sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w== dependencies: iconv-lite "^0.6.3" @@ -2123,41 +1900,41 @@ needle@^3.1.0: node-releases@^2.0.36: version "2.0.46" - resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.46.tgz#d188a129a83f5e03a101aacb58f260f2ee8faaa1" + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.46.tgz" integrity sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" object-assign@^4.0.1: version "4.1.1" - resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + resolved "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== once@^1.3.0: version "1.4.0" - resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.9.3: version "0.9.4" - resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz" integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" @@ -2169,105 +1946,105 @@ optionator@^0.9.3: p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-node-version@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + resolved "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== perfect-debounce@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" + resolved "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.2" - resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.2.tgz" integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== -picomatch@^4.0.4: +"picomatch@^3 || ^4", picomatch@^4.0.4: version "4.0.4" - resolved "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz" integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== pify@^2.3.0: version "2.3.0" - resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: version "4.0.1" - resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinia@^3.0.4: version "3.0.4" - resolved "https://registry.npmmirror.com/pinia/-/pinia-3.0.4.tgz#75dde12784a61e34c1fa6abcd13c1a1061c360c0" + resolved "https://registry.npmmirror.com/pinia/-/pinia-3.0.4.tgz" integrity sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw== dependencies: "@vue/devtools-api" "^7.7.7" pirates@^4.0.1: version "4.0.7" - resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.7.tgz" integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== postcss-import@^15.1.0: version "15.1.0" - resolved "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + resolved "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz" integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: postcss-value-parser "^4.0.0" @@ -2276,28 +2053,28 @@ postcss-import@^15.1.0: postcss-js@^4.0.1: version "4.1.0" - resolved "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.1.0.tgz#003b63c6edde948766e40f3daf7e997ae43a5ce6" + resolved "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.1.0.tgz" integrity sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw== dependencies: camelcase-css "^2.0.1" "postcss-load-config@^4.0.2 || ^5.0 || ^6.0": version "6.0.1" - resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz#6fd7dcd8ae89badcf1b2d644489cbabf83aa8096" + resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz" integrity sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g== dependencies: lilconfig "^3.1.1" postcss-nested@^6.2.0: version "6.2.0" - resolved "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + resolved "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.2.0.tgz" integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== dependencies: postcss-selector-parser "^6.1.1" postcss-selector-parser@^6.0.15, postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: version "6.1.2" - resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" @@ -2305,12 +2082,12 @@ postcss-selector-parser@^6.0.15, postcss-selector-parser@^6.1.1, postcss-selecto postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.35, postcss@^8.4.43, postcss@^8.4.47, postcss@^8.5.14: +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.35, postcss@^8.4.43, postcss@^8.4.47, postcss@^8.5.14, postcss@>=8.0.9: version "8.5.15" - resolved "https://registry.npmmirror.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c" + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.5.15.tgz" integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== dependencies: nanoid "^3.3.12" @@ -2319,56 +2096,56 @@ postcss@^8.4.35, postcss@^8.4.43, postcss@^8.4.47, postcss@^8.5.14: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== proxy-from-env@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba" + resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz" integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== prr@~1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== punycode@^2.1.0: version "2.3.1" - resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== read-cache@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + resolved "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz" integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" resize-observer-polyfill@^1.5.1: version "1.5.1" - resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.1.7, resolve@^1.22.8: version "1.22.12" - resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.12.tgz" integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== dependencies: es-errors "^1.3.0" @@ -2378,24 +2155,24 @@ resolve@^1.1.7, resolve@^1.22.8: reusify@^1.0.4: version "1.1.0" - resolved "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + resolved "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rfdc@^1.4.1: version "1.4.1" - resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rollup@^4.20.0: version "4.60.4" - resolved "https://registry.npmmirror.com/rollup/-/rollup-4.60.4.tgz#ca3814f5900da3ac3981d2e0c61944b7e6e0cb09" + resolved "https://registry.npmmirror.com/rollup/-/rollup-4.60.4.tgz" integrity sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g== dependencies: "@types/estree" "1.0.8" @@ -2429,100 +2206,100 @@ rollup@^4.20.0: run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@^1.2.4: version "1.6.0" - resolved "https://registry.npmmirror.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b" + resolved "https://registry.npmmirror.com/sax/-/sax-1.6.0.tgz" integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA== scroll-into-view-if-needed@^2.2.25: version "2.2.31" - resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz" integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== dependencies: compute-scroll-into-view "^1.0.20" semver@^5.6.0: version "5.7.2" - resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.6, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: version "7.8.1" - resolved "https://registry.npmmirror.com/semver/-/semver-7.8.1.tgz#bf4970b5e70fda0686363cc18bfe8805d5ed957e" + resolved "https://registry.npmmirror.com/semver/-/semver-7.8.1.tgz" integrity sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg== shallow-equal@^1.0.0: version "1.2.1" - resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== source-map-js@^1.2.1: version "1.2.1" - resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map@~0.6.0: version "0.6.1" - resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== speakingurl@^14.0.1: version "14.0.1" - resolved "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" + resolved "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz" integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== stylis@^4.1.3: version "4.4.0" - resolved "https://registry.npmmirror.com/stylis/-/stylis-4.4.0.tgz#c5846c9345f4bfc51bd0cbd7ca35a0744f485a5d" + resolved "https://registry.npmmirror.com/stylis/-/stylis-4.4.0.tgz" integrity sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA== sucrase@^3.35.0: version "3.35.1" - resolved "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.1.tgz#4619ea50393fe8bd0ae5071c26abd9b2e346bfe1" + resolved "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.1.tgz" integrity sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw== dependencies: "@jridgewell/gen-mapping" "^0.3.2" @@ -2535,31 +2312,31 @@ sucrase@^3.35.0: superjson@^2.2.2: version "2.2.6" - resolved "https://registry.npmmirror.com/superjson/-/superjson-2.2.6.tgz#a223a3a988172a5f9656e2063fe5f733af40d099" + resolved "https://registry.npmmirror.com/superjson/-/superjson-2.2.6.tgz" integrity sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA== dependencies: copy-anything "^4" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tailwind-merge@^3.3.0: version "3.6.0" - resolved "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-3.6.0.tgz#88d83242d1dd7bc847223f73dcf210dd1f2ee11c" + resolved "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-3.6.0.tgz" integrity sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w== tailwindcss@^3.4.1: version "3.4.19" - resolved "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.19.tgz#af2a0a4ae302d52ebe078b6775e799e132500ee2" + resolved "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.19.tgz" integrity sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ== dependencies: "@alloc/quick-lru" "^5.2.0" @@ -2587,31 +2364,31 @@ tailwindcss@^3.4.1: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" - resolved "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + resolved "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz" integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== dependencies: thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": version "3.3.1" - resolved "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + resolved "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz" integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: any-promise "^1.0.0" throttle-debounce@^5.0.0: version "5.0.2" - resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1" + resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz" integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== tinyglobby@^0.2.11: version "0.2.16" - resolved "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6" + resolved "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz" integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg== dependencies: fdir "^6.5.0" @@ -2619,61 +2396,61 @@ tinyglobby@^0.2.11: to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" ts-api-utils@^1.3.0: version "1.4.3" - resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" + resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz" integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== ts-interface-checker@^0.1.9: version "0.1.13" - resolved "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + resolved "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tslib@2.3.0: - version "2.3.0" - resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - tslib@^2.8.1: version "2.8.1" - resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@~5.3.3: +typescript@*, typescript@>=4.2.0, typescript@>=4.5.0, typescript@~5.3.3, typescript@5.x: version "5.3.3" - resolved "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + resolved "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== undici-types@~6.21.0: version "6.21.0" - resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz" integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== unplugin-vue-dev-locator@^1.0.0: version "1.0.3" - resolved "https://registry.npmmirror.com/unplugin-vue-dev-locator/-/unplugin-vue-dev-locator-1.0.3.tgz#6cae62478bdeb6231337b214a086ac336601a306" + resolved "https://registry.npmmirror.com/unplugin-vue-dev-locator/-/unplugin-vue-dev-locator-1.0.3.tgz" integrity sha512-pF+qbHcfsUXXg2XzA7mn/uzNweeIr8rW/1LfCgMBP2n1vpLjjJDW0UhrPuQC283ye7+NZGfuDciwPcODVkfemw== dependencies: kolorist "^1.8.0" @@ -2682,7 +2459,7 @@ unplugin-vue-dev-locator@^1.0.0: unplugin@^1.5.0: version "1.16.1" - resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199" + resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.16.1.tgz" integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== dependencies: acorn "^8.14.0" @@ -2690,7 +2467,7 @@ unplugin@^1.5.0: update-browserslist-db@^1.2.3: version "1.2.3" - resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz" integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" @@ -2698,26 +2475,26 @@ update-browserslist-db@^1.2.3: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== vite-plugin-trae-solo-badge@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/vite-plugin-trae-solo-badge/-/vite-plugin-trae-solo-badge-1.0.0.tgz#0fda8a165b239819b950ad1f93134ef6a37984c2" + resolved "https://registry.npmmirror.com/vite-plugin-trae-solo-badge/-/vite-plugin-trae-solo-badge-1.0.0.tgz" integrity sha512-vrNr4QmbcqqMeJPzHBqef70nqDzN6CQngFwuXTJMAgn3zMU4TWzvY0B3BRdjUjvg/BtvNJLlwu2cPKXTUjalHg== dependencies: tslib "^2.8.1" vite-plugin-vue-dev-locator@1.0.3: version "1.0.3" - resolved "https://registry.npmmirror.com/vite-plugin-vue-dev-locator/-/vite-plugin-vue-dev-locator-1.0.3.tgz#ade7588238a5e3a562bf4bdc4f71c0f91d8ae73a" + resolved "https://registry.npmmirror.com/vite-plugin-vue-dev-locator/-/vite-plugin-vue-dev-locator-1.0.3.tgz" integrity sha512-Gcclrry8LlgbJafrv3+PQW1TS1CBJlSdr8w7nechAjCJ6joqticcYw1ovuK+9LvSM11n9ZzDH7afTaC6dzJeQA== dependencies: "@babel/core" "^7.23.0" @@ -2731,9 +2508,9 @@ vite-plugin-vue-dev-locator@1.0.3: kolorist "^1.8.0" magic-string "^0.30.4" -vite@^5.0.12: +"vite@^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0", "vite@^5.0.0 || ^6.0.0", vite@^5.0.12, vite@>=4.0.0: version "5.4.21" - resolved "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027" + resolved "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz" integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== dependencies: esbuild "^0.21.3" @@ -2744,12 +2521,12 @@ vite@^5.0.12: vue-echarts@^8.0.1: version "8.0.1" - resolved "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-8.0.1.tgz#2ed7e507d223e56cd209610f4fee5e8ec9bcbb2f" + resolved "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-8.0.1.tgz" integrity sha512-23rJTFLu1OUEGRWjJGmdGt8fP+8+ja1gVgzMYPIPaHWpXegcO1viIAaeu2H4QHESlVeHzUAHIxKXGrwjsyXAaA== vue-eslint-parser@^9.4.3: version "9.4.3" - resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: debug "^4.3.4" @@ -2762,14 +2539,14 @@ vue-eslint-parser@^9.4.3: vue-router@4: version "4.6.4" - resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.4.tgz#a0a9cb9ef811a106d249e4bb9313d286718020d8" + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.4.tgz" integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== dependencies: "@vue/devtools-api" "^6.6.4" vue-template-compiler@^2.7.14: version "2.7.16" - resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" + resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz" integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== dependencies: de-indent "^1.0.2" @@ -2777,7 +2554,7 @@ vue-template-compiler@^2.7.14: vue-tsc@^1.8.27: version "1.8.27" - resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" + resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz" integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== dependencies: "@volar/typescript" "~1.11.1" @@ -2786,14 +2563,14 @@ vue-tsc@^1.8.27: vue-types@^3.0.0: version "3.0.2" - resolved "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d" + resolved "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz" integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== dependencies: is-plain-object "3.0.1" -vue@^3.4.15: +vue@^3.0.0, vue@^3.2.25, vue@^3.3.0, vue@^3.4.0, vue@^3.4.15, vue@^3.5.0, vue@^3.5.11, vue@>=3.0.1, vue@>=3.0.3, vue@>=3.2.0, vue@3.5.34: version "3.5.34" - resolved "https://registry.npmmirror.com/vue/-/vue-3.5.34.tgz#3b256eb30964416af6406a795fcfd7a5773a93c5" + resolved "https://registry.npmmirror.com/vue/-/vue-3.5.34.tgz" integrity sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA== dependencies: "@vue/compiler-dom" "3.5.34" @@ -2804,51 +2581,51 @@ vue@^3.4.15: warning@^4.0.0: version "4.0.3" - resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== dependencies: loose-envify "^1.0.0" webpack-virtual-modules@^0.6.2: version "0.6.2" - resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" + resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== which@^2.0.1: version "2.0.2" - resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" word-wrap@^1.2.5: version "1.2.5" - resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wrappy@1: version "1.0.2" - resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xml-name-validator@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zrender@6.1.0: version "6.1.0" - resolved "https://registry.npmmirror.com/zrender/-/zrender-6.1.0.tgz#c3ef06e6426d5c28865b7183035680d685e00136" + resolved "https://registry.npmmirror.com/zrender/-/zrender-6.1.0.tgz" integrity sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ== dependencies: tslib "2.3.0" diff --git a/database/db_seed.sql b/database/db_seed.sql index 8cbad1f..37e794c 100644 --- a/database/db_seed.sql +++ b/database/db_seed.sql @@ -46,7 +46,7 @@ SELECT setval('sys_role_id_seq', 4, true); -- 2. 初始菜单(顶级菜单,显式指定 id:1-6,系统管理为目录类型 menu_type=1,其余为 menu_type=2) -- ------------------------------------------------------------ INSERT INTO sys_menu (id, parent_id, menu_name, menu_path, component, icon, sort_order, menu_type, permission, visible) VALUES -(1, NULL, '客户管理', '/customer', NULL, 'TeamOutlined', 1, 2, 'customer:list', 1), +(1, NULL, '客户管理', '/customer', NULL, 'TeamOutlined', 1, 1, 'customer:list', 1), (2, NULL, '项目管理', '/project', NULL, 'ProjectOutlined', 2, 2, 'project:list', 1), (3, NULL, '运营派单', '/dispatch', NULL, 'ScheduleOutlined', 3, 2, 'dispatch:list', 1), (4, NULL, '设备监控', '/device', NULL, 'MonitorOutlined', 4, 2, 'device:list', 1), @@ -81,8 +81,33 @@ ON CONFLICT (id) DO UPDATE SET permission = EXCLUDED.permission, visible = EXCLUDED.visible; +-- 初始菜单(客户管理子菜单,parent_id=1,显式指定 id:12-23) +INSERT INTO sys_menu (id, parent_id, menu_name, menu_path, component, icon, sort_order, menu_type, permission, visible) VALUES +(12, 1, '客户信息', '/customer/info', 'customer/info/index', 'UserOutlined', 1, 2, 'customer:list', 1), +(13, 1, '客户部门', '/customer/department', 'customer/department/index', 'TeamOutlined', 2, 2, 'customer:department', 1), +(14, 1, '客户账号', '/customer/account', 'customer/account/index', 'SafetyOutlined', 3, 2, 'customer:account', 1), +(15, 1, '新增客户', NULL, NULL, NULL, 1, 3, 'customer:create', 1), +(16, 1, '编辑客户', NULL, NULL, NULL, 2, 3, 'customer:update', 1), +(17, 1, '删除客户', NULL, NULL, NULL, 3, 3, 'customer:delete', 1), +(18, 1, '新增部门', NULL, NULL, NULL, 4, 3, 'department:create', 1), +(19, 1, '编辑部门', NULL, NULL, NULL, 5, 3, 'department:update', 1), +(20, 1, '删除部门', NULL, NULL, NULL, 6, 3, 'department:delete', 1), +(21, 1, '新增账号', NULL, NULL, NULL, 7, 3, 'account:create', 1), +(22, 1, '编辑账号', NULL, NULL, NULL, 8, 3, 'account:update', 1), +(23, 1, '删除账号', NULL, NULL, NULL, 9, 3, 'account:delete', 1) +ON CONFLICT (id) DO UPDATE SET + parent_id = EXCLUDED.parent_id, + menu_name = EXCLUDED.menu_name, + menu_path = EXCLUDED.menu_path, + component = EXCLUDED.component, + icon = EXCLUDED.icon, + sort_order = EXCLUDED.sort_order, + menu_type = EXCLUDED.menu_type, + permission = EXCLUDED.permission, + visible = EXCLUDED.visible; + -- 重置 sys_menu 自增序列 -SELECT setval('sys_menu_id_seq', 11, true); +SELECT setval('sys_menu_id_seq', 23, true); -- ------------------------------------------------------------ -- 3. 初始字典(sys_dict 无业务唯一键,清空重建以支持幂等执行) @@ -135,16 +160,18 @@ INSERT INTO sys_user_role (user_id, role_id) VALUES (1, 1) ON CONFLICT (user_id, role_id) DO NOTHING; -- ------------------------------------------------------------ --- 6. 角色-菜单绑定:ADMIN 拥有全部 11 条菜单,SALESMAN 拥有业务菜单(客户/项目/统计报表) +-- 6. 角色-菜单绑定:ADMIN 拥有全部 23 条菜单,SALESMAN 拥有客户域+项目+统计报表 -- WORKER、CUSTOMER 不绑定任何菜单 -- ------------------------------------------------------------ INSERT INTO sys_role_menu (role_id, menu_id) VALUES (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (1, 11), -(2, 1), (2, 2), (2, 5) +(1, 12), (1, 13), (1, 14), (1, 15), (1, 16), (1, 17), (1, 18), (1, 19), (1, 20), (1, 21), (1, 22), (1, 23), +(2, 1), (2, 2), (2, 5), +(2, 12), (2, 13), (2, 14), (2, 15), (2, 16), (2, 17), (2, 18), (2, 19), (2, 20), (2, 21), (2, 22), (2, 23) ON CONFLICT (role_id, menu_id) DO NOTHING; COMMIT; -- ============================================================ --- 完 · 7 张系统表种子数据(4 角色 + 11 菜单 + 20 字典 + 1 管理员 + 绑定关系) +-- 完 · 7 张系统表种子数据(4 角色 + 23 菜单 + 20 字典 + 1 管理员 + 绑定关系) -- ============================================================ diff --git a/decode_token.js b/decode_token.js new file mode 100644 index 0000000..d0cff9a --- /dev/null +++ b/decode_token.js @@ -0,0 +1,24 @@ +// 解码 JWT token 看 payload +const jwt = require('jsonwebtoken'); + +const token = process.argv[2]; +if (!token) { + console.error('请提供 token 作为参数'); + process.exit(1); +} + +const decoded = jwt.decode(token); +console.log('=== Token Payload ==='); +console.log(JSON.stringify(decoded, null, 2)); + +// 用 config 里的 secret 尝试验证 +const secret = 'smart-grid-iot-admin-jwt-secret-key-2024'; +try { + const verified = jwt.verify(token, secret); + console.log('\n=== Verify 成功 ==='); + console.log(JSON.stringify(verified, null, 2)); +} catch (err) { + console.log('\n=== Verify 失败 ==='); + console.log('Error name:', err.name); + console.log('Error message:', err.message); +} diff --git a/server/decode_token.js b/server/decode_token.js new file mode 100644 index 0000000..d0cff9a --- /dev/null +++ b/server/decode_token.js @@ -0,0 +1,24 @@ +// 解码 JWT token 看 payload +const jwt = require('jsonwebtoken'); + +const token = process.argv[2]; +if (!token) { + console.error('请提供 token 作为参数'); + process.exit(1); +} + +const decoded = jwt.decode(token); +console.log('=== Token Payload ==='); +console.log(JSON.stringify(decoded, null, 2)); + +// 用 config 里的 secret 尝试验证 +const secret = 'smart-grid-iot-admin-jwt-secret-key-2024'; +try { + const verified = jwt.verify(token, secret); + console.log('\n=== Verify 成功 ==='); + console.log(JSON.stringify(verified, null, 2)); +} catch (err) { + console.log('\n=== Verify 失败 ==='); + console.log('Error name:', err.name); + console.log('Error message:', err.message); +} diff --git a/server/src/controller/customer.account.controller.ts b/server/src/controller/customer.account.controller.ts new file mode 100644 index 0000000..57e566d --- /dev/null +++ b/server/src/controller/customer.account.controller.ts @@ -0,0 +1,54 @@ +import { Controller, Get, Post, Put, Del, Inject, Query, Body, Param } from "@midwayjs/core"; +import { Context } from "@midwayjs/koa"; +import { CustomerAccountService } from "../service/customer.account.service"; + +@Controller("/api/customer-accounts") +export class CustomerAccountController { + @Inject() + ctx!: Context; + + @Inject() + customerAccountService!: CustomerAccountService; + + @Get("/") + async list(@Query() query: any) { + const result = await this.customerAccountService.list(query, this.ctx); + return result; + } + + @Get("/:id") + async detail(@Param("id") id: string) { + const result = await this.customerAccountService.detail(Number(id), this.ctx); + return result; + } + + @Post("/") + async create(@Body() body: any) { + const result = await this.customerAccountService.create(body, this.ctx); + return result; + } + + @Put("/:id") + async update(@Param("id") id: string, @Body() body: any) { + const result = await this.customerAccountService.update(Number(id), body, this.ctx); + return result; + } + + @Del("/:id") + async delete(@Param("id") id: string) { + const result = await this.customerAccountService.delete(Number(id), this.ctx); + return result; + } + + @Put("/:id/status") + async updateStatus(@Param("id") id: string, @Body() body: { status: number }) { + const result = await this.customerAccountService.updateStatus(Number(id), body.status, this.ctx); + return result; + } + + @Post("/:id/reset-password") + async resetPassword(@Param("id") id: string) { + const result = await this.customerAccountService.resetPassword(Number(id), this.ctx); + return result; + } +} diff --git a/server/src/controller/customer.controller.ts b/server/src/controller/customer.controller.ts new file mode 100644 index 0000000..bfcf335 --- /dev/null +++ b/server/src/controller/customer.controller.ts @@ -0,0 +1,54 @@ +import { Controller, Get, Post, Put, Del, Inject, Query, Body, Param } from "@midwayjs/core"; +import { Context } from "@midwayjs/koa"; +import { CustomerService } from "../service/customer.service"; + +@Controller("/api/customers") +export class CustomerController { + @Inject() + ctx!: Context; + + @Inject() + customerService!: CustomerService; + + @Get("/") + async list(@Query() query: any) { + const result = await this.customerService.list(query, this.ctx); + return result; + } + + @Get("/options/all") + async getSimpleList() { + const result = await this.customerService.getSimpleList(this.ctx); + return result; + } + + @Get("/:id") + async detail(@Param("id") id: string) { + const result = await this.customerService.detail(Number(id), this.ctx); + return result; + } + + @Post("/") + async create(@Body() body: any) { + const result = await this.customerService.create(body, this.ctx); + return result; + } + + @Put("/:id") + async update(@Param("id") id: string, @Body() body: any) { + const result = await this.customerService.update(Number(id), body, this.ctx); + return result; + } + + @Del("/:id") + async delete(@Param("id") id: string) { + const result = await this.customerService.delete(Number(id), this.ctx); + return result; + } + + @Put("/:id/status") + async updateStatus(@Param("id") id: string, @Body() body: { status: number }) { + const result = await this.customerService.updateStatus(Number(id), body.status, this.ctx); + return result; + } +} diff --git a/server/src/controller/customer.department.controller.ts b/server/src/controller/customer.department.controller.ts new file mode 100644 index 0000000..309b615 --- /dev/null +++ b/server/src/controller/customer.department.controller.ts @@ -0,0 +1,42 @@ +import { Controller, Get, Post, Put, Del, Inject, Query, Body, Param } from "@midwayjs/core"; +import { Context } from "@midwayjs/koa"; +import { CustomerDepartmentService } from "../service/customer.department.service"; + +@Controller("/api/customer-departments") +export class CustomerDepartmentController { + @Inject() + ctx!: Context; + + @Inject() + customerDepartmentService!: CustomerDepartmentService; + + @Get("/") + async list(@Query() query: any) { + const result = await this.customerDepartmentService.list(query, this.ctx); + return result; + } + + @Get("/:id") + async detail(@Param("id") id: string) { + const result = await this.customerDepartmentService.detail(Number(id), this.ctx); + return result; + } + + @Post("/") + async create(@Body() body: any) { + const result = await this.customerDepartmentService.create(body, this.ctx); + return result; + } + + @Put("/:id") + async update(@Param("id") id: string, @Body() body: any) { + const result = await this.customerDepartmentService.update(Number(id), body, this.ctx); + return result; + } + + @Del("/:id") + async delete(@Param("id") id: string) { + const result = await this.customerDepartmentService.delete(Number(id), this.ctx); + return result; + } +} diff --git a/server/src/dto/customer.account.dto.ts b/server/src/dto/customer.account.dto.ts new file mode 100644 index 0000000..ad4ca10 --- /dev/null +++ b/server/src/dto/customer.account.dto.ts @@ -0,0 +1,60 @@ +import { IsNotEmpty, IsOptional, IsString, IsInt, IsIn, Matches, Min, Max, MaxLength } from "class-validator"; + +export class CustomerAccountQueryDTO { + @IsOptional() + @IsInt() + @Min(1) + page?: number = 1; + + @IsOptional() + @IsInt() + @Min(1) + @Max(200, { message: '分页大小不能超过 200 条' }) + pageSize?: number = 10; + + @IsOptional() + @IsString() + @MaxLength(32) + keyword?: string; + + @IsOptional() + @IsInt() + customerId?: number; + + @IsOptional() + @IsIn([0, 1]) + status?: number; +} + +export class CustomerAccountCreateDTO { + @IsNotEmpty({ message: '所属客户不能为空' }) + @IsInt() + customerId!: number; + + @IsNotEmpty({ message: '手机号不能为空' }) + @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' }) + phone!: string; + + @IsOptional() + @IsIn([0, 1]) + status?: number; +} + +export class CustomerAccountUpdateDTO { + @IsOptional() + @IsIn([0, 1]) + status?: number; + + @IsOptional() + resetPassword?: boolean; + + @IsOptional() + @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' }) + phone?: string; +} + +export class CustomerAccountUpdateStatusDTO { + @IsNotEmpty({ message: '状态不能为空' }) + @IsIn([0, 1]) + status!: number; +} diff --git a/server/src/dto/customer.department.dto.ts b/server/src/dto/customer.department.dto.ts new file mode 100644 index 0000000..0c0d3f5 --- /dev/null +++ b/server/src/dto/customer.department.dto.ts @@ -0,0 +1,81 @@ +import { IsNotEmpty, IsOptional, IsString, IsInt, Matches, Min, Max, MinLength, MaxLength } from "class-validator"; + +export class CustomerDepartmentQueryDTO { + @IsOptional() + @IsInt() + @Min(1) + page?: number = 1; + + @IsOptional() + @IsInt() + @Min(1) + @Max(200, { message: '分页大小不能超过 200 条' }) + pageSize?: number = 10; + + @IsOptional() + @IsString() + @MaxLength(64) + keyword?: string; + + @IsOptional() + @IsInt() + customerId?: number; +} + +export class CustomerDepartmentCreateDTO { + @IsNotEmpty({ message: '所属客户不能为空' }) + @IsInt() + customerId!: number; + + @IsNotEmpty({ message: '部门名称不能为空' }) + @IsString() + @MinLength(2) + @MaxLength(64) + @Matches(/^[^<>]*$/, { message: '部门名称不允许包含尖括号' }) + deptName!: string; + + @IsOptional() + @IsString() + @MaxLength(32) + @Matches(/^[^<>]*$/, { message: '联系人不允许包含尖括号' }) + contactPerson?: string; + + @IsOptional() + @Matches(/^1[3-9]\d{9}$/, { message: '联系电话格式不正确' }) + contactPhone?: string; + + @IsOptional() + @IsString() + @MaxLength(256) + @Matches(/^[^<>]*$/, { message: '职能描述不允许包含尖括号' }) + functionDesc?: string; +} + +export class CustomerDepartmentUpdateDTO { + @IsOptional() + @IsInt() + customerId?: number; + + @IsOptional() + @IsString() + @MinLength(2) + @MaxLength(64) + @Matches(/^[^<>]*$/, { message: '部门名称不允许包含尖括号' }) + deptName?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + @Matches(/^[^<>]*$/, { message: '联系人不允许包含尖括号' }) + contactPerson?: string; + + @IsOptional() + @Matches(/^1[3-9]\d{9}$/, { message: '联系电话格式不正确' }) + contactPhone?: string; + + @IsOptional() + @IsString() + @MaxLength(256) + @Matches(/^[^<>]*$/, { message: '职能描述不允许包含尖括号' }) + functionDesc?: string; +} diff --git a/server/src/dto/customer.dto.ts b/server/src/dto/customer.dto.ts new file mode 100644 index 0000000..7a1fb66 --- /dev/null +++ b/server/src/dto/customer.dto.ts @@ -0,0 +1,153 @@ +import { IsNotEmpty, IsOptional, IsString, IsInt, IsIn, Matches, Min, Max, MinLength, MaxLength } from "class-validator"; + +export class CustomerQueryDTO { + @IsOptional() + @IsInt() + @Min(1) + page?: number = 1; + + @IsOptional() + @IsInt() + @Min(1) + @Max(200, { message: '分页大小不能超过 200 条' }) + pageSize?: number = 10; + + @IsOptional() + @IsString() + @MaxLength(64, { message: '关键词最大 64 字符' }) + keyword?: string; + + @IsOptional() + @IsIn([1, 2, 3, 4], { message: '客户状态值非法' }) + status?: number; + + @IsOptional() + @IsInt() + salesmanId?: number; +} + +export class CustomerCreateDTO { + @IsNotEmpty({ message: '客户名称不能为空' }) + @IsString() + @MinLength(2) + @MaxLength(128) + @Matches(/^[^<>]*$/, { message: '客户名称不允许包含尖括号' }) + customerName!: string; + + @IsOptional() + @IsString() + @MaxLength(32) + province?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + city?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + district?: string; + + @IsOptional() + @IsString() + @MaxLength(256) + @Matches(/^[^<>]*$/, { message: '地址不允许包含尖括号' }) + address?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + @Matches(/^[^<>]*$/, { message: '联系人不允许包含尖括号' }) + contactPerson?: string; + + @IsOptional() + @Matches(/^1[3-9]\d{9}$/, { message: '联系电话格式不正确' }) + contactPhone?: string; + + @IsOptional() + @Matches(/^\d{0,10}$/, { message: '邮编格式不正确' }) + postalCode?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + fax?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + @Matches(/^[^<>]*$/, { message: '客户级别不允许包含尖括号' }) + customerLevel?: string; + + @IsOptional() + @IsIn([1, 2, 3, 4]) + status?: number; + + @IsOptional() + @IsInt() + salesmanId?: number; +} + +export class CustomerUpdateDTO { + @IsOptional() + @IsString() + @MinLength(2) + @MaxLength(128) + @Matches(/^[^<>]*$/, { message: '客户名称不允许包含尖括号' }) + customerName?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + province?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + city?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + district?: string; + + @IsOptional() + @IsString() + @MaxLength(256) + @Matches(/^[^<>]*$/, { message: '地址不允许包含尖括号' }) + address?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + @Matches(/^[^<>]*$/, { message: '联系人不允许包含尖括号' }) + contactPerson?: string; + + @IsOptional() + @Matches(/^1[3-9]\d{9}$/, { message: '联系电话格式不正确' }) + contactPhone?: string; + + @IsOptional() + @Matches(/^\d{0,10}$/, { message: '邮编格式不正确' }) + postalCode?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + fax?: string; + + @IsOptional() + @IsString() + @MaxLength(32) + @Matches(/^[^<>]*$/, { message: '客户级别不允许包含尖括号' }) + customerLevel?: string; + + @IsOptional() + @IsIn([1, 2, 3, 4]) + status?: number; + + @IsOptional() + @IsInt() + salesmanId?: number; +} diff --git a/server/src/entity/customer.entity.ts b/server/src/entity/customer.entity.ts new file mode 100644 index 0000000..2840876 --- /dev/null +++ b/server/src/entity/customer.entity.ts @@ -0,0 +1,126 @@ +import { Column, Model, Table, DataType, CreatedAt, UpdatedAt, HasMany } from "sequelize-typescript"; +import CustomerDepartment from "./customer_department.entity"; +import CustomerAccount from "./customer_account.entity"; + +@Table({ + tableName: "customer", + comment: "客户信息表", + timestamps: true, + createdAt: "created_at", + updatedAt: "updated_at", + indexes: [ + { name: "idx_customer_name", fields: ["customer_name"] }, + { name: "idx_customer_salesman", fields: ["salesman_id"] }, + { name: "idx_customer_status", fields: ["status"] }, + { unique: true, name: "uk_customer_no", fields: ["customer_no"] } + ] +}) +export default class Customer extends Model { + @Column({ + type: DataType.BIGINT, + autoIncrement: true, + primaryKey: true + }) + id!: number; + + @Column({ + type: DataType.STRING(64), + allowNull: false, + unique: true, + field: "customer_no", + comment: "客户业务编号(KH+YYYYMMDD+序号)" + }) + customerNo!: string; + + @Column({ + type: DataType.STRING(128), + allowNull: false, + comment: "客户名称" + }) + customerName!: string; + + @Column({ + type: DataType.STRING(32), + comment: "省" + }) + province!: string; + + @Column({ + type: DataType.STRING(32), + comment: "市" + }) + city!: string; + + @Column({ + type: DataType.STRING(32), + comment: "区" + }) + district!: string; + + @Column({ + type: DataType.STRING(256), + comment: "详细地址" + }) + address!: string; + + @Column({ + type: DataType.STRING(32), + field: "contact_person", + comment: "联系人" + }) + contactPerson!: string; + + @Column({ + type: DataType.STRING(20), + field: "contact_phone", + comment: "联系电话" + }) + contactPhone!: string; + + @Column({ + type: DataType.STRING(10), + field: "postal_code", + comment: "邮编" + }) + postalCode!: string; + + @Column({ + type: DataType.STRING(32), + comment: "传真" + }) + fax!: string; + + @Column({ + type: DataType.STRING(32), + field: "customer_level", + comment: "客户级别(学校/医院/企业等)" + }) + customerLevel!: string; + + @Column({ + type: DataType.SMALLINT, + allowNull: false, + defaultValue: 1, + comment: "状态:1意向/2签约/3运维中/4终止" + }) + status!: number; + + @Column({ + type: DataType.BIGINT, + field: "salesman_id", + comment: "负责业务员(关联sys_user.id),references->sys_user.id" + }) + salesmanId!: number; + + @HasMany(() => CustomerDepartment, { foreignKey: "customerId" }) + customerDepartments!: CustomerDepartment[]; + + @HasMany(() => CustomerAccount, { foreignKey: "customerId" }) + customerAccounts!: CustomerAccount[]; + + @CreatedAt + created_at!: Date; + + @UpdatedAt + updated_at!: Date; +} diff --git a/server/src/entity/customer_account.entity.ts b/server/src/entity/customer_account.entity.ts new file mode 100644 index 0000000..9f37344 --- /dev/null +++ b/server/src/entity/customer_account.entity.ts @@ -0,0 +1,78 @@ +import { Column, Model, Table, DataType, CreatedAt, UpdatedAt, BelongsTo, ForeignKey } from "sequelize-typescript"; +import Customer from "./customer.entity"; + +@Table({ + tableName: "customer_account", + comment: "客户访问账号表", + timestamps: true, + createdAt: "created_at", + updatedAt: "updated_at", + indexes: [ + { name: "idx_account_customer", fields: ["customer_id"] }, + { unique: true, name: "uk_account_phone", fields: ["phone"] } + ] +}) +export default class CustomerAccount extends Model { + @Column({ + type: DataType.BIGINT, + autoIncrement: true, + primaryKey: true + }) + id!: number; + + @ForeignKey(() => Customer) + @Column({ + type: DataType.BIGINT, + allowNull: false, + field: "customer_id", + comment: "所属客户ID" + }) + customerId!: number; + + @Column({ + type: DataType.STRING(20), + allowNull: false, + unique: true, + comment: "登录手机号(账号)" + }) + phone!: string; + + @Column({ + type: DataType.STRING(256), + allowNull: false, + field: "password_hash", + comment: "bcrypt密码哈希" + }) + passwordHash!: string; + + @Column({ + type: DataType.STRING(128), + field: "wx_openid", + comment: "微信openid" + }) + wxOpenid!: string; + + @Column({ + type: DataType.SMALLINT, + allowNull: false, + defaultValue: 1, + comment: "状态:0禁用/1启用" + }) + status!: number; + + @Column({ + type: DataType.DATE, + field: "last_login_at", + comment: "最后登录时间" + }) + lastLoginAt!: Date; + + @BelongsTo(() => Customer) + customer!: Customer; + + @CreatedAt + created_at!: Date; + + @UpdatedAt + updated_at!: Date; +} diff --git a/server/src/entity/customer_department.entity.ts b/server/src/entity/customer_department.entity.ts new file mode 100644 index 0000000..1c3a44c --- /dev/null +++ b/server/src/entity/customer_department.entity.ts @@ -0,0 +1,68 @@ +import { Column, Model, Table, DataType, CreatedAt, UpdatedAt, BelongsTo, ForeignKey } from "sequelize-typescript"; +import Customer from "./customer.entity"; + +@Table({ + tableName: "customer_department", + comment: "客户部门表", + timestamps: true, + createdAt: "created_at", + updatedAt: "updated_at", + indexes: [ + { name: "idx_dept_customer", fields: ["customer_id"] } + ] +}) +export default class CustomerDepartment extends Model { + @Column({ + type: DataType.BIGINT, + autoIncrement: true, + primaryKey: true + }) + id!: number; + + @ForeignKey(() => Customer) + @Column({ + type: DataType.BIGINT, + allowNull: false, + field: "customer_id", + comment: "所属客户ID" + }) + customerId!: number; + + @Column({ + type: DataType.STRING(64), + allowNull: false, + field: "dept_name", + comment: "部门名称" + }) + deptName!: string; + + @Column({ + type: DataType.STRING(32), + field: "contact_person", + comment: "联系人" + }) + contactPerson!: string; + + @Column({ + type: DataType.STRING(20), + field: "contact_phone", + comment: "联系电话" + }) + contactPhone!: string; + + @Column({ + type: DataType.STRING(256), + field: "function_desc", + comment: "职能描述" + }) + functionDesc!: string; + + @BelongsTo(() => Customer) + customer!: Customer; + + @CreatedAt + created_at!: Date; + + @UpdatedAt + updated_at!: Date; +} diff --git a/server/src/middleware/auth.middleware.ts b/server/src/middleware/auth.middleware.ts index f7b2ff4..1788fd4 100644 --- a/server/src/middleware/auth.middleware.ts +++ b/server/src/middleware/auth.middleware.ts @@ -26,17 +26,9 @@ export class AuthMiddleware implements IMiddleware { const token = authHeader.substring(7); + let decoded: any; try { - const decoded = this.tokenUtil.verifyToken(token); - - ctx.state.user = { - userId: decoded.userId, - username: decoded.username, - }; - - ctx.user = ctx.state.user; - - await next(); + decoded = this.tokenUtil.verifyToken(token); } catch (error: any) { if (error.name === 'TokenExpiredError') { ctx.status = 401; @@ -52,7 +44,17 @@ export class AuthMiddleware implements IMiddleware { message: '无效的认证令牌', }; } + return; } + + ctx.state.user = { + userId: decoded.userId, + username: decoded.username, + }; + + ctx.user = ctx.state.user; + + await next(); }; } } diff --git a/server/src/middleware/rbac.middleware.ts b/server/src/middleware/rbac.middleware.ts index 03e0f95..cbb9838 100644 --- a/server/src/middleware/rbac.middleware.ts +++ b/server/src/middleware/rbac.middleware.ts @@ -13,6 +13,9 @@ const PERMISSION_MAP: Record = { '/api/menus': 'system:menu', '/api/dicts': 'system:dict', '/api/logs': 'system:log', + '/api/customers': 'customer:list', + '/api/customer-departments': 'customer:department', + '/api/customer-accounts': 'customer:account', }; // 超级管理员角色编码,拥有全部权限 diff --git a/server/src/service/customer.account.service.ts b/server/src/service/customer.account.service.ts new file mode 100644 index 0000000..da1397f --- /dev/null +++ b/server/src/service/customer.account.service.ts @@ -0,0 +1,343 @@ +import { Provide } from "@midwayjs/core"; +import { InjectRepository } from "@midwayjs/sequelize"; +import { Repository } from "sequelize-typescript"; +import { Op } from "sequelize"; +import CustomerAccount from "../entity/customer_account.entity"; +import Customer from "../entity/customer.entity"; +import SysUserRole from "../entity/sysUserRole.entity"; +import SysRole from "../entity/sysRole.entity"; +import { hashPassword } from "../util/crypto"; +import { Context } from "@midwayjs/koa"; + +function getDefaultPassword(phone: string): string { + return phone.length >= 6 ? phone.slice(-6) : "123456"; +} + +@Provide() +export class CustomerAccountService { + @InjectRepository(CustomerAccount) + accountModel!: Repository; + + @InjectRepository(Customer) + customerModel!: Repository; + + @InjectRepository(SysUserRole) + userRoleModel!: Repository; + + @InjectRepository(SysRole) + roleModel!: Repository; + + private async isAdmin(userId: number): Promise { + const userRoles = await SysUserRole.findAll({ + where: { userId }, + include: [SysRole] + }); + return userRoles.some((ur) => (ur as any).role?.roleCode === "ADMIN"); + } + + private async isCustomerOwner(userId: number, customerId: number): Promise { + if (await this.isAdmin(userId)) { + return true; + } + const customer = await Customer.findByPk(customerId); + if (!customer) { + return false; + } + return customer.salesmanId === userId; + } + + private cleanSensitiveFields(obj: any): any { + const result = obj.toJSON ? obj.toJSON() : { ...obj }; + delete result.passwordHash; + delete result.wxOpenid; + return result; + } + + async list(query: { page?: any; pageSize?: any; keyword?: string; customerId?: number; status?: number }, ctx: Context): Promise { + const page = Number(query.page) || 1; + const pageSize = Number(query.pageSize) || 10; + const userId = ctx.state.user.userId; + + const where: any = {}; + + if (query.keyword) { + where.phone = { [Op.like]: `%${query.keyword}%` }; + } + + if (query.customerId !== undefined) { + where.customerId = query.customerId; + } + + if (query.status !== undefined) { + where.status = query.status; + } + + if (!(await this.isAdmin(userId))) { + const myCustomers = await this.customerModel.findAll({ + where: { salesmanId: userId }, + attributes: ["id"] + }); + const myCustomerIds = myCustomers.map((c) => c.id); + if (myCustomerIds.length === 0) { + return { + code: 200, + message: "获取客户账号列表成功", + data: { + list: [], + total: 0, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + if (where.customerId !== undefined) { + if (!myCustomerIds.includes(where.customerId)) { + return { + code: 200, + message: "获取客户账号列表成功", + data: { + list: [], + total: 0, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + } else { + where.customerId = { [Op.in]: myCustomerIds }; + } + } + + const { count, rows } = await this.accountModel.findAndCountAll({ + where, + limit: pageSize, + offset: (page - 1) * pageSize, + order: [["created_at", "DESC"]] + }); + + const list = rows.map((row) => this.cleanSensitiveFields(row)); + + return { + code: 200, + message: "获取客户账号列表成功", + data: { + list, + total: count, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + + async detail(id: number, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.accountModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户账号不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限访问该账号", + data: null + }; + } + + return { + code: 200, + message: "获取客户账号详情成功", + data: this.cleanSensitiveFields(record) + }; + } + + async create(data: any, ctx: Context): Promise { + const userId = ctx.state.user.userId; + + if (!(await this.isCustomerOwner(userId, data.customerId))) { + return { + code: 403, + message: "无权限为该客户创建账号", + data: null + }; + } + + const existing = await this.accountModel.findOne({ + where: { phone: data.phone } + }); + if (existing) { + return { + code: 400, + message: "手机号已存在", + data: null + }; + } + + const password = getDefaultPassword(data.phone); + const passwordHash = await hashPassword(password); + + const record = await this.accountModel.create({ + customerId: data.customerId, + phone: data.phone, + passwordHash, + status: data.status ?? 1 + }); + + return { + code: 200, + message: "创建客户账号成功", + data: this.cleanSensitiveFields(record) + }; + } + + async update(id: number, data: any, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.accountModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户账号不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限修改该账号", + data: null + }; + } + + if (data.resetPassword === true) { + const password = getDefaultPassword(record.phone); + record.passwordHash = await hashPassword(password); + await record.save(); + } + + if (data.phone !== undefined && data.phone !== record.phone) { + const conflict = await this.accountModel.findOne({ + where: { phone: data.phone } + }); + if (conflict) { + return { + code: 400, + message: "手机号已存在", + data: null + }; + } + } + + const cleanedData: any = {}; + if (data.phone !== undefined) cleanedData.phone = data.phone; + if (data.status !== undefined) cleanedData.status = data.status; + + const isAdmin = await this.isAdmin(userId); + if (isAdmin && data.customerId !== undefined) { + cleanedData.customerId = data.customerId; + } + + await record.update(cleanedData); + + return { + code: 200, + message: "更新客户账号成功", + data: this.cleanSensitiveFields(record) + }; + } + + async updateStatus(id: number, status: number, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.accountModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户账号不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限修改该账号状态", + data: null + }; + } + + await record.update({ status }); + + return { + code: 200, + message: "状态更新成功", + data: this.cleanSensitiveFields(record) + }; + } + + async delete(id: number, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.accountModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户账号不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限删除该账号", + data: null + }; + } + + await record.destroy(); + + return { + code: 200, + message: "删除客户账号成功", + data: null + }; + } + + async resetPassword(id: number, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.accountModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户账号不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限重置该账号密码", + data: null + }; + } + + const password = getDefaultPassword(record.phone); + record.passwordHash = await hashPassword(password); + await record.save(); + + return { + code: 200, + message: "重置密码成功", + data: this.cleanSensitiveFields(record) + }; + } +} diff --git a/server/src/service/customer.department.service.ts b/server/src/service/customer.department.service.ts new file mode 100644 index 0000000..4b1a4a6 --- /dev/null +++ b/server/src/service/customer.department.service.ts @@ -0,0 +1,237 @@ +import { Provide } from "@midwayjs/core"; +import { InjectRepository } from "@midwayjs/sequelize"; +import { Repository } from "sequelize-typescript"; +import { Op } from "sequelize"; +import CustomerDepartment from "../entity/customer_department.entity"; +import Customer from "../entity/customer.entity"; +import SysUserRole from "../entity/sysUserRole.entity"; +import SysRole from "../entity/sysRole.entity"; +import { Context } from "@midwayjs/koa"; + +@Provide() +export class CustomerDepartmentService { + @InjectRepository(CustomerDepartment) + depModel!: Repository; + + @InjectRepository(Customer) + customerModel!: Repository; + + @InjectRepository(SysUserRole) + userRoleModel!: Repository; + + @InjectRepository(SysRole) + roleModel!: Repository; + + private async isAdmin(userId: number): Promise { + const userRoles = await SysUserRole.findAll({ + where: { userId }, + include: [SysRole] + }); + return userRoles.some((ur) => (ur as any).role?.roleCode === "ADMIN"); + } + + private async isCustomerOwner(userId: number, customerId: number): Promise { + if (await this.isAdmin(userId)) { + return true; + } + const customer = await Customer.findByPk(customerId); + if (!customer) { + return false; + } + return customer.salesmanId === userId; + } + + async list(query: { page?: any; pageSize?: any; keyword?: string; customerId?: number }, ctx: Context): Promise { + const page = Number(query.page) || 1; + const pageSize = Number(query.pageSize) || 10; + const userId = ctx.state.user.userId; + + const where: any = {}; + + if (query.keyword) { + where[Op.or] = [ + { deptName: { [Op.like]: `%${query.keyword}%` } }, + { contactPerson: { [Op.like]: `%${query.keyword}%` } }, + { contactPhone: { [Op.like]: `%${query.keyword}%` } } + ]; + } + + if (query.customerId !== undefined) { + where.customerId = query.customerId; + } + + if (!(await this.isAdmin(userId))) { + const myCustomers = await this.customerModel.findAll({ + where: { salesmanId: userId }, + attributes: ["id"] + }); + const myCustomerIds = myCustomers.map((c) => c.id); + if (myCustomerIds.length === 0) { + return { + code: 200, + message: "获取客户部门列表成功", + data: { + list: [], + total: 0, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + if (where.customerId !== undefined) { + if (!myCustomerIds.includes(where.customerId)) { + return { + code: 200, + message: "获取客户部门列表成功", + data: { + list: [], + total: 0, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + } else { + where.customerId = { [Op.in]: myCustomerIds }; + } + } + + const { count, rows } = await this.depModel.findAndCountAll({ + where, + limit: pageSize, + offset: (page - 1) * pageSize, + order: [["created_at", "DESC"]] + }); + + return { + code: 200, + message: "获取客户部门列表成功", + data: { + list: rows.map((r) => r.toJSON()), + total: count, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + + async detail(id: number, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.depModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户部门不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限访问该部门", + data: null + }; + } + + return { + code: 200, + message: "获取客户部门详情成功", + data: record.toJSON() + }; + } + + async create(data: any, ctx: Context): Promise { + const userId = ctx.state.user.userId; + + if (!(await this.isCustomerOwner(userId, data.customerId))) { + return { + code: 403, + message: "无权限为该客户创建部门", + data: null + }; + } + + const record = await this.depModel.create(data); + + return { + code: 200, + message: "创建客户部门成功", + data: record.toJSON() + }; + } + + async update(id: number, data: any, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.depModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户部门不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限修改该部门", + data: null + }; + } + + delete data.customerId; + + await record.update(data); + + return { + code: 200, + message: "更新客户部门成功", + data: record.toJSON() + }; + } + + async delete(id: number, ctx: Context): Promise { + const userId = ctx.state.user.userId; + const record = await this.depModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户部门不存在", + data: null + }; + } + + if (!(await this.isCustomerOwner(userId, record.customerId))) { + return { + code: 403, + message: "无权限删除该部门", + data: null + }; + } + + await record.destroy(); + + return { + code: 200, + message: "删除客户部门成功", + data: null + }; + } + + async findByCustomerId(customerId: number): Promise { + const records = await this.depModel.findAll({ + where: { customerId }, + order: [["created_at", "DESC"]] + }); + + return { + code: 200, + message: "获取客户部门列表成功", + data: records.map((r) => r.toJSON()) + }; + } +} diff --git a/server/src/service/customer.service.ts b/server/src/service/customer.service.ts new file mode 100644 index 0000000..5e58d77 --- /dev/null +++ b/server/src/service/customer.service.ts @@ -0,0 +1,321 @@ +import { Provide, Inject } from "@midwayjs/core"; +import { InjectRepository } from "@midwayjs/sequelize"; +import { Repository } from "sequelize-typescript"; +import { Op, UniqueConstraintError } from "sequelize"; +import { Context } from "@midwayjs/koa"; +import Customer from "../entity/customer.entity"; +import CustomerDepartment from "../entity/customer_department.entity"; +import CustomerAccount from "../entity/customer_account.entity"; +import SysUserRole from "../entity/sysUserRole.entity"; +import SysRole from "../entity/sysRole.entity"; + +@Provide() +export class CustomerService { + @InjectRepository(Customer) + customerModel!: Repository; + + @InjectRepository(CustomerDepartment) + customerDepModel!: Repository; + + @InjectRepository(CustomerAccount) + customerAccModel!: Repository; + + @InjectRepository(SysUserRole) + userRoleModel!: Repository; + + @InjectRepository(SysRole) + roleModel!: Repository; + + async list( + query: { page?: any; pageSize?: any; keyword?: string; status?: number; salesmanId?: number }, + ctx: Context + ): Promise { + const page = Number(query.page) || 1; + const pageSize = Number(query.pageSize) || 10; + + const where: any = {}; + + if (query.keyword) { + where[Op.or] = [ + { customerName: { [Op.like]: `%${query.keyword}%` } }, + { contactPerson: { [Op.like]: `%${query.keyword}%` } }, + { contactPhone: { [Op.like]: `%${query.keyword}%` } } + ]; + } + + if (query.status !== undefined) { + where.status = query.status; + } + + if (query.salesmanId) { + where.salesmanId = query.salesmanId; + } + + const isAdmin = await this.isAdmin(ctx.state.user.userId); + if (!isAdmin) { + where.salesmanId = ctx.state.user.userId; + } + + const { count, rows } = await this.customerModel.findAndCountAll({ + where, + limit: pageSize, + offset: (page - 1) * pageSize, + order: [["created_at", "DESC"]] + }); + + return { + code: 200, + message: "获取客户列表成功", + data: { + list: rows, + total: count, + page: Number(page), + pageSize: Number(pageSize) + } + }; + } + + async detail(id: number, ctx: Context): Promise { + const record = await this.customerModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户不存在", + data: null + }; + } + + const isAdmin = await this.isAdmin(ctx.state.user.userId); + if (!isAdmin && record.salesmanId !== ctx.state.user.userId) { + return { + code: 403, + message: "无权限访问该客户", + data: null + }; + } + + return { + code: 200, + message: "获取客户详情成功", + data: record + }; + } + + private async isAdmin(userId: number): Promise { + const userRoles = await this.userRoleModel.findAll({ + where: { userId }, + include: [SysRole] + }); + + return userRoles.some((ur) => { + const role = (ur as any).role as SysRole; + return role && role.roleCode === "ADMIN"; + }); + } + + private async generateCustomerNo(retry: number = 0): Promise { + const now = new Date(); + const offsetMs = now.getTime() + 8 * 60 * 60 * 1000; + const dateLocal = new Date(offsetMs); + const yyyy = dateLocal.getUTCFullYear(); + const mm = String(dateLocal.getUTCMonth() + 1).padStart(2, "0"); + const dd = String(dateLocal.getUTCDate()).padStart(2, "0"); + const yyyymmdd = `${yyyy}${mm}${dd}`; + + const lastRecord = await this.customerModel.findOne({ + where: { customerNo: { [Op.like]: `KH${yyyymmdd}%` } }, + order: [["customer_no", "DESC"]] + }); + + let newSeq = 1; + if (lastRecord) { + const lastNo = lastRecord.customerNo; + const seqStr = lastNo.slice(-3); + const seq = parseInt(seqStr, 10) || 0; + newSeq = seq + 1; + } + + const newSeqStr = String(newSeq).padStart(3, "0"); + const result = `KH${yyyymmdd}${newSeqStr}`; + + const exists = await this.customerModel.findOne({ + where: { customerNo: result } + }); + + if (exists) { + if (retry < 1) { + return this.generateCustomerNo(retry + 1); + } else { + throw new Error("客户编号生成冲突,请重试"); + } + } + + return result; + } + + async create(data: any, ctx: Context): Promise { + const isAdmin = await this.isAdmin(ctx.state.user.userId); + + if (!isAdmin) { + data.salesmanId = ctx.state.user.userId; + } + + try { + data.customerNo = await this.generateCustomerNo(); + const created = await this.customerModel.create(data); + + return { + code: 200, + message: "创建客户成功", + data: created.toJSON() + }; + } catch (err: any) { + if (err instanceof UniqueConstraintError && err.errors?.some((e) => e.path === "customer_no" || e.path === "uk_customer_no")) { + try { + data.customerNo = await this.generateCustomerNo(); + const created = await this.customerModel.create(data); + return { + code: 200, + message: "创建客户成功", + data: created.toJSON() + }; + } catch (_e) { + return { + code: 400, + message: "客户编号冲突,请重试", + data: null + }; + } + } + throw err; + } + } + + async update(id: number, data: any, ctx: Context): Promise { + const record = await this.customerModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户不存在", + data: null + }; + } + + const isAdmin = await this.isAdmin(ctx.state.user.userId); + if (!isAdmin && record.salesmanId !== ctx.state.user.userId) { + return { + code: 403, + message: "无权限操作该客户", + data: null + }; + } + + delete data.customerNo; + delete data.createdAt; + delete data.updatedAt; + if (!isAdmin) { + delete data.salesmanId; + } + + await record.update(data); + + return { + code: 200, + message: "更新客户成功", + data: record + }; + } + + async delete(id: number, ctx: Context): Promise { + const record = await this.customerModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户不存在", + data: null + }; + } + + const isAdmin = await this.isAdmin(ctx.state.user.userId); + if (!isAdmin && record.salesmanId !== ctx.state.user.userId) { + return { + code: 403, + message: "无权限操作该客户", + data: null + }; + } + + const hasDep = await this.customerDepModel.findOne({ where: { customerId: id }, limit: 1 }); + const hasAcc = await this.customerAccModel.findOne({ where: { customerId: id }, limit: 1 }); + + if (hasDep || hasAcc) { + return { + code: 400, + message: "该客户存在关联的部门或账号,无法删除,请先删除关联数据", + data: null + }; + } + + await record.destroy(); + + return { + code: 200, + message: "删除客户成功", + data: null + }; + } + + async updateStatus(id: number, status: number, ctx: Context): Promise { + const record = await this.customerModel.findByPk(id); + + if (!record) { + return { + code: 404, + message: "客户不存在", + data: null + }; + } + + const isAdmin = await this.isAdmin(ctx.state.user.userId); + if (!isAdmin && record.salesmanId !== ctx.state.user.userId) { + return { + code: 403, + message: "无权限操作该客户", + data: null + }; + } + + await record.update({ status }); + + return { + code: 200, + message: "更新客户状态成功", + data: null + }; + } + + async getSimpleList(ctx: Context): Promise { + const userId = ctx.state.user.userId; + const isAdmin = await this.isAdmin(userId); + + const where: any = {}; + if (!isAdmin) { + where.salesmanId = userId; + } + + const rows = await this.customerModel.findAll({ + where, + attributes: ["id", "customerNo", "customerName", "status"], + order: [["created_at", "DESC"]] + }); + + return { + code: 200, + message: "获取客户选项成功", + data: rows.map((r) => r.toJSON()) + }; + } +} diff --git a/verify_customer_api.js b/verify_customer_api.js new file mode 100644 index 0000000..36ab460 --- /dev/null +++ b/verify_customer_api.js @@ -0,0 +1,97 @@ +// 客户管理模块验证脚本 +const http = require('http'); + +function request(options, body) { + return new Promise((resolve, reject) => { + const req = http.request(options, (res) => { + let data = ''; + res.on('data', (chunk) => (data += chunk)); + res.on('end', () => resolve({ statusCode: res.statusCode, body: data })); + }); + req.on('error', reject); + if (body) req.write(body); + req.end(); + }); +} + +(async () => { + console.log('=== 步骤 1: 登录获取 admin token ==='); + const loginRes = await request( + { + hostname: '127.0.0.1', + port: 7001, + path: '/api/auth/login', + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + }, + JSON.stringify({ username: 'admin', password: 'admin123456' }) + ); + const loginData = JSON.parse(loginRes.body); + console.log('HTTP:', loginRes.statusCode, '| code:', loginData.code, '| message:', loginData.message); + console.log('roles:', loginData.data.roles); + console.log('menus count:', loginData.data.menus.length); + console.log('top menu[0]:', loginData.data.menus[0].menuName, 'type:', loginData.data.menus[0].menuType, 'children:', loginData.data.menus[0].children?.length); + + const token = loginData.data.accessToken; + console.log('token 长度:', token.length); + console.log('token 前 80 字符:', token.substring(0, 80)); + const authHeader = `Bearer ${token}`; + console.log('Authorization header 长度:', authHeader.length); + + console.log('\n=== 步骤 2: 调用 GET /api/customers 客户列表 ==='); + console.log('发送的 Authorization:', authHeader.substring(0, 100) + '...'); + const listRes = await request({ + hostname: '127.0.0.1', + port: 7001, + path: '/api/customers?page=1&pageSize=10', + method: 'GET', + headers: { Authorization: authHeader }, + }); + console.log('HTTP:', listRes.statusCode); + console.log('Body:', listRes.body); + + console.log('\n=== 步骤 3: 调用 GET /api/customers/options/all 精简列表 ==='); + const optRes = await request({ + hostname: '127.0.0.1', + port: 7001, + path: '/api/customers/options/all', + method: 'GET', + headers: { Authorization: `Bearer ${token}` }, + }); + console.log('HTTP:', optRes.statusCode); + console.log('Body:', optRes.body.substring(0, 500)); + + console.log('\n=== 步骤 4: 调用 GET /api/customer-departments 部门列表 ==='); + const depRes = await request({ + hostname: '127.0.0.1', + port: 7001, + path: '/api/customer-departments?page=1&pageSize=10', + method: 'GET', + headers: { Authorization: `Bearer ${token}` }, + }); + console.log('HTTP:', depRes.statusCode); + console.log('Body:', depRes.body); + + console.log('\n=== 步骤 5: 调用 GET /api/customer-accounts 账号列表 ==='); + const accRes = await request({ + hostname: '127.0.0.1', + port: 7001, + path: '/api/customer-accounts?page=1&pageSize=10', + method: 'GET', + headers: { Authorization: `Bearer ${token}` }, + }); + console.log('HTTP:', accRes.statusCode); + console.log('Body:', accRes.body); + + console.log('\n=== 步骤 6: 验证无 token 访问 → 401 ==='); + const noTokenRes = await request({ + hostname: '127.0.0.1', + port: 7001, + path: '/api/customers', + method: 'GET', + }); + console.log('HTTP:', noTokenRes.statusCode, '| Body:', noTokenRes.body); +})().catch((err) => { + console.error('脚本异常:', err.message); + process.exit(1); +});