From 89e9eae36e5c9c8d4e634587a43f23ba24eadc54 Mon Sep 17 00:00:00 2001 From: Harmon Date: Sun, 19 Apr 2026 14:05:40 +0800 Subject: [PATCH] chore: initial import --- .gitignore | 37 + PPT_OUTLINE.md | 487 + PROJECT_DOCUMENTATION.md | 370 + README.md | 96 + SECURITY_PPT_NOTES.md | 92 + TODO_assigned_departments_design.md | 159 + backup_tool.py | 472 + client/.gitignore | 23 + client/README.md | 70 + client/package-lock.json | 20862 ++++++++++++++++ client/package.json | 54 + client/public/favicon.ico | Bin 0 -> 3870 bytes client/public/index.html | 43 + client/public/logo.jpg | Bin 0 -> 204282 bytes client/public/logo.png | Bin 0 -> 1143526 bytes client/public/logo192.png | Bin 0 -> 5347 bytes client/public/logo512.png | Bin 0 -> 9664 bytes client/public/manifest.json | 25 + client/public/robots.txt | 3 + client/src/App.css | 38 + client/src/App.js | 70 + client/src/App.test.js | 8 + client/src/components/AchievementDetails.js | 163 + client/src/components/AchievementEdit.js | 468 + .../src/components/AchievementFormRenderer.js | 284 + client/src/components/MainLayout.js | 219 + client/src/components/UserSearchSelect.js | 70 + client/src/config.js | 5 + client/src/constants/achievements.js | 125 + client/src/index.css | 43 + client/src/index.js | 33 + client/src/logo.svg | 1 + client/src/pages/Audit.js | 248 + client/src/pages/Dashboard.js | 557 + client/src/pages/DataValidation.js | 157 + client/src/pages/DepartmentManagement.js | 124 + client/src/pages/DictionaryManagement.js | 209 + client/src/pages/Login.js | 92 + client/src/pages/Notifications.js | 364 + client/src/pages/Register.js | 182 + client/src/pages/ResetPassword.js | 162 + client/src/pages/Statistics.js | 703 + client/src/pages/SystemLogs.js | 207 + client/src/pages/Upload.js | 638 + client/src/pages/UserManagement.js | 480 + client/src/reportWebVitals.js | 13 + client/src/setupTests.js | 5 + client/src/utils/phoneMask.js | 17 + database/schema.sql | 235 + nginx.conf | 99 + package.json | 13 + server/.env.example | 42 + server/db.js | 20 + server/index.js | 183 + server/middleware/auditLogger.js | 168 + server/middleware/auth.js | 74 + server/package-lock.json | 3000 +++ server/package.json | 36 + server/routes/achievements.js | 1487 ++ server/routes/aiAnalysis.js | 949 + server/routes/auth.js | 220 + server/routes/dictionaries.js | 165 + server/routes/logs.js | 73 + server/routes/notifications.js | 293 + server/routes/statistics.js | 262 + server/routes/users.js | 204 + server/scripts/add_token_version.js | 17 + server/scripts/create_audit_table.js | 38 + server/scripts/create_db.js | 42 + server/scripts/create_notification_tables.js | 48 + server/scripts/debug_stats.js | 63 + server/scripts/list_db_schema.js | 45 + server/scripts/seed_data.js | 212 + server/scripts/seed_data_limited_500k.js | 412 + server/scripts/setup.js | 103 + server/utils/diskMonitor.js | 93 + server/utils/logger.js | 55 + server/utils/sms.js | 33 + static/mobile_forbidden.html | 58 + 开发机与服务器结构相同可以编写移植脚本.txt | 0 第一次升级.md | 143 + 81 files changed, 37363 insertions(+) create mode 100644 .gitignore create mode 100644 PPT_OUTLINE.md create mode 100644 PROJECT_DOCUMENTATION.md create mode 100644 README.md create mode 100644 SECURITY_PPT_NOTES.md create mode 100644 TODO_assigned_departments_design.md create mode 100644 backup_tool.py create mode 100644 client/.gitignore create mode 100644 client/README.md create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/public/favicon.ico create mode 100644 client/public/index.html create mode 100644 client/public/logo.jpg create mode 100644 client/public/logo.png create mode 100644 client/public/logo192.png create mode 100644 client/public/logo512.png create mode 100644 client/public/manifest.json create mode 100644 client/public/robots.txt create mode 100644 client/src/App.css create mode 100644 client/src/App.js create mode 100644 client/src/App.test.js create mode 100644 client/src/components/AchievementDetails.js create mode 100644 client/src/components/AchievementEdit.js create mode 100644 client/src/components/AchievementFormRenderer.js create mode 100644 client/src/components/MainLayout.js create mode 100644 client/src/components/UserSearchSelect.js create mode 100644 client/src/config.js create mode 100644 client/src/constants/achievements.js create mode 100644 client/src/index.css create mode 100644 client/src/index.js create mode 100644 client/src/logo.svg create mode 100644 client/src/pages/Audit.js create mode 100644 client/src/pages/Dashboard.js create mode 100644 client/src/pages/DataValidation.js create mode 100644 client/src/pages/DepartmentManagement.js create mode 100644 client/src/pages/DictionaryManagement.js create mode 100644 client/src/pages/Login.js create mode 100644 client/src/pages/Notifications.js create mode 100644 client/src/pages/Register.js create mode 100644 client/src/pages/ResetPassword.js create mode 100644 client/src/pages/Statistics.js create mode 100644 client/src/pages/SystemLogs.js create mode 100644 client/src/pages/Upload.js create mode 100644 client/src/pages/UserManagement.js create mode 100644 client/src/reportWebVitals.js create mode 100644 client/src/setupTests.js create mode 100644 client/src/utils/phoneMask.js create mode 100644 database/schema.sql create mode 100644 nginx.conf create mode 100644 package.json create mode 100644 server/.env.example create mode 100644 server/db.js create mode 100644 server/index.js create mode 100644 server/middleware/auditLogger.js create mode 100644 server/middleware/auth.js create mode 100644 server/package-lock.json create mode 100644 server/package.json create mode 100644 server/routes/achievements.js create mode 100644 server/routes/aiAnalysis.js create mode 100644 server/routes/auth.js create mode 100644 server/routes/dictionaries.js create mode 100644 server/routes/logs.js create mode 100644 server/routes/notifications.js create mode 100644 server/routes/statistics.js create mode 100644 server/routes/users.js create mode 100644 server/scripts/add_token_version.js create mode 100644 server/scripts/create_audit_table.js create mode 100644 server/scripts/create_db.js create mode 100644 server/scripts/create_notification_tables.js create mode 100644 server/scripts/debug_stats.js create mode 100644 server/scripts/list_db_schema.js create mode 100644 server/scripts/seed_data.js create mode 100644 server/scripts/seed_data_limited_500k.js create mode 100644 server/scripts/setup.js create mode 100644 server/utils/diskMonitor.js create mode 100644 server/utils/logger.js create mode 100644 server/utils/sms.js create mode 100644 static/mobile_forbidden.html create mode 100644 开发机与服务器结构相同可以编写移植脚本.txt create mode 100644 第一次升级.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1bb1caf --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# Dependencies +node_modules/ +client/node_modules/ +server/node_modules/ +server/server/node_modules/ +server/server/ + +# Build outputs +client/build/ +dist/ + +# Runtime data +server/uploads/ +server/logs/ + +# Environment +.env +.env.* +!.env.example +server/.env +!server/.env.example +client/.env +client/.env.* + +# Local caches +client/.npm-cache/ + +# IDE / OS +.idea/ +.DS_Store +Thumbs.db + +# Local release artifacts +_release/ + +# Large local installers +配置包/ diff --git a/PPT_OUTLINE.md b/PPT_OUTLINE.md new file mode 100644 index 0000000..0314429 --- /dev/null +++ b/PPT_OUTLINE.md @@ -0,0 +1,487 @@ +# 科技成果转化管理系统 — PPT 提纲(草案) + +> 用途:领导汇报型讲解 PPT,包含系统开发逻辑、开发历程、开发心得,并强调“小切口解决问题”的实践。包含安全专题与关键代码摘录。 + +--- + +## 0. 封面 +- 项目名称:科技成果转化管理系统 +- 汇报人 / 团队 / 日期 + +## 汇报时长与页数建议(30 分钟) +- 建议页数:18–22 页(含 2 张图:系统架构图 + 核心流程图) +- 时间分配:导入 2–3 分钟|主体 22–24 分钟|总结 3–4 分钟 + +## 30 分钟版(20 页)结构分配 +- 业务与管理:8 页 +- 技术与实现:12 页(含安全专题与代码亮点) + +### 20 页目录建议(可直接用作 PPT 页标题) +1. 封面 +2. 背景与目标(业务痛点 + 目标) +3. 业务价值与管理收益(闭环、合规、可追溯) +4. 系统开发逻辑(业务链路) +5. 核心流程图(从申报到归档) +6. 业务模块总览(功能地图) +7. 权限与角色体系(管理视角) +8. 统计分析与决策支持(管理视角) +9. 系统总体架构(技术总览) +10. 系统架构图(Nginx/Server/DB/文件) +11. 数据模型与权限策略(RBAC + 状态约束) +12. 上传与文件安全(白名单 + Magic Number) +13. 审计与日志体系(可追溯) +14. 认证与单点登录(JWT + token_version) +15. 接口防护与限流(分级限流 + 验证码) +16. 运维保障(磁盘监控 + 告警) +17. 开发历程(里程碑) +18. 小切口解决问题(工程细节) +19. 安全专题(集中总结) +20. 价值总结与下一步 + +### 页内时间建议(总计 30 分钟) +- 1–2 页:每页 1 分钟 +- 3–8 页(业务/管理 6 页):每页 1–1.5 分钟 +- 9–16 页(技术 8 页):每页 1.5–2 分钟 +- 17–20 页(收束 4 页):每页 1 分钟 + +--- + +# 20 页逐页内容(标题 + 关键点 + 口播稿 + 配图建议) + +## 1. 封面 +关键点 +- 项目名称、汇报人、单位、日期 +口播稿 +- “今天汇报科技成果转化管理系统,重点讲业务闭环、管理价值与技术亮点。” +配图建议 +- 项目 Logo 或简洁科技感背景图 + +## 2. 背景与目标 +关键点 +- 痛点:成果类型多、流程长、数据分散、统计难 +- 目标:全生命周期管理,统一流程与口径 +口播稿 +- “核心目标是把成果从申报到归档形成标准化闭环,并保证数据口径一致。” +配图建议 +- 痛点对比图或“问题→目标”对照图 + +## 3. 业务价值与管理收益 +关键点 +- 闭环流程:可控、可追溯 +- 合规与审计:有据可查 +- 统计可视化:辅助决策 +口播稿 +- “系统不仅解决业务效率,还能把过程做成可追溯的管理证据链。” +配图建议 +- 价值三角图(效率/合规/决策) + +## 4. 系统开发逻辑(业务链路) +关键点 +- 申报→审核→统计→归档→运维 +- 以业务路径驱动技术设计 +口播稿 +- “先确定业务主链路,再围绕关键节点补齐权限、安全与运维。” +配图建议 +- 业务链路流程条 + +## 5. 核心流程图(从申报到归档) +关键点 +- 查重拦截、审核分流、通过入库 +- 统计分析与导出归档 +口播稿 +- “每个关键节点都定义了自动校验和权限控制,确保流程闭环。” +配图建议 +- 使用下方 Mermaid 流程图渲染 + +## 6. 业务模块总览 +关键点 +- 账号权限、成果管理、审核、统计、导出、公告 +- 模块之间的依赖关系 +口播稿 +- “业务模块围绕成果流转展开,管理侧在审核与统计两端发力。” +配图建议 +- 功能模块矩阵或系统功能地图 + +## 7. 权限与角色体系(管理视角) +关键点 +- RBAC 角色分级:普通/中级/高级/管理员/维护员/超管 +- 关键场景:提交人与完成人权限分离、审核回避 +口播稿 +- “权限模型保证数据边界清晰,避免同人审核、越权查看。” +配图建议 +- 角色金字塔或权限矩阵简图 + +## 8. 统计分析与决策支持 +关键点 +- 多维度统计(部门/年度/类型) +- 趋势图、雷达图、堆叠图 +口播稿 +- “统计不是展示数量,而是提供结构与趋势,支撑管理决策。” +配图建议 +- 统计图示例(柱状/雷达/趋势) + +## 9. 系统总体架构(技术总览) +关键点 +- 前后端分离,RESTful API +- Nginx 统一入口,后端服务化 +口播稿 +- “技术架构选择以可扩展与可运维为优先。” +配图建议 +- 架构分层示意图 + +## 10. 系统架构图(细化) +关键点 +- SPA → Nginx → API → DB/文件 +- 日志与审计并行 +口播稿 +- “数据流与文件流分开管理,方便安全控制与归档。” +配图建议 +- 使用下方 Mermaid 架构图渲染 + +## 11. 数据模型与权限策略 +关键点 +- JSONB 处理完成人列表 +- 状态驱动权限(pending/rejected/approved) +口播稿 +- “用 JSONB 保证结构灵活,用状态机控制访问边界。” +配图建议 +- 简化 ER 图或“状态×角色”矩阵 + +## 12. 上传与文件安全 +关键点 +- 扩展名白名单 +- Magic Number 校验真实类型 +- 下载强制 attachment +口播稿 +- “文件安全是最大的攻击入口,因此做了三层防护。” +配图建议 +- 三层防护示意图(白名单/校验/下载控制) + +## 13. 审计与日志体系 +关键点 +- 全局审计日志拦截 +- 语义化动作映射 +- 入库可追溯 +口播稿 +- “任何关键操作都可追溯到人、时间与结果。” +配图建议 +- 日志链路图或“审计追溯”示意 + +## 14. 认证与单点登录 +关键点 +- JWT + 过期控制 +- token_version 实现强制下线 +口播稿 +- “不依赖复杂系统,用一个版本号实现单点登录与强制失效。” +配图建议 +- Token 版本演进示意图 + +## 15. 接口防护与限流 +关键点 +- 全局限流 + 认证接口更严限流 +- 验证码与短信验证机制 +口播稿 +- “对高风险入口进行更严格的限流,防暴力破解。” +配图建议 +- “分级限流”示意图 + +## 16. 运维保障(监控告警) +关键点 +- 磁盘空间监控 +- 自动告警通知 +口播稿 +- “提前发现问题比处理事故更重要,系统自动告警避免资源耗尽。” +配图建议 +- 监控告警流程图 + +## 17. 开发历程(里程碑) +关键点 +- 需求澄清 → 权限模型 → 联调闭环 → 安全加固 +口播稿 +- “按关键链路推进,先保证主流程可用,再做安全与运维加固。” +配图建议 +- 时间线图 + +## 18. 小切口解决问题 +关键点 +- token_version 单点登录 +- URL 脱敏日志 +- Magic Number 校验 +- 磁盘告警 +口播稿 +- “这些小机制代价低,但显著降低了安全与运维风险。” +配图建议 +- 四象限小结卡片 + +## 19. 安全专题(集中总结) +关键点 +- 认证、密码、传输、接口、文件、日志六层防护 +口播稿 +- “安全不是单点技术,是全链路策略组合。” +配图建议 +- 六层安全防护环 + +## 20. 价值总结与下一步 +关键点 +- 价值:闭环、合规、可追溯、可扩展 +- 下一步:流程可配置、多租户、统计深化 +口播稿 +- “本期完成的是基础闭环,下一步聚焦可配置与更深的管理洞察。” +配图建议 +- “现在/下一步”对比图 + +## 1. 项目背景与目标 +- 业务痛点:成果类型多、流程长、数据分散、审查流程不统一、统计与归档难 +- 目标:实现成果全生命周期管理(录入—审核—统计—归档/导出),保障合规与安全 + +## 2. 系统开发逻辑(从需求到架构) +- 业务逻辑主线:成果申报 → 审核流转 → 统计分析 → 归档导出 → 运维保障 +- 技术逻辑主线:前后端分离 → API 标准化 → RBAC + 状态权限 → 审计与安全 → 可运维 + +## 3. 系统总体架构(概览) +- SPA 前端 + Node.js 后端 + PostgreSQL + Nginx +- 架构图(可引用文档中的 mermaid 图) +- 核心数据流:前端请求 → 反向代理 → API → DB/文件存储 + +## 3.1 系统架构图(素材) +用途:用于 PPT 的“总体架构”页,可直接粘贴成图或用 Mermaid 生成。 + +```mermaid +graph TD + Client[Web 前端 SPA
React] -->|HTTPS/JSON| Nginx[Nginx 反向代理] + Nginx -->|Proxy Pass| Server[Node.js 后端 API] + Nginx -->|Static Files| Uploads[文件存储 Uploads] + Server -->|SQL| DB[(PostgreSQL)] + Server -->|审计日志| Logs[日志系统/审计库] +``` + +讲解要点(口播要点) +- 前后端分离,接口统一,安全与运维可控 +- 文件与数据库分层存储,方便归档与扩展 +- Nginx 统一入口,支持 HTTPS 与静态资源托管 + +## 4. 业务模块拆解 +- 账号与权限(注册/登录/角色/权限矩阵) +- 成果管理(10 种类型、动态表单、附件、查重机制) +- 审核管理(多角色分工、回避机制、状态约束) +- 统计分析(多维度图表、趋势与贡献) +- 归档与导出(CSV、ZIP、电子档案) +- 通知公告(富文本、附件、系统告警) + +## 5. 核心数据与权限模型(亮点) +- 角色体系:user / intermediate_user / senior_user / admin / maintainer / super_admin +- 权限控制:RBAC + 成果状态细粒度限制(pending / rejected / approved) +- 关键场景:提交人 vs 完成人权限区分、管理员回避审查 + +## 6. 关键技术实现(亮点聚焦) +- 文件上传安全:白名单 + Magic Number 校验 + 下载强制 attachment +- 审计日志:全局拦截、语义化动作映射、入库审计 +- 单点登录:JWT + token_version 控制同账号并发 +- 运维守护:磁盘空间监控 + 自动告警 +- 限流与防暴力:全局与认证接口分级限流 + +## 7. 开发历程(里程碑) +- 需求澄清 → 权限模型定稿 +- 数据结构与接口标准 → 后端骨架 +- 前后端联调 → 上传/审核/统计闭环 +- 安全与运维加固 → 上线前合规检查 + +## 7.1 核心流程图(素材) +用途:用于 PPT 的“业务流程”页,可直接粘贴成图或用 Mermaid 生成。 + +```mermaid +flowchart LR + A[用户登录/注册] --> B[成果申报] + B --> C{查重拦截} + C -- 通过 --> D[进入审核队列] + C -- 重复/无效 --> B + D --> E{审核结果} + E -- 通过 --> F[入库统计/归档] + E -- 驳回 --> B + F --> G[统计分析] + F --> H[导出/归档] + G --> I[管理决策支持] +``` + +讲解要点(口播要点) +- 全流程闭环,关键节点有自动校验与权限控制 +- 审核环节是质量门槛,统计与导出为管理输出 + +## 8. 开发过程中的关键抉择(为什么这样做) +- 为什么选择前后端分离:迭代快、职责清晰、部署灵活 +- 为什么权限细分:保障科研数据边界与合规 +- 为什么强调审计与日志:管理系统必须可追溯 + +## 9. 小切口解决问题(可讲的“工程细节”) +- Token 版本号:用最小改动实现“单点登录”和强制下线 +- URL 脱敏日志:一行正则规避日志泄密风险 +- Magic Number 校验:阻断伪装文件上载 +- 磁盘空间监控:运维问题提前暴露,避免事故 + +## 10. 安全专题(单独章节) +- 身份认证:JWT + 过期控制 + token_version +- 密码安全:bcrypt 加盐哈希 +- 传输安全:HTTPS + Nginx 反向代理 +- 接口防护:Rate Limit + 验证码 +- 数据与日志:敏感参数脱敏、审计日志入库 +- 文件安全:白名单、Magic Number、下载强制 attachment + +## 11. 开发心得(可复用的方法) +- 先稳定关键路径,再扩展边缘能力 +- 面向“审计/合规”做系统设计,而不是事后补丁 +- 把运维与安全作为功能的一部分 +- 小机制大收益:用最小成本带来可见提升 + +## 12. 价值总结与下一步 +- 业务价值:流程闭环、统计可视化、管理可追溯 +- 技术价值:统一权限模型、安全与运维体系化 +- 下一步(可选):多租户、流程可配置、更多统计维度 + +--- + +# 关键代码摘录(可用作“技术亮点/安全章节”附页) + +> 提示:以下代码块可直接截图进 PPT。路径已标注。 + +## A. 限流 + 移动端拦截 + 日志脱敏 + +路径:`server/index.js` + +```js +morgan.token('safe-url', (req) => { + let url = req.originalUrl || req.url; + url = url.replace(/([?&])(token|password|code)=([^&]+)/gi, '$1$2=***'); + return url; +}); + +const globalLimiter = rateLimit({ + windowMs: 1 * 60 * 1000, + max: 100, + standardHeaders: true, + legacyHeaders: false, +}); + +const authLimiter = rateLimit({ + windowMs: 1 * 60 * 1000, + max: 10, + standardHeaders: true, + legacyHeaders: false, +}); + +app.use((req, res, next) => { + const ua = req.headers['user-agent'] || ''; + const isMobile = /mobile|android|iphone|ipad|phone/i.test(ua); + if (isMobile) return res.status(403).send('移动端访问被禁止'); + next(); +}); +``` + +## B. JWT 校验 + token_version 单点登录 + +路径:`server/middleware/auth.js` + +```js +const token = req.headers['authorization']?.split(' ')[1] || req.query.token; +const decoded = jwt.verify(token, process.env.JWT_SECRET); + +const tokenVersion = decoded.token_version || 0; +const result = await db.query('SELECT token_version FROM users WHERE id = $1', [decoded.id]); +const dbVersion = result.rows[0].token_version || 0; + +if (tokenVersion !== dbVersion) { + return res.status(401).json({ message: '账号在其他设备登录,请重新登录' }); +} +``` + +## C. 密码加盐哈希(bcrypt) + +路径:`server/routes/auth.js` + +```js +const salt = await bcrypt.genSalt(10); +const passwordHash = await bcrypt.hash(newPassword, salt); + +await db.query( + 'UPDATE users SET password_hash = $1, token_version = CASE WHEN token_version >= 2000000000 THEN 1 ELSE token_version + 1 END WHERE username = $2', + [passwordHash, phoneNumber] +); +``` + +## D. 文件上传白名单 + Magic Number 校验 + +路径:`server/routes/achievements.js` + +```js +const allowedExtensions = [ + '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', + '.txt', '.jpg', '.jpeg', '.png', '.zip', '.rar', '.7z' +]; + +const upload = multer({ + storage, + fileFilter: (req, file, cb) => { + const ext = path.extname(file.originalname).toLowerCase(); + if (allowedExtensions.includes(ext)) cb(null, true); + else cb(new Error(`不支持的文件类型 (${ext})`)); + } +}); + +const fileType = await FileType.fromFile(file.path); +const allowedMimes = [ + 'image/', 'application/pdf', 'application/msword', + 'application/vnd.openxmlformats-officedocument', + 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', + 'application/zip', 'application/x-zip-compressed', + 'application/x-rar-compressed', 'application/x-7z-compressed' +]; + +if (fileType && !allowedMimes.some(m => fileType.mime.startsWith(m))) { + fs.unlinkSync(file.path); + return res.status(400).json({ message: '文件真实类型不被允许' }); +} +``` + +## E. 审计日志(语义映射 + 入库) + +路径:`server/middleware/auditLogger.js` + +```js +const getActionDescription = (method, url) => { + if (path === '/api/auth/login' && method === 'POST') return '用户登录'; + if (path === '/api/achievements' && method === 'POST') return '上传成果'; + // ... 更多动作映射 +}; + +const logMessage = `[AUDIT] IP:${clientIp} | User:${userInfo} | ${method} ${safeUrl} | Action:${description || 'Unknown'} | Status:${status} | Time:${duration}ms`; + +await db.query( + 'INSERT INTO audit_logs (user_id, username, real_name, ip_address, method, url, description, status, duration) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)', + [userId, username, realName, clientIp, method, safeUrl, description, status, duration] +); +``` + +## F. 运营级监控:磁盘空间告警 + +路径:`server/utils/diskMonitor.js` + +```js +const THRESHOLD_BYTES = 10 * 1024 * 1024 * 1024; // 10GB + +if (FreeSpace < THRESHOLD_BYTES) { + const title = `【系统警告】磁盘空间不足(${root})`; + const content = `剩余空间 ${freeGB} GB,低于阈值 10GB`; + await db.query( + 'INSERT INTO notifications (title, content, publisher_id, publisher_name, is_top, created_at) VALUES ($1, $2, $3, $4, $5, CURRENT_TIMESTAMP)', + [title, content, publisherId, '系统监控', true] + ); +} +``` + +--- + +## 附:引用的项目文档范围 +- `PROJECT_DOCUMENTATION.md` 的“项目概述、权限体系、业务流程、技术架构、安全防御体系”章节 +- 代码路径:`server/index.js`, `server/middleware/auth.js`, `server/middleware/auditLogger.js`, `server/routes/auth.js`, `server/routes/achievements.js`, `server/utils/diskMonitor.js` + +``` + diff --git a/PROJECT_DOCUMENTATION.md b/PROJECT_DOCUMENTATION.md new file mode 100644 index 0000000..08c04ec --- /dev/null +++ b/PROJECT_DOCUMENTATION.md @@ -0,0 +1,370 @@ +# 科技成果转化管理系统 - 项目综合文档 + +本文档整合了系统设计、用户手册、权限矩阵、部署指南及安全策略,是项目的唯一核心文档。 + +--- + +## 目录 +1. [项目概述](#1-项目概述) +2. [角色与权限体系(核心)](#2-角色与权限体系核心) +3. [业务流程与功能指南](#3-业务流程与功能指南) +4. [技术架构与开发规范](#4-技术架构与开发规范) +5. [运维部署与灾难恢复](#5-运维部署与灾难恢复) +6. [安全防御体系](#6-安全防御体系) +7. [API 接口规范](#7-api-接口规范) +8. [数据库设计](#8-数据库设计) +9. [常见问题 (FAQ)](#9-常见问题-faq) + +--- + +## 1. 项目概述 + +本项目是一个现代化的科技成果转化管理系统,旨在解决企事业单位及科研机构在成果管理中的痛点。系统支持多种科技成果类型的全生命周期管理,包括录入、审核、统计分析及归档导出。 + +### 核心特性 +- **全流程管理**:从成果提交、审核到归档的闭环管理。 +- **多维度统计**:提供饼图、雷达图、堆叠柱状图、面积图等丰富的可视化分析。 +- **严格权限控制**:基于角色的访问控制 (RBAC) + 细粒度的状态权限判断。 +- **安全合规**:移动端拦截、HTTPS 加密、操作日志审计、敏感数据脱敏。 +- **智能化处理**:自动归属部门、查重拦截、附件生命周期管理。 + +--- + +## 2. 角色与权限体系(核心) + +系统设计了精细的权限模型,确保数据安全与业务流转的规范性。 + +### 2.1 角色定义 + +| 角色 | 代码 | 职责描述 | +| :--- | :--- | :--- | +| **普通用户** | `user` | 业务人员。负责成果数据的录入,查看自己参与的和自己所在科室的已通过成果。 | +| **中级用户** | `intermediate_user` | 科室主任。可查看本科室及本科室成员参与的所有已通过成果。 | +| **高级用户** | `senior_user` | 单位领导。可查看全单位所有已通过的成果,用于全局浏览和决策支持。 | +| **管理员** | `admin` | 管理员。负责审核成果。 | +| **系统维护员** | `maintainer` | 技术支持人员。负责字典、部门等基础数据维护,查看系统日志,重置用户密码。**无权访问任何成果数据**。 | +| **超级管理员** | `super_admin` | 系统管理。 | + +### 2.2 全量权限操作矩阵 + +下表详细列出了不同角色在不同场景下的操作权限区别。 + +**图例**:✅ 允许 | ❌ 禁止 | ⚠️ 有限制 + +| 功能模块 | 操作行为 | 普通用户
(无关人员) | 普通用户
(提交人) | 普通用户
(完成人) | 中级用户 | 高级用户 | 管理员 | 超级管理员 | 系统维护员 | 权限说明 | +| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :--- | +| **基础访问** | 登录/注册 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | +| | 移动端访问 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | 全局禁止非PC设备 | +| **成果查看** | 查看列表 | ⚠️ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | 普通/中级/高级按范围过滤;管理员/超管可见全部状态 | +| | 查看详情 | ⚠️ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | 详情权限与列表一致 | +| | **查看范围** | 本部门已通过 | 本人待审/驳回 + 本部门已通过 | 个人相关(任意状态) + 本部门已通过 | 本科室已通过(含本科室成员参与) + 个人相关 + 本人待审/驳回 | 全单位已通过 + 个人相关 + 本人待审/驳回 | 全量(含待审/驳回/已通过) | 全量(含待审/驳回/已通过) | 无 | 完成人通过 contributors.phone 精确匹配 | +| **成果录入** | 新增成果 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 当前实现未限制维护员 | +| **成果修改** | 修改(待审核) | ❌ | ✅ | ❌ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ | 仅提交人可改;超管可改任意成果 | +| | 修改(已驳回) | ❌ | ✅ | ❌ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ | 仅提交人可改;超管可改任意成果 | +| | 修改(已通过) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 仅超管可修改 | +| **成果删除** | 删除(待审核) | ❌ | ✅ | ❌ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ | 仅提交人可删;超管可删任意成果 | +| | 删除(已驳回) | ❌ | ✅ | ❌ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ | 仅提交人可删;超管可删任意成果 | +| | 删除(已通过) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 仅超管可删 | +| **业务审核** | 审核通过/驳回 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | 管理员回避:不可审自己参与的成果 | +| **数据分析** | 查看统计图表 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 统计图默认仅已通过;状态分布仅超管/维护员全量 | +| | 导出数据/附件 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 仅超管 | +| **成果附件** | 下载单个附件 | ❌ | ⚠️ | ✅ | ⚠️ | ⚠️ | ✅ | ✅ | ❌ | 完成人可下;提交人仅待审/驳回可下 | +| | 下载成果附件包 | ❌ | ⚠️ | ✅ | ⚠️ | ⚠️ | ✅ | ✅ | ❌ | 与单附件规则一致 | +| **系统管理** | 用户管理 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ⚠️ | 超管全权;维护员仅列表/重置密码 | +| | 部门/字典维护 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 仅超管/维护员 | +| | 查看系统日志 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 仅超管/维护员 | +| | 发布系统公告 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 仅超管/维护员 | +| | 全量数据校验 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 仅超管 | +| **通知公告** | 查看公告列表/详情 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 所有登录用户可看 | +| | 下载公告附件 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 所有登录用户可下 | +| | 删除公告 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 仅超管/维护员可删 | + +### 2.3 特殊场景说明 + +#### 场景 A:我是提交人,但不是完成人 +> **例子**:管理员帮项目组录入成果。 +- **待审核/已驳回**:拥有完全控制权(修改/删除)。 +- **已通过**:权限降级为只读。 + +#### 场景 B:我是完成人,但不是提交人 +> **例子**:项目负责人录入,我是成员。 +- **待审核/已驳回**:**不可见**。为了隐私和准确性,草稿状态仅提交人可见。 +- **已通过**:可见,但不可修改。 + +#### 场景 C:管理员的回避制度 +- 如果管理员是某项成果的完成人之一,该成果在审核列表中对其**自动隐藏**。 +- 必须由其他管理员或超级管理员进行审核。 + +--- + +## 3. 业务流程与功能指南 + +### 3.1 成果申报全流程 + +#### 3.1.1 成果类型详解 +系统支持以下 10 种科技成果类型的申报: +1. **论文 (Paper)**: 已发表的学术论文 (SCI/EI/核心等)。 +2. **专利 (Patent)**: 发明专利、实用新型、外观设计。 +3. **项目 (Project)**: 纵向课题、横向课题、自选项目。 +4. **奖励 (Award)**: 国家级、省部级、行业协会奖励。 +5. **标准 (Standard)**: 国际标准、国家标准、行业标准、地方标准。 +6. **专著 (Book)**: 出版发行的学术著作、译著。 +7. **技术报告 (Report)**: 提交给政府或企业的咨询报告、技术方案。 +8. **规划 (Plan)**: 发展规划、战略研究报告。 +9. **成果转化 (Transfer)**: 技术转让、许可、作价入股。 +10. **软著 (Software)**: 计算机软件著作权。 + +#### 3.1.2 智能表单填写指南 +* **动态字段联动**: 不同类型的成果需要填写的字段不同(如论文需填“期刊名称”,专利需填“专利号”)。 +* **完成人添加与排序**: + * 点击“添加完成人”按钮,输入姓名和手机号。 + * 列表中的**第一位**默认为“主要完成人”(负责人)。 + * 系统会自动根据**主要完成人**的手机号,查找其在系统中的注册信息,并将该成果自动归属到其所在部门。 +* **附件上传规范**: 支持 PDF, Office, 图片, 压缩包。单个文件最大 **500MB**。 + +#### 3.1.3 查重拦截机制 +为了避免重复统计,系统内置了查重机制。当您点击提交时,系统会检查: +1. **唯一标识符**: 如专利号、论文DOI、软著登记号等是否已存在。 +2. **名称+日期**: 如果同一天内提交了完全相同的成果名称。 +如果检测到重复,系统将拦截提交。 + +### 3.2 审核与管理 (管理员视角) + +#### 3.2.1 审核流程 +1. **查看详情**: 点击成果名称,进入详情页。 +2. **核对信息**: 检查填写的字段是否完整、准确,附件是否清晰、合规。 +3. **给出结论**: + * **通过**: 成果状态变为“已通过”,正式计入统计数据。 + * **驳回**: 需填写驳回理由。成果状态变为“已驳回”,提交人可修改后重新提交。 + +#### 3.2.2 附件清理 +当成果被“驳回”或“删除”时,为了节省服务器空间,系统会自动清理关联的附件文件。 + +### 3.3 数据可视化与决策支持 + +进入“统计分析”页面,系统提供多维度的可视化报表。 +* **部门贡献度分析**: + * **堆叠柱状图**: 展示各部门在不同年份的成果产出数量。 + * **雷达图**: 展示各部门在不同成果类型上的分布,分析“偏科”现象。 +* **历史趋势分析 (累计增长)**: + * **堆叠面积图**: 展示全单位及各部门的**累计**成果贡献趋势。 + * **双轴组合图**: 左轴展示全单位总量,右轴展示各部门独立增长曲线。 + +#### 3.3.1 批量导出与表单生成 +系统支持将成果数据以“电子档案”的形式批量导出,便于线下归档或上报。 +* **批量生成表单**: 在用户管理或成果列表中,可选择多条成果,系统会自动将每条成果的详情页渲染为图片。 +* **打包下载**: 系统将生成的表单图片及相关附件打包为 ZIP 文件,一键下载。 + +### 3.4 系统公告与通知 +系统内置了全员通知系统,支持富文本编辑和附件分发。 +* **发布公告**: 高级用户及以上角色可发布公告,支持置顶、富文本排版及多附件上传。 +* **自动报警**: 系统集成了监控机制,当服务器磁盘空间不足(默认阈值 10GB)时,会自动以“系统监控”身份发布置顶报警公告,提醒管理员处理。 + +### 3.5 数据一致性校验 +为了应对历史数据迁移或意外操作可能导致的数据脏读,系统提供了**全量数据校验工具**(仅超级管理员可用)。 +* **校验范围**: + * **完成人结构**: 检查 JSONB 数据格式是否符合规范。 + * **归属部门**: 检查成果归属部门是否存在于当前部门字典中。 + * **字典约束**: 检查成果类型、等级等字段是否在合法值范围内。 +* **一键修复**: 对于部分逻辑错误,系统提供指引或自动修复建议。 + +--- + +## 4. 技术架构与开发规范 + +### 4.1 总体架构 +系统采用经典的 **前后端分离 (SPA)** 架构,通过 RESTful API 进行通信。 +```mermaid +graph TD + Client[React 前端 SPA] -->|HTTPS/JSON| Nginx[Nginx 反向代理] + Nginx -->|Proxy Pass| Server[Node.js 后端 API] + Nginx -->|Static Files| Uploads[文件存储] + Server -->|SQL| DB[(PostgreSQL 17)] +``` + +### 4.2 目录结构 +#### 后端 (`server/`) +* `index.js`: 应用入口,负责中间件装载、路由分发、HTTPS 启动。 +* `routes/`: 路由定义层,按业务模块拆分 (auth, achievements, users...)。 +* `middleware/`: 中间件层 (auth.js 鉴权, auditLogger.js 审计)。 +* `utils/`: 工具库 (logger.js 日志, diskMonitor.js 监控)。 +* `scripts/`: 运维脚本 (setup.js 初始化, seed_data.js 种子数据)。 + +#### 前端 (`client/src/`) +* `pages/`: 页面组件,对应路由 (Dashboard, Upload, Audit...)。 +* `components/`: 通用业务组件 (MainLayout 布局, UserSearchSelect 用户搜索)。 +* `constants/`: 常量定义 (achievements.js 定义了10种成果类型的元数据)。 + +### 4.3 后端核心机制实现 + +#### 4.3.1 安全防护中间件链 +1. **CORS**: 跨域资源共享控制,严格限制 `origin` 来源,防止恶意跨域请求。 +2. **RateLimit (限流)**: 全局 100 req/min,认证接口 10 req/min。 +3. **MobileInterceptor (移动端拦截)**: 通过 User-Agent 识别并拦截移动设备。 +4. **Morgan (日志脱敏)**: 正则替换 URL 中的 `token`, `password` 为 `***`。 + +#### 4.3.2 审计日志系统 (AuditLogger) +* **机制**: 拦截所有非 GET 请求(修改性操作)。 +* **语义翻译**: 内置映射表,将 `POST /api/achievements` 自动翻译为“上传成果”。 +* **记录内容**: 操作人、IP、时间、耗时、操作结果。 + +#### 4.3.3 文件存储策略 +* **写入**: 始终写入 `UPLOAD_DIR` (主目录)。 +* **读取**: 先在 `UPLOAD_DIR` 查找,若未找到,遍历 `UPLOAD_FALLBACK_DIRS` (历史目录列表)。 +* **安全增强**: + * **Magic Number 检查**: 引入 `file-type` 库,通过文件二进制头校验真实类型,防止伪装文件上传。 + * **静态资源防护**: 强制设置 `Content-Disposition: attachment`,防止 HTML/JS 文件在浏览器中直接执行。 + +#### 4.3.4 稳定性保障机制 +* **内存泄漏防护**: 针对验证码等临时数据,使用定时任务 (`setInterval`) 自动清理过期条目,防止内存溢出。 +* **数据库连接保活**: 监听连接池 `error` 事件,在连接断开时安全处理,防止 Node.js 进程崩溃。 + +### 4.4 前端工程化实践 +* **常量驱动开发**: 在 `client/src/constants/achievements.js` 中定义所有成果类型的元数据,新增类型无需改动业务逻辑。 +* **组件复用**: 如 `UserSearchSelect` 组件,实现带有防抖的远程搜索下拉框。 + +--- + +## 5. 运维部署与灾难恢复 + +### 5.1 基础设施规划 +* **操作系统**: Windows Server 2016+ / Ubuntu 20.04 LTS+ / CentOS 7.9+ +* **运行环境**: Node.js v18.16.0+ (推荐 v20 LTS)。 + * *兼容性说明*: 系统内置了对 `fs.promises.statfs` 的特性检测,确保在旧版 Node.js 上也能正常运行。 +* **数据库**: PostgreSQL 17.x (必须支持 JSONB 类型) +* **Web 服务器**: Nginx 1.20+ + +### 5.2 Windows 环境部署实战 +1. **安装依赖**: 使用 `配置包` 安装 Node.js 和 PostgreSQL。 +2. **后端配置**: + * 复制 `.env.example` 为 `.env`。 + * 配置 `DB_PASSWORD`, `JWT_SECRET`, `UPLOAD_DIR`。 + * *环境变量支持*: 前端支持 `REACT_APP_API_URL` 环境变量,便于灵活配置 API 地址。 + * 运行 `npm install` 和 `npm run init-db`。 +3. **前端构建**: + * 运行 `npm install` 和 `npm run build`。 +4. **Nginx 配置**: + * 配置 `client_max_body_size 500M` 支持大文件。 + * 配置 `proxy_pass` 转发 API 请求。 + * 配置 `alias` 托管上传文件。 +5. **HTTPS 配置**: 使用 `mkcert` 生成自签名证书。 + +### 5.3 Linux 生产环境部署实战 +1. **环境构建**: 安装 Node.js, PostgreSQL, Nginx。 +2. **权限管理**: 创建专用用户 `stapp`,严禁使用 root 运行。 +3. **进程守护**: 使用 PM2 (`pm2 start index.js --name "st-backend" --time`)。 +4. **防火墙**: 仅开放 22, 80, 443 端口。 + +### 5.4 数据安全与灾难恢复 +#### 5.4.1 自动备份策略 +建议在 Linux 下使用 `crontab` 设置每日自动备份数据库。 + +#### 5.4.2 专用备份工具 (STBackupTool) +对于 Windows 用户,提供图形化工具: +* **一键备份**: 自动打包数据库 SQL 和上传文件为 ZIP 包。 +* **一键恢复**: 自动解压、导入数据、修复序列、还原文件。 + +#### 5.4.3 灾难恢复演练 +**场景:服务器硬盘彻底损坏,需迁移到新机器。** +1. **搭建新环境**: 安装 Node.js 和 PostgreSQL。 +2. **创建空数据库**: **绝对不要运行 `npm run init-db`!** 必须保持数据库为空。 +3. **执行恢复**: 使用 `STBackupTool` 导入备份包。 + +--- + +## 6. 安全防御体系 + +### 6.1 网络层防御 +* **反向代理隐藏**: Nginx 统一入口,隐藏后端端口。 +* **全站 HTTPS**: 强制 SSL 加密,防止中间人攻击。 +* **安全响应头**: 启用 `X-Frame-Options`, `X-XSS-Protection`。 +* **CORS 策略**: 严格限制跨域请求来源,防止 CSRF 攻击。 + +### 6.2 应用层防御 +* **SQL 注入防御**: 全面使用参数化查询。 +* **文件上传安全**: + * **白名单过滤**: 仅允许 PDF/Office/图片/压缩包。 + * **Magic Number 校验**: 检查文件二进制头,防止伪装文件。 + * **自动重命名**: 防止文件名冲突和路径注入。 +* **Token 保护**: 附件下载使用 `Authorization` 头传递 Token,避免 URL 泄露。 +* **防暴力破解**: 认证接口限流 (10次/分钟),验证码机制。 + +### 6.3 数据隐私保护 +* **密码存储**: bcrypt 加盐哈希。 +* **日志脱敏**: 自动替换日志中的敏感字段。 +* **真实 IP 追踪**: 配置 Nginx 传递 `X-Forwarded-For`。 + +### 6.4 权限安全 +* **精确匹配**: 使用 PostgreSQL 的 JSONB 操作符进行权限判断,消除因重名导致的权限漏洞。 +* **状态隔离**: 严格区分草稿、待审核、已通过状态下的操作权限。 + +--- + +## 7. API 接口规范 + +### 7.1 统一响应格式 +```json +{ + "success": true, + "data": { ... } // 业务数据 +} +``` + +### 7.2 核心接口定义 +* **成果上传**: `POST /api/achievements` (Multipart) +* **统计数据**: `GET /api/statistics` +* **认证**: `POST /api/auth/login` +* **日志**: `GET /api/logs` + +--- + +## 8. 数据库设计 + +### 8.1 核心表结构 +* **users**: 用户表 (id, username, password_hash, role, department...) +* **achievements**: 成果表 (id, type, status, contributors, assigned_departments...) + * *数据完整性*: 外键约束配置为 `ON DELETE SET NULL`,防止误删用户导致成果数据丢失。 +* **audit_logs**: 审计日志表 (id, user_id, method, url, description, status...) + +### 8.2 JSONB 的应用 +为了应对灵活的“完成人”列表,使用 PostgreSQL 的 `JSONB` 类型存储 `contributors` 字段 `[{name, phone, is_main}]`,避免了复杂的关联表,且查询性能极佳。 + +--- + +## 9. 常见问题 (FAQ) + +**Q: 为什么我提交了成果,但在列表里找不到?** +A: 默认列表只显示“我的成果”。请检查您是否是该成果的完成人。 + +**Q: 附件上传失败,提示“Network Error”?** +A: 可能是文件过大(超过500MB)或网络不稳定。建议在内网环境下操作。 + +**Q: 如何修改已通过审核的成果?** +A: 为了数据严谨性,已通过的成果不允许普通用户修改。请联系超级管理员进行“退回”或“修改”操作。 + +**Q: 手机无法访问系统?** +A: 系统开启了移动端拦截策略,仅允许 PC 浏览器访问,以确保数据安全。 + +## 10. 补充 +### 10.1 系统相关账号和密码 +| 类型 | 账号 | 密码 | +| :--- | :--- | :--- | +| 数据库 | postgre | 020416 | +| 服务器 | STsystem | STsystem | +| 超级管理员 | 18888888888 | admin123 | +| 系统维护员 | 19999999999 | maintainer123 | +### 10.2 运行服务器相关服务 +PostgreSQL自启动服务 +STsystem_local_backend 系统后端nssm注册服务 +STsystem_network_nginx Nginx网络代理的nssm注册服务 +### 10.3 阿里云短信认证服务 +| 分类 | 配置项 | 详细信息 | +| :--- | :--- | :--- | +| 平台 | 网址 | https://dypns.console.aliyun.com/overview | +| 资源 | 使用情况 | 初级购入300条,现剩余超80% | +| 签名 | 名称 | 速通互联验证码 | +| 签名 | 使用场景 | 发送测试短信 | +| 模板 | 名称 | 登录/注册模板 | +| 模板 | Code | 100001 | +| 模板 | 内容 | 您的验证码为 ${code}。尊敬的客户,以上验证码 ${min}分钟内有效,请注意保密,切勿告知他人。 | + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e61db09 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# STsystem + +科技成果转化管理系统。 + +这是一个前后端分离的内部业务系统,用于科技成果的录入、审核、统计分析、公告通知和基础数据维护,适用于科研院所、企事业单位等成果管理场景。 + +## 项目概览 + +- 前端:React 19 + Ant Design +- 后端:Node.js + Express +- 数据库:PostgreSQL 17 +- 部署:Nginx 反向代理,前后端分离部署 + +## 核心能力 + +- 成果全流程管理:录入、编辑、审核、归档、导出 +- 角色权限控制:普通用户、中级用户、高级用户、管理员、维护员、超级管理员 +- 数据统计分析:按部门、成果类型、年份等维度可视化分析 +- 系统公告与附件分发 +- 审计日志、限流、移动端拦截、附件类型校验等安全措施 +- AI 统计分析接口,基于脱敏后的聚合数据生成分析结论 + +## 目录结构 + +```text +STsystem/ +├─ client/ 前端项目 +├─ server/ 后端项目 +├─ database/ 数据库结构文件 +├─ static/ 静态页面资源 +├─ 配置包/ Windows 环境安装包与依赖 +├─ backup_tool.py 备份恢复工具 +├─ nginx.conf Nginx 配置示例 +├─ PROJECT_DOCUMENTATION.md 项目综合文档 +└─ 第一次升级.md 升级与上线说明 +``` + +## 本地开发 + +### 1. 安装依赖 + +根目录仅提供快捷脚本,实际依赖分别安装在 `client/` 和 `server/`: + +```bash +cd server +npm install + +cd ../client +npm install +``` + +### 2. 配置后端环境变量 + +复制 `server/.env.example` 为 `server/.env`,按实际环境填写数据库、JWT、上传目录和 AI 配置。 + +## 常用命令 + +在项目根目录执行: + +```bash +npm run server # 启动后端 +npm run client # 启动前端 +npm run build # 构建前端 +``` + +后端目录额外提供: + +```bash +npm run init-db +npm run seed-500k +``` + +注意:生产环境上线时不要误执行初始化或造数脚本,尤其是 `init-db`、`setup`、`seed` 一类命令。 + +## 生产部署要点 + +- 前端构建产物位于 `client/build/` +- 后端入口文件为 `server/index.js` +- 生产环境通常通过 Nginx 托管前端静态资源,并反向代理 `/api/` +- 上传目录由 `UPLOAD_DIR` / `UPLOAD_FALLBACK_DIRS` 控制 +- 建议保留服务器现有 `.env`,不要把本地开发环境配置直接覆盖到生产环境 + +## 文档 + +- 详细项目说明见 [PROJECT_DOCUMENTATION.md](./PROJECT_DOCUMENTATION.md) +- 升级与上线说明见 [第一次升级.md](./第一次升级.md) + +## 说明 + +本仓库应保存源码、配置示例和文档,不应提交以下运行时内容: + +- `server/.env` +- `node_modules` +- `server/uploads` +- `server/logs` +- 前端本地缓存和临时构建产物 diff --git a/SECURITY_PPT_NOTES.md b/SECURITY_PPT_NOTES.md new file mode 100644 index 0000000..d89585f --- /dev/null +++ b/SECURITY_PPT_NOTES.md @@ -0,0 +1,92 @@ +# 安全技术处理(PPT 右侧代码截图 + 左侧要点说明) + +本页定位:左侧“要点说明”,右侧“代码截图”。每一行要点对应一段代码截图(右侧可用 1~2 张拼接)。 + +--- + +## 版式建议(16:9) +- 左侧 40%:要点说明(5~7 条,配小图标) +- 右侧 60%:代码截图拼图(建议 3~4 块) +- 页脚:一行小字“安全策略均可在代码中追溯” + +--- + +## 左侧要点说明(可直接贴 PPT) + +**1. 认证与单点登录** +- JWT 校验 + 过期处理 +- token_version 版本号校验,旧设备强制下线 +- Token 支持 Header / Query,兼容下载接口 + +**2. 短信验证码认证(阿里云)** +- 阿里云短信通道(签名 + 模板) +- 验证码 2 分钟有效、60 秒冷却 +- 注册/重置均需验证码校验 + +**3. 接口安全与访问控制** +- 全局限流 + 认证接口更严限流 +- CORS 白名单限制 +- 移动端访问拦截(仅允许 PC) + +**4. 上传与附件安全** +- 扩展名白名单 +- Magic Number 校验真实类型 +- 可执行文件拦截 + 强制下载 + +**5. 审计与日志脱敏** +- 非 GET 操作全量审计入库 +- URL 脱敏(token/password/code) +- 日志分级 + 按天滚动 + +**6. 运维安全保障** +- 磁盘空间监控 +- 低于阈值自动公告告警 + +--- + +## 右侧代码截图清单(按块拼图) + +**块 A|认证与单点登录** +- 文件:`server/middleware/auth.js` +- 建议截图区域:`verifyToken` 函数(JWT 校验 + token_version) + +**块 B|短信验证码认证(阿里云)** +- 文件:`server/utils/sms.js` +- 建议截图区域:`sendVerifyCode` 调用 + 短信模板参数 + +**块 C|登录/注册/重置密码安全** +- 文件:`server/routes/auth.js` +- 建议截图区域: + - 发送验证码接口:冷却 + 过期 + - 重置密码:bcrypt + token_version 更新 + +**块 D|限流 + CORS + 移动端拦截** +- 文件:`server/index.js` +- 建议截图区域:`rateLimit` + `cors` + Mobile Interceptor + +**块 E|上传与附件安全** +- 文件:`server/routes/achievements.js` +- 建议截图区域:白名单 + FileType Magic Number 校验 + 拦截可执行 + +**块 F|审计日志与脱敏** +- 文件:`server/middleware/auditLogger.js` +- 建议截图区域:URL 脱敏 + 审计入库 + +**块 G|日志落盘** +- 文件:`server/utils/logger.js` +- 建议截图区域:winston daily rotate 配置 + +**块 H|磁盘空间告警** +- 文件:`server/utils/diskMonitor.js` +- 建议截图区域:阈值判断 + 生成系统公告 + +--- + +## 右侧拼图布局建议 +- 推荐 3 列 × 2 行小块拼图:A/B/C/D/E/F +- 若空间不足:A/D/E/F 四块即可(覆盖最关键安全点) + +--- + +## 页脚小字(可选) +“以上安全策略均在代码中可审计、可追踪、可复现。” diff --git a/TODO_assigned_departments_design.md b/TODO_assigned_departments_design.md new file mode 100644 index 0000000..9454c01 --- /dev/null +++ b/TODO_assigned_departments_design.md @@ -0,0 +1,159 @@ +# TODO: 成果归属部门设计评审 + +## 1. 文档目的 + +本文件用于说明当前系统“成果归属部门(`assigned_departments`)”的实现现状、已暴露的业务问题,以及推荐的改造方向,供管理层评审后再确定最终实施方案。 + +当前阶段仅做方案评审,不进行数据库结构变更。 + +--- + +## 2. 现有设计(当前线上逻辑) + +### 2.1 数据结构 + +- `achievements.assigned_departments`:`TEXT[]`,用于记录成果归属部门数组。 +- `achievements.contributors`:`JSONB`,记录完成人列表(含 `name/phone/isMain/ranking/...`)。 +- 统计与权限大量依赖 `assigned_departments`。 + +### 2.2 归属部门计算方式(新增/修改) + +当前归属部门是这样算的: + +1. 先确定主要完成人(`isMain=true`)。 +2. 用主要完成人手机号去 `users` 反查其部门。 +3. 将查到的部门去重后写入 `assigned_departments`。 + +这意味着:**成果归属只看“主要完成人”,不看其他参与完成人**。 + +### 2.3 “主要完成人”来源规则 + +- 论文:按角色自动推导(第一作者/通讯作者等)。 +- 项目/成果转化:由前端勾选 `isMain`。 +- 其他类型:按最小排名推导主要完成人。 + +### 2.4 领导部门字典的当前用途 + +- `dict_leader_departments` 当前主要用于“签批院领导”用户搜索过滤(如技术报告签批)。 +- 它不直接参与 `assigned_departments` 的计算。 + +### 2.5 依赖场景 + +- 列表与可见范围过滤(如按部门可见)。 +- 统计分析(按部门产出、趋势等)。 +- 字典删除联动(部门删除时,成果归属中的对应部门会被替换为“待定”)。 + +--- + +## 3. 已出现的业务问题 + +### 问题 A:院领导主完成人导致归属失真 + +当业务上院领导必须/经常被标记为主要完成人时,归属部门会集中到“院领导部门”,导致: + +- 业务承接部门贡献被淹没; +- 统计图偏向领导部门,失去决策价值; +- 跨部门协同成果无法准确反映。 + +### 问题 B:多部门参与信息丢失 + +一个成果可能有 3-4 个部门参与,但当前仅按主完成人计算,导致: + +- `assigned_departments` 不完整; +- 基于部门的权限与统计存在系统性偏差。 + +### 问题 C:语义混杂 + +当前“归属部门”既被当作统计口径,也隐含承载了“牵头责任”含义,但这两个概念在业务上并不等价。 + +--- + +## 4. 推荐改造方案(不改库结构,优先) + +## 4.1 目标 + +- 归属部门改为“参与部门口径”,提高统计与查询真实性。 +- 保持当前表结构和现有 API 兼容,降低上线风险。 + +## 4.2 核心规则(推荐) + +`assigned_departments` 改为按以下顺序计算: + +1. 从 `contributors` 中取所有完成人手机号; +2. 反查这些用户所属部门并去重; +3. 排除无效值(空、null 等); +4. 读取 `dict_leader_departments`: + - 默认将领导部门从归属集合剔除(防止“院领导部门吞噬”); +5. 如果剔除后为空: + - 回退到提交人部门; +6. 若提交人部门也不可用: + - 回退为 `['待定']`。 + +> 说明:该方案不需要新增字段,直接替换归属计算逻辑即可。 + +## 4.3 同步改造点 + +- 新增成果时:使用新规则计算。 +- 编辑成果时:使用同一套新规则重算。 +- 封装公共函数 `computeAssignedDepartments(...)`,避免两处逻辑分叉。 + +## 4.4 历史数据处理(建议) + +提供一次性回填脚本,重算历史成果 `assigned_departments`,否则新老口径并存会导致统计长期不一致。 + +建议执行流程: + +1. 开发机全量跑脚本; +2. 抽样对比典型成果(院领导参与、多部门参与、单部门项目); +3. 生产低峰执行; +4. 保留执行前快照,支持快速回滚。 + +--- + +## 5. 备选方案(供比较) + +### 方案 B:保留“主完成人口径”,仅加领导部门排除 + +- 优点:改动最小。 +- 缺点:多部门参与问题仍未解决,仍会有归属缺失。 +- 结论:不推荐作为长期方案。 + +### 方案 C:双口径(归属部门 + 牵头部门) + +- 优点:业务语义最清晰。 +- 缺点:通常需要新增字段与更多改造(前后端、统计、权限口径梳理)。 +- 结论:作为二期优化可评估;本期若要求“尽量不动数据库”,不优先。 + +--- + +## 6. 待管理决策项(请示时建议重点确认) + +- 是否同意“归属部门 = 参与部门口径”? +- 是否同意默认剔除领导部门字典中的部门? +- 剔除后为空时,是否同意“提交人部门优先,最后回退待定”? +- 是否同意执行历史数据回填(推荐执行)? +- 统计报表是否继续沿用 `assigned_departments`(本期建议继续沿用)? + +--- + +## 7. TODO 清单(待批准后执行) + +- [ ] 确认最终业务口径(本文件第 6 节) +- [ ] 设计并评审 `computeAssignedDepartments` 规则细节 +- [ ] 修改新增成果归属计算逻辑 +- [ ] 修改编辑成果归属重算逻辑 +- [ ] 增加回填脚本(仅更新 `assigned_departments`) +- [ ] 生成回填前后抽样对比报告 +- [ ] 验证权限与统计页面关键场景 +- [ ] 安排生产执行窗口与回滚预案 + +--- + +## 8. 风险与控制 + +- 风险:归属口径改变后,统计口径会发生可见变化。 +- 控制:上线公告中明确“统计口径优化”;保留回填前快照用于追溯。 + +- 风险:部分历史成果完成人手机号与用户表不一致,可能回退到“待定”。 +- 控制:先跑演练报告,输出异常清单再决定是否人工修正。 + diff --git a/backup_tool.py b/backup_tool.py new file mode 100644 index 0000000..e2ae3c7 --- /dev/null +++ b/backup_tool.py @@ -0,0 +1,472 @@ +import os +import sys +import shutil +import subprocess +import datetime +import zipfile +import json +import tkinter as tk +from tkinter import filedialog, messagebox, scrolledtext +import threading + +class ConfigManager: + def __init__(self): + self.config_file = "backup_config.json" + self.local_config = { + "project_root": "", + "pg_bin_path": "", + "last_backup_path": "" + } + self.env_config = {} + self.load_local_config() + + # 如果有项目根目录,尝试加载 .env + if self.local_config["project_root"]: + self.load_env(os.path.join(self.local_config["project_root"], "server", ".env")) + + def load_local_config(self): + """加载本地工具配置""" + if os.path.exists(self.config_file): + try: + with open(self.config_file, 'r', encoding='utf-8') as f: + saved = json.load(f) + self.local_config.update(saved) + except Exception as e: + print(f"加载配置文件失败: {e}") + + def save_local_config(self): + """保存本地工具配置""" + try: + with open(self.config_file, 'w', encoding='utf-8') as f: + json.dump(self.local_config, f, indent=2, ensure_ascii=False) + except Exception as e: + print(f"保存配置文件失败: {e}") + + def load_env(self, env_path): + """解析 .env 文件""" + self.env_config = {} + if not os.path.exists(env_path): + return False + + try: + with open(env_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if not line or line.startswith('#'): + continue + if '=' in line: + key, value = line.split('=', 1) + key = key.strip() + value = value.strip() + if (value.startswith('"') and value.endswith('"')) or \ + (value.startswith("'") and value.endswith("'")): + value = value[1:-1] + self.env_config[key] = value + return True + except Exception: + return False + + def get_env(self, key, default=None): + return self.env_config.get(key, default) + + def get_upload_paths(self): + """获取所有需要备份的文件路径""" + paths = [] + server_root = os.path.join(self.local_config["project_root"], "server") + + # 1. 主目录 + main_dir = self.get_env('UPLOAD_DIR', 'uploads') + if os.path.isabs(main_dir): + paths.append(main_dir) + else: + paths.append(os.path.abspath(os.path.join(server_root, main_dir))) + + # 2. 备用目录 + fallback_str = self.get_env('UPLOAD_FALLBACK_DIRS') + if fallback_str: + fallbacks = [p.strip() for p in fallback_str.split(',') if p.strip()] + for p in fallbacks: + abs_path = p if os.path.isabs(p) else os.path.abspath(os.path.join(server_root, p)) + if abs_path not in paths: + paths.append(abs_path) + + # 3. 默认 uploads 目录兜底 + default_uploads = os.path.abspath(os.path.join(server_root, 'uploads')) + if default_uploads not in paths: + paths.append(default_uploads) + + return paths + +class BackupApp: + def __init__(self, root): + self.root = root + self.root.title("ST系统 备份与恢复工具 (可配置版)") + self.root.geometry("700x600") + + self.config_mgr = ConfigManager() + + # 如果没有配置项目路径,尝试自动检测当前目录 + if not self.config_mgr.local_config["project_root"]: + current_dir = os.path.dirname(os.path.abspath(__file__)) + if os.path.exists(os.path.join(current_dir, "server", ".env")): + self.config_mgr.local_config["project_root"] = current_dir + self.config_mgr.load_env(os.path.join(current_dir, "server", ".env")) + self.config_mgr.save_local_config() + + # 如果没有配置 PG 路径,尝试自动检测 + if not self.config_mgr.local_config["pg_bin_path"]: + found_pg = self.find_pg_bin() + if found_pg: + self.config_mgr.local_config["pg_bin_path"] = found_pg + self.config_mgr.save_local_config() + + self.setup_ui() + self.check_status() + + def find_pg_bin(self): + """尝试自动查找 PostgreSQL bin 目录""" + try: + subprocess.run(['pg_dump', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + return "SYSTEM_PATH" # 表示在系统环境变量中 + except FileNotFoundError: + pass + + common_paths = [ + r"C:\Program Files\PostgreSQL", + r"C:\Program Files (x86)\PostgreSQL" + ] + for base in common_paths: + if os.path.exists(base): + for version in os.listdir(base): + bin_path = os.path.join(base, version, "bin") + if os.path.exists(os.path.join(bin_path, "pg_dump.exe")): + return bin_path + return "" + + def setup_ui(self): + # 1. 设置区域 + frame_settings = tk.LabelFrame(self.root, text="环境配置", padx=10, pady=10) + frame_settings.pack(fill=tk.X, padx=10, pady=5) + + # 项目路径 + tk.Label(frame_settings, text="项目根目录:").grid(row=0, column=0, sticky="w") + self.entry_project = tk.Entry(frame_settings, width=50) + self.entry_project.grid(row=0, column=1, padx=5) + self.entry_project.insert(0, self.config_mgr.local_config["project_root"]) + tk.Button(frame_settings, text="浏览...", command=self.browse_project).grid(row=0, column=2) + + # PG 路径 + tk.Label(frame_settings, text="PostgreSQL bin:").grid(row=1, column=0, sticky="w") + self.entry_pg = tk.Entry(frame_settings, width=50) + self.entry_pg.grid(row=1, column=1, padx=5) + self.entry_pg.insert(0, self.config_mgr.local_config["pg_bin_path"]) + tk.Button(frame_settings, text="浏览...", command=self.browse_pg).grid(row=1, column=2) + + tk.Button(frame_settings, text="保存并重新加载配置", command=self.save_settings, bg="#FF9800", fg="white").grid(row=2, column=1, pady=10) + + # 2. 备份路径区域 + frame_path = tk.LabelFrame(self.root, text="备份保存位置", padx=10, pady=5) + frame_path.pack(fill=tk.X, padx=10, pady=5) + + default_backup = self.config_mgr.local_config["last_backup_path"] or os.getcwd() + self.lbl_backup_path = tk.Label(frame_path, text=default_backup, relief=tk.SUNKEN, anchor="w", bg="white") + self.lbl_backup_path.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=(0, 10)) + tk.Button(frame_path, text="更改路径...", command=self.choose_backup_dir).pack(side=tk.RIGHT) + + # 3. 操作按钮 + frame_actions = tk.Frame(self.root, pady=10) + frame_actions.pack(fill=tk.X) + + self.btn_backup = tk.Button(frame_actions, text="一键备份", command=self.start_backup, + bg="#4CAF50", fg="white", font=("Microsoft YaHei", 12, "bold"), height=2, width=20) + self.btn_backup.pack(side=tk.LEFT, padx=40) + + self.btn_restore = tk.Button(frame_actions, text="一键恢复", command=self.start_restore, + bg="#2196F3", fg="white", font=("Microsoft YaHei", 12, "bold"), height=2, width=20) + self.btn_restore.pack(side=tk.RIGHT, padx=40) + + # 3.5 提示信息 + frame_tips = tk.Frame(self.root) + frame_tips.pack(fill=tk.X, pady=5) + tk.Label(frame_tips, text="⚠️ 恢复注意事项:请确保数据库为空(不要运行 init-db),否则会因表已存在而失败。", + fg="red", font=("Microsoft YaHei", 9)).pack() + + # 4. 信息显示 + self.lbl_status = tk.Label(self.root, text="正在检查配置...", fg="blue") + self.lbl_status.pack(pady=5) + + # 5. 日志 + tk.Label(self.root, text="运行日志:").pack(anchor="w", padx=10) + self.log_area = scrolledtext.ScrolledText(self.root, height=12) + self.log_area.pack(fill=tk.BOTH, expand=True, padx=10, pady=(0, 10)) + + def log(self, message): + timestamp = datetime.datetime.now().strftime("%H:%M:%S") + self.log_area.insert(tk.END, f"[{timestamp}] {message}\n") + self.log_area.see(tk.END) + + def browse_project(self): + path = filedialog.askdirectory(title="选择项目根目录 (包含 server 文件夹)") + if path: + self.entry_project.delete(0, tk.END) + self.entry_project.insert(0, path) + + def browse_pg(self): + path = filedialog.askdirectory(title="选择 PostgreSQL bin 目录") + if path: + self.entry_pg.delete(0, tk.END) + self.entry_pg.insert(0, path) + + def save_settings(self): + project_root = self.entry_project.get().strip() + pg_bin = self.entry_pg.get().strip() + + self.config_mgr.local_config["project_root"] = project_root + self.config_mgr.local_config["pg_bin_path"] = pg_bin + self.config_mgr.save_local_config() + + # 重新加载 .env + env_path = os.path.join(project_root, "server", ".env") + if self.config_mgr.load_env(env_path): + self.log("配置保存成功,已加载 .env 文件") + else: + self.log("配置保存成功,但无法找到或解析 .env 文件!") + + self.check_status() + + def check_status(self): + ready = True + msg = [] + + if not self.config_mgr.env_config: + ready = False + msg.append("未加载 .env 配置") + else: + db = self.config_mgr.get_env('DB_DATABASE') + msg.append(f"数据库: {db}") + + pg_path = self.config_mgr.local_config["pg_bin_path"] + if not pg_path and self.find_pg_bin() == "": + msg.append("PG工具: 未配置") + ready = False + elif pg_path == "SYSTEM_PATH": + msg.append("PG工具: 系统环境变量") + else: + msg.append(f"PG工具: {pg_path}") + + if ready: + self.lbl_status.config(text=" | ".join(msg), fg="green") + self.btn_backup.config(state=tk.NORMAL) + self.btn_restore.config(state=tk.NORMAL) + else: + self.lbl_status.config(text="配置不完整: " + " | ".join(msg), fg="red") + self.btn_backup.config(state=tk.DISABLED) + self.btn_restore.config(state=tk.DISABLED) + + def choose_backup_dir(self): + path = filedialog.askdirectory(initialdir=self.lbl_backup_path.cget("text"), title="选择备份保存位置") + if path: + self.lbl_backup_path.config(text=path) + self.config_mgr.local_config["last_backup_path"] = path + self.config_mgr.save_local_config() + self.log(f"备份保存路径已更改为: {path}") + + def get_pg_cmd(self, cmd): + pg_path = self.config_mgr.local_config["pg_bin_path"] + if pg_path and pg_path != "SYSTEM_PATH": + return os.path.join(pg_path, cmd) + return cmd + + def start_backup(self): + if not messagebox.askyesno("确认备份", "确定要开始备份吗?"): + return + threading.Thread(target=self.run_backup, daemon=True).start() + + def run_backup(self): + try: + self.log("=== 开始备份 ===") + save_path = self.lbl_backup_path.cget("text") + timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") + + # 临时目录 + temp_dir = os.path.join(save_path, f"temp_backup_{timestamp}") + os.makedirs(temp_dir, exist_ok=True) + + # 1. 数据库 + self.log("正在导出数据库...") + db_file = os.path.join(temp_dir, "database.sql") + env = os.environ.copy() + env['PGPASSWORD'] = self.config_mgr.get_env('DB_PASSWORD', '') + + cmd = [ + self.get_pg_cmd('pg_dump'), + '-h', self.config_mgr.get_env('DB_HOST', 'localhost'), + '-p', self.config_mgr.get_env('DB_PORT', '5432'), + '-U', self.config_mgr.get_env('DB_USER', 'postgres'), + '-F', 'p', '-f', db_file, + self.config_mgr.get_env('DB_DATABASE', 'stsystem') + ] + + startupinfo = subprocess.STARTUPINFO() + startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + + proc = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=startupinfo) + out, err = proc.communicate() + if proc.returncode != 0: + raise Exception(f"数据库备份失败: {err.decode('gbk', errors='ignore')}") + + # 2. 文件 + self.log("正在备份文件...") + files_dir = os.path.join(temp_dir, "files") + os.makedirs(files_dir) + + paths = self.config_mgr.get_upload_paths() + for src in paths: + if os.path.exists(src): + dirname = os.path.basename(src) + dest = os.path.join(files_dir, dirname) + if os.path.exists(dest): dest += f"_{paths.index(src)}" + shutil.copytree(src, dest) + + # 3. 打包 + self.log("正在打包...") + zip_name = f"STSystem_Backup_{timestamp}.zip" + zip_full_path = os.path.join(save_path, zip_name) + + with zipfile.ZipFile(zip_full_path, 'w', zipfile.ZIP_DEFLATED) as zf: + for root, dirs, files in os.walk(temp_dir): + for file in files: + fp = os.path.join(root, file) + arcname = os.path.relpath(fp, temp_dir) + zf.write(fp, arcname) + + shutil.rmtree(temp_dir) + self.log(f"备份成功: {zip_full_path}") + messagebox.showinfo("成功", f"备份已保存:\n{zip_full_path}") + + except Exception as e: + self.log(f"错误: {e}") + messagebox.showerror("错误", str(e)) + + def start_restore(self): + zip_path = filedialog.askopenfilename(filetypes=[("Zip", "*.zip")]) + if not zip_path: return + + msg = ( + "⚠️ 高风险操作警告 ⚠️\n\n" + "1. 此操作将覆盖数据库和文件。\n" + "2. 请确保目标数据库是【空数据库】(不要运行 init-db)。\n" + " 如果数据库中已有表,恢复将失败!\n" + "3. 请确保已停止 Node 后端服务。\n\n" + "确定要继续吗?" + ) + + if not messagebox.askyesno("确认恢复", msg, icon='warning'): + return + threading.Thread(target=self.run_restore, args=(zip_path,), daemon=True).start() + + def run_restore(self, zip_path): + try: + self.log("=== 开始恢复 ===") + temp_dir = os.path.join(os.path.dirname(zip_path), "temp_restore_extract") + if os.path.exists(temp_dir): shutil.rmtree(temp_dir) + os.makedirs(temp_dir) + + with zipfile.ZipFile(zip_path, 'r') as zf: + zf.extractall(temp_dir) + + # 1. 数据库 + self.log("恢复数据库...") + db_file = os.path.join(temp_dir, "database.sql") + if not os.path.exists(db_file): raise Exception("未找到 database.sql") + + env = os.environ.copy() + env['PGPASSWORD'] = self.config_mgr.get_env('DB_PASSWORD', '') + + cmd = [ + self.get_pg_cmd('psql'), + '-h', self.config_mgr.get_env('DB_HOST', 'localhost'), + '-p', self.config_mgr.get_env('DB_PORT', '5432'), + '-U', self.config_mgr.get_env('DB_USER', 'postgres'), + '-d', self.config_mgr.get_env('DB_DATABASE', 'stsystem'), + '-v', 'ON_ERROR_STOP=1', # 遇到错误立即停止 + '-f', db_file + ] + + startupinfo = subprocess.STARTUPINFO() + startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + proc = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=startupinfo) + out, err = proc.communicate() + + # 记录输出以便调试 + if out: self.log(f"PSQL OUT: {out.decode('gbk', errors='ignore')}") + if err: self.log(f"PSQL ERR: {err.decode('gbk', errors='ignore')}") + + if proc.returncode != 0: + err_msg = err.decode('gbk', errors='ignore') + if "already exists" in err_msg or "已经存在" in err_msg: + raise Exception(f"恢复失败: 数据库中已存在表或数据。\n请先清空数据库,或使用 scripts 中的脚本重置数据库。\n详细错误: {err_msg}") + raise Exception(f"数据库恢复失败: {err_msg}") + + # 1.5 修复序列 (防止主键冲突) + self.log("正在修复数据库序列...") + fix_seq_sql = """ + DO $$ + DECLARE + r RECORD; + BEGIN + FOR r IN + SELECT table_name, column_name + FROM information_schema.columns + WHERE table_schema = 'public' AND column_default LIKE 'nextval%' + LOOP + EXECUTE 'SELECT setval(' || quote_literal(pg_get_serial_sequence(r.table_name, r.column_name)) || ', COALESCE((SELECT MAX(' || quote_ident(r.column_name) || ') FROM ' || quote_ident(r.table_name) || '), 1), false)'; + END LOOP; + END $$; + """ + + cmd_fix = [ + self.get_pg_cmd('psql'), + '-h', self.config_mgr.get_env('DB_HOST', 'localhost'), + '-p', self.config_mgr.get_env('DB_PORT', '5432'), + '-U', self.config_mgr.get_env('DB_USER', 'postgres'), + '-d', self.config_mgr.get_env('DB_DATABASE', 'stsystem'), + '-c', fix_seq_sql + ] + + proc_fix = subprocess.Popen(cmd_fix, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=startupinfo) + out_fix, err_fix = proc_fix.communicate() + + if proc_fix.returncode != 0: + self.log(f"警告: 序列修复失败 (但这可能不影响使用): {err_fix.decode('gbk', errors='ignore')}") + else: + self.log("序列修复完成。") + + # 2. 文件 + self.log("恢复文件...") + # 恢复到主目录 + server_root = os.path.join(self.config_mgr.local_config["project_root"], "server") + target_dir = self.config_mgr.get_env('UPLOAD_DIR', 'uploads') + if not os.path.isabs(target_dir): + target_dir = os.path.abspath(os.path.join(server_root, target_dir)) + + if not os.path.exists(target_dir): os.makedirs(target_dir) + + files_src = os.path.join(temp_dir, "files") + if os.path.exists(files_src): + for root, dirs, files in os.walk(files_src): + for file in files: + shutil.copy2(os.path.join(root, file), os.path.join(target_dir, file)) + + shutil.rmtree(temp_dir) + self.log("恢复成功!") + messagebox.showinfo("成功", "恢复完成!请重启服务。") + + except Exception as e: + self.log(f"错误: {e}") + messagebox.showerror("错误", str(e)) + +if __name__ == "__main__": + root = tk.Tk() + app = BackupApp(root) + root.mainloop() diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/client/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..3193a04 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,20862 @@ +{ + "name": "client", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "client", + "version": "0.1.0", + "dependencies": { + "@ant-design/icons": "^6.1.0", + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.1", + "@testing-library/user-event": "^13.5.0", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-react": "^1.0.6", + "antd": "^6.1.4", + "axios": "^1.13.2", + "dayjs": "^1.11.10", + "file-saver": "^2.0.5", + "html2canvas": "^1.4.1", + "jszip": "^3.10.1", + "lodash": "^4.17.21", + "lucide-react": "^0.562.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", + "react-markdown": "^10.1.0", + "react-router-dom": "^7.12.0", + "react-scripts": "5.0.1", + "recharts": "^3.6.0", + "remark-gfm": "^4.0.1", + "web-vitals": "^2.1.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ant-design/colors": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-8.0.1.tgz", + "integrity": "sha512-foPVl0+SWIslGUtD/xBr1p9U4AKzPhNYEseXYRRo5QSzGACYZrQbe11AYJbYfAWnWSpGBx6JjBmSeugUsD9vqQ==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^3.0.0" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.0.2.tgz", + "integrity": "sha512-7KDVIigtqlamOLtJ0hbjECX/sDGDaJXsM/KHala8I/1E4lpl9RAO585kbVvh/k1rIrFAV6JeGkXmdWyYj9XvuA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-2.0.2.tgz", + "integrity": "sha512-Mq3Hm6fJuQeFNKSp3+yT4bjuhVbdrsyXE2RyfpJFL0xiYNZdaJ6oFaE3zFrzmHbmvTd2Wp3HCbRtkD4fU+v2ZA==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^2.0.1", + "@babel/runtime": "^7.23.2", + "@rc-component/util": "^1.4.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.0.tgz", + "integrity": "sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==", + "license": "MIT", + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.1.0.tgz", + "integrity": "sha512-KrWMu1fIg3w/1F2zfn+JlfNDU8dDqILfA5Tg85iqs1lf8ooyGlbkA+TkwfOKKgqpUmAiRY1PTFpuOU2DAIgSUg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^8.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/react-slick": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-2.0.0.tgz", + "integrity": "sha512-HMS9sRoEmZey8LsE/Yo6+klhlzU12PisjrVcydW3So7RdklyEd2qehyU6a7Yp+OYN72mgsYs3NFCyP2lCPFVqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "clsx": "^2.1.1", + "json2mq": "^0.2.0", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz", + "integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==", + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@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.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "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.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", + "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.5", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.4", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "license": "MIT" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", + "license": "CC0-1.0" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "license": "CC0-1.0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "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.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "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/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "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.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "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.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "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.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "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.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "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.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", + "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", + "license": "MIT", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/cascader": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.11.0.tgz", + "integrity": "sha512-VDiEsskThWi8l0/1Nquc9I4ytcMKQYAb9Jkm6wiX5O5fpcMRsm+b8OulBMbr/b4rFTl/2y2y4GdKqQ+2whD+XQ==", + "license": "MIT", + "dependencies": { + "@rc-component/select": "~1.5.0", + "@rc-component/tree": "~1.1.0", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/checkbox": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/checkbox/-/checkbox-1.0.1.tgz", + "integrity": "sha512-08yTH8m+bSm8TOqbybbJ9KiAuIATti6bDs2mVeSfu4QfEnyeF6X0enHVvD1NEAyuBWEAo56QtLe++MYs2D9XiQ==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/collapse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/collapse/-/collapse-1.1.2.tgz", + "integrity": "sha512-ilBYk1dLLJHu5Q74dF28vwtKUYQ42ZXIIDmqTuVy4rD8JQVvkXOs+KixVNbweyuIEtJYJ7+t+9GVD9dPc6N02w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-3.0.3.tgz", + "integrity": "sha512-V7gFF9O7o5XwIWafdbOtqI4BUUkEUkgdBwp6favy3xajMX/2dDqytFaiXlcwrpq6aRyPLp5dKLAG5RFKLXMeGA==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-2.0.1.tgz", + "integrity": "sha512-HyZbYm47s/YqtP6pKXNMjPEMaukyg7P0qVfgMLzr7YiFNMHbK2fKTAGzms9ykfGHSfyf75nBbgWw+hHkp+VImw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/dialog": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.5.1.tgz", + "integrity": "sha512-by4Sf/a3azcb89WayWuwG19/Y312xtu8N81HoVQQtnsBDylfs+dog98fTAvLinnpeoWG52m/M7QLRW6fXR3l1g==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.3", + "@rc-component/portal": "^2.0.0", + "@rc-component/util": "^1.0.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/drawer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/drawer/-/drawer-1.3.0.tgz", + "integrity": "sha512-rE+sdXEmv2W25VBQ9daGbnb4J4hBIEKmdbj0b3xpY+K7TUmLXDIlSnoXraIbFZdGyek9WxxGKK887uRnFgI+pQ==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/portal": "^2.0.0", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/dropdown": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/dropdown/-/dropdown-1.0.2.tgz", + "integrity": "sha512-6PY2ecUSYhDPhkNHHb4wfeAya04WhpmUSKzdR60G+kMNVUCX2vjT/AgTS0Lz0I/K6xrPMJ3enQbwVpeN3sHCgg==", + "license": "MIT", + "dependencies": { + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/@rc-component/form": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@rc-component/form/-/form-1.6.1.tgz", + "integrity": "sha512-enZC6XzQpX9UauV2kK9CpAZSc5F8S4/ThrgPhnclyJ6UzrPZIr5EZVgQWEaspPyWQ3RXoupC6mxM15pNvbd6kA==", + "license": "MIT", + "dependencies": { + "@rc-component/async-validator": "^5.0.3", + "@rc-component/util": "^1.6.2", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/image": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@rc-component/image/-/image-1.5.3.tgz", + "integrity": "sha512-/NR7QW9uCN8Ugar+xsHZOPvzPySfEhcW2/vLcr7VPRM+THZMrllMRv7LAUgW7ikR+Z67Ab67cgPp5K5YftpJsQ==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.0.0", + "@rc-component/portal": "^2.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/input": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/input/-/input-1.1.2.tgz", + "integrity": "sha512-Q61IMR47piUBudgixJ30CciKIy9b1H95qe7GgEKOmSJVJXvFRWJllJfQry9tif+MX2cWFXWJf/RXz4kaCeq/Fg==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@rc-component/input-number": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@rc-component/input-number/-/input-number-1.6.2.tgz", + "integrity": "sha512-Gjcq7meZlCOiWN1t1xCC+7/s85humHVokTBI7PJgTfoyw5OWF74y3e6P8PHX104g9+b54jsodFIzyaj6p8LI9w==", + "license": "MIT", + "dependencies": { + "@rc-component/mini-decimal": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mentions": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rc-component/mentions/-/mentions-1.6.0.tgz", + "integrity": "sha512-KIkQNP6habNuTsLhUv0UGEOwG67tlmE7KNIJoQZZNggEZl5lQJTytFDb69sl5CK3TDdISCTjKP3nGEBKgT61CQ==", + "license": "MIT", + "dependencies": { + "@rc-component/input": "~1.1.0", + "@rc-component/menu": "~1.2.0", + "@rc-component/textarea": "~1.1.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/menu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/menu/-/menu-1.2.0.tgz", + "integrity": "sha512-VWwDuhvYHSnTGj4n6bV3ISrLACcPAzdPOq3d0BzkeiM5cve8BEYfvkEhNoM0PLzv51jpcejeyrLXeMVIJ+QJlg==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/overflow": "^1.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/motion": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@rc-component/motion/-/motion-1.1.6.tgz", + "integrity": "sha512-aEQobs/YA0kqRvHIPjQvOytdtdRVyhf/uXAal4chBjxDu6odHckExJzjn2D+Ju1aKK6hx3pAs6BXdV9+86xkgQ==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-2.0.1.tgz", + "integrity": "sha512-AyarjoLU5YlxuValRi+w8JRH2Z84TBbFO2RoGWz9d8bSu0FqT8DtugH3xC3BV7mUwlmROFauyWuXFuq4IFbH+w==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/notification": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/notification/-/notification-1.2.0.tgz", + "integrity": "sha512-OX3J+zVU7rvoJCikjrfW7qOUp7zlDeFBK2eA3SFbGSkDqo63Sl4Ss8A04kFP+fxHSxMDIS9jYVEZtU1FNCFuBA==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/overflow": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/overflow/-/overflow-1.0.0.tgz", + "integrity": "sha512-GSlBeoE0XTBi5cf3zl8Qh7Uqhn7v8RrlJ8ajeVpEkNe94HWy5l5BQ0Mwn2TVUq9gdgbfEMUmTX7tJFAg7mz0Rw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/pagination": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/pagination/-/pagination-1.2.0.tgz", + "integrity": "sha512-YcpUFE8dMLfSo6OARJlK6DbHHvrxz7pMGPGmC/caZSJJz6HRKHC1RPP001PRHCvG9Z/veD039uOQmazVuLJzlw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/picker": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@rc-component/picker/-/picker-1.9.0.tgz", + "integrity": "sha512-OLisdk8AWVCG9goBU1dWzuH5QlBQk8jktmQ6p0/IyBFwdKGwyIZOSjnBYo8hooHiTdl0lU+wGf/OfMtVBw02KQ==", + "license": "MIT", + "dependencies": { + "@rc-component/overflow": "^1.0.0", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/trigger": "^3.6.15", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/@rc-component/portal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-2.2.0.tgz", + "integrity": "sha512-oc6FlA+uXCMiwArHsJyHcIkX4q6uKyndrPol2eWX8YPkAnztHOPsFIRtmWG4BMlGE5h7YIRE3NiaJ5VS8Lb1QQ==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/progress": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/progress/-/progress-1.0.2.tgz", + "integrity": "sha512-WZUnH9eGxH1+xodZKqdrHke59uyGZSWgj5HBM5Kwk5BrTMuAORO7VJ2IP5Qbm9aH3n9x3IcesqHHR0NWPBC7fQ==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.1.tgz", + "integrity": "sha512-LfLGNymzKdUPjXUbRP+xOhIWY4jQ+YMj5MmWAcgcAq1Ij8XP7tRmAXqyuv96XvLUBE/5cA8hLFl9eO1JQMujrA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/rate": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/rate/-/rate-1.0.1.tgz", + "integrity": "sha512-bkXxeBqDpl5IOC7yL7GcSYjQx9G8H+6kLYQnNZWeBYq2OYIv1MONd6mqKTjnnJYpV0cQIU2z3atdW0j1kttpTw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/resize-observer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/resize-observer/-/resize-observer-1.0.1.tgz", + "integrity": "sha512-r+w+Mz1EiueGk1IgjB3ptNXLYSLZ5vnEfKHH+gfgj7JMupftyzvUUl3fRcMZe5uMM04x0n8+G2o/c6nlO2+Wag==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/segmented": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/segmented/-/segmented-1.3.0.tgz", + "integrity": "sha512-5J/bJ01mbDnoA6P/FW8SxUvKn+OgUSTZJPzCNnTBntG50tzoP7DydGhqxp7ggZXZls7me3mc2EQDXakU3iTVFg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@rc-component/select": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.5.0.tgz", + "integrity": "sha512-Zz0hpToAfOdWo/1jj3dW5iooBNU8F6fVgVaYN4Jy1SL3Xcx2OO+IqiQnxqk/PjY6hg1HVt7LjkkrYvpJQyZxoQ==", + "license": "MIT", + "dependencies": { + "@rc-component/overflow": "^1.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/slider": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/slider/-/slider-1.0.1.tgz", + "integrity": "sha512-uDhEPU1z3WDfCJhaL9jfd2ha/Eqpdfxsn0Zb0Xcq1NGQAman0TWaR37OWp2vVXEOdV2y0njSILTMpTfPV1454g==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/steps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@rc-component/steps/-/steps-1.2.2.tgz", + "integrity": "sha512-/yVIZ00gDYYPHSY0JP+M+s3ZvuXLu2f9rEjQqiUDs7EcYsUYrpJ/1bLj9aI9R7MBR3fu/NGh6RM9u2qGfqp+Nw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/switch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rc-component/switch/-/switch-1.0.3.tgz", + "integrity": "sha512-Jgi+EbOBquje/XNdofr7xbJQZPYJP+BlPfR0h+WN4zFkdtB2EWqEfvkXJWeipflwjWip0/17rNbxEAqs8hVHfw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/table": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@rc-component/table/-/table-1.9.1.tgz", + "integrity": "sha512-FVI5ZS/GdB3BcgexfCYKi3iHhZS3Fr59EtsxORszYGrfpH1eWr33eDNSYkVfLI6tfJ7vftJDd9D5apfFWqkdJg==", + "license": "MIT", + "dependencies": { + "@rc-component/context": "^2.0.1", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.1.0", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/tabs": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@rc-component/tabs/-/tabs-1.7.0.tgz", + "integrity": "sha512-J48cs2iBi7Ho3nptBxxIqizEliUC+ExE23faspUQKGQ550vaBlv3aGF8Epv/UB1vFWeoJDTW/dNzgIU0Qj5i/w==", + "license": "MIT", + "dependencies": { + "@rc-component/dropdown": "~1.0.0", + "@rc-component/menu": "~1.2.0", + "@rc-component/motion": "^1.1.3", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/textarea": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/textarea/-/textarea-1.1.2.tgz", + "integrity": "sha512-9rMUEODWZDMovfScIEHXWlVZuPljZ2pd1LKNjslJVitn4SldEzq5vO1CL3yy3Dnib6zZal2r2DPtjy84VVpF6A==", + "license": "MIT", + "dependencies": { + "@rc-component/input": "~1.1.0", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tooltip": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/tooltip/-/tooltip-1.4.0.tgz", + "integrity": "sha512-8Rx5DCctIlLI4raR0I0xHjVTf1aF48+gKCNeAAo5bmF5VoR5YED+A/XEqzXv9KKqrJDRcd3Wndpxh2hyzrTtSg==", + "license": "MIT", + "dependencies": { + "@rc-component/trigger": "^3.7.1", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-2.2.1.tgz", + "integrity": "sha512-BUCrVikGJsXli38qlJ+h2WyDD6dYxzDA9dV3o0ij6gYhAq6ooT08SUMWOikva9v4KZ2BEuluGl5bPcsjrSoBgQ==", + "license": "MIT", + "dependencies": { + "@rc-component/portal": "^2.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/tree/-/tree-1.1.0.tgz", + "integrity": "sha512-HZs3aOlvFgQdgrmURRc/f4IujiNBf4DdEeXUlkS0lPoLlx9RoqsZcF0caXIAMVb+NaWqKtGQDnrH8hqLCN5zlA==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.0.0", + "@rc-component/util": "^1.2.1", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/tree-select": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.6.0.tgz", + "integrity": "sha512-UvEGmZT+gcVvRwImAZg3/sXw9nUdn4FmCs1rSIMWjEXEIAo0dTGmIyWuLCvs+1rGe9AZ7CHMPiQUEbdadwV0fw==", + "license": "MIT", + "dependencies": { + "@rc-component/select": "~1.5.0", + "@rc-component/tree": "~1.1.0", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/trigger": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-3.8.1.tgz", + "integrity": "sha512-walnDJnKq+OcPQFHBMN+YZmdHV8+6z75+Rgpc0dW1c+Dmy6O7tRueDs4LdbwjlryQfTdsw84PIkNPzcx5yQ7qQ==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/portal": "^2.2.0", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/upload": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/upload/-/upload-1.1.0.tgz", + "integrity": "sha512-LIBV90mAnUE6VK5N4QvForoxZc4XqEYZimcp7fk+lkE4XwHHyJWxpIXQQwMU8hJM+YwBbsoZkGksL1sISWHQxw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/util": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.7.0.tgz", + "integrity": "sha512-tIvIGj4Vl6fsZFvWSkYw9sAfiCKUXMyhVz6kpKyZbwyZyRPqv2vxYZROdaO1VB4gqTNvUZFXh6i3APUiterw5g==", + "license": "MIT", + "dependencies": { + "is-mobile": "^5.0.0", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/@rc-component/virtual-list": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/virtual-list/-/virtual-list-1.0.2.tgz", + "integrity": "sha512-uvTol/mH74FYsn5loDGJxo+7kjkO4i+y4j87Re1pxJBs0FaeuMuLRzQRGaXwnMcV1CxpZLi2Z56Rerj2M00fjQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.3.tgz", + "integrity": "sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz", + "integrity": "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "license": "MIT", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.1.tgz", + "integrity": "sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==", + "license": "MIT" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz", + "integrity": "sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", + "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.11.tgz", + "integrity": "sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@uppy/companion-client": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-2.2.2.tgz", + "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", + "license": "MIT", + "dependencies": { + "@uppy/utils": "^4.1.2", + "namespace-emitter": "^2.0.1" + } + }, + "node_modules/@uppy/core": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@uppy/core/-/core-2.3.4.tgz", + "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", + "license": "MIT", + "dependencies": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.1.1", + "@uppy/utils": "^4.1.3", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" + } + }, + "node_modules/@uppy/store-default": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-2.1.1.tgz", + "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==", + "license": "MIT" + }, + "node_modules/@uppy/utils": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-4.1.3.tgz", + "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", + "license": "MIT", + "dependencies": { + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/@uppy/xhr-upload": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", + "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", + "license": "MIT", + "dependencies": { + "@uppy/companion-client": "^2.2.2", + "@uppy/utils": "^4.1.2", + "nanoid": "^3.1.25" + }, + "peerDependencies": { + "@uppy/core": "^2.3.3" + } + }, + "node_modules/@wangeditor/basic-modules": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", + "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", + "license": "MIT", + "dependencies": { + "is-url": "^1.2.4" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/code-highlight": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", + "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.23.0" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/core": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.19.tgz", + "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", + "license": "MIT", + "dependencies": { + "@types/event-emitter": "^0.3.3", + "event-emitter": "^0.3.5", + "html-void-elements": "^2.0.0", + "i18next": "^20.4.0", + "scroll-into-view-if-needed": "^2.2.28", + "slate-history": "^0.66.0" + }, + "peerDependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/core/node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", + "license": "MIT" + }, + "node_modules/@wangeditor/core/node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmjs.org/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/@wangeditor/editor": { + "version": "5.1.23", + "resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.23.tgz", + "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", + "license": "MIT", + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.7", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.19", + "@wangeditor/list-module": "^1.0.5", + "@wangeditor/table-module": "^1.1.4", + "@wangeditor/upload-image-module": "^1.0.2", + "@wangeditor/video-module": "^1.1.4", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor-for-react": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@wangeditor/editor-for-react/-/editor-for-react-1.0.6.tgz", + "integrity": "sha512-KJNSfgMr5Blzae3oyaiz20flMKHZHnvsz4bCYQKDCUs/qkvC+xNTnwedlCmhGP187oPWPEypCIYI8Zg6sz0psQ==", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": ">=1.1.0", + "@wangeditor/editor": ">=5.1.0", + "react": ">=17.0.2", + "react-dom": ">=17.0.2" + } + }, + "node_modules/@wangeditor/list-module": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@wangeditor/list-module/-/list-module-1.0.5.tgz", + "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/table-module": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@wangeditor/table-module/-/table-module-1.1.4.tgz", + "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/upload-image-module": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", + "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", + "license": "MIT", + "peerDependencies": { + "@uppy/core": "^2.0.3", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "1.x", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.foreach": "^4.5.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/video-module": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@wangeditor/video-module/-/video-module-1.1.4.tgz", + "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", + "license": "MIT", + "peerDependencies": { + "@uppy/core": "^2.1.4", + "@uppy/xhr-upload": "^2.0.7", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/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.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antd": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/antd/-/antd-6.1.4.tgz", + "integrity": "sha512-ZSafdq6pZ94GvaCjNx2yS+zeTbL1DRukc6uuarMu1K7ptx6MSZbjyFUO4rHIRNhi5a8Zp2frxFBIxYViiTgecQ==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^8.0.0", + "@ant-design/cssinjs": "^2.0.1", + "@ant-design/cssinjs-utils": "^2.0.2", + "@ant-design/fast-color": "^3.0.0", + "@ant-design/icons": "^6.1.0", + "@ant-design/react-slick": "~2.0.0", + "@babel/runtime": "^7.28.4", + "@rc-component/cascader": "~1.11.0", + "@rc-component/checkbox": "~1.0.1", + "@rc-component/collapse": "~1.1.2", + "@rc-component/color-picker": "~3.0.3", + "@rc-component/dialog": "~1.5.1", + "@rc-component/drawer": "~1.3.0", + "@rc-component/dropdown": "~1.0.2", + "@rc-component/form": "~1.6.0", + "@rc-component/image": "~1.5.3", + "@rc-component/input": "~1.1.2", + "@rc-component/input-number": "~1.6.2", + "@rc-component/mentions": "~1.6.0", + "@rc-component/menu": "~1.2.0", + "@rc-component/motion": "~1.1.6", + "@rc-component/mutate-observer": "^2.0.1", + "@rc-component/notification": "~1.2.0", + "@rc-component/pagination": "~1.2.0", + "@rc-component/picker": "~1.9.0", + "@rc-component/progress": "~1.0.2", + "@rc-component/qrcode": "~1.1.1", + "@rc-component/rate": "~1.0.1", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/segmented": "~1.3.0", + "@rc-component/select": "~1.5.0", + "@rc-component/slider": "~1.0.1", + "@rc-component/steps": "~1.2.2", + "@rc-component/switch": "~1.0.3", + "@rc-component/table": "~1.9.1", + "@rc-component/tabs": "~1.7.0", + "@rc-component/textarea": "~1.1.2", + "@rc-component/tooltip": "~1.4.0", + "@rc-component/tour": "~2.2.1", + "@rc-component/tree": "~1.1.0", + "@rc-component/tree-select": "~1.6.0", + "@rc-component/trigger": "^3.8.1", + "@rc-component/upload": "~1.1.0", + "@rc-component/util": "^1.7.0", + "clsx": "^2.1.1", + "dayjs": "^1.11.11", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "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.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "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.1", + "caniuse-lite": "^1.0.30001760", + "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/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", + "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/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/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "license": "MIT", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.12", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.12.tgz", + "integrity": "sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "license": "MIT", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "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.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/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/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001762", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", + "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==", + "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/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/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/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", + "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "license": "MIT", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "license": "CC0-1.0", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "license": "MIT" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "license": "BSD-2-Clause" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/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/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "license": "MIT", + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "license": "BSD-2-Clause" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.1", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/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/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-toolkit": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.43.0.tgz", + "integrity": "sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/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/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "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-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "license": "BSD-3-Clause", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "license": "MIT", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "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/eslint/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "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/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "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-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "license": "MIT" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "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.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", + "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", + "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.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/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-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "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": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "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.npmjs.org/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.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-url-attributes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.5.tgz", + "integrity": "sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/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/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/i18next": { + "version": "20.6.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "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/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==", + "license": "MIT" + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-mobile": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-5.0.0.tgz", + "integrity": "sha512-Tz/yndySvLAEXh+Uk8liFCxOwVH6YutuR74utvOcu7I9Di+DwM0mtdPVZNaVvvBUM2OXxne/NhOs1zAO7riusQ==", + "license": "MIT" + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "license": "MIT", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "license": "MIT", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "license": "MIT", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/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/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.562.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", + "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "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.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "license": "ISC", + "dependencies": { + "wildcard": "^1.1.0" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.9.tgz", + "integrity": "sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==", + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.8", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "gopd": "^1.2.0", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "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/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "license": "CC0-1.0", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "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-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "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-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "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-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.28.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.2.tgz", + "integrity": "sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "license": "MIT", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "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/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.3" + } + }, + "node_modules/react-error-overlay": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", + "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/react-markdown": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", + "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", + "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", + "license": "MIT", + "dependencies": { + "react-router": "7.12.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.6.0.tgz", + "integrity": "sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==", + "license": "MIT", + "workspaces": [ + "www" + ], + "dependencies": { + "@reduxjs/toolkit": "1.x.x || 2.x.x", + "clsx": "^2.1.1", + "decimal.js-light": "^2.5.1", + "es-toolkit": "^1.39.3", + "eventemitter3": "^5.0.1", + "immer": "^10.1.1", + "react-redux": "8.x.x || 9.x.x", + "reselect": "5.1.1", + "tiny-invariant": "^1.3.3", + "use-sync-external-store": "^1.2.2", + "victory-vendor": "^37.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/recharts/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "license": "CC0-1.0" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slate": { + "version": "0.72.8", + "resolved": "https://registry.npmjs.org/slate/-/slate-0.72.8.tgz", + "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", + "license": "MIT", + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/slate-history": { + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.66.0.tgz", + "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, + "node_modules/snabbdom": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.6.3.tgz", + "integrity": "sha512-W2lHLLw2qR2Vv0DcMmcxXqcfdBaIcoN+y/86SmHv8fn4DazEQSH6KN3TjZcWvwujW56OHiiirsbHWZb4vx/0fg==", + "license": "MIT", + "engines": { + "node": ">=12.17.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/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/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==", + "license": "MIT" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "license": "MIT", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/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/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "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/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "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/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "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/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "license": "MIT" + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "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.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "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.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/victory-vendor": { + "version": "37.3.6", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", + "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz", + "integrity": "sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==", + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.104.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", + "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.4", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "license": "MIT", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==", + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "license": "MIT", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "deprecated": "The work that was done in this beta branch won't be included in future versions", + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "license": "MIT", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "license": "MIT" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..c3c584d --- /dev/null +++ b/client/package.json @@ -0,0 +1,54 @@ +{ + "name": "client", + "version": "0.1.0", + "private": true, + "dependencies": { + "@ant-design/icons": "^6.1.0", + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.1", + "@testing-library/user-event": "^13.5.0", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-react": "^1.0.6", + "antd": "^6.1.4", + "axios": "^1.13.2", + "dayjs": "^1.11.10", + "file-saver": "^2.0.5", + "html2canvas": "^1.4.1", + "jszip": "^3.10.1", + "lodash": "^4.17.21", + "lucide-react": "^0.562.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", + "react-markdown": "^10.1.0", + "react-router-dom": "^7.12.0", + "react-scripts": "5.0.1", + "recharts": "^3.6.0", + "remark-gfm": "^4.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/client/public/index.html b/client/public/index.html new file mode 100644 index 0000000..7aff133 --- /dev/null +++ b/client/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + 科技成果管理系统 + + + +
+ + + diff --git a/client/public/logo.jpg b/client/public/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2344c5834c7db009a401c5e894080d8dc8a0dcc5 GIT binary patch literal 204282 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 |Ne_ti1jk7eC`YAPrhg>1UP;!R~ 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 aX18A<0$yB`rkqd$D>P4L3y-Q-JpNxGQOIln literal 0 HcmV?d00001 diff --git a/client/public/logo.png b/client/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7d1c022af8ec3433aafdd01ecfb154c7ec1abc4a GIT binary patch literal 1143526 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≦̸d97 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 -z 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

}4sEA>Z!(lxWLitD1gF1yLH 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®GP1!SHV}N2gr=25=CZkbRu~qE`Z^| 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�_m7vQ0$&-+vH#Ty_P$3cLG~6u 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 `D%IL2y*_x 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�c5~h7ul-s%mB0s~-;i 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

^U>k3R8**-4kKXop;ee%ZcfevYnQiR!35 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 NAV&ITs2Zdz_TRvpy7d46 literal 0 HcmV?d00001 diff --git a/client/public/logo192.png b/client/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/client/public/manifest.json b/client/public/manifest.json new file mode 100644 index 0000000..675875c --- /dev/null +++ b/client/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "科技成果管理", + "name": "科技成果管理系统", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/client/public/robots.txt b/client/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/client/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/client/src/App.css b/client/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/client/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/client/src/App.js b/client/src/App.js new file mode 100644 index 0000000..75a89e2 --- /dev/null +++ b/client/src/App.js @@ -0,0 +1,70 @@ +import React, { Suspense, lazy } from 'react'; +import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; +import { ConfigProvider, Spin } from 'antd'; +import zhCN from 'antd/locale/zh_CN'; +import Layout from './components/MainLayout'; + +// 懒加载页面组件 +const Login = lazy(() => import('./pages/Login')); +const Register = lazy(() => import('./pages/Register')); +const ResetPassword = lazy(() => import('./pages/ResetPassword')); +const Dashboard = lazy(() => import('./pages/Dashboard')); +const UploadPage = lazy(() => import('./pages/Upload')); +const Audit = lazy(() => import('./pages/Audit')); +const UserManagement = lazy(() => import('./pages/UserManagement')); +const Statistics = lazy(() => import('./pages/Statistics')); +const DictionaryManagement = lazy(() => import('./pages/DictionaryManagement')); +const DataValidation = lazy(() => import('./pages/DataValidation')); +const SystemLogs = lazy(() => import('./pages/SystemLogs')); +const Notifications = lazy(() => import('./pages/Notifications')); + +// 加载中组件 +const PageLoading = () => ( +

+); + +function App() { + return ( + + + }> + + } /> + } /> + } /> + }> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + + + + ); +} + +export default App; diff --git a/client/src/App.test.js b/client/src/App.test.js new file mode 100644 index 0000000..1f03afe --- /dev/null +++ b/client/src/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/client/src/components/AchievementDetails.js b/client/src/components/AchievementDetails.js new file mode 100644 index 0000000..d8e0b80 --- /dev/null +++ b/client/src/components/AchievementDetails.js @@ -0,0 +1,163 @@ +import React, { useState, useEffect } from 'react'; +import { Modal, Button, message } from 'antd'; +import { DownloadOutlined, PictureOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import html2canvas from 'html2canvas'; +import API_BASE_URL from '../config'; +import AchievementFormRenderer from './AchievementFormRenderer'; + +const AchievementDetails = ({ id, open, onClose }) => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + + const fetchDetails = React.useCallback(async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/${id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + setData(response.data); + } catch (error) { + message.error('获取详情失败'); + } finally { + setLoading(false); + } + }, [id]); + + useEffect(() => { + if (open && id) { + fetchDetails(); + } + }, [open, id, fetchDetails]); + + const handleDownloadAttachment = async () => { + if (data?.attachments && data.attachments.length > 0) { + const hide = message.loading('正在打包下载...', 0); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/${id}/attachments/zip`, { + headers: { Authorization: `Bearer ${token}` }, + responseType: 'blob' + }); + + const url = window.URL.createObjectURL(new Blob([response.data])); + const link = document.createElement('a'); + link.href = url; + + let filename = `成果附件_${data.name || id}.zip`; + const contentDisposition = response.headers['content-disposition']; + if (contentDisposition) { + const filenameMatch = contentDisposition.match(/filename\*=UTF-8''(.+)/) || contentDisposition.match(/filename="(.+)"/); + if (filenameMatch && filenameMatch[1]) { + filename = decodeURIComponent(filenameMatch[1]); + } + } + + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + link.remove(); + window.URL.revokeObjectURL(url); + message.success('下载已开始'); + } catch (error) { + console.error('下载失败:', error); + message.error('下载失败,请稍后重试'); + } finally { + hide(); + } + } else { + message.warning('该成果没有附件'); + } + }; + + const handleDownloadImage = async () => { + const element = document.getElementById('achievement-detail-content'); + if (!element) return; + + const hideMessage = message.loading('正在生成图片...', 0); + const EXPORT_WIDTH = 1100; + + const container = document.createElement('div'); + container.style.position = 'fixed'; + container.style.top = '0'; + container.style.left = '-100000px'; + container.style.zIndex = '-9999'; + container.style.width = `${EXPORT_WIDTH}px`; + container.style.backgroundColor = '#fff'; + container.style.padding = '40px'; + container.style.boxSizing = 'border-box'; + container.style.overflow = 'visible'; + document.body.appendChild(container); + + const header = document.createElement('div'); + header.style.textAlign = 'center'; + header.style.marginBottom = '30px'; + header.style.borderBottom = '2px solid #1890ff'; + header.style.paddingBottom = '20px'; + header.innerHTML = ` +
+ +

科技成果管理表单

+
+
生成时间:${new Date().toLocaleString()}
+ `; + container.appendChild(header); + + const contentClone = element.cloneNode(true); + contentClone.style.overflow = 'visible'; + container.appendChild(contentClone); + + try { + const exportWidth = Math.max(container.scrollWidth, container.offsetWidth); + const exportHeight = Math.max(container.scrollHeight, container.offsetHeight); + + const canvas = await html2canvas(container, { + useCORS: true, + scale: 2, + backgroundColor: '#ffffff', + width: exportWidth, + height: exportHeight, + windowWidth: exportWidth, + windowHeight: exportHeight, + scrollX: 0, + scrollY: 0 + }); + + const link = document.createElement('a'); + link.download = `成果表单_${data.name || '未命名'}.png`; + link.href = canvas.toDataURL('image/png'); + link.click(); + message.success('图片已下载'); + } catch (err) { + console.error(err); + message.error('生成图片失败'); + } finally { + document.body.removeChild(container); + hideMessage(); + } + }; + + return ( + 关闭, + , + + ]} + width={800} + > + {data ? ( + + ) : ( +
加载中...
+ )} +
+ ); +}; + +export default AchievementDetails; \ No newline at end of file diff --git a/client/src/components/AchievementEdit.js b/client/src/components/AchievementEdit.js new file mode 100644 index 0000000..b4df529 --- /dev/null +++ b/client/src/components/AchievementEdit.js @@ -0,0 +1,468 @@ +import React, { useState, useEffect, useCallback } from 'react'; +import { Modal, Form, Input, DatePicker, InputNumber, message, Spin, Divider, Space, Checkbox, Button, Select, Alert } from 'antd'; +import { PlusOutlined, MinusCircleOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import dayjs from 'dayjs'; +import API_BASE_URL from '../config'; +import UserSearchSelect from './UserSearchSelect'; +import { maskPhone } from '../utils/phoneMask'; +import { + nameLabels, + dateLabels, + roleOptions, + contributorAddButtonLabels, + contributorMainLabels, + contributorSectionTitles, + nameTips, + sourceTips +} from '../constants/achievements'; + +const { Option } = Select; + +const AchievementEdit = ({ id, open, onClose, onSave }) => { + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false); + const [data, setData] = useState(null); + const [dicts, setDicts] = useState({ + organizations: [], + 'award-types': [], + 'award-levels': [], + 'paper-types': [], + 'standard-types': [], + 'project-categories': [] + }); + + const fetchDicts = useCallback(async () => { + const types = ['organizations', 'award-types', 'award-levels', 'paper-types', 'standard-types', 'project-categories']; + const token = localStorage.getItem('token'); + try { + const results = await Promise.all( + types.map(t => axios.get(`${API_BASE_URL}/api/dictionaries/${t}`, { + headers: { Authorization: `Bearer ${token}` } + })) + ); + const newDicts = {}; + types.forEach((t, index) => { + newDicts[t] = results[index].data; + }); + setDicts(newDicts); + } catch (error) { + console.error('获取字典失败', error); + } + }, []); + + const fetchDetails = useCallback(async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/${id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + const achievement = response.data; + setData(achievement); + + // 处理日期字段 + const formData = { + ...achievement.details, + name: achievement.name, + achievement_date: achievement.achievement_date ? dayjs(achievement.achievement_date) : null, + remarks: achievement.remarks + }; + + // 统一处理完成人数据,适配 UserSearchSelect + const contributors = achievement.contributors || []; + formData.contributors = contributors.map(c => ({ + user: JSON.stringify({ real_name: c.name, phone: c.phone }), + role: c.role, + isMain: c.isMain, + ranking: c.ranking + })); + + Object.keys(formData).forEach(key => { + if (key.includes('date') && formData[key] && key !== 'achievement_date') { + formData[key] = dayjs(formData[key]); + } + }); + + form.setFieldsValue(formData); + } catch (error) { + message.error('获取详情失败'); + } finally { + setLoading(false); + } + }, [id, form]); + + useEffect(() => { + if (open && id) { + fetchDetails(); + fetchDicts(); + } + }, [open, id, fetchDetails, fetchDicts]); + + const handleOk = async () => { + try { + const values = await form.validateFields(); + + // 前端去重校验 + const contributors = values.contributors || []; + const phoneSet = new Set(); + for (const c of contributors) { + if (c.user) { + const u = JSON.parse(c.user); + if (phoneSet.has(u.phone)) { + message.error(`完成人列表中存在重复的员工:${u.real_name} (${maskPhone(u.phone)})。请删除重复项。`); + return; + } + phoneSet.add(u.phone); + } + } + + // 排名去重校验 + if (!['project', 'transformation'].includes(data.type)) { + const rankingSet = new Set(); + for (const c of contributors) { + if (c.ranking) { + if (rankingSet.has(c.ranking)) { + message.error(`完成人排名不能重复:第 ${c.ranking} 名出现了多次。`); + return; + } + rankingSet.add(c.ranking); + } + } + } + + const token = localStorage.getItem('token'); + + const finalContributors = (values.contributors || []).map(c => { + const u = c.user ? JSON.parse(c.user) : {}; + return { + name: u.real_name, + phone: u.phone, + role: c.role, + isMain: c.isMain, + ranking: c.ranking + }; + }).filter(c => c.name); + + const { name, achievement_date, remarks, contributors: _ignoredContributors, ...details } = values; + + await axios.put(`${API_BASE_URL}/api/achievements/${id}`, { + name, + contributors: finalContributors, + achievement_date: achievement_date ? achievement_date.format('YYYY-MM-DD') : null, + remarks, + details + }, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('修改成功'); + onSave(); + onClose(); + } catch (error) { + if (error.response) { + message.error(error.response.data.message || '修改失败'); + } + } + }; + + const renderFields = () => { + if (!data) return null; + const type = data.type; + const hasRanking = !['project', 'transformation'].includes(type); + const useCheckbox = ['project', 'transformation'].includes(type); + const isPaper = type === 'paper'; + + const commonFields = ( + <> + {nameTips[type] && ( + + )} + + + + + + {contributorSectionTitles[type] || contributorSectionTitles.default} + + + {(fields, { add, remove }) => ( + <> + {fields.length > 0 && ( + + + *姓名 + + + {hasRanking && ( + + *排名 + + )} + + {isPaper && ( + + *角色 + + )} + + {useCheckbox && ( + + {contributorMainLabels[type] || contributorMainLabels.default} + + )} + + )} + {fields.map(({ key, name, ...restField }) => ( + + + + + + {hasRanking && ( + + + + )} + + {isPaper && ( + + + + )} + + {useCheckbox && ( + + + {contributorMainLabels[type] || contributorMainLabels.default} + + + )} + + {fields.length > 1 && ( + remove(name)} /> + )} + + ))} + + + + + )} + + + + + + + + + ); + + switch (type) { + case 'paper': + return ( + <> + {commonFields} + + + + + + + + + + + + ); + case 'project': + return ( + <> + {commonFields} + + + + {sourceTips[type] && ( + + )} + + + ); + case 'award': + return ( + <> + {commonFields} + + + + + + + + + + + ); + case 'standard': + return ( + <> + {commonFields} + + + + + + + ); + case 'monograph': + return ( + <> + {commonFields} + + + + ); + case 'report': + return ( + <> + {commonFields} + + + + ); + case 'plan': + return ( + <> + {commonFields} + + ); + case 'patent': + return ( + <> + {commonFields} + + + + + + + + + ); + case 'transformation': + return ( + <> + {commonFields} + + + + + + + ); + case 'software': + return ( + <> + {commonFields} + + + + + + + + + + + + ); + default: + return null; + } + }; + + return ( + + +
+ {renderFields()} +
+
+
+ ); +}; + +export default AchievementEdit; diff --git a/client/src/components/AchievementFormRenderer.js b/client/src/components/AchievementFormRenderer.js new file mode 100644 index 0000000..69cf0fb --- /dev/null +++ b/client/src/components/AchievementFormRenderer.js @@ -0,0 +1,284 @@ +import React from 'react'; +import { Descriptions, Tag, Space, Divider, Table, Button, message } from 'antd'; +import { DownloadOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; +import { + achievementTypes, + fieldLabels, + nameLabels, + dateLabels +} from '../constants/achievements'; + +const AchievementFormRenderer = ({ data }) => { + if (!data) return null; + + const SPLIT_CONTRIBUTOR_THRESHOLD = 8; + const contributors = Array.isArray(data.contributors) ? data.contributors : []; + const shouldSplitContributors = contributors.length > SPLIT_CONTRIBUTOR_THRESHOLD; + const splitIndex = Math.ceil(contributors.length / 2); + const leftContributors = contributors.slice(0, splitIndex); + const rightContributors = contributors.slice(splitIndex); + + const getContributorColumns = (isSplit = false) => [ + { + title: '排名', + dataIndex: 'ranking', + key: 'ranking', + width: isSplit ? 56 : 72, + render: (ranking) => ranking || '-' + }, + { title: '姓名', dataIndex: 'name', key: 'name', ...(isSplit ? {} : { width: 180 }), render: (name) =>
{name || '-'}
}, + { + title: '角色', + dataIndex: 'role', + key: 'role', + ...(isSplit ? {} : { width: 260 }), + render: (role, record) => ( + + {role || (record.isMain ? '主要完成人' : '完成人')} + {record.isMain && 主要} + + ) + } + ]; + + const getTypeName = (typeKey) => { + const type = achievementTypes.find((t) => t.key === typeKey); + return type ? type.label : typeKey; + }; + + const formatTwoLineLabel = (label) => { + const text = String(label || '').trim(); + if (!text) return ''; + + if (text.length <= 2) { + return ( + + {text} +   + + ); + } + + const breakIndex = Math.ceil(text.length / 2); + return ( + + {text.slice(0, breakIndex)} + {text.slice(breakIndex)} + + ); + }; + + const handleDownloadAttachment = async (file) => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/attachments/${file.id}/download`, { + headers: { Authorization: `Bearer ${token}` }, + responseType: 'blob' + }); + + let filename = file.file_name || 'attachment'; + const contentDisposition = response.headers['content-disposition']; + if (contentDisposition) { + const utf8Name = contentDisposition.match(/filename\\*=UTF-8''(.+)/); + const normalName = contentDisposition.match(/filename="(.+)"/); + if (utf8Name && utf8Name[1]) { + filename = decodeURIComponent(utf8Name[1]); + } else if (normalName && normalName[1]) { + filename = normalName[1]; + } + } + + const url = window.URL.createObjectURL(new Blob([response.data])); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + link.remove(); + window.URL.revokeObjectURL(url); + } catch (error) { + message.error('下载失败,请稍后重试'); + } + }; + + const renderContributorTable = (source, keyPrefix, isSplit = false) => ( + `${keyPrefix}-${record?.id || record?.phone || record?.name || 'row'}-${index}`} + /> + ); + + return ( +
+ + +
{data.name}
+
+ + + {(data.assigned_departments || []).map((dept) => ( + {dept} + ))} + + + + {data.achievement_date ? new Date(data.achievement_date).toLocaleDateString() : '无'} + + {getTypeName(data.type)} + + + {data.status === 'approved' ? '已通过' : data.status === 'rejected' ? '已驳回' : '待审核'} + + + {new Date(data.created_at).toLocaleString()} + {data.audit_comment || '无'} + {data.remarks || '无'} + + {data.attachments && data.attachments.length > 0 ? ( + + {data.attachments.map((file) => ( + + ))} + + ) : '无'} + +
+ + 完成人列表 + + {shouldSplitContributors ? ( +
+
+ {renderContributorTable(leftContributors, 'left', true)} +
+
+ {renderContributorTable(rightContributors, 'right', true)} +
+
+ ) : ( + renderContributorTable(contributors, 'single', false) + )} + + 详细表单内容 + + + {Object.entries(data.details || {}).map(([key, value]) => { + if (key === 'id' || key === 'achievement_id' || key === 'approver_id') return null; + const label = fieldLabels[data.type]?.[key] || key; + return ( + +
{value?.toString() || '无'}
+
+ ); + })} +
+ + +
+ ); +}; + +export default AchievementFormRenderer; + diff --git a/client/src/components/MainLayout.js b/client/src/components/MainLayout.js new file mode 100644 index 0000000..2cbc2c1 --- /dev/null +++ b/client/src/components/MainLayout.js @@ -0,0 +1,219 @@ +import React, { useState, useEffect } from 'react'; +import { Layout, Menu, Button, theme, Typography } from 'antd'; +import { + DashboardOutlined, + UploadOutlined, + AuditOutlined, + BarChartOutlined, + LogoutOutlined, + FileTextOutlined, + TeamOutlined, + SettingOutlined, + SafetyCertificateOutlined, + HistoryOutlined, + NotificationOutlined +} from '@ant-design/icons'; +import { Outlet, useNavigate, useLocation } from 'react-router-dom'; +import { maskPhone } from '../utils/phoneMask'; + +const { Header, Sider, Content } = Layout; +const { Title } = Typography; + +const MainLayout = () => { + const [collapsed] = useState(false); + const [user, setUser] = useState(null); + const navigate = useNavigate(); + const location = useLocation(); + const { + token: { colorBgContainer, borderRadiusLG }, + } = theme.useToken(); + + useEffect(() => { + const userData = localStorage.getItem('user'); + if (!userData) { + navigate('/login'); + } else { + setUser(JSON.parse(userData)); + } + }, [navigate]); + + const handleLogout = () => { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + navigate('/login'); + }; + + const menuItems = [ + { + key: '/dashboard', + icon: , + label: '首页概览', + }, + { + key: '/notifications', + icon: , + label: '系统公告', + }, + { + key: '/upload', + icon: , + label: '成果上传', + }, + ...((user?.role === 'admin' || user?.role === 'super_admin') ? [ + { + key: '/audit', + icon: , + label: '成果审核', + } + ] : []), + ...((user?.role === 'super_admin' || user?.role === 'maintainer') ? [ + { + key: '/users', + icon: , + label: '用户管理', + }, + { + key: '/dictionaries', + icon: , + label: '系统字典管理', + }, + { + key: '/validation', + icon: , + label: '数据校验', + } + ] : []), + ...((user?.role === 'super_admin' || user?.role === 'maintainer') ? [ + { + key: '/logs', + icon: , + label: '系统日志', + } + ] : []), + ...((user?.role !== 'maintainer') ? [ + { + key: '/statistics', + icon: , + label: '统计分析', + }, + ] : []), + ]; + + // 过滤掉维护员不可见的菜单项 + if (user?.role === 'maintainer') { + const hiddenKeys = ['/upload', '/dashboard', '/validation']; + for (let i = menuItems.length - 1; i >= 0; i--) { + if (hiddenKeys.includes(menuItems[i].key)) { + menuItems.splice(i, 1); + } + } + } + + return ( +
+
+
+ 温馨提示:本系统为内部使用,严禁上传涉密信息!上传内容将接受保密审查,违规行为将严肃处理。 +
+
+ + +
+
+ Logo { + e.target.style.display = 'none'; + e.target.nextSibling.style.display = 'block'; + }} + /> + +
+ {!collapsed && ( +
+ + 科技成果 + +
管理系统
+
+ )} +
+ navigate(key)} + /> + + +
+ 欢迎, {user?.real_name || maskPhone(user?.username)} + +
+ + + +
+
+ 科技成果管理系统 V1.0 © 2026 黑龙江省自然资源权益调查监测院(黑龙江省自然资源卫星应用技术中心)保留所有权利 +
+
+
+ +
+ ); +}; + +export default MainLayout; diff --git a/client/src/components/UserSearchSelect.js b/client/src/components/UserSearchSelect.js new file mode 100644 index 0000000..95662ba --- /dev/null +++ b/client/src/components/UserSearchSelect.js @@ -0,0 +1,70 @@ +import React, { useState, useMemo } from 'react'; +import { Select, Spin, message } from 'antd'; +import axios from 'axios'; +import debounce from 'lodash/debounce'; +import API_BASE_URL from '../config'; +import { maskPhone } from '../utils/phoneMask'; + +const { Option } = Select; + +const UserSearchSelect = ({ value, onChange, placeholder, style, leaderOnly = false }) => { + const [fetching, setFetching] = useState(false); + const [options, setOptions] = useState([]); + + const fetchUser = useMemo( + () => debounce(async (search) => { + if (!search || search.trim() === '') return; + setFetching(true); + try { + const token = localStorage.getItem('token'); + if (!token) { + message.error('登录已过期,请重新登录'); + return; + } + const params = { keyword: search }; + if (leaderOnly) { + params.leaderOnly = 'true'; + } + const response = await axios.get(`${API_BASE_URL}/api/users/search`, { + params, + headers: { Authorization: `Bearer ${token}` } + }); + setOptions(response.data.map(user => ({ + label: `${user.real_name} (${maskPhone(user.phone)}) - ${user.department}`, + value: JSON.stringify(user), + key: user.phone + }))); + } catch (error) { + console.error('搜索用户失败', error); + if (error.code === 'ERR_NETWORK') { + message.error('无法连接到后端服务器,请检查后端是否启动(端口5000)'); + } else { + // 仅在非网络错误时显示具体错误信息,避免干扰用户 + // message.error('搜索失败: ' + (error.response?.data?.message || error.message)); + } + } finally { + setFetching(false); + } + }, 500), + [leaderOnly] + ); + + return ( + + ); +}; + +export default UserSearchSelect; diff --git a/client/src/config.js b/client/src/config.js new file mode 100644 index 0000000..f1725b9 --- /dev/null +++ b/client/src/config.js @@ -0,0 +1,5 @@ +const API_BASE_URL = process.env.NODE_ENV === 'production' + ? window.location.origin + : (process.env.REACT_APP_API_URL || 'http://localhost:5000'); + +export default API_BASE_URL; diff --git a/client/src/constants/achievements.js b/client/src/constants/achievements.js new file mode 100644 index 0000000..cf0490d --- /dev/null +++ b/client/src/constants/achievements.js @@ -0,0 +1,125 @@ +export const achievementTypes = [ + { label: '项目', key: 'project' }, + { label: '论文', key: 'paper' }, + { label: '专著', key: 'monograph' }, + { label: '软著', key: 'software' }, + { label: '专利', key: 'patent' }, + { label: '标准', key: 'standard' }, + { label: '技术报告', key: 'report' }, + { label: '规划', key: 'plan' }, + { label: '奖励', key: 'award' }, + { label: '成果转化', key: 'transformation' }, +]; + +export const uploadTips = { + paper: '应上传论文PDF及索引页(若已被核心数据库收录,请一并上传收录证明)。', + project: '应上传立项证明、实施方案、验收总结等证明材料。', + award: '应上传获奖证书PDF或PNG、JPG格式文件。', + standard: '应上传标准及标准发布、标准有效性相关材料。', + monograph: '应至少上传封面、封底及人名页。', + report: '应上传技术报告全文及相关材料,附件中需包含院领导签批页。', + plan: '应上传规划全文及相关材料。', + patent: '应上传专利证书及相关材料。', + transformation: '应上传转化合同或证明及相关材料。', + software: '应上传软著证书、代码压缩包、运行说明及相关材料。', +}; + +export const contributorTips = { + paper: '应按顺序添加本单位作者,注意标明通讯作者、第一作者。', + project: '应添加项目完成人中本单位人员,以项目报告内项目成员名单为准。', + award: '应添加获奖证书上本单位人员。', + standard: '应添加标准上本单位人员。', + monograph: '应添加专著作者中本单位人员。', + report: '应添加技术报告作者中本单位人员。', + plan: '应添加规划作者中本单位人员。', + patent: '应添加专利发明人中本单位人员。', + transformation: '应添加项目完成人中本单位人员,以项目报告内项目成员名单为准。', + software: '应添加软件编写人员中本单位人员。', +}; + +export const dateTips = { + paper: '请选择论文正式发表的日期(以期刊出版日期为准)。', + project: '请选择项目通过验收的日期。', + award: '请选择获奖证书上的授奖日期。', + standard: '请选择标准正式发布的日期。', + monograph: '请选择专著出版日期。', + report: '请选择报告提交或发布的日期。', + plan: '请选择规划正式发布的日期。', + patent: '请选择专利授权公告日。', + transformation: '请选择转化合同签订或完成日期。', + software: '请选择软著证书上的登记日期。', +}; + +export const nameLabels = { + paper: '论文题目', project: '项目名称', award: '获奖项目名称', standard: '标准名称', + monograph: '专著名称', report: '报告名称', plan: '规划名称', patent: '专利名称', + transformation: '项目名称', software: '软件名称' +}; + +export const contributorLabels = { + paper: '论文作者', project: '项目完成人', award: '获奖人员', standard: '标准起草人', + monograph: '专著作者', report: '报告编写人', plan: '规划编写人', patent: '发明人', + transformation: '项目完成人', software: '软件开发人员' +}; + +export const dateLabels = { + paper: '发表日期', project: '验收时间', award: '获奖日期', standard: '发布日期', + monograph: '出版时间', report: '报告提交时间', plan: '发布日期', patent: '授权时间', + transformation: '验收时间', software: '授权证书时间' +}; + +export const roleOptions = ['第一作者', '通讯作者', '其他作者']; + +export const fieldLabels = { + paper: { + paper_type: '论文水平', + first_unit: '第一完成单位', + journal_name: '期刊名称', + publish_date: '发表日期', + doi: 'DOI' + }, + project: { project_category: '项目分类', source: '项目来源' }, + award: { award_type: '奖励种类', award_level: '奖励等级', award_unit: '授奖单位' }, + standard: { standard_type: '标准种类', standard_no: '标准编号', implement_date: '实施日期' }, + monograph: { publisher: '出版社', isbn: 'ISBN' }, + report: { report_type: '技术报告类型', recipient: '发布(提报)对象', approver_name: '签批院领导' }, + plan: {}, + patent: { patent_no: '专利号', assignee: '权利人', patent_type: '专利类型' }, + transformation: { project_category: '项目分类', trans_method: '转化方式', trans_amount: '转化金额' }, + software: { reg_no: '登记号', owner_unit: '著作权人', acquisition_method: '权利取得方式', scope: '权利范围' } +}; + +export const contributorAddButtonLabels = { + award: '添加获奖人员', + monograph: '添加编写作者', + report: '添加编写人', + patent: '添加发明人', + software: '添加著作权人', + default: '添加完成人' +}; + +export const contributorMainLabels = { + monograph: '主要编写作者', + report: '主要编写人', + patent: '主要发明人', + software: '主要著作权人', + default: '主要完成人' +}; + +export const contributorSectionTitles = { + award: '获奖人员信息', + monograph: '编写作者信息', + report: '报告编写人信息', + patent: '发明人信息', + software: '著作权人信息', + transformation: '完成人信息', + default: '完成人信息' +}; + +export const nameTips = { + transformation: '指已完成成果转化的项目' +}; + +export const sourceTips = { + project: '按照列入本单位经费确定项目' +}; diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000..23ffa1a --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,43 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} + +/* 跑马灯动画 */ +.marquee-container { + background-color: #1677ff; /* 蓝色 */ + color: #ffffff; /* 白色 */ + padding: 10px 0; + overflow: hidden; + white-space: nowrap; + font-weight: bold; + font-size: 18px; + letter-spacing: 2px; + box-shadow: 0 2px 8px rgba(0,0,0,0.2); + z-index: 1000; + flex-shrink: 0; +} + +.marquee-content { + display: inline-block; + padding-left: 100%; + animation: marquee 20s linear infinite; +} + +@keyframes marquee { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(-100%, 0); + } +} diff --git a/client/src/index.js b/client/src/index.js new file mode 100644 index 0000000..1550f9b --- /dev/null +++ b/client/src/index.js @@ -0,0 +1,33 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; +import axios from 'axios'; + +// 添加全局拦截器处理 401 Token 过期 +axios.interceptors.response.use( + response => response, + error => { + if (error.response && error.response.status === 401) { + // 清除本地存储 + localStorage.removeItem('token'); + localStorage.removeItem('user'); + // 如果当前不在登录页,则跳转 + if (!window.location.pathname.includes('/login')) { + window.location.href = '/login'; + } + } + return Promise.reject(error); + } +); + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/client/src/logo.svg b/client/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/client/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/src/pages/Audit.js b/client/src/pages/Audit.js new file mode 100644 index 0000000..4a92db4 --- /dev/null +++ b/client/src/pages/Audit.js @@ -0,0 +1,248 @@ +import React, { useState, useEffect } from 'react'; +import { Table, Tag, Space, Button, Modal, Form, Input, message, Card, Radio, DatePicker, Select } from 'antd'; +import { EyeOutlined, CheckCircleOutlined, SearchOutlined, UserOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; +import AchievementDetails from '../components/AchievementDetails'; +import { maskPhone } from '../utils/phoneMask'; + +const Audit = () => { + const [data, setData] = useState([]); + const [loading, setLoading] = useState(false); + const [isModalVisible, setIsModalVisible] = useState(false); + const [currentRecord, setCurrentRecord] = useState(null); + const [detailsVisible, setDetailsVisible] = useState(false); + const [selectedId, setSelectedId] = useState(null); + const [keyword, setKeyword] = useState(''); + const [dateRange, setDateRange] = useState(null); + const [filterType, setFilterType] = useState(null); + const [form] = Form.useForm(); + + useEffect(() => { + fetchData(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [filterType]); + + const fetchData = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const params = { + status: 'pending', + type: filterType, + keyword: keyword, + startDate: dateRange && dateRange[0] ? dateRange[0].format('YYYY-MM-DD') : null, + endDate: dateRange && dateRange[1] ? dateRange[1].format('YYYY-MM-DD') : null + }; + const response = await axios.get(`${API_BASE_URL}/api/achievements`, { + headers: { Authorization: `Bearer ${token}` }, + params + }); + setData(response.data); + } catch (error) { + message.error('获取待审核列表失败'); + } finally { + setLoading(false); + } + }; + + const handleAudit = (record) => { + setCurrentRecord(record); + setIsModalVisible(true); + }; + + const submitAudit = async (values) => { + try { + const token = localStorage.getItem('token'); + await axios.post(`${API_BASE_URL}/api/achievements/audit/${currentRecord.id}`, values, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('审核提交成功'); + setIsModalVisible(false); + form.resetFields(); + fetchData(); + } catch (error) { + const errorMsg = error.response?.data?.message || '审核提交失败'; + message.error(errorMsg); + } + }; + + const columns = [ + { + title: '类型', + dataIndex: 'type', + key: 'type', + width: 80, + render: (type) => { + const typeMap = { + paper: '论文', project: '项目', award: '奖励', standard: '标准', + monograph: '专著', report: '技术报告', plan: '规划', patent: '专利', + transformation: '成果转化', software: '软著' + }; + return {typeMap[type] || type}; + } + }, + { + title: '成果名称', + dataIndex: 'name', + key: 'name', + ellipsis: true, + render: (text, record) => { + const dateLabels = { + paper: '发表日期', project: '验收时间', award: '获奖日期', standard: '发布日期', + monograph: '出版时间', report: '报告提交时间', plan: '发布日期', patent: '授权时间', + transformation: '验收时间', software: '授权证书时间' + }; + const dateLabel = dateLabels[record.type] || '成果时间'; + + return ( + + {text} + + {dateLabel}: {record.achievement_date ? new Date(record.achievement_date).toLocaleDateString() : '无'} + + + ); + } + }, + { + title: '提交人', + key: 'submitter', + width: 150, + render: (_, record) => ( + + {record.submitter_name || '未知'} + {maskPhone(record.username)} + + ) + }, + { + title: '完成人', + dataIndex: 'contributors', + key: 'contributors', + render: (contributors) => ( + + {(contributors || []).map((c, idx) => ( + + {c.name} + {c.isMain && } + + ))} + + ) + }, + { + title: '归属部门', + dataIndex: 'assigned_departments', + key: 'assigned_departments', + render: (depts) => ( + + {(depts || []).map(dept => ( + {dept} + ))} + + ) + }, + { + title: '操作', + key: 'action', + width: 180, + render: (_, record) => ( + + + + + ), + }, + ]; + + return ( + +
+ + setKeyword(e.target.value)} + onPressEnter={fetchData} + allowClear + /> + + + + +
+
+ + { + setDetailsVisible(false); + setSelectedId(null); + }} + /> + + form.submit()} + onCancel={() => { + setIsModalVisible(false); + form.resetFields(); + }} + destroyOnClose + > +
+ + + 通过 + 不通过 + + + + + + +
+ + ); +}; + +export default Audit; diff --git a/client/src/pages/Dashboard.js b/client/src/pages/Dashboard.js new file mode 100644 index 0000000..2ebc0a2 --- /dev/null +++ b/client/src/pages/Dashboard.js @@ -0,0 +1,557 @@ +import React, { useState, useEffect } from 'react'; +import { Row, Col, Card, Statistic, Table, Tag, Space, Button, message, Popconfirm, Select, Input, DatePicker, Tabs, Modal, Progress } from 'antd'; +import { FileTextOutlined, CheckCircleOutlined, ClockCircleOutlined, CloseCircleOutlined, EyeOutlined, DeleteOutlined, EditOutlined, SearchOutlined, UserOutlined, GlobalOutlined, UserSwitchOutlined, PictureOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import JSZip from 'jszip'; +import { saveAs } from 'file-saver'; +import html2canvas from 'html2canvas'; +import API_BASE_URL from '../config'; +import AchievementDetails from '../components/AchievementDetails'; +import AchievementEdit from '../components/AchievementEdit'; +import AchievementFormRenderer from '../components/AchievementFormRenderer'; +import { maskPhone } from '../utils/phoneMask'; + +const Dashboard = () => { + const [stats, setStats] = useState({ total: 0, pending: 0, approved: 0, rejected: 0 }); + const [recentData, setRecentData] = useState([]); + const [loading, setLoading] = useState(false); + const [selectedId, setSelectedId] = useState(null); + const [detailsVisible, setDetailsVisible] = useState(false); + const [editVisible, setEditVisible] = useState(false); + const [filterType, setFilterType] = useState(null); + const [filterStatus, setFilterStatus] = useState(null); + const [keyword, setKeyword] = useState(''); + const [dateRange, setDateRange] = useState(null); + const [activeTab, setActiveTab] = useState('my'); + const [pendingUsers, setPendingUsers] = useState(new Set()); + + // 批量下载相关状态 + const [batchLoading, setBatchLoading] = useState(false); + const [batchProgress, setBatchProgress] = useState({ current: 0, total: 0 }); + const [batchCurrentData, setBatchCurrentData] = useState(null); + + const user = JSON.parse(localStorage.getItem('user') || '{}'); + const canDeleteAchievement = (record) => ( + user.role === 'super_admin' || + (record.user_id === user.id && ['pending', 'rejected'].includes(record.status)) + ); + + useEffect(() => { + fetchDashboardData(); + fetchPendingUsers(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [filterType, filterStatus, activeTab]); + + // 获取待定状态用户列表 + const fetchPendingUsers = async () => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/users/pending-list`, { + headers: { Authorization: `Bearer ${token}` } + }); + setPendingUsers(new Set(response.data)); + } catch (error) { + console.error('获取待定用户列表失败', error); + } + }; + + const fetchDashboardData = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const params = { + type: filterType, + status: filterStatus, + keyword: keyword, + startDate: dateRange && dateRange[0] ? dateRange[0].format('YYYY-MM-DD') : null, + endDate: dateRange && dateRange[1] ? dateRange[1].format('YYYY-MM-DD') : null + }; + + // 根据 Tab 决定查询范围 + if (activeTab === 'my') { + params.scope = 'my'; + } else if (activeTab === 'public') { + // 公共库只看已通过的 + params.status = 'approved'; + } + // activeTab === 'all' 时,不传 scope 也不强制 status,后端默认返回所有(针对管理员) + + const config = { + headers: { Authorization: `Bearer ${token}` }, + params + }; + + const response = await axios.get(`${API_BASE_URL}/api/achievements`, config); + const data = response.data; + setRecentData(data); // 显示所有数据,支持分页更好,但这里先全量 + + // 更新统计数据:基于当前列表数据计算 + // my: 显示个人统计 + // public: 显示公示统计(仅已通过) + // all: 显示全系统统计 + const s = { total: data.length, pending: 0, approved: 0, rejected: 0 }; + data.forEach(item => { + if (item.status === 'pending') s.pending++; + else if (item.status === 'approved') s.approved++; + else if (item.status === 'rejected') s.rejected++; + }); + setStats(s); + } catch (error) { + message.error('获取数据失败'); + } finally { + setLoading(false); + } + }; + + const columns = [ + { + title: '类型', + dataIndex: 'type', + key: 'type', + width: 80, + render: (type) => { + const typeMap = { + paper: '论文', project: '项目', award: '奖励', standard: '标准', + monograph: '专著', report: '技术报告', plan: '规划', patent: '专利', + transformation: '成果转化', software: '软著' + }; + return {typeMap[type] || type}; + } + }, + { + title: '成果名称', + dataIndex: 'name', + key: 'name', + width: 300, + render: (text, record) => { + const dateLabels = { + paper: '发表日期', project: '验收时间', award: '获奖日期', standard: '发布日期', + monograph: '出版时间', report: '报告提交时间', plan: '发布日期', patent: '授权时间', + transformation: '验收时间', software: '授权证书时间' + }; + const dateLabel = dateLabels[record.type] || '成果时间'; + + return ( + + {text} + + {dateLabel}: {record.achievement_date ? new Date(record.achievement_date).toLocaleDateString() : '无'} + + + ); + } + }, + { + title: '提交人', + key: 'submitter', + width: 150, + render: (_, record) => ( + + {record.submitter_name || '未知'} + {maskPhone(record.username)} + + ) + }, + { + title: '完成人', + dataIndex: 'contributors', + key: 'contributors', + render: (contributors) => ( + + {(contributors || []).map((c, idx) => { + const isPending = pendingUsers.has(c.phone); + return ( + + {c.name} + {c.isMain && } + + ); + })} + + ) + }, + { + title: '归属部门', + dataIndex: 'assigned_departments', + key: 'assigned_departments', + render: (depts) => ( + + {(depts || []).map(dept => ( + {dept} + ))} + + ) + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + width: 90, + render: (status) => { + const statusMap = { + pending: { color: 'gold', text: '待审核' }, + approved: { color: 'green', text: '已通过' }, + rejected: { color: 'red', text: '已驳回' }, + }; + const { color, text } = statusMap[status] || { color: 'default', text: status }; + return {text}; + } + }, + { + title: '操作', + key: 'action', + width: 200, + render: (_, record) => ( + + + {(user.role === 'super_admin' || (user.role === 'user' && record.status === 'pending' && record.user_id === user.id)) && ( + + )} + {canDeleteAchievement(record) && ( + handleDelete(record.id)}> + + + )} + + ), + } + ]; + + const handleDelete = async (id) => { + try { + const token = localStorage.getItem('token'); + await axios.delete(`${API_BASE_URL}/api/achievements/${id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('删除成功'); + fetchDashboardData(); + } catch (error) { + message.error('删除失败'); + } + }; + + const buildExportParams = () => ({ + type: filterType || undefined, + status: filterStatus || undefined, + keyword: keyword || undefined, + startDate: dateRange && dateRange[0] ? dateRange[0].format('YYYY-MM-DD') : undefined, + endDate: dateRange && dateRange[1] ? dateRange[1].format('YYYY-MM-DD') : undefined + }); + + const downloadBlob = (blob, filename) => { + const url = window.URL.createObjectURL(new Blob([blob])); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + link.remove(); + window.URL.revokeObjectURL(url); + }; + + const parseFilename = (contentDisposition, fallback) => { + if (!contentDisposition) return fallback; + const utf8Name = contentDisposition.match(/filename\\*=UTF-8''(.+)/); + const normalName = contentDisposition.match(/filename="(.+)"/); + if (utf8Name && utf8Name[1]) return decodeURIComponent(utf8Name[1]); + if (normalName && normalName[1]) return normalName[1]; + return fallback; + }; + + const handleExportCsv = async () => { + const hide = message.loading('正在导出 CSV...', 0); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/export/csv`, { + headers: { Authorization: `Bearer ${token}` }, + params: buildExportParams(), + responseType: 'blob' + }); + const filename = parseFilename(response.headers['content-disposition'], 'achievements_export.csv'); + downloadBlob(response.data, filename); + message.success('CSV 导出成功'); + } catch (error) { + message.error('CSV 导出失败'); + } finally { + hide(); + } + }; + + const handleExportZip = async () => { + const hide = message.loading('正在导出 ZIP...', 0); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/export/zip`, { + headers: { Authorization: `Bearer ${token}` }, + params: buildExportParams(), + responseType: 'blob' + }); + const filename = parseFilename(response.headers['content-disposition'], 'achievements_export.zip'); + downloadBlob(response.data, filename); + message.success('ZIP 导出成功'); + } catch (error) { + message.error('ZIP 导出失败'); + } finally { + hide(); + } + }; + + const handleBatchDownloadForms = async () => { + if (recentData.length === 0) { + message.warning('当前列表没有数据可下载'); + return; + } + + setBatchLoading(true); + setBatchProgress({ current: 0, total: recentData.length }); + const zip = new JSZip(); + const token = localStorage.getItem('token'); + + try { + for (let i = 0; i < recentData.length; i++) { + const item = recentData[i]; + setBatchProgress({ current: i + 1, total: recentData.length }); + + // 1. 获取详情 + try { + const response = await axios.get(`${API_BASE_URL}/api/achievements/${item.id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + const detailData = response.data; + + // 2. 设置数据以触发渲染 + setBatchCurrentData(detailData); + + // 3. 等待渲染完成 (给 React 和 DOM 一点时间) + await new Promise(resolve => setTimeout(resolve, 500)); + + // 4. 截图 + const element = document.getElementById('batch-export-container'); + if (element) { + const exportWidth = Math.max(element.scrollWidth, element.offsetWidth); + const exportHeight = Math.max(element.scrollHeight, element.offsetHeight); + const canvas = await html2canvas(element, { + useCORS: true, + scale: 2, + backgroundColor: '#ffffff', + width: exportWidth, + height: exportHeight, + windowWidth: exportWidth, + windowHeight: exportHeight, + scrollX: 0, + scrollY: 0 + }); + + // 5. 添加到 ZIP + const imgData = canvas.toDataURL('image/png').split(',')[1]; + const fileName = `成果表单_${detailData.name || '未命名'}_${detailData.id}.png`; + // 处理文件名中的非法字符 + const safeFileName = fileName.replace(/[\\/:*?"<>|]/g, '_'); + zip.file(safeFileName, imgData, { base64: true }); + } + } catch (err) { + console.error(`处理成果 ${item.id} 失败`, err); + // 继续处理下一个,不中断 + } + } + + // 6. 生成并下载 ZIP + const content = await zip.generateAsync({ type: 'blob' }); + saveAs(content, `批量导出表单_${new Date().toISOString().slice(0,10)}.zip`); + message.success('批量下载完成'); + } catch (error) { + console.error(error); + message.error('批量下载失败'); + } finally { + setBatchLoading(false); + setBatchCurrentData(null); + } + }; + + return ( +
+ {/* 批量下载进度遮罩 */} + +
+ `${batchProgress.current} / ${batchProgress.total}`} + /> +
+ 正在处理中,请勿关闭页面...
+ 此操作可能需要几分钟,请耐心等待。 +
+
+
+ + {/* 隐藏的渲染容器 */} +
+ {batchCurrentData && ( + <> +
+
+ e.target.style.display='none'} alt="logo" /> +

科技成果管理表单

+
+
生成时间:{new Date().toLocaleString()}
+
+ + + )} +
+ + +
+ + } + placeholder="搜索名称/完成人/手机号" + style={{ width: 240 }} + value={keyword} + onChange={e => setKeyword(e.target.value)} + onPressEnter={fetchDashboardData} + allowClear + /> + + + + + + + + + {user.role === 'super_admin' && ( + <> + + + + )} + +
+
+ + +
} /> + } /> + } /> + } /> + + + + 我的成果, + children:
{ + const hasPendingContributor = (record.contributors || []).some(c => pendingUsers.has(c.phone)); + if (record.has_data_issue || hasPendingContributor) return 'row-pending-issue'; + return ''; + }} + /> + }, + { + key: 'public', + label: 成果公示, + children:
{ + const hasPendingContributor = (record.contributors || []).some(c => pendingUsers.has(c.phone)); + if (record.has_data_issue || hasPendingContributor) return 'row-pending-issue'; + return ''; + }} + /> + }, + ...(user.role === 'super_admin' ? [{ + key: 'all', + label: 全部成果, + children:
{ + const hasPendingContributor = (record.contributors || []).some(c => pendingUsers.has(c.phone)); + if (record.has_data_issue || hasPendingContributor) return 'row-pending-issue'; + return ''; + }} + /> + }] : []) + ]} + /> + + + { setDetailsVisible(false); setSelectedId(null); }} /> + { setEditVisible(false); setSelectedId(null); }} onSave={fetchDashboardData} /> + + + + ); +}; + +export default Dashboard; diff --git a/client/src/pages/DataValidation.js b/client/src/pages/DataValidation.js new file mode 100644 index 0000000..7c84078 --- /dev/null +++ b/client/src/pages/DataValidation.js @@ -0,0 +1,157 @@ +import React, { useState } from 'react'; +import { Card, Button, Table, Tag, Space, message, Typography, Alert } from 'antd'; +import { SafetyCertificateOutlined, EditOutlined, ReloadOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; +import AchievementEdit from '../components/AchievementEdit'; + +const { Title, Text } = Typography; + +const DataValidation = () => { + const [loading, setLoading] = useState(false); + const [data, setData] = useState([]); + const [editVisible, setEditVisible] = useState(false); + const [selectedId, setSelectedId] = useState(null); + const [hasValidated, setHasValidated] = useState(false); + + const user = JSON.parse(localStorage.getItem('user') || '{}'); + + const handleValidate = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/achievements/validate`, { + headers: { Authorization: `Bearer ${token}` } + }); + setData(response.data); + setHasValidated(true); + if (response.data.length === 0) { + message.success('校验完成,未发现异常数据'); + } else { + message.warning(`校验完成,发现 ${response.data.length} 条异常数据`); + } + } catch (error) { + console.error('校验失败', error); + message.error('校验失败,请稍后重试'); + } finally { + setLoading(false); + } + }; + + const columns = [ + { + title: '成果名称', + dataIndex: 'name', + key: 'name', + width: 300, + render: (text, record) => ( + + {text} + {record.type} + + ) + }, + { + title: '提交人', + dataIndex: 'submitter', + key: 'submitter', + width: 150, + }, + { + title: '异常详情', + dataIndex: 'errors', + key: 'errors', + render: (errors) => ( +
    + {errors.map((err, idx) => ( +
  • {err}
  • + ))} +
+ ) + }, + { + title: '操作', + key: 'action', + width: 100, + render: (_, record) => ( + user.role === 'super_admin' ? ( + + ) : ( + 无权限 + ) + ) + } + ]; + + return ( +
+ +
+
+ + <SafetyCertificateOutlined style={{ marginRight: 8 }} /> + 数据一致性校验 + + + 全量扫描数据库,检查成果完成人、归属部门以及各类字典字段(如论文类型、奖励等级等)的数据一致性。 + +
+ +
+
+ + {hasValidated && ( + + {data.length > 0 ? ( +
'validation-error-row'} + /> + ) : ( + + )} + + )} + + { setEditVisible(false); setSelectedId(null); }} + onSave={() => { + setEditVisible(false); + setSelectedId(null); + handleValidate(); // 修改后重新校验 + }} + /> + + + + ); +}; + +export default DataValidation; diff --git a/client/src/pages/DepartmentManagement.js b/client/src/pages/DepartmentManagement.js new file mode 100644 index 0000000..f502933 --- /dev/null +++ b/client/src/pages/DepartmentManagement.js @@ -0,0 +1,124 @@ +import React, { useState, useEffect } from 'react'; +import { Table, Button, Input, Space, Card, Modal, Form, message, Popconfirm } from 'antd'; +import { PlusOutlined, DeleteOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const DepartmentManagement = () => { + const [departments, setDepartments] = useState([]); + const [loading, setLoading] = useState(false); + const [isModalVisible, setIsModalVisible] = useState(false); + const [form] = Form.useForm(); + + useEffect(() => { + fetchDepartments(); + }, []); + + const fetchDepartments = async () => { + setLoading(true); + try { + const response = await axios.get(`${API_BASE_URL}/api/departments`); + setDepartments(response.data); + } catch (error) { + message.error('获取部门列表失败'); + } finally { + setLoading(false); + } + }; + + const handleAdd = async (values) => { + try { + await axios.post(`${API_BASE_URL}/api/departments`, values, { + headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } + }); + message.success('添加成功'); + setIsModalVisible(false); + form.resetFields(); + fetchDepartments(); + } catch (error) { + message.error(error.response?.data?.message || '添加失败'); + } + }; + + const handleDelete = async (id) => { + try { + await axios.delete(`${API_BASE_URL}/api/departments/${id}`, { + headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } + }); + message.success('删除成功'); + fetchDepartments(); + } catch (error) { + message.error(error.response?.data?.message || '删除失败'); + } + }; + + const columns = [ + { + title: '部门名称', + dataIndex: 'name', + key: 'name', + }, + { + title: '创建时间', + dataIndex: 'created_at', + key: 'created_at', + render: (text) => new Date(text).toLocaleString(), + }, + { + title: '操作', + key: 'action', + render: (_, record) => ( + handleDelete(record.id)} + okText="确定" + cancelText="取消" + > + + + ), + }, + ]; + + return ( + } + onClick={() => setIsModalVisible(true)} + > + 添加部门 + + } + > +
+ + setIsModalVisible(false)} + onOk={() => form.submit()} + destroyOnClose + > +
+ + + + +
+ + ); +}; + +export default DepartmentManagement; diff --git a/client/src/pages/DictionaryManagement.js b/client/src/pages/DictionaryManagement.js new file mode 100644 index 0000000..a18c73f --- /dev/null +++ b/client/src/pages/DictionaryManagement.js @@ -0,0 +1,209 @@ +import React, { useState, useEffect } from 'react'; +import { Table, Button, Input, Space, Card, Modal, Form, message, Popconfirm, Tabs, Select } from 'antd'; +import { PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const DictionaryManagement = () => { + const [data, setData] = useState([]); + const [departments, setDepartments] = useState([]); + const [loading, setLoading] = useState(false); + const [isModalVisible, setIsModalVisible] = useState(false); + const [editingRecord, setEditingRecord] = useState(null); + const [activeTab, setActiveTab] = useState('organizations'); + const [form] = Form.useForm(); + + const tabs = [ + { key: 'departments', label: '部门管理' }, + { key: 'organizations', label: '单位名称' }, + { key: 'award-types', label: '奖励种类' }, + { key: 'award-levels', label: '奖励等级' }, + { key: 'paper-types', label: '论文种类' }, + { key: 'standard-types', label: '标准种类' }, + { key: 'project-categories', label: '项目分类' }, + { key: 'leader-departments', label: '领导层部门' }, + ]; + + useEffect(() => { + fetchData(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeTab]); + + const fetchData = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + // 部门管理原本有自己的接口,现在统一走字典接口 + const response = await axios.get(`${API_BASE_URL}/api/dictionaries/${activeTab}`, { + headers: { Authorization: `Bearer ${token}` } + }); + setData(response.data); + + // 如果是领导层部门管理,还需要获取所有部门列表供选择 + if (activeTab === 'leader-departments') { + const deptResponse = await axios.get(`${API_BASE_URL}/api/dictionaries/departments`, { + headers: { Authorization: `Bearer ${token}` } + }); + setDepartments(deptResponse.data); + } + } catch (error) { + message.error('获取数据失败'); + } finally { + setLoading(false); + } + }; + + const handleAddOrEdit = async (values) => { + try { + const token = localStorage.getItem('token'); + if (editingRecord) { + await axios.put(`${API_BASE_URL}/api/dictionaries/${activeTab}/${editingRecord.id}`, values, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('修改成功'); + } else { + await axios.post(`${API_BASE_URL}/api/dictionaries/${activeTab}`, values, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('添加成功'); + } + setIsModalVisible(false); + setEditingRecord(null); + form.resetFields(); + fetchData(); + } catch (error) { + message.error(error.response?.data?.message || '操作失败'); + } + }; + + const handleDelete = async (id) => { + try { + await axios.delete(`${API_BASE_URL}/api/dictionaries/${activeTab}/${id}`, { + headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } + }); + message.success('删除成功'); + fetchData(); + } catch (error) { + message.error(error.response?.data?.message || '删除失败'); + } + }; + + const openEditModal = (record) => { + setEditingRecord(record); + form.setFieldsValue(record); + setIsModalVisible(true); + }; + + const columns = [ + { + title: '名称', + dataIndex: 'name', + key: 'name', + }, + { + title: '创建时间', + dataIndex: 'created_at', + key: 'created_at', + render: (text) => new Date(text).toLocaleString(), + }, + { + title: '操作', + key: 'action', + render: (_, record) => ( + + + handleDelete(record.id)} + okText="确定" + cancelText="取消" + disabled={record.name === '待定'} + > + + + + ), + }, + ]; + + return ( + + } + onClick={() => { + setEditingRecord(null); + form.resetFields(); + setIsModalVisible(true); + }} + > + 添加选项 + + } + /> +
+ + t.key === activeTab)?.label}`} + open={isModalVisible} + onCancel={() => { + setIsModalVisible(false); + setEditingRecord(null); + }} + onOk={() => form.submit()} + destroyOnClose + > +
+ {activeTab === 'leader-departments' ? ( + + + + ) : ( + + + + )} + +
+ + ); +}; + +export default DictionaryManagement; diff --git a/client/src/pages/Login.js b/client/src/pages/Login.js new file mode 100644 index 0000000..c0be348 --- /dev/null +++ b/client/src/pages/Login.js @@ -0,0 +1,92 @@ +import React, { useState } from 'react'; +import { Form, Input, Button, Card, message } from 'antd'; +import { UserOutlined, LockOutlined, FileTextOutlined } from '@ant-design/icons'; +import { useNavigate, Link } from 'react-router-dom'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const Login = () => { + const [loading, setLoading] = useState(false); + const navigate = useNavigate(); + + const onFinish = async (values) => { + setLoading(true); + try { + const response = await axios.post(`${API_BASE_URL}/api/auth/login`, values); + const { token, user } = response.data; + + localStorage.setItem('token', token); + localStorage.setItem('user', JSON.stringify(user)); + + message.success('登录成功'); + navigate('/dashboard'); + } catch (error) { + console.error('登录错误详情:', error.response); + if (error.response?.status === 401) { + message.error('用户名或密码错误,请重新输入'); + } else { + message.error(error.response?.data?.message || '登录失败,请检查网络或联系管理员'); + } + } finally { + setLoading(false); + } + }; + + return ( +
+ +
+
+ +
+

科技成果管理系统

+

请登录您的账号以继续

+
+
+ + } placeholder="手机号" size="large" /> + + + } placeholder="密码" size="large" /> + + + +
+ 忘记密码? + 还没有账号? 立即注册 +
+
+ +
+
+ ); +}; + +export default Login; diff --git a/client/src/pages/Notifications.js b/client/src/pages/Notifications.js new file mode 100644 index 0000000..3939993 --- /dev/null +++ b/client/src/pages/Notifications.js @@ -0,0 +1,364 @@ +import React, { useState, useEffect } from 'react'; +import { Card, Table, Button, Input, Modal, Form, Upload, message, Space, Tag, Popconfirm, Typography, List } from 'antd'; +import { PlusOutlined, SearchOutlined, DeleteOutlined, PaperClipOutlined, DownloadOutlined, FileTextOutlined } from '@ant-design/icons'; +import { Editor, Toolbar } from '@wangeditor/editor-for-react'; +import '@wangeditor/editor/dist/css/style.css'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const { Title, Text } = Typography; + +// 封装 WangEditor 组件以适配 Ant Design Form +const MyEditor = ({ value, onChange }) => { + const [editor, setEditor] = useState(null); + const [html, setHtml] = useState(value || ''); + + // 监听 value 变化(例如表单重置时) + useEffect(() => { + setHtml(value || ''); + }, [value]); + + const toolbarConfig = {}; + const editorConfig = { + placeholder: '请输入内容...', + }; + + // 及时销毁 editor + useEffect(() => { + return () => { + if (editor == null) return; + editor.destroy(); + setEditor(null); + }; + }, [editor]); + + return ( +
+ + { + const newHtml = editor.getHtml(); + setHtml(newHtml); + onChange(newHtml); + }} + mode="default" + style={{ height: '300px', overflowY: 'hidden' }} + /> +
+ ); +}; + +const Notifications = () => { + const [loading, setLoading] = useState(false); + const [data, setData] = useState([]); + const [pagination, setPagination] = useState({ current: 1, pageSize: 10, total: 0 }); + const [keyword, setKeyword] = useState(''); + + const [isModalVisible, setIsModalVisible] = useState(false); + const [isDetailVisible, setIsDetailVisible] = useState(false); + const [currentNotification, setCurrentNotification] = useState(null); + const [form] = Form.useForm(); + const [fileList, setFileList] = useState([]); + + const user = JSON.parse(localStorage.getItem('user') || '{}'); + const isAdmin = ['super_admin', 'maintainer'].includes(user.role); + + useEffect(() => { + fetchData(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [pagination.current, pagination.pageSize]); + + const fetchData = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/notifications`, { + headers: { Authorization: `Bearer ${token}` }, + params: { + page: pagination.current, + limit: pagination.pageSize, + keyword + } + }); + setData(response.data.list); + setPagination({ ...pagination, total: response.data.total }); + } catch (error) { + message.error('获取公告列表失败'); + } finally { + setLoading(false); + } + }; + + const handleSearch = () => { + setPagination({ ...pagination, current: 1 }); + fetchData(); + }; + + const handleAdd = () => { + setCurrentNotification(null); + form.resetFields(); + setFileList([]); + setIsModalVisible(true); + }; + + const handleDelete = async (id) => { + try { + const token = localStorage.getItem('token'); + await axios.delete(`${API_BASE_URL}/api/notifications/${id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('删除成功'); + fetchData(); + } catch (error) { + message.error('删除失败'); + } + }; + + const handleView = async (record) => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/notifications/${record.id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + setCurrentNotification(response.data); + setIsDetailVisible(true); + } catch (error) { + message.error('获取详情失败'); + } + }; + + const handleOk = async () => { + try { + const values = await form.validateFields(); + const formData = new FormData(); + formData.append('title', values.title); + formData.append('content', values.content); + formData.append('is_top', values.is_top || false); + + fileList.forEach(file => { + formData.append('files', file.originFileObj || file); + }); + + const token = localStorage.getItem('token'); + await axios.post(`${API_BASE_URL}/api/notifications`, formData, { + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': 'multipart/form-data' + } + }); + + message.success('发布成功'); + setIsModalVisible(false); + fetchData(); + } catch (error) { + console.error(error); + message.error('发布失败'); + } + }; + + const handleDownload = async (attachment) => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/notifications/attachments/${attachment.id}/download`, { + headers: { Authorization: `Bearer ${token}` }, + responseType: 'blob' + }); + + const url = window.URL.createObjectURL(new Blob([response.data])); + const link = document.createElement('a'); + link.href = url; + + // 尝试从 Content-Disposition 获取文件名 + let filename = attachment.file_name; + const contentDisposition = response.headers['content-disposition']; + if (contentDisposition) { + const filenameMatch = contentDisposition.match(/filename\*=UTF-8''(.+)/); + if (filenameMatch && filenameMatch.length === 2) { + filename = decodeURIComponent(filenameMatch[1]); + } + } + + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + link.remove(); + } catch (error) { + message.error('下载失败'); + } + }; + + const columns = [ + { + title: '标题', + dataIndex: 'title', + key: 'title', + render: (text, record) => ( + + {record.is_top && 置顶} + + + ) + }, + { + title: '发布人', + dataIndex: 'publisher_real_name', + key: 'publisher', + width: 150, + }, + { + title: '发布时间', + dataIndex: 'created_at', + key: 'created_at', + width: 180, + render: (text) => new Date(text).toLocaleString() + }, + ...(isAdmin ? [{ + title: '操作', + key: 'action', + width: 100, + render: (_, record) => ( + handleDelete(record.id)}> + + + ) + }] : []) + ]; + + const uploadProps = { + onRemove: (file) => { + const index = fileList.indexOf(file); + const newFileList = fileList.slice(); + newFileList.splice(index, 1); + setFileList(newFileList); + }, + beforeUpload: (file) => { + setFileList(prev => [...prev, file]); + return false; + }, + fileList, + }; + + return ( +
+ } onClick={handleAdd}>发布公告}> +
+ setKeyword(e.target.value)} + onPressEnter={handleSearch} + allowClear + /> + +
+ +
setPagination({ ...pagination, current: page, pageSize }) + }} + /> + + + {/* 发布公告弹窗 */} + setIsModalVisible(false)} + width={800} + maskClosable={false} + > +
+ + + + + + + + + + + + +
+ + {/* 公告详情弹窗 */} + setIsDetailVisible(false)} + footer={[ + + ]} + width={800} + > + {currentNotification && ( +
+
+ {currentNotification.title} + + 发布人:{currentNotification.publisher_real_name || '管理员'} + 发布时间:{new Date(currentNotification.created_at).toLocaleString()} + +
+ +
+ + {currentNotification.attachments && currentNotification.attachments.length > 0 && ( +
+ <PaperClipOutlined /> 附件下载 + ( + + + + {item.file_name} + + + + )} + /> +
+ )} +
+ )} + +
+ ); +}; + +export default Notifications; diff --git a/client/src/pages/Register.js b/client/src/pages/Register.js new file mode 100644 index 0000000..6a756ea --- /dev/null +++ b/client/src/pages/Register.js @@ -0,0 +1,182 @@ +import React, { useState, useEffect } from 'react'; +import { Form, Input, Button, Card, message, Space, Select } from 'antd'; +import { UserOutlined, LockOutlined, IdcardOutlined, ApartmentOutlined } from '@ant-design/icons'; +import { useNavigate, Link } from 'react-router-dom'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const Register = () => { + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false); + const [sending, setSending] = useState(false); + const [countdown, setCountdown] = useState(0); + const [departments, setDepartments] = useState([]); + const navigate = useNavigate(); + + useEffect(() => { + fetchDepartments(); + }, []); + + const fetchDepartments = async () => { + try { + // 部门管理已合并进字典管理,使用字典接口获取 + const response = await axios.get(`${API_BASE_URL}/api/dictionaries/departments`); + setDepartments(response.data); + } catch (error) { + message.error('获取部门列表失败'); + } + }; + + const sendCode = async () => { + const phoneNumber = form.getFieldValue('username'); + if (!/^1[3-9]\d{9}$/.test(phoneNumber)) { + return message.error('请先输入正确的手机号'); + } + + setSending(true); + try { + await axios.post(`${API_BASE_URL}/api/auth/send-code`, { + phoneNumber, + type: 'register' + }); + message.success('验证码已发送'); + setCountdown(60); + const timer = setInterval(() => { + setCountdown(prev => { + if (prev <= 1) { + clearInterval(timer); + return 0; + } + return prev - 1; + }); + }, 1000); + } catch (error) { + message.error(error.response?.data?.message || '发送失败'); + } finally { + setSending(false); + } + }; + + const onFinish = async (values) => { + setLoading(true); + try { + await axios.post(`${API_BASE_URL}/api/auth/register`, { + ...values, + role: 'user' + }); + message.success('注册成功,请登录'); + navigate('/login'); + } catch (error) { + message.error(error.response?.data?.message || '注册失败'); + } finally { + setLoading(false); + } + }; + + return ( +
+ +
+ + + + } placeholder="手机号" style={{ width: '70%' }} /> + + + + + + + } placeholder="6位数字验证码" /> + + + + } placeholder="真实姓名" /> + + + + + + + + } placeholder="设置登录密码" /> + + + ({ + validator(_, value) { + if (!value || getFieldValue('password') === value) { + return Promise.resolve(); + } + return Promise.reject(new Error('两次输入的密码不一致')); + }, + }), + ]} + > + } placeholder="再次输入密码" /> + + + + +
+ 已有账号? 立即登录 +
+
+ +
+
+ ); +}; + +export default Register; diff --git a/client/src/pages/ResetPassword.js b/client/src/pages/ResetPassword.js new file mode 100644 index 0000000..1226583 --- /dev/null +++ b/client/src/pages/ResetPassword.js @@ -0,0 +1,162 @@ +import React, { useState, useEffect } from 'react'; +import { Form, Input, Button, Card, message, Row, Col } from 'antd'; +import { UserOutlined, LockOutlined, SafetyOutlined, ArrowLeftOutlined } from '@ant-design/icons'; +import { useNavigate, Link } from 'react-router-dom'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const ResetPassword = () => { + const [loading, setLoading] = useState(false); + const [sendingCode, setSendingCode] = useState(false); + const [countdown, setCountdown] = useState(0); + const [form] = Form.useForm(); + const navigate = useNavigate(); + + useEffect(() => { + let timer; + if (countdown > 0) { + timer = setInterval(() => { + setCountdown((prev) => prev - 1); + }, 1000); + } + return () => clearInterval(timer); + }, [countdown]); + + const sendCode = async () => { + try { + const phoneNumber = form.getFieldValue('phoneNumber'); + if (!phoneNumber || !/^1[3-9]\d{9}$/.test(phoneNumber)) { + message.error('请输入正确的手机号'); + return; + } + + setSendingCode(true); + await axios.post(`${API_BASE_URL}/api/auth/send-code`, { + phoneNumber, + type: 'reset' + }); + message.success('验证码已发送'); + setCountdown(60); + } catch (error) { + // 如果是 429 错误,尝试从错误消息中解析剩余秒数 + if (error.response?.status === 429) { + const msg = error.response.data.message; + const match = msg.match(/(\d+)/); + if (match) { + setCountdown(parseInt(match[1], 10)); + } + } + message.error(error.response?.data?.message || '发送失败'); + } finally { + setSendingCode(false); + } + }; + + const onFinish = async (values) => { + setLoading(true); + try { + await axios.post(`${API_BASE_URL}/api/auth/reset-password`, { + phoneNumber: values.phoneNumber, + code: values.code, + newPassword: values.newPassword + }); + message.success('密码重置成功,请重新登录'); + navigate('/login'); + } catch (error) { + message.error(error.response?.data?.message || '重置失败'); + } finally { + setLoading(false); + } + }; + + return ( +
+ +
+

重置密码

+

通过手机验证码重置您的密码

+
+
+ + } placeholder="手机号" size="large" /> + + + + +
+ + } placeholder="验证码" size="large" /> + + + + + + + + + + } placeholder="新密码" size="large" /> + + + ({ + validator(_, value) { + if (!value || getFieldValue('newPassword') === value) { + return Promise.resolve(); + } + return Promise.reject(new Error('两次输入的密码不一致')); + }, + }), + ]} + > + } placeholder="确认新密码" size="large" /> + + + + +
+ 返回登录 +
+
+ + + + ); +}; + +export default ResetPassword; diff --git a/client/src/pages/Statistics.js b/client/src/pages/Statistics.js new file mode 100644 index 0000000..8206948 --- /dev/null +++ b/client/src/pages/Statistics.js @@ -0,0 +1,703 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { Alert, Button, Card, Col, Input, message, Radio, Row, Select, Slider, Space, Spin, Switch, Table, Tag, Typography } from 'antd'; +import { ArrowLeftOutlined } from '@ant-design/icons'; +import { + Area, + Bar, + BarChart, + Brush, + CartesianGrid, + Cell, + ComposedChart, + Legend, + Line, + Pie, + PieChart, + PolarAngleAxis, + PolarGrid, + PolarRadiusAxis, + Radar, + RadarChart, + ResponsiveContainer, + Tooltip, + XAxis, + YAxis +} from 'recharts'; +import ReactMarkdown from 'react-markdown'; +import remarkGfm from 'remark-gfm'; +import axios from 'axios'; +import API_BASE_URL from '../config'; + +const { Title } = Typography; +const { Option } = Select; + +const TYPE_MAP = { + paper: '论文', + project: '项目', + award: '奖励', + standard: '标准', + monograph: '专著', + report: '技术报告', + plan: '规划', + patent: '专利', + transformation: '成果转化', + software: '软著' +}; + +const STATUS_MAP = { + pending: '待审核', + approved: '已通过', + rejected: '已驳回' +}; + +const AI_MODE_MAP = { + standard: '标准模式(仅聚合)', + deep: '深度模式(含成果名称样本)' +}; + +const AI_PROVIDER_MAP = { + deepseek: 'DeepSeek' +}; + +const ChartContainer = ({ height, minHeight, children }) => { + const containerRef = useRef(null); + const [ready, setReady] = useState(false); + + useEffect(() => { + const el = containerRef.current; + if (!el) return undefined; + + const refresh = () => { + const rect = el.getBoundingClientRect(); + setReady(rect.width > 0 && rect.height > 0); + }; + refresh(); + + let observer = null; + if (typeof ResizeObserver !== 'undefined') { + observer = new ResizeObserver(refresh); + observer.observe(el); + } else { + const timer = setInterval(refresh, 150); + return () => clearInterval(timer); + } + + return () => { + if (observer) observer.disconnect(); + }; + }, []); + + return ( +
+ {ready ? ( + + {children} + + ) : ( +
+ )} +
+ ); +}; + +const Statistics = () => { + const currentUser = (() => { + try { + return JSON.parse(localStorage.getItem('user') || '{}'); + } catch (e) { + return {}; + } + })(); + + const canUseAi = ['admin', 'super_admin', 'senior_user', 'intermediate_user'].includes(currentUser?.role); + + const [loading, setLoading] = useState(false); + const [data, setData] = useState(null); + + const [pieYear, setPieYear] = useState('all'); + const [radarYear, setRadarYear] = useState('all'); + const [barYear, setBarYear] = useState('all'); + const [trendMode, setTrendMode] = useState('month'); + + const [viewMode, setViewMode] = useState('chart'); + const [detailTitle, setDetailTitle] = useState(''); + const [detailLoading, setDetailLoading] = useState(false); + const [detailList, setDetailList] = useState([]); + + const [aiLoading, setAiLoading] = useState(false); + const [aiMode, setAiMode] = useState('standard'); + const [aiNameLimit, setAiNameLimit] = useState(100); + const [aiNameStrategy, setAiNameStrategy] = useState('latest'); + const [aiQuestion, setAiQuestion] = useState('请从成果结构、部门差异、风险点和改进优先级四个方面给出分析建议。'); + const [aiResult, setAiResult] = useState(''); + const [aiMeta, setAiMeta] = useState(null); + const aiAbortRef = useRef(null); + const [aiFilters, setAiFilters] = useState({ year: 'all', type: 'all', status: 'all', department: 'all' }); + + useEffect(() => { + const load = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const resp = await axios.get(`${API_BASE_URL}/api/statistics`, { headers: { Authorization: `Bearer ${token}` } }); + setData(resp.data); + } catch (e) { + message.error('获取统计数据失败'); + } finally { + setLoading(false); + } + }; + load(); + }, []); + + const generateColor = (index) => `hsl(${(index * 137.508) % 360}, 65%, 40%)`; + + const years = data + ? [...new Set((data.deptTypeDetails || []).map((item) => item.year))].filter(Boolean).sort((a, b) => b - a) + : []; + const departments = data + ? [...new Set((data.byDepartment || []).map((item) => item.department).filter(Boolean))] + : []; + + const inferYearFromQuestion = (text) => { + const q = String(text || '').trim(); + if (!q) return null; + const currentYear = new Date().getFullYear(); + if (/(今年|本年|当年)/.test(q)) return currentYear; + if (/(去年|上年|上一年)/.test(q)) return currentYear - 1; + if (/(明年|下年|下一年)/.test(q)) return currentYear + 1; + + const yearMatches = Array.from(q.matchAll(/(?:19|20|21)\d{2}/g)) + .map((m) => Number(m[0])) + .filter((y) => y >= 2000 && y <= currentYear + 100); + if (yearMatches.length === 0) return null; + + const uniqueYears = Array.from(new Set(yearMatches)); + if (uniqueYears.length === 1) return uniqueYears[0]; + if (/[-~至到]/.test(q)) return Math.max(...uniqueYears); + return null; + }; + + const syncChartsByYear = (yearValue) => { + const y = String(yearValue || 'all'); + setPieYear(y); + setRadarYear(y); + setBarYear(y); + }; + + const handleAiYearChange = (value) => { + const y = String(value || 'all'); + setAiFilters((prev) => ({ ...prev, year: y })); + syncChartsByYear(y); + }; + + const pieData = (() => { + if (!data) return []; + const m = {}; + (data.deptTypeDetails || []).forEach((item) => { + if (pieYear !== 'all' && String(item.year) !== String(pieYear)) return; + if (!m[item.department]) m[item.department] = { name: item.department, value: 0 }; + m[item.department].value += Number(item.count) || 0; + }); + return Object.values(m).sort((a, b) => b.value - a.value); + })(); + const pieColors = pieData.map((_, i) => generateColor(i)); + + const radarData = (() => { + if (!data) return []; + const m = {}; + (data.deptTypeDetails || []).forEach((item) => { + if (radarYear !== 'all' && String(item.year) !== String(radarYear)) return; + if (!m[item.type]) m[item.type] = { typeKey: item.type, name: TYPE_MAP[item.type] || item.type, value: 0 }; + m[item.type].value += Number(item.count) || 0; + }); + Object.keys(TYPE_MAP).forEach((k) => { + if (!m[k]) m[k] = { typeKey: k, name: TYPE_MAP[k], value: 0 }; + }); + return Object.values(m).sort((a, b) => a.value - b.value); + })(); + + const barData = (() => { + if (!data) return []; + const m = {}; + (data.deptTypeDetails || []).forEach((item) => { + if (barYear !== 'all' && String(item.year) !== String(barYear)) return; + if (!m[item.department]) m[item.department] = { name: item.department, total: 0 }; + const key = TYPE_MAP[item.type] || item.type; + const count = Number(item.count) || 0; + m[item.department][key] = (m[item.department][key] || 0) + count; + m[item.department].total += count; + }); + return Object.values(m).sort((a, b) => b.total - a.total); + })(); + + const allTypes = Object.values(TYPE_MAP); + const typeColorMap = {}; + allTypes.forEach((k, i) => { typeColorMap[k] = generateColor(i); }); + + const trendData = (() => { + if (!data || !data.byMonth || data.byMonth.length === 0) return []; + + const monthSet = new Set(); + (data.byMonth || []).forEach((item) => monthSet.add(item.month)); + (data.deptTrendDetails || []).forEach((item) => monthSet.add(item.month)); + const months = Array.from(monthSet).sort(); + if (months.length === 0) return []; + + const startMonth = months[0]; + const endMonth = months[months.length - 1]; + const fullMonths = []; + let [curY, curM] = startMonth.split('-').map(Number); + const [endY, endM] = endMonth.split('-').map(Number); + while (curY < endY || (curY === endY && curM <= endM)) { + fullMonths.push(`${curY}-${String(curM).padStart(2, '0')}`); + curM += 1; + if (curM > 12) { + curM = 1; + curY += 1; + } + } + + const incrementMap = {}; + fullMonths.forEach((m) => { incrementMap[m] = { 全单位: 0 }; }); + (data.byMonth || []).forEach((item) => { if (incrementMap[item.month]) incrementMap[item.month].全单位 = Number(item.count) || 0; }); + (data.deptTrendDetails || []).forEach((item) => { if (incrementMap[item.month]) incrementMap[item.month][item.department] = Number(item.count) || 0; }); + + const deptKeys = [...new Set((data.deptTrendDetails || []).map((item) => item.department))]; + const cumulative = { 全单位: 0 }; + deptKeys.forEach((d) => { cumulative[d] = 0; }); + + let result = fullMonths.map((m) => { + const entry = { name: m, rawMonth: m }; + const increments = incrementMap[m] || {}; + cumulative.全单位 += increments.全单位 || 0; + entry.全单位 = cumulative.全单位; + deptKeys.forEach((d) => { + cumulative[d] += increments[d] || 0; + entry[d] = cumulative[d]; + }); + return entry; + }); + + if (trendMode === 'year') { + const yearMap = {}; + result.forEach((item) => { yearMap[item.name.slice(0, 4)] = { ...item, name: item.name.slice(0, 4) }; }); + result = Object.values(yearMap).sort((a, b) => a.name.localeCompare(b.name)); + } + return result; + })(); + + const allDepts = data ? [...new Set((data.deptTrendDetails || []).map((item) => item.department))] : []; + const deptColorMap = {}; + allDepts.forEach((d, i) => { deptColorMap[d] = generateColor(i + 5); }); + + const fetchDetailList = async ({ department, type, year }) => { + setViewMode('list'); + setDetailLoading(true); + setDetailList([]); + + const params = {}; + if (department) params.department = department; + if (type) params.type = type; + if (year && year !== 'all') { + params.startDate = `${year}-01-01`; + params.endDate = `${year}-12-31`; + } + + try { + const token = localStorage.getItem('token'); + const resp = await axios.get(`${API_BASE_URL}/api/achievements`, { params, headers: { Authorization: `Bearer ${token}` } }); + setDetailList(resp.data); + } catch (e) { + message.error('获取成果列表失败'); + } finally { + setDetailLoading(false); + } + }; + + const handlePieClick = (entry) => { + if (!entry) return; + setDetailTitle(`${entry.name} 成果列表 ${pieYear !== 'all' ? `(${pieYear}年)` : ''}`); + fetchDetailList({ department: entry.name, year: pieYear }); + }; + + const handleRadarClick = (eventData) => { + if (!eventData) return; + let item = null; + if (eventData.payload && eventData.payload.value && !eventData.payload.typeKey) item = radarData.find((d) => d.name === eventData.payload.value); + else if (eventData.payload && eventData.payload.typeKey) item = eventData.payload; + else if (eventData.typeKey) item = eventData; + else if (eventData.activePayload && eventData.activePayload.length > 0) item = eventData.activePayload[0].payload; + + if (item?.typeKey) { + setDetailTitle(`${item.name} 列表 ${radarYear !== 'all' ? `(${radarYear}年)` : ''}`); + fetchDetailList({ type: item.typeKey, year: radarYear }); + } + }; + + const handleBack = () => { + setViewMode('chart'); + setDetailList([]); + }; + + const handleAiAnalyze = async () => { + if (!canUseAi) { + message.warning('当前账号无权使用 AI 分析'); + return; + } + if (aiLoading) return; + + let requestFilters = { ...aiFilters }; + const selectedYear = String(aiFilters?.year || 'all'); + if (selectedYear !== 'all') { + syncChartsByYear(selectedYear); + } else { + const inferredYear = inferYearFromQuestion(aiQuestion); + if (inferredYear) { + const y = String(inferredYear); + requestFilters = { ...requestFilters, year: y }; + setAiFilters((prev) => ({ ...prev, year: y })); + syncChartsByYear(y); + message.info(`已识别提问中的年份:${y}年,图表已自动切换。`); + } + } + + setAiLoading(true); + setAiResult(''); + setAiMeta(null); + try { + const token = localStorage.getItem('token'); + const controller = new AbortController(); + aiAbortRef.current = controller; + + const resp = await fetch(`${API_BASE_URL}/api/ai-analysis/achievements/stream`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }, + body: JSON.stringify({ + provider: 'deepseek', + question: aiQuestion, + filters: requestFilters, + mode: aiMode, + nameLimit: aiMode === 'deep' ? aiNameLimit : undefined, + nameStrategy: aiMode === 'deep' ? aiNameStrategy : undefined + }), + signal: controller.signal + }); + + if (!resp.ok) { + let errMessage = 'AI 分析请求失败'; + try { + const errJson = await resp.json(); + errMessage = errJson?.message || errMessage; + } catch (e) { + // ignore parse failure + } + throw new Error(errMessage); + } + + const reader = resp.body?.getReader(); + if (!reader) throw new Error('当前环境不支持流式读取'); + const decoder = new TextDecoder('utf-8'); + let buffer = ''; + + const processSseBlock = (block) => { + const lines = block.split('\n'); + let eventName = 'message'; + const dataLines = []; + lines.forEach((line) => { + const clean = line.trimEnd(); + if (clean.startsWith('event:')) eventName = clean.slice(6).trim(); + else if (clean.startsWith('data:')) dataLines.push(clean.slice(5).trim()); + }); + if (dataLines.length === 0) return; + + let payload = {}; + const dataText = dataLines.join('\n'); + try { payload = JSON.parse(dataText); } catch (e) { payload = { message: dataText }; } + + if (eventName === 'token') { + const delta = String(payload?.content || ''); + if (delta) setAiResult((prev) => `${prev}${delta}`); + return; + } + if (eventName === 'meta') { + setAiMeta((prev) => ({ + ...(prev || {}), + provider: payload?.provider || prev?.provider, + model: payload?.model || prev?.model, + generatedAt: payload?.generatedAt || prev?.generatedAt || new Date().toISOString() + })); + return; + } + if (eventName === 'done') { + setAiMeta((prev) => ({ + ...(prev || {}), + provider: payload?.provider || prev?.provider, + model: payload?.model || prev?.model, + generatedAt: payload?.generatedAt || prev?.generatedAt || new Date().toISOString(), + triedProviders: payload?.triedProviders || prev?.triedProviders, + summary: payload?.datasetSummary || prev?.summary, + protection: payload?.protection || prev?.protection, + mode: payload?.mode || prev?.mode, + nameSamples: payload?.nameSamples || prev?.nameSamples + })); + return; + } + if (eventName === 'error') throw new Error(payload?.message || 'AI 分析服务异常'); + }; + + while (true) { + const { value, done } = await reader.read(); + if (done) break; + buffer += decoder.decode(value, { stream: true }).replace(/\r/g, ''); + let splitIndex = buffer.indexOf('\n\n'); + while (splitIndex !== -1) { + processSseBlock(buffer.slice(0, splitIndex)); + buffer = buffer.slice(splitIndex + 2); + splitIndex = buffer.indexOf('\n\n'); + } + } + if (buffer.trim()) processSseBlock(buffer); + message.success('AI 分析已生成'); + } catch (e) { + if (e?.name === 'AbortError') message.info('已停止并清空输出'); + else message.error(e?.message || 'AI 分析失败'); + } finally { + aiAbortRef.current = null; + setAiLoading(false); + } + }; + + const handleClearAiOutput = () => { + if (aiAbortRef.current) { + aiAbortRef.current.abort(); + aiAbortRef.current = null; + } + setAiResult(''); + setAiMeta(null); + setAiMode('standard'); + setAiNameLimit(100); + setAiNameStrategy('latest'); + setAiFilters({ year: 'all', type: 'all', status: 'all', department: 'all' }); + syncChartsByYear('all'); + }; + + const detailColumns = [ + { title: '成果名称', dataIndex: 'name', key: 'name', ellipsis: true }, + { title: '主要完成人', dataIndex: 'main_contributors', key: 'main_contributors', ellipsis: true }, + { title: '归属部门', dataIndex: 'assigned_departments', key: 'assigned_departments', render: (v) => (v ? v.join(', ') : '-') }, + { title: '日期', dataIndex: 'achievement_date', key: 'achievement_date', width: 120, render: (v) => (v ? new Date(v).toLocaleDateString() : '-') }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + width: 100, + render: (status) => {STATUS_MAP[status]} + } + ]; + + if (loading || !data) { + return
; + } + + if (viewMode === 'list') { + return ( +
+
+ + {detailTitle} +
+ +
+ + + ); + } + + return ( +
+ 统计分析看板 + + + + {canUseAi && ( +
+ + + + + + + + {aiMode === 'deep' && ( + +
名称样本数量:{aiNameLimit}
+ { if (!Array.isArray(v)) setAiNameLimit(v); }} /> + + )} + {aiMode === 'deep' && ( + +
类型均衡策略(关=最新优先)
+ setAiNameStrategy(checked ? 'balanced' : 'latest')} checkedChildren="开" unCheckedChildren="关" /> + + )} + + + + + + + + + + + + + + + setAiQuestion(e.target.value)} placeholder="请描述你要分析的角度,例如:2025年哪个部门成果增长最快,下一步改进重点是什么?" /> + + + + + + {aiMeta && ( +
+ 提供方:{AI_PROVIDER_MAP[aiMeta.provider] || aiMeta.provider || '-'} | 模型:{aiMeta.model || '-'} | 生成时间:{aiMeta.generatedAt ? new Date(aiMeta.generatedAt).toLocaleString() : '-'} | 模式:{aiMeta.mode === 'deep' ? '深度' : '标准'} + {aiMeta?.nameSamples?.mode === 'deep' ? ` | 名称样本:${aiMeta?.nameSamples?.sent || 0}/${aiMeta?.nameSamples?.total || 0}${aiMeta?.nameSamples?.truncated ? '(已截断)' : ''}` : ''} + {aiMeta?.nameSamples?.mode === 'deep' ? ` | 策略:${aiMeta?.nameSamples?.strategy === 'balanced' ? '类型均衡' : '最新优先'}` : ''} + {Array.isArray(aiMeta?.triedProviders) && aiMeta.triedProviders.length > 0 ? ` | 尝试顺序:${aiMeta.triedProviders.join(' -> ')}` : ''} +
+ )} + + {aiResult && ( + +
+ {aiResult} +
+
+ )} + + + )} + +
+ 部门成果占比(饼图)} + variant="borderless" + > + + + `${name} (${(percent * 100).toFixed(0)}%)`} outerRadius={80} fill="#8884d8" dataKey="value" onClick={handlePieClick} style={{ cursor: 'pointer' }}> + {pieData.map((entry, index) => )} + + + + + + + + + + 成果类型分布(雷达图)} + variant="borderless" + > + + + + + + + + + + handleRadarClick({ payload })} style={{ cursor: 'pointer', fontSize: 12, fontWeight: 'bold' }} tick={{ fill: '#666' }} /> + + + + + + + + + + 各部门成果种类统计} + variant="borderless" + > +
+
8 ? barData.length * 100 : '100%' }}> + + + + + + + + {allTypes.map((name) => )} + + +
+
+
+ + + + 累计成果与部门趋势(按月/按年) setTrendMode(e.target.value)} buttonStyle="solid">按月按年} + variant="borderless" + > +
+ {trendData.length > 0 ? ( + + + + + + + + + 12 ? trendData.length - 12 : 0} /> + + {allDepts.map((dept) => )} + + + ) : ( +
暂无数据
+ )} +
+
+ + + + ); +}; + +export default Statistics; diff --git a/client/src/pages/SystemLogs.js b/client/src/pages/SystemLogs.js new file mode 100644 index 0000000..97bc4af --- /dev/null +++ b/client/src/pages/SystemLogs.js @@ -0,0 +1,207 @@ +import React, { useState, useEffect, useCallback } from 'react'; +import { Table, Card, Form, Input, DatePicker, Button, Space, Tag, message, Select } from 'antd'; +import { SearchOutlined, ReloadOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; +import { maskPhone, maskPhonesInText } from '../utils/phoneMask'; + +const { RangePicker } = DatePicker; +const { Option } = Select; + +const SystemLogs = () => { + const [logs, setLogs] = useState([]); + const [descriptions, setDescriptions] = useState([]); + const [loading, setLoading] = useState(false); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 20, + total: 0, + }); + const [filters, setFilters] = useState({}); + const [form] = Form.useForm(); + + const fetchDescriptions = useCallback(async () => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/logs/descriptions`, { + headers: { Authorization: `Bearer ${token}` }, + }); + setDescriptions(response.data); + } catch (error) { + console.error('获取操作说明列表失败', error); + } + }, []); + + const fetchLogs = useCallback(async (page = 1, pageSize = 20, currentFilters = {}) => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const params = { + page, + limit: pageSize, + ...currentFilters, + }; + + // 处理日期范围 + if (currentFilters.dateRange) { + params.startDate = currentFilters.dateRange[0].format('YYYY-MM-DD 00:00:00'); + params.endDate = currentFilters.dateRange[1].format('YYYY-MM-DD 23:59:59'); + delete params.dateRange; + } + + const response = await axios.get(`${API_BASE_URL}/api/logs`, { + headers: { Authorization: `Bearer ${token}` }, + params, + }); + + setLogs(response.data.logs); + setPagination({ + current: response.data.page, + pageSize: pageSize, + total: response.data.total, + }); + } catch (error) { + message.error('获取日志失败'); + console.error(error); + } finally { + setLoading(false); + } + }, []); + + useEffect(() => { + fetchLogs(1, 20); + fetchDescriptions(); + }, [fetchLogs, fetchDescriptions]); + + const handleTableChange = (newPagination) => { + fetchLogs(newPagination.current, newPagination.pageSize, filters); + }; + + const onFinish = (values) => { + setFilters(values); + fetchLogs(1, pagination.pageSize, values); + }; + + const handleReset = () => { + form.resetFields(); + setFilters({}); + fetchLogs(1, 20, {}); + }; + + const columns = [ + { + title: '时间', + dataIndex: 'created_at', + key: 'created_at', + width: 180, + render: (text) => new Date(text).toLocaleString(), + }, + { + title: '操作人', + key: 'user', + width: 150, + render: (_, record) => ( + record.real_name ? `${record.real_name} (${maskPhone(record.username)})` : (maskPhone(record.username) || 'Guest') + ), + }, + { + title: 'IP地址', + dataIndex: 'ip_address', + key: 'ip_address', + width: 140, + }, + { + title: '方法', + dataIndex: 'method', + key: 'method', + width: 80, + render: (text) => { + let color = 'blue'; + if (text === 'GET') color = 'green'; + if (text === 'POST') color = 'blue'; + if (text === 'PUT') color = 'orange'; + if (text === 'DELETE') color = 'red'; + return {text}; + } + }, + { + title: '操作说明', + dataIndex: 'description', + key: 'description', + width: 150, + render: (text) => maskPhonesInText(text) || '-', + }, + { + title: '请求路径', + dataIndex: 'url', + key: 'url', + ellipsis: true, + render: (text) => maskPhonesInText(text), + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + width: 80, + render: (status) => { + let color = 'green'; + if (status >= 400) color = 'orange'; + if (status >= 500) color = 'red'; + return {status}; + } + }, + { + title: '耗时', + dataIndex: 'duration', + key: 'duration', + width: 100, + render: (text) => `${text}ms`, + }, + ]; + + return ( + +
+ + + + + + + + + + + + + + + + + +
`共 ${total} 条记录`, + }} + loading={loading} + onChange={handleTableChange} + size="middle" + /> + + ); +}; + +export default SystemLogs; diff --git a/client/src/pages/Upload.js b/client/src/pages/Upload.js new file mode 100644 index 0000000..1c0e201 --- /dev/null +++ b/client/src/pages/Upload.js @@ -0,0 +1,638 @@ +import React, { useState, useEffect, useMemo } from 'react'; +import { Form, Input, Button, Tabs, DatePicker, InputNumber, Upload, Card, message, Space, Checkbox, Divider, Select, Alert } from 'antd'; +import { UploadOutlined, PlusOutlined, MinusCircleOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import API_BASE_URL from '../config'; +import UserSearchSelect from '../components/UserSearchSelect'; +import { maskPhone } from '../utils/phoneMask'; +import { + achievementTypes, + uploadTips, + contributorTips, + dateTips, + nameLabels, + contributorLabels, + dateLabels, + roleOptions, + contributorAddButtonLabels, + contributorMainLabels, + nameTips, + sourceTips +} from '../constants/achievements'; + +const { Option } = Select; + +const UploadPage = () => { + const [form] = Form.useForm(); + const [type, setType] = useState('project'); + const [loading, setLoading] = useState(false); + const [fileList, setFileList] = useState([]); + // 项目类专用文件列表 + const [projectProofFiles, setProjectProofFiles] = useState([]); // 立项证明 + const [projectPlanFiles, setProjectPlanFiles] = useState([]); // 实施方案 + const [projectSummaryFiles, setProjectSummaryFiles] = useState([]); // 验收总结 + + const [dicts, setDicts] = useState({ + organizations: [], + 'award-types': [], + 'award-levels': [], + 'paper-types': [], + 'standard-types': [], + 'project-categories': [] + }); + + const fetchDicts = useMemo(() => async () => { + const types = ['organizations', 'award-types', 'award-levels', 'paper-types', 'standard-types', 'project-categories']; + const token = localStorage.getItem('token'); + try { + const results = await Promise.all( + types.map(t => axios.get(`${API_BASE_URL}/api/dictionaries/${t}`, { + headers: { Authorization: `Bearer ${token}` } + })) + ); + const newDicts = {}; + types.forEach((t, index) => { + newDicts[t] = results[index].data; + }); + setDicts(newDicts); + } catch (error) { + console.error('获取字典失败', error); + } + }, []); + + useEffect(() => { + fetchDicts(); + }, [fetchDicts]); + + const renderDictSelectWithCustom = (name, label, dictData, rules = []) => { + return ( + <> + + + + prev[name] !== current[name]} + > + {({ getFieldValue }) => + getFieldValue(name) === '其他' ? ( + + + + ) : null + } + + + ); + }; + + const onFinish = async (values) => { + setLoading(true); + + // 处理“其他”选项的自定义输入 + const customFields = ['first_unit', 'assignee', 'owner_unit']; + customFields.forEach(field => { + if (values[field] === '其他') { + values[field] = values[`${field}_custom`]; + } + delete values[`${field}_custom`]; + }); + + // 前端去重校验 + const contributors = values.contributors || []; + const phoneSet = new Set(); + for (const c of contributors) { + if (c.user) { + const u = JSON.parse(c.user); + if (phoneSet.has(u.phone)) { + message.error(`完成人列表中存在重复的员工:${u.real_name} (${maskPhone(u.phone)})。请删除重复项。`); + setLoading(false); + return; + } + phoneSet.add(u.phone); + } + } + + // 排名去重校验 + if (!['project', 'transformation'].includes(type)) { + const rankingSet = new Set(); + for (const c of contributors) { + if (c.ranking) { + if (rankingSet.has(c.ranking)) { + message.error(`完成人排名不能重复:第 ${c.ranking} 名出现了多次。`); + setLoading(false); + return; + } + rankingSet.add(c.ranking); + } + } + } + + // 附件校验 + if (type === 'project') { + if (projectProofFiles.length === 0) { + message.error('请上传立项证明'); + setLoading(false); + return; + } + if (projectPlanFiles.length === 0) { + message.error('请上传实施方案'); + setLoading(false); + return; + } + if (projectSummaryFiles.length === 0) { + message.error('请上传验收总结'); + setLoading(false); + return; + } + } else { + if (fileList.length === 0) { + message.error('请至少上传一个附件'); + setLoading(false); + return; + } + } + + const formData = new FormData(); + formData.append('type', type); + + const finalContributors = (values.contributors || []).map(c => { + const u = c.user ? JSON.parse(c.user) : {}; + return { + name: u.real_name, + phone: u.phone, + role: c.role, + isMain: c.isMain, + ranking: c.ranking + }; + }).filter(c => c.name); + + const { name, achievement_date, remarks, contributors: _ignoredContributors, approver, ...details } = values; + + formData.append('name', name); + formData.append('contributors', JSON.stringify(finalContributors)); + formData.append('achievement_date', achievement_date ? achievement_date.format('YYYY-MM-DD') : ''); + formData.append('remarks', remarks || ''); + + // 处理签批领导 + if (type === 'report' && approver) { + try { + const approverUser = JSON.parse(approver); + details.approver_id = approverUser.id; + details.approver_name = approverUser.real_name; + } catch (e) { + console.error('解析签批领导信息失败', e); + } + } + + formData.append('details', JSON.stringify(details)); + + if (type === 'project') { + // 项目类附件处理:添加前缀以区分 + projectProofFiles.forEach(file => { + const newFile = new File([file.originFileObj], `[立项证明]-${file.name}`, { type: file.type }); + formData.append('attachments', newFile); + }); + projectPlanFiles.forEach(file => { + const newFile = new File([file.originFileObj], `[实施方案]-${file.name}`, { type: file.type }); + formData.append('attachments', newFile); + }); + projectSummaryFiles.forEach(file => { + const newFile = new File([file.originFileObj], `[验收总结]-${file.name}`, { type: file.type }); + formData.append('attachments', newFile); + }); + } else { + fileList.forEach(file => { + formData.append('attachments', file.originFileObj); + }); + } + + try { + const token = localStorage.getItem('token'); + await axios.post(`${API_BASE_URL}/api/achievements`, formData, { + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'multipart/form-data' + } + }); + message.success('成果上传成功,请等待管理员审核'); + form.resetFields(); + setFileList([]); + setProjectProofFiles([]); + setProjectPlanFiles([]); + setProjectSummaryFiles([]); + } catch (error) { + message.error(error.response?.data?.message || '上传失败'); + } finally { + setLoading(false); + } + }; + + const renderCommonFields = () => { + const hasRanking = !['project', 'transformation'].includes(type); + const useCheckbox = ['project', 'transformation'].includes(type); + const isPaper = type === 'paper'; + + return ( + <> + 成果名称 + {nameTips[type] && ( + + )} + + + + + 完成人信息 + {contributorTips[type] && ( + + )} + + + {(fields, { add, remove }) => ( + <> + {fields.length > 0 && ( + + + *姓名 + + + {hasRanking && ( + + *排名 + + )} + + {isPaper && ( + + *角色 + + )} + + {useCheckbox && ( + + {contributorMainLabels[type] || contributorMainLabels.default} + + )} + + )} + {fields.map(({ key, name, ...restField }) => ( + + + + + + {hasRanking && ( + + + + )} + + {isPaper && ( + + + + )} + + {useCheckbox && ( + + + {contributorMainLabels[type] || contributorMainLabels.default} + + + )} + + {fields.length > 1 && ( + remove(name)} /> + )} + + ))} + + + + + )} + + + 成果信息 + + {dateTips[type] && ( + + )} + + + + + + ); + }; + + const renderSpecificFields = () => { + switch (type) { + case 'paper': + return ( + <> + {renderDictSelectWithCustom('first_unit', '完成单位', dicts['organizations'], [{ required: true, message: '请选择完成单位' }])} + + + + + + + + + ); + case 'project': + return ( + <> + + + + {sourceTips[type] && ( + + )} + + + ); + case 'award': + return ( + <> + + + + + + + + + + + ); + case 'standard': + return ( + <> + + + + + + + ); + case 'monograph': + return ( + <> + + + + ); + case 'report': + return ( + <> + + + + + + + ); + case 'plan': + return null; + case 'patent': + return ( + <> + + {renderDictSelectWithCustom('assignee', '权利人', dicts['organizations'], [{ required: true, message: '请选择权利人' }])} + + + + + ); + case 'transformation': + return ( + <> + + + + + + + ); + case 'software': + return ( + <> + + {renderDictSelectWithCustom('owner_unit', '著作权人', dicts['organizations'], [{ required: true, message: '请选择著作权人' }])} + + + + + + + + ); + default: + return

未知类型

; + } + }; + + return ( + + { + setType(key); + form.resetFields(); + setFileList([]); + setProjectProofFiles([]); + setProjectPlanFiles([]); + setProjectSummaryFiles([]); + }} + items={achievementTypes.map(t => ({ + key: t.key, + label: t.label, + }))} + /> + +
+ {renderCommonFields()} + {renderSpecificFields()} + + 附件上传 + + {type === 'project' ? ( + <> + + + false} + fileList={projectProofFiles} + onChange={({ fileList }) => setProjectProofFiles(fileList)} + multiple + > + + + + + false} + fileList={projectPlanFiles} + onChange={({ fileList }) => setProjectPlanFiles(fileList)} + multiple + > + + + + + false} + fileList={projectSummaryFiles} + onChange={({ fileList }) => setProjectSummaryFiles(fileList)} + multiple + > + + + + + ) : ( + + {uploadTips[type] && ( + + )} + false} + fileList={fileList} + onChange={({ fileList }) => setFileList(fileList)} + multiple + > + + + + )} + + + + + + + + +
+ ); +}; + +export default UploadPage; diff --git a/client/src/pages/UserManagement.js b/client/src/pages/UserManagement.js new file mode 100644 index 0000000..5b814e1 --- /dev/null +++ b/client/src/pages/UserManagement.js @@ -0,0 +1,480 @@ +import React, { useState, useEffect } from 'react'; +import { Table, Button, Space, Modal, Form, Input, Select, message, Card, Popconfirm, Tag, Progress, DatePicker } from 'antd'; +import { UserAddOutlined, EditOutlined, DeleteOutlined, SearchOutlined, FileTextOutlined } from '@ant-design/icons'; +import axios from 'axios'; +import JSZip from 'jszip'; +import { saveAs } from 'file-saver'; +import html2canvas from 'html2canvas'; +import API_BASE_URL from '../config'; +import AchievementFormRenderer from '../components/AchievementFormRenderer'; +import { maskPhone } from '../utils/phoneMask'; + +const { RangePicker } = DatePicker; + +const UserManagement = () => { + const [users, setUsers] = useState([]); + const [loading, setLoading] = useState(false); + const [isModalVisible, setIsModalVisible] = useState(false); + const [editingUser, setEditingUser] = useState(null); + const [keyword, setKeyword] = useState(''); + const [exportMonthRange, setExportMonthRange] = useState(null); + const [departments, setDepartments] = useState([]); + const [form] = Form.useForm(); + const currentUser = JSON.parse(localStorage.getItem('user') || '{}'); + + // 批量导出相关状态 + const [batchLoading, setBatchLoading] = useState(false); + const [batchProgress, setBatchProgress] = useState({ current: 0, total: 0 }); + const [batchCurrentData, setBatchCurrentData] = useState(null); + + useEffect(() => { + fetchUsers(); + fetchDepartments(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const fetchDepartments = async () => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/dictionaries/departments`, { + headers: { Authorization: `Bearer ${token}` } + }); + setDepartments(response.data); + } catch (error) { + message.error('获取部门列表失败'); + } + }; + + const fetchUsers = async () => { + setLoading(true); + try { + const token = localStorage.getItem('token'); + const response = await axios.get(`${API_BASE_URL}/api/users`, { + headers: { Authorization: `Bearer ${token}` }, + params: { keyword } + }); + setUsers(response.data); + } catch (error) { + message.error('获取用户列表失败'); + } finally { + setLoading(false); + } + }; + + const handleAdd = () => { + setEditingUser(null); + form.resetFields(); + setIsModalVisible(true); + }; + + const handleEdit = (record) => { + setEditingUser(record); + form.setFieldsValue({ + username: record.username, + role: record.role, + real_name: record.real_name, + department: record.department, + // 批量导出相关状态 + }); + setIsModalVisible(true); + }; + + const handleDelete = async (id) => { + try { + const token = localStorage.getItem('token'); + await axios.delete(`${API_BASE_URL}/api/users/${id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('删除成功'); + fetchUsers(); + } catch (error) { + message.error(error.response?.data?.message || '删除失败'); + } + }; + + const handleSubmit = async (values) => { + try { + const token = localStorage.getItem('token'); + if (editingUser) { + await axios.put(`${API_BASE_URL}/api/users/${editingUser.id}`, values, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('修改成功'); + } else { + await axios.post(`${API_BASE_URL}/api/users`, values, { + headers: { Authorization: `Bearer ${token}` } + }); + message.success('创建成功'); + } + setIsModalVisible(false); + fetchUsers(); + } catch (error) { + message.error(error.response?.data?.message || '操作失败'); + } + }; + + const hasExportRange = () => ( + exportMonthRange && + exportMonthRange.length === 2 && + exportMonthRange[0] && + exportMonthRange[1] + ); + + const getExportDateParams = () => { + if (!hasExportRange()) { + return {}; + } + + return { + startDate: exportMonthRange[0].startOf('month').format('YYYY-MM-DD'), + endDate: exportMonthRange[1].endOf('month').format('YYYY-MM-DD') + }; + }; + + const getExportRangeSuffix = () => { + if (!hasExportRange()) { + return ''; + } + + return `${exportMonthRange[0].format('YYYYMM')}_to_${exportMonthRange[1].format('YYYYMM')}`; + }; + + const triggerExportUserAchievements = (user) => { + if (hasExportRange()) { + handleExportUserAchievements(user); + return; + } + + Modal.confirm({ + title: '未选择导出年月范围', + content: '当前将导出该用户全部成果。若需按年月导出,请先选择上方“导出年月范围”。', + okText: '继续导出', + cancelText: '取消', + onOk: () => handleExportUserAchievements(user) + }); + }; + + const handleExportUserAchievements = async (user) => { + setBatchLoading(true); + setBatchProgress({ current: 0, total: 0 }); + const zip = new JSZip(); + const token = localStorage.getItem('token'); + const exportDateParams = getExportDateParams(); + const exportRangeSuffix = getExportRangeSuffix(); + + try { + // 1. 获取用户的所有成果 + // 使用 export_action=true 标记,以便后端审计日志记录为“导出用户成果数据” + const response = await axios.get(`${API_BASE_URL}/api/achievements`, { + headers: { Authorization: `Bearer ${token}` }, + params: { + keyword: user.username, // 使用手机号作为关键词匹配参与人 + export_action: 'true', + ...exportDateParams + } + }); + + const achievements = response.data; + if (achievements.length === 0) { + if (exportRangeSuffix) { + message.warning('该用户在所选年月范围内没有成果数据'); + setBatchLoading(false); + return; + } + message.warning('该用户没有相关成果数据'); + setBatchLoading(false); + return; + } + + setBatchProgress({ current: 0, total: achievements.length }); + + // 2. 生成 CSV 清单 + let csvContent = '\uFEFF'; // BOM for Excel + csvContent += "ID,成果名称,类型,状态,提交人,参与人,归属部门,成果时间\n"; + + achievements.forEach(item => { + const typeMap = { + paper: '论文', + project: '项目', + award: '奖励', + standard: '标准', + monograph: '专著', + report: '技术报告', + plan: '规划', + patent: '专利', + transformation: '成果转化', + software: '软著' + }; + const statusMap = { + pending: '待审核', + approved: '已通过', + rejected: '已驳回' + }; + + const contributors = (item.contributors || []).map(c => c.name).join('; '); + const departments = (item.assigned_departments || []).join('; '); + const date = item.achievement_date ? new Date(item.achievement_date).toLocaleDateString() : ''; + + // 处理字段中的逗号和引号 + const escape = (field) => `"${String(field || '').replace(/"/g, '""')}"`; + + csvContent += [ + item.id, + escape(item.name), + escape(typeMap[item.type] || item.type), + escape(statusMap[item.status] || item.status), + escape(item.submitter_name), + escape(contributors), + escape(departments), + escape(date) + ].join(',') + "\n"; + }); + + zip.file(`成果清单_${user.real_name}${exportRangeSuffix ? `_${exportRangeSuffix}` : ''}.csv`, csvContent); + + // 3. 批量生成表单图片 + for (let i = 0; i < achievements.length; i++) { + const item = achievements[i]; + setBatchProgress({ current: i + 1, total: achievements.length }); + + try { + // 获取详情 + const detailRes = await axios.get(`${API_BASE_URL}/api/achievements/${item.id}`, { + headers: { Authorization: `Bearer ${token}` } + }); + const detailData = detailRes.data; + + // 渲染 + setBatchCurrentData(detailData); + await new Promise(resolve => setTimeout(resolve, 500)); // 等待渲染 + + // 截图 + const element = document.getElementById('batch-export-container-user'); + if (element) { + const exportWidth = Math.max(element.scrollWidth, element.offsetWidth); + const exportHeight = Math.max(element.scrollHeight, element.offsetHeight); + const canvas = await html2canvas(element, { + useCORS: true, + scale: 2, + backgroundColor: '#ffffff', + width: exportWidth, + height: exportHeight, + windowWidth: exportWidth, + windowHeight: exportHeight, + scrollX: 0, + scrollY: 0 + }); + + const imgData = canvas.toDataURL('image/png').split(',')[1]; + const fileName = `成果表单_${detailData.name || '未命名'}_${detailData.id}.png`; + const safeFileName = fileName.replace(/[\\/:*?"<>|]/g, '_'); + zip.file(safeFileName, imgData, { base64: true }); + } + } catch (err) { + console.error(`处理成果 ${item.id} 失败`, err); + } + } + + // 4. 下载 ZIP + const content = await zip.generateAsync({ type: 'blob' }); + saveAs(content, `用户成果导出_${user.real_name}${exportRangeSuffix ? `_${exportRangeSuffix}` : ''}_${new Date().toISOString().slice(0,10)}.zip`); + message.success('导出完成'); + + } catch (error) { + console.error(error); + message.error('导出失败'); + } finally { + setBatchLoading(false); + setBatchCurrentData(null); + } + }; + + const columns = [ + { title: '手机号', dataIndex: 'username', key: 'username', render: (value) => maskPhone(value) || '-' }, + { title: '真实姓名', dataIndex: 'real_name', key: 'real_name' }, + { + title: '部门', + dataIndex: 'department', + key: 'department', + render: (text, record) => ( + + {text} + {record.dept_status === 'pending' && ( + 待确认 + )} + + ) + }, + { + title: '角色', + dataIndex: 'role', + key: 'role', + render: (role) => { + const roleMap = { + super_admin: { color: 'purple', text: '超级管理员' }, + admin: { color: 'blue', text: '管理员' }, + senior_user: { color: 'cyan', text: '高级用户' }, + intermediate_user: { color: 'geekblue', text: '中级用户' }, + user: { color: 'green', text: '普通用户' }, + maintainer: { color: 'orange', text: '系统维护员' } + }; + const { color, text } = roleMap[role] || { color: 'default', text: role }; + return {text}; + } + }, + { title: '创建时间', dataIndex: 'created_at', key: 'created_at', render: (t) => new Date(t).toLocaleString() }, + { + title: '操作', + key: 'action', + width: 300, + render: (_, record) => ( + + + {(currentUser.role === 'super_admin' || currentUser.role === 'admin') && ( + + )} + {currentUser.role === 'super_admin' && ( + handleDelete(record.id)}> + + + )} + + ), + }, + ]; + + return ( + } onClick={handleAdd}>新增用户} + > +
+ + setKeyword(e.target.value)} + onPressEnter={fetchUsers} + allowClear + /> + + {(currentUser.role === 'super_admin' || currentUser.role === 'admin') && ( + <> + 导出年月范围: + setExportMonthRange(dates)} + placeholder={['导出起始年月', '导出结束年月']} + /> + + )} + +
+
+ + form.submit()} + onCancel={() => setIsModalVisible(false)} + destroyOnClose + > +
+ + + + + + + + + + + + + + + + +
+ + {/* 批量导出进度遮罩 */} + +
+ 0 ? Math.round((batchProgress.current / batchProgress.total) * 100) : 0} + format={() => `${batchProgress.current} / ${batchProgress.total}`} + /> +
+ 正在生成成果清单和表单图片...
+ 请勿关闭页面,这可能需要几分钟。 +
+
+
+ + {/* 隐藏的渲染容器 */} +
+ {batchCurrentData && ( + <> +
+
+ e.target.style.display='none'} alt="logo" /> +

科技成果管理表单

+
+
生成时间:{new Date().toLocaleString()}
+
+ + + )} +
+ + ); +}; + +export default UserManagement; diff --git a/client/src/reportWebVitals.js b/client/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/client/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/client/src/setupTests.js b/client/src/setupTests.js new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/client/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/client/src/utils/phoneMask.js b/client/src/utils/phoneMask.js new file mode 100644 index 0000000..52e0681 --- /dev/null +++ b/client/src/utils/phoneMask.js @@ -0,0 +1,17 @@ +export const maskPhone = (value) => { + const text = String(value ?? '').trim(); + if (!text) return ''; + + if (/^1\d{10}$/.test(text)) { + return `${text.slice(0, 3)}****${text.slice(7)}`; + } + + return text; +}; + +export const maskPhonesInText = (value) => { + const text = String(value ?? ''); + if (!text) return ''; + + return text.replace(/1\d{10}/g, (phone) => maskPhone(phone)); +}; diff --git a/database/schema.sql b/database/schema.sql new file mode 100644 index 0000000..520e6fd --- /dev/null +++ b/database/schema.sql @@ -0,0 +1,235 @@ +-- 科技成果转化系统 数据库设计 (PostgreSQL) - 完整版 + +-- 1. 部门表 +CREATE TABLE IF NOT EXISTS departments ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 2. 用户表 +CREATE TABLE IF NOT EXISTS users ( + id SERIAL PRIMARY KEY, + username VARCHAR(50) UNIQUE NOT NULL, -- 手机号 + password_hash VARCHAR(255) NOT NULL, + role VARCHAR(20) NOT NULL CHECK (role IN ('super_admin', 'admin', 'user', 'maintainer', 'senior_user', 'intermediate_user')), + real_name VARCHAR(100), + department VARCHAR(100), -- 所属部门名称 + dept_status VARCHAR(20) DEFAULT 'verified', -- 部门审核状态 + token_version INTEGER DEFAULT 0, -- Token 版本号 (用于单点登录) + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 3. 成果基础信息表 (所有类型共用) +CREATE TABLE IF NOT EXISTS achievements ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + type VARCHAR(50) NOT NULL, -- 'paper', 'project', 'award', 'standard', 'monograph', 'report', 'plan', 'patent', 'transformation', 'software' + name TEXT NOT NULL, -- 成果名称 + main_contributors TEXT, -- 主要完成人 (字符串格式,兼容旧数据) + all_contributors TEXT, -- 完成人 (字符串格式,兼容旧数据) + contributor_phones TEXT, -- 完成人手机号 (字符串格式) + contributors JSONB DEFAULT '[]', -- 结构化完成人列表 [{name, phone, isMain}] + assigned_departments TEXT[] DEFAULT '{}', -- 归属部门数组 (自动计算) + achievement_date DATE, -- 时间 + remarks TEXT, -- 备注 + status VARCHAR(20) DEFAULT 'pending' CHECK (status IN ('pending', 'approved', 'rejected')), + audit_comment TEXT, -- 审核意见 + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 4. 论文详情表 +CREATE TABLE IF NOT EXISTS achievement_paper ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + paper_type TEXT, + first_unit TEXT, + journal_name TEXT, + publish_date DATE, + doi VARCHAR(100) +); + +-- 5. 项目详情表 +CREATE TABLE IF NOT EXISTS achievement_project ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + project_category TEXT, + source TEXT +); + +-- 6. 奖励详情表 +CREATE TABLE IF NOT EXISTS achievement_award ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + award_type TEXT, + award_level TEXT, + award_unit TEXT +); + +-- 7. 标准详情表 +CREATE TABLE IF NOT EXISTS achievement_standard ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + standard_type TEXT, + standard_no VARCHAR(100) NOT NULL, + implement_date DATE +); + +-- 8. 专著详情表 +CREATE TABLE IF NOT EXISTS achievement_monograph ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + publisher TEXT, + isbn VARCHAR(50) +); + +-- 9. 技术报告详情表 +CREATE TABLE IF NOT EXISTS achievement_report ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + report_type TEXT, + recipient TEXT, + approver_id INTEGER REFERENCES users(id), -- 签批院领导ID + approver_name VARCHAR(100) -- 签批院领导姓名 (冗余存储,方便显示) +); + +-- 10. 规划详情表 +CREATE TABLE IF NOT EXISTS achievement_plan ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE +); + +-- 11. 专利详情表 +CREATE TABLE IF NOT EXISTS achievement_patent ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + patent_no VARCHAR(100), + patent_type TEXT, + assignee TEXT +); + +-- 12. 成果转化详情表 +CREATE TABLE IF NOT EXISTS achievement_transformation ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + trans_method TEXT, + trans_amount NUMERIC(15, 2), + project_category TEXT +); + +-- 13. 软著详情表 +CREATE TABLE IF NOT EXISTS achievement_software ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + reg_no VARCHAR(100), + acquisition_method TEXT, + scope TEXT, + owner_unit TEXT +); + +-- 14. 附件表 +CREATE TABLE IF NOT EXISTS achievement_attachments ( + id SERIAL PRIMARY KEY, + achievement_id INTEGER REFERENCES achievements(id) ON DELETE CASCADE, + file_name TEXT NOT NULL, + file_path TEXT NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 15. 字典表 (由超级管理员管理) + +-- 单位名称表 +CREATE TABLE IF NOT EXISTS dict_organizations ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 奖励种类表 +CREATE TABLE IF NOT EXISTS dict_award_types ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 奖励等级表 +CREATE TABLE IF NOT EXISTS dict_award_levels ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 论文种类表 +CREATE TABLE IF NOT EXISTS dict_paper_types ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 标准种类表 +CREATE TABLE IF NOT EXISTS dict_standard_types ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 项目分类表 +CREATE TABLE IF NOT EXISTS dict_project_categories ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 领导层部门表 (用于筛选签批领导) +CREATE TABLE IF NOT EXISTS dict_leader_departments ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) UNIQUE NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 16. 审计日志表 +CREATE TABLE IF NOT EXISTS audit_logs ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + username VARCHAR(50), + real_name VARCHAR(50), + ip_address VARCHAR(50), + method VARCHAR(10), + url TEXT, + description VARCHAR(255), + status INTEGER, + duration INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- 17. 系统公告表 +CREATE TABLE IF NOT EXISTS notifications ( + id SERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + content TEXT NOT NULL, + publisher_id INTEGER REFERENCES users(id), + publisher_name VARCHAR(100), + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, + is_top BOOLEAN DEFAULT FALSE, + status VARCHAR(20) DEFAULT 'published' -- published, draft, archived +); + +-- 18. 系统公告附件表 +CREATE TABLE IF NOT EXISTS notification_attachments ( + id SERIAL PRIMARY KEY, + notification_id INTEGER REFERENCES notifications(id) ON DELETE CASCADE, + file_name VARCHAR(255) NOT NULL, + file_path VARCHAR(255) NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); + +-- 索引优化 +CREATE INDEX IF NOT EXISTS idx_achievements_user ON achievements(user_id); +CREATE INDEX IF NOT EXISTS idx_achievements_type ON achievements(type); +CREATE INDEX IF NOT EXISTS idx_achievements_status ON achievements(status); +CREATE INDEX IF NOT EXISTS idx_achievements_assigned_depts ON achievements USING GIN (assigned_departments); +CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at DESC); +CREATE INDEX IF NOT EXISTS idx_audit_logs_username ON audit_logs(username); +CREATE INDEX IF NOT EXISTS idx_notifications_created_at ON notifications(created_at DESC); diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..4891bfa --- /dev/null +++ b/nginx.conf @@ -0,0 +1,99 @@ +# Nginx 配置文件 for ST-System + +worker_processes 4; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + sendfile on; + keepalive_timeout 65; + + # 允许大文件上传 (500MB) + client_max_body_size 500M; + + # 定义后端服务地址 + upstream st_backend { + server 127.0.0.1:5000; + } + + # HTTPS 服务器配置 + server { + listen 443 ssl; + server_name localhost; + + # SSL 证书配置 + ssl_certificate server.cert; + ssl_certificate_key server.key; + + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 5m; + + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + + # 安全响应头 + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-XSS-Protection "1; mode=block"; + add_header X-Content-Type-Options "nosniff"; + + # 1. 前端静态资源 (React) + # 直接由 Nginx 提供服务,性能更高 + location / { + # 安全策略:拦截移动端访问,重定向到提示页 + if ($http_user_agent ~* "(mobile|android|iphone|ipad|phone)") { + return 302 /mobile_forbidden.html; + } + + root c:/Users/16216/Desktop/STsystem/client/build; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + # 移动端禁止访问提示页 + location = /mobile_forbidden.html { + root c:/Users/16216/Desktop/STsystem/static; + } + + # 2. 后端 API 接口 + location /api/ { + proxy_pass http://st_backend; + + # 传递真实 IP (配合后端 app.set('trust proxy', 1)) + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # 支持 WebSocket + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + # 3. 上传文件访问 + location /uploads/ { + alias c:/Users/16216/Desktop/STsystem/server/uploads/; + expires 30d; + add_header Cache-Control "public, no-transform"; + + # 安全加固:禁止目录列表和脚本执行 + autoindex off; + # 确保不解析 PHP 等脚本 (如果服务器安装了 PHP) + location ~ \.(php|jsp|asp|aspx|py|pl|sh|cgi)$ { + deny all; + return 403; + } + } + } + + # HTTP 自动跳转 HTTPS + server { + listen 80; + server_name localhost; + return 301 https://$host$request_uri; + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c6d9751 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "stsystem-root", + "version": "1.0.0", + "description": "科技成果转化管理系统根目录", + "scripts": { + "start": "cd server && npm start", + "server": "cd server && npm start", + "client": "cd client && npm start", + "build": "cd client && npm run build" + }, + "author": "", + "license": "ISC" +} diff --git a/server/.env.example b/server/.env.example new file mode 100644 index 0000000..3678755 --- /dev/null +++ b/server/.env.example @@ -0,0 +1,42 @@ +PORT=5000 +DB_USER=postgres +DB_HOST=localhost +DB_NAME=stsystem +DB_PASSWORD=postgres +DB_PORT=5432 +JWT_SECRET=st_system_secret_2026 + +# 文件存储配置 +# 主上传目录 (支持绝对路径或相对路径) +UPLOAD_DIR=uploads +# Disk monitor config (optional) +# DISK_MONITOR_ENABLED=true +# DISK_ALERT_THRESHOLD_GB=10 +# DISK_ALERT_COOLDOWN_HOURS=24 +# DISK_CHECK_INTERVAL_MINUTES=60 +# 历史归档目录 (可选,多个路径用逗号分隔,用于多盘存储或历史数据迁移) +# UPLOAD_FALLBACK_DIRS="D:\old_uploads,E:\archive" + +# AI 分析配置:支持多提供方(OpenAI 兼容接口) +AI_DEFAULT_PROVIDER=deepseek +AI_PROVIDER_PRIORITY=deepseek + +# 千问(当前已停用,如需恢复可自行启用) +# QWEN_API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 +# QWEN_API_KEY= +# QWEN_MODEL=qwen-plus + +# DeepSeek +DEEPSEEK_API_BASE_URL=https://api.deepseek.com/v1 +DEEPSEEK_API_KEY= +DEEPSEEK_MODEL=deepseek-chat + +# custom:兼容旧配置,可用于企业内网代理 +AI_API_BASE_URL= +AI_API_KEY= +AI_MODEL= +AI_TIMEOUT_MS=45000 +AI_MAX_TOKENS=4096 +AI_NAME_MAX_ITEMS_DEFAULT=100 +AI_NAME_MAX_ITEMS_HARD_LIMIT=300 + diff --git a/server/db.js b/server/db.js new file mode 100644 index 0000000..3c88341 --- /dev/null +++ b/server/db.js @@ -0,0 +1,20 @@ +const { Pool } = require('pg'); +require('dotenv').config(); + +const pool = new Pool({ + user: process.env.DB_USER, + host: process.env.DB_HOST, + database: process.env.DB_DATABASE || process.env.DB_NAME, + password: String(process.env.DB_PASSWORD || ''), + port: process.env.DB_PORT, +}); + +// 监听连接池错误,防止空闲客户端错误导致程序崩溃 +pool.on('error', (err, client) => { + console.error('Unexpected error on idle client', err); +}); + +module.exports = { + query: (text, params) => pool.query(text, params), + pool +}; diff --git a/server/index.js b/server/index.js new file mode 100644 index 0000000..d26ae96 --- /dev/null +++ b/server/index.js @@ -0,0 +1,183 @@ +const express = require('express'); +const https = require('https'); +const cors = require('cors'); +const path = require('path'); +const fs = require('fs'); +const morgan = require('morgan'); +const rateLimit = require('express-rate-limit'); +const logger = require('./utils/logger'); +const auditLogger = require('./middleware/auditLogger'); +const { checkDiskSpace } = require('./utils/diskMonitor'); +require('dotenv').config(); + +const app = express(); +const PORT = process.env.PORT || 3000; + +// 信任反向代理 (Nginx) +// 必须设置此项,否则在 Nginx 后端运行时,req.ip 永远是 127.0.0.1,导致限流策略对所有用户生效(误伤) +app.set('trust proxy', 1); + +// 中间件 +app.use(cors({ + origin: process.env.CORS_ORIGIN || 'http://localhost:3000', + credentials: true +})); +app.use(express.json()); + +// 定义脱敏的 URL token +morgan.token('safe-url', (req) => { + let url = req.originalUrl || req.url; + try { + // 隐藏 token, password, code 等敏感参数 + url = url.replace(/([?&])(token|password|code)=([^&]+)/gi, '$1$2=***'); + } catch (e) { + // 忽略错误 + } + return url; +}); + +// HTTP 请求日志 (使用自定义格式,替换 :url 为 :safe-url) +app.use(morgan(':remote-addr - :remote-user [:date[clf]] ":method :safe-url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"', { stream: logger.stream })); + +// 全局审计日志 +app.use(auditLogger); + +// 限流策略配置 +// 1. 全局限流:每个IP每分钟最多100次请求 +const globalLimiter = rateLimit({ + windowMs: 1 * 60 * 1000, // 1分钟 + max: 100, // 限制每个IP 100次请求 + standardHeaders: true, // 返回 `RateLimit-*` 头信息 + legacyHeaders: false, // 禁用 `X-RateLimit-*` 头信息 + message: { message: '请求过于频繁,请稍后再试' } +}); + +// 2. 认证接口限流:每个IP每分钟最多10次请求 (防暴力破解) +const authLimiter = rateLimit({ + windowMs: 1 * 60 * 1000, // 1分钟 + max: 10, // 限制每个IP 10次请求 + standardHeaders: true, + legacyHeaders: false, + message: { message: '登录/注册尝试过于频繁,请1分钟后再试' } +}); + +// 应用全局限流 +app.use('/api/', globalLimiter); + +// 安全策略:禁止移动端访问 +app.use((req, res, next) => { + const userAgent = req.headers['user-agent'] || ''; + // 匹配常见的移动设备标识 + const isMobile = /mobile|android|iphone|ipad|phone/i.test(userAgent); + + if (isMobile) { + res.status(403).send(` + + 访问被拒绝 + +
+

🚫 访问被拒绝

+

根据本单位安全规定,本系统禁止使用移动设备访问。

+

请使用办公电脑访问。

+
+ + + `); + return; + } + next(); +}); + +// 确保上传目录存在 +const uploadDir = process.env.UPLOAD_DIR || 'uploads'; +let absoluteUploadDir; +if (path.isAbsolute(uploadDir)) { + absoluteUploadDir = uploadDir; +} else { + absoluteUploadDir = path.join(__dirname, uploadDir); +} + +if (!fs.existsSync(absoluteUploadDir)) { + fs.mkdirSync(absoluteUploadDir, { recursive: true }); +} + +const DISK_MONITOR_ENABLED = String(process.env.DISK_MONITOR_ENABLED || 'true').toLowerCase() !== 'false'; +const DISK_CHECK_INTERVAL_MINUTES = Number(process.env.DISK_CHECK_INTERVAL_MINUTES || 60); +const DISK_CHECK_INTERVAL_MS = Number.isFinite(DISK_CHECK_INTERVAL_MINUTES) && DISK_CHECK_INTERVAL_MINUTES > 0 + ? DISK_CHECK_INTERVAL_MINUTES * 60 * 1000 + : 60 * 60 * 1000; + +// 启动磁盘监控(默认每 60 分钟检查一次) +if (DISK_MONITOR_ENABLED) { + setInterval(() => { + checkDiskSpace(); + }, DISK_CHECK_INTERVAL_MS); + + // 启动时立即检查一次 + checkDiskSpace(); +} + +// 导入路由 +const authRoutes = require('./routes/auth'); +const achievementRoutes = require('./routes/achievements'); +const userRoutes = require('./routes/users'); +const statisticsRoutes = require('./routes/statistics'); +const dictionaryRoutes = require('./routes/dictionaries'); +const logRoutes = require('./routes/logs'); +const notificationRoutes = require('./routes/notifications'); +const aiAnalysisRoutes = require('./routes/aiAnalysis'); + +// 对认证路由应用更严格的限流 +app.use('/api/auth', authLimiter, authRoutes); +app.use('/api/achievements', achievementRoutes); +app.use('/api/users', userRoutes); +app.use('/api/statistics', statisticsRoutes); +app.use('/api/dictionaries', dictionaryRoutes); +app.use('/api/logs', logRoutes); +app.use('/api/notifications', notificationRoutes); +app.use('/api/ai-analysis', aiAnalysisRoutes); + +// 静态文件服务 (用于开发环境查看附件,生产环境建议用 Nginx) +app.use('/uploads', express.static(absoluteUploadDir, { + setHeaders: (res, path) => { + // 强制下载,防止浏览器直接预览 HTML/SVG 等可能包含脚本的文件 + res.setHeader('Content-Disposition', 'attachment'); + } +})); + +// 托管前端静态文件 (生产环境) +const clientBuildPath = path.join(__dirname, '../client/build'); +if (fs.existsSync(clientBuildPath)) { + app.use(express.static(clientBuildPath)); + // 使用正则表达式排除以 /api/ 开头的路径 + app.get(/^(?!\/api\/).*$/, (req, res) => { + res.sendFile(path.join(clientBuildPath, 'index.html')); + }); +} + +// 尝试读取 SSL 证书 (用于 HTTPS) +const keyPath = path.join(__dirname, 'server.key'); +const certPath = path.join(__dirname, 'server.cert'); + +if (fs.existsSync(keyPath) && fs.existsSync(certPath)) { + // 如果存在证书,启动 HTTPS 服务器 + const options = { + key: fs.readFileSync(keyPath), + cert: fs.readFileSync(certPath) + }; + https.createServer(options, app).listen(PORT, () => { + const msg = `HTTPS 安全服务器运行在 https://localhost:${PORT}`; + console.log(msg); + logger.info(msg); + console.log(`局域网访问请使用: https://<你的IP>:${PORT}`); + }); +} else { + // 否则启动标准 HTTP 服务器 + app.listen(PORT, () => { + const msg = `HTTP 服务器运行在 http://localhost:${PORT}`; + console.log(msg); + logger.info(msg); + console.log(`提示: 未检测到 server.key 和 server.cert,已降级为 HTTP 模式。`); + }); +} + diff --git a/server/middleware/auditLogger.js b/server/middleware/auditLogger.js new file mode 100644 index 0000000..4912ee3 --- /dev/null +++ b/server/middleware/auditLogger.js @@ -0,0 +1,168 @@ +const logger = require('../utils/logger'); +const db = require('../db'); + +/** + * 根据请求方法和 URL 获取操作说明 + */ +const getActionDescription = (method, url) => { + // 移除查询参数 + const path = url.split('?')[0]; + + // --- Auth --- + if (path === '/api/auth/login' && method === 'POST') return '用户登录'; + if (path === '/api/auth/register' && method === 'POST') return '用户注册'; + if (path === '/api/auth/send-code' && method === 'POST') return '发送验证码'; + if (path === '/api/auth/reset-password' && method === 'POST') return '重置密码'; + + // --- Achievements --- + if (path === '/api/achievements' && method === 'POST') return '上传成果'; + if (path === '/api/achievements' && method === 'GET') { + if (url.includes('export_action=true')) return '导出用户成果数据'; + return '查看成果列表'; + } + if (path === '/api/achievements/export/csv' && method === 'GET') return '导出成果(CSV)'; + if (path === '/api/achievements/export/zip' && method === 'GET') return '导出成果(ZIP)'; + if (path === '/api/achievements/validate' && method === 'GET') return '数据校验'; + + // 动态路径匹配 + if (path.match(/^\/api\/achievements\/audit\/\d+$/) && method === 'POST') return '审核成果'; + if (path.match(/^\/api\/achievements\/\d+\/attachments\/zip$/) && method === 'GET') return '下载成果附件包'; + if (path.match(/^\/api\/achievements\/attachments\/\d+\/download$/) && method === 'GET') return '下载单个附件'; + if (path.match(/^\/api\/achievements\/\d+$/)) { + if (method === 'GET') return '查看成果详情'; + if (method === 'PUT') return '修改成果'; + if (method === 'DELETE') return '删除成果'; + } + + // --- Users --- + if (path === '/api/users' && method === 'POST') return '创建用户'; + if (path === '/api/users' && method === 'GET') return '查看用户列表'; + if (path === '/api/users/search' && method === 'GET') return '搜索用户'; + if (path === '/api/users/pending-list' && method === 'GET') return '查看待定用户'; + if (path.match(/^\/api\/users\/\d+$/)) { + if (method === 'PUT') return '修改用户'; + if (method === 'DELETE') return '删除用户'; + } + + // --- Dictionaries --- + if (path === '/api/dictionaries/departments' && method === 'GET') return '查看部门列表(公开)'; + if (path.match(/^\/api\/dictionaries\/[^/]+$/)) { + if (method === 'GET') return '查看字典列表'; + if (method === 'POST') return '添加字典项'; + } + if (path.match(/^\/api\/dictionaries\/[^/]+\/\d+$/)) { + if (method === 'PUT') return '修改字典项'; + if (method === 'DELETE') return '删除字典项'; + } + + // --- Notifications --- + if (path === '/api/notifications' && method === 'GET') return '查看通知列表'; + if (path === '/api/notifications' && method === 'POST') return '发布通知'; + if (path.match(/^\/api\/notifications\/attachments\/\d+\/download$/) && method === 'GET') return '下载通知附件'; + if (path.match(/^\/api\/notifications\/\d+$/)) { + if (method === 'GET') return '查看通知详情'; + if (method === 'DELETE') return '删除通知'; + } + + // --- Statistics --- + if (path === '/api/statistics' && method === 'GET') return '查看统计数据'; + + // --- Logs --- + if (path === '/api/logs' && method === 'GET') return '查看系统日志'; + + // 默认 + return null; +}; + +/** + * 全局审计日志中间件 + * 记录所有 API 请求的操作人、IP、方法、URL 和 结果状态 + */ +const auditLogger = (req, res, next) => { + // 记录请求开始时间 + const start = Date.now(); + + // 监听请求完成事件 + res.on('finish', async () => { + const duration = Date.now() - start; + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + const method = req.method; + const url = req.originalUrl || req.url; + const status = res.statusCode; + + // 忽略非 API 请求 (虽然通常挂载在 /api 下,但双重保险) + if (!url.startsWith('/api/')) return; + + // 忽略 OPTIONS 预检请求,避免日志刷屏 + if (method === 'OPTIONS') return; + + // URL 脱敏处理:隐藏 token, password, code 等敏感参数 + let safeUrl = url; + try { + safeUrl = safeUrl.replace(/([?&])(token|password|code)=([^&]+)/gi, '$1$2=***'); + } catch (e) { + // 忽略正则错误,保持原样 + } + + let userInfo = 'Guest'; + let userId = null; + let username = null; + let realName = null; + + // 1. 尝试获取已登录用户信息 + // 注意:req.user 由 verifyToken 中间件挂载。 + // 由于我们在 res 'finish' 事件中读取,此时路由处理已完成,req.user 应该已存在(如果通过了认证)。 + if (req.user) { + userInfo = `${req.user.real_name || req.user.username} (ID:${req.user.id})`; + userId = req.user.id; + username = req.user.username; + realName = req.user.real_name; + } + // 2. 对于未登录的关键接口,尝试从 body 中提取身份信息 + else if (req.body) { + if (url.includes('/login')) { + userInfo = `[尝试登录: ${req.body.username || '未知'}]`; + username = req.body.username; + } else if (url.includes('/register')) { + userInfo = `[尝试注册: ${req.body.username || '未知'}]`; + username = req.body.username; + } else if (url.includes('/send-code')) { + userInfo = `[请求验证码: ${req.body.phoneNumber || '未知'}]`; + username = req.body.phoneNumber; + } else if (url.includes('/reset-password')) { + userInfo = `[重置密码: ${req.body.phoneNumber || '未知'}]`; + username = req.body.phoneNumber; + } + } + + // 获取操作说明 + const description = getActionDescription(method, url); + + // 构建日志消息 + const logMessage = `[AUDIT] IP:${clientIp} | User:${userInfo} | ${method} ${safeUrl} | Action:${description || 'Unknown'} | Status:${status} | Time:${duration}ms`; + + // 根据状态码记录不同级别的日志 + if (status >= 500) { + logger.error(logMessage); + } else if (status >= 400) { + logger.warn(logMessage); + } else { + logger.info(logMessage); + } + + // 写入数据库 + try { + await db.query( + 'INSERT INTO audit_logs (user_id, username, real_name, ip_address, method, url, description, status, duration) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)', + [userId, username, realName, clientIp, method, safeUrl, description, status, duration] + ); + } catch (err) { + // 数据库写入失败不应影响主流程,仅记录错误 + console.error('审计日志写入数据库失败:', err); + } + }); + + next(); +}; + +module.exports = auditLogger; diff --git a/server/middleware/auth.js b/server/middleware/auth.js new file mode 100644 index 0000000..fd9d857 --- /dev/null +++ b/server/middleware/auth.js @@ -0,0 +1,74 @@ +const jwt = require('jsonwebtoken'); +const db = require('../db'); +require('dotenv').config(); + +const verifyToken = async (req, res, next) => { + // 优先从 Header 获取,如果没有则从 Query String 获取(用于下载接口) + const token = req.headers['authorization']?.split(' ')[1] || req.query.token; + + if (!token) { + return res.status(401).json({ message: '未提供认证令牌' }); + } + + try { + const decoded = jwt.verify(token, process.env.JWT_SECRET); + + // 单点登录检查:比对 Token 中的版本号与数据库中的版本号 + // 如果 Token 中没有 version (旧 Token),视为 0 + const tokenVersion = decoded.token_version || 0; + + const result = await db.query('SELECT token_version FROM users WHERE id = $1', [decoded.id]); + if (result.rows.length === 0) { + return res.status(401).json({ message: '用户不存在' }); + } + + const dbVersion = result.rows[0].token_version || 0; + + if (tokenVersion !== dbVersion) { + return res.status(401).json({ message: '您的账号已在其他设备登录,请重新登录' }); + } + + req.user = decoded; + next(); + } catch (err) { + if (err.name === 'TokenExpiredError') { + return res.status(401).json({ message: '登录已过期,请重新登录' }); + } + return res.status(401).json({ message: '无效的令牌' }); + } +}; + +const isAdmin = (req, res, next) => { + if (req.user && (req.user.role === 'admin' || req.user.role === 'super_admin')) { + next(); + } else { + return res.status(403).json({ message: '需要管理员权限' }); + } +}; + +const isSuperAdmin = (req, res, next) => { + if (req.user && req.user.role === 'super_admin') { + next(); + } else { + return res.status(403).json({ message: '需要超级管理员权限' }); + } +}; + +const isMaintainer = (req, res, next) => { + if (req.user && req.user.role === 'maintainer') { + next(); + } else { + return res.status(403).json({ message: '需要系统维护员权限' }); + } +}; + +// 系统管理员权限:超级管理员 OR 系统维护员 +const isSystemAdmin = (req, res, next) => { + if (req.user && (req.user.role === 'super_admin' || req.user.role === 'maintainer')) { + next(); + } else { + return res.status(403).json({ message: '需要系统管理权限' }); + } +}; + +module.exports = { verifyToken, isAdmin, isSuperAdmin, isMaintainer, isSystemAdmin }; diff --git a/server/package-lock.json b/server/package-lock.json new file mode 100644 index 0000000..45d7f91 --- /dev/null +++ b/server/package-lock.json @@ -0,0 +1,3000 @@ +{ + "name": "server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "server", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@alicloud/credentials": "^2.4.4", + "@alicloud/dypnsapi20170525": "^2.0.0", + "@alicloud/openapi-client": "^0.4.15", + "@alicloud/tea-util": "^1.4.11", + "archiver": "^7.0.1", + "bcryptjs": "^3.0.3", + "content-disposition": "^1.0.1", + "cors": "^2.8.5", + "dotenv": "^17.2.3", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "file-type": "^16.5.4", + "jsonwebtoken": "^9.0.3", + "morgan": "^1.10.1", + "multer": "^2.0.2", + "pg": "^8.16.3", + "winston": "^3.19.0", + "winston-daily-rotate-file": "^5.0.0" + } + }, + "node_modules/@alicloud/credentials": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@alicloud/credentials/-/credentials-2.4.4.tgz", + "integrity": "sha512-/eRAGSKcniLIFQ1UCpDhB/IrHUZisQ1sc65ws/c2avxUMpXwH1rWAohb76SVAUJhiF4mwvLzLJM1Mn1XL4Xe/Q==", + "license": "MIT", + "dependencies": { + "@alicloud/tea-typescript": "^1.8.0", + "httpx": "^2.3.3", + "ini": "^1.3.5", + "kitx": "^2.0.0" + } + }, + "node_modules/@alicloud/darabonba-array": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@alicloud/darabonba-array/-/darabonba-array-0.1.2.tgz", + "integrity": "sha512-ZPuQ+bJyjrd8XVVm55kl+ypk7OQoi1ZH/DiToaAEQaGvgEjrTcvQkg71//vUX/6cvbLIF5piQDvhrLb+lUEIPQ==", + "license": "ISC", + "dependencies": { + "@alicloud/tea-typescript": "^1.7.1" + } + }, + "node_modules/@alicloud/darabonba-encode-util": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@alicloud/darabonba-encode-util/-/darabonba-encode-util-0.0.2.tgz", + "integrity": "sha512-mlsNctkeqmR0RtgE1Rngyeadi5snLOAHBCWEtYf68d7tyKskosXDTNeZ6VCD/UfrUu4N51ItO8zlpfXiOgeg3A==", + "license": "ISC", + "dependencies": { + "moment": "^2.29.1" + } + }, + "node_modules/@alicloud/darabonba-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@alicloud/darabonba-map/-/darabonba-map-0.0.1.tgz", + "integrity": "sha512-2ep+G3YDvuI+dRYVlmER1LVUQDhf9kEItmVB/bbEu1pgKzelcocCwAc79XZQjTcQGFgjDycf3vH87WLDGLFMlw==", + "license": "ISC", + "dependencies": { + "@alicloud/tea-typescript": "^1.7.1" + } + }, + "node_modules/@alicloud/darabonba-signature-util": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@alicloud/darabonba-signature-util/-/darabonba-signature-util-0.0.4.tgz", + "integrity": "sha512-I1TtwtAnzLamgqnAaOkN0IGjwkiti//0a7/auyVThdqiC/3kyafSAn6znysWOmzub4mrzac2WiqblZKFcN5NWg==", + "license": "ISC", + "dependencies": { + "@alicloud/darabonba-encode-util": "^0.0.1" + } + }, + "node_modules/@alicloud/darabonba-signature-util/node_modules/@alicloud/darabonba-encode-util": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@alicloud/darabonba-encode-util/-/darabonba-encode-util-0.0.1.tgz", + "integrity": "sha512-Sl5vCRVAYMqwmvXpJLM9hYoCHOMsQlGxaWSGhGWulpKk/NaUBArtoO1B0yHruJf1C5uHhEJIaylYcM48icFHgw==", + "license": "ISC", + "dependencies": { + "@alicloud/tea-typescript": "^1.7.1", + "moment": "^2.29.1" + } + }, + "node_modules/@alicloud/darabonba-string": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@alicloud/darabonba-string/-/darabonba-string-1.0.3.tgz", + "integrity": "sha512-NyWwrU8cAIesWk3uHL1Q7pTDTqLkCI/0PmJXC4/4A0MFNAZ9Ouq0iFBsRqvfyUujSSM+WhYLuTfakQXiVLkTMA==", + "license": "Apache-2.0", + "dependencies": { + "@alicloud/tea-typescript": "^1.5.1" + } + }, + "node_modules/@alicloud/dypnsapi20170525": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@alicloud/dypnsapi20170525/-/dypnsapi20170525-2.0.0.tgz", + "integrity": "sha512-eVh1dJ2HA82bBHt+YZFIBzPEYW80FK+TSpcxSR9o0W+FgfTqBaj6eeIHnN7NFhyDAD/3+HtZ146Pmvr51JEEAg==", + "license": "Apache-2.0", + "dependencies": { + "@alicloud/openapi-core": "^1.0.0", + "@darabonba/typescript": "^1.0.0" + } + }, + "node_modules/@alicloud/endpoint-util": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@alicloud/endpoint-util/-/endpoint-util-0.0.1.tgz", + "integrity": "sha512-+pH7/KEXup84cHzIL6UJAaPqETvln4yXlD9JzlrqioyCSaWxbug5FUobsiI6fuUOpw5WwoB3fWAtGbFnJ1K3Yg==", + "license": "Apache-2.0", + "dependencies": { + "@alicloud/tea-typescript": "^1.5.1", + "kitx": "^2.0.0" + } + }, + "node_modules/@alicloud/gateway-pop": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@alicloud/gateway-pop/-/gateway-pop-0.0.6.tgz", + "integrity": "sha512-KF4I+JvfYuLKc3fWeWYIZ7lOVJ9jRW0sQXdXidZn1DKZ978ncfGf7i0LBfONGk4OxvNb/HD3/0yYhkgZgPbKtA==", + "license": "ISC", + "dependencies": { + "@alicloud/credentials": "^2", + "@alicloud/darabonba-array": "^0.1.0", + "@alicloud/darabonba-encode-util": "^0.0.2", + "@alicloud/darabonba-map": "^0.0.1", + "@alicloud/darabonba-signature-util": "^0.0.4", + "@alicloud/darabonba-string": "^1.0.2", + "@alicloud/endpoint-util": "^0.0.1", + "@alicloud/gateway-spi": "^0.0.8", + "@alicloud/openapi-util": "^0.3.2", + "@alicloud/tea-typescript": "^1.7.1", + "@alicloud/tea-util": "^1.4.8" + } + }, + "node_modules/@alicloud/gateway-spi": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@alicloud/gateway-spi/-/gateway-spi-0.0.8.tgz", + "integrity": "sha512-KM7fu5asjxZPmrz9sJGHJeSU+cNQNOxW+SFmgmAIrITui5hXL2LB+KNRuzWmlwPjnuA2X3/keq9h6++S9jcV5g==", + "license": "ISC", + "dependencies": { + "@alicloud/credentials": "^2", + "@alicloud/tea-typescript": "^1.7.1" + } + }, + "node_modules/@alicloud/openapi-client": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/@alicloud/openapi-client/-/openapi-client-0.4.15.tgz", + "integrity": "sha512-4VE0/k5ZdQbAhOSTqniVhuX1k5DUeUMZv74degn3wIWjLY6Bq+hxjaGsaHYlLZ2gA5wUrs8NcI5TE+lIQS3iiA==", + "license": "ISC", + "dependencies": { + "@alicloud/credentials": "^2.4.2", + "@alicloud/gateway-spi": "^0.0.8", + "@alicloud/openapi-util": "^0.3.2", + "@alicloud/tea-typescript": "^1.7.1", + "@alicloud/tea-util": "1.4.9", + "@alicloud/tea-xml": "0.0.3" + } + }, + "node_modules/@alicloud/openapi-client/node_modules/@alicloud/tea-util": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/@alicloud/tea-util/-/tea-util-1.4.9.tgz", + "integrity": "sha512-S0wz76rGtoPKskQtRTGqeuqBHFj8BqUn0Vh+glXKun2/9UpaaaWmuJwcmtImk6bJZfLYEShDF/kxDmDJoNYiTw==", + "license": "Apache-2.0", + "dependencies": { + "@alicloud/tea-typescript": "^1.5.1", + "kitx": "^2.0.0" + } + }, + "node_modules/@alicloud/openapi-core": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@alicloud/openapi-core/-/openapi-core-1.0.6.tgz", + "integrity": "sha512-E5meOaZmdMHgvrSuSVRjMkrvttvW1aDfnzUnO+fjloYak/o/S6F8C3NXfPuhVVO/1GRfP6vf/4Vxo+tuus1UwA==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "@alicloud/credentials": "^2.4.2", + "@alicloud/gateway-pop": "0.0.6", + "@alicloud/gateway-spi": "^0.0.8", + "@darabonba/typescript": "^1.0.2" + } + }, + "node_modules/@alicloud/openapi-util": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@alicloud/openapi-util/-/openapi-util-0.3.2.tgz", + "integrity": "sha512-EC2JvxdcOgMlBAEG0+joOh2IB1um8CPz9EdYuRfTfd1uP8Yc9D8QRUWVGjP6scnj6fWSOaHFlit9H6PrJSyFow==", + "license": "ISC", + "dependencies": { + "@alicloud/tea-typescript": "^1.7.1", + "@alicloud/tea-util": "^1.3.0", + "kitx": "^2.1.0", + "sm3": "^1.0.3" + } + }, + "node_modules/@alicloud/tea-typescript": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@alicloud/tea-typescript/-/tea-typescript-1.8.0.tgz", + "integrity": "sha512-CWXWaquauJf0sW30mgJRVu9aaXyBth5uMBCUc+5vKTK1zlgf3hIqRUjJZbjlwHwQ5y9anwcu18r48nOZb7l2QQ==", + "license": "ISC", + "dependencies": { + "@types/node": "^12.0.2", + "httpx": "^2.2.6" + } + }, + "node_modules/@alicloud/tea-util": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@alicloud/tea-util/-/tea-util-1.4.11.tgz", + "integrity": "sha512-HyPEEQ8F0WoZegiCp7sVdrdm6eBOB+GCvGl4182u69LDFktxfirGLcAx3WExUr1zFWkq2OSmBroTwKQ4w/+Yww==", + "license": "Apache-2.0", + "dependencies": { + "@alicloud/tea-typescript": "^1.5.1", + "@darabonba/typescript": "^1.0.0", + "kitx": "^2.0.0" + } + }, + "node_modules/@alicloud/tea-xml": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@alicloud/tea-xml/-/tea-xml-0.0.3.tgz", + "integrity": "sha512-+/9GliugjrLglsXVrd1D80EqqKgGpyA0eQ6+1ZdUOYCaRguaSwz44trX3PaxPu/HhIPJg9PsGQQ3cSLXWZjbAA==", + "license": "Apache-2.0", + "dependencies": { + "@alicloud/tea-typescript": "^1", + "@types/xml2js": "^0.4.5", + "xml2js": "^0.6.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz", + "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==", + "license": "MIT", + "dependencies": { + "@so-ric/colorspace": "^1.1.6", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@darabonba/typescript": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@darabonba/typescript/-/typescript-1.0.3.tgz", + "integrity": "sha512-/y2y6wf5TsxD7pCPIm0OvTC+5qV0Tk7HQYxwpIuWRLXQLB0CRDvr6qk4bR6rTLO/JglJa8z2uCGZsaLYpQNqFQ==", + "license": "Apache License 2.0", + "dependencies": { + "@alicloud/tea-typescript": "^1.5.1", + "httpx": "^2.3.2", + "lodash": "^4.17.21", + "moment": "^2.30.1", + "moment-timezone": "^0.5.45", + "xml2js": "^0.6.2" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@so-ric/colorspace": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", + "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==", + "license": "MIT", + "dependencies": { + "color": "^5.0.2", + "text-hex": "1.0.x" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/@types/xml2js": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz", + "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/bcryptjs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz", + "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==", + "license": "BSD-3-Clause", + "bin": { + "bcrypt": "bin/bcrypt" + } + }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/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/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/color": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", + "license": "MIT", + "dependencies": { + "color-convert": "^3.1.3", + "color-string": "^2.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-string/node_modules/color-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/content-disposition": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/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/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz", + "integrity": "sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==", + "license": "MIT", + "dependencies": { + "ip-address": "10.0.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/file-stream-rotator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz", + "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.1" + } + }, + "node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "license": "MIT", + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/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/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/httpx": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/httpx/-/httpx-2.3.3.tgz", + "integrity": "sha512-k1qv94u1b6e+XKCxVbLgYlOypVP9MPGpnN5G/vxFf6tDO4V3xpz3d6FUOY/s8NtPgaq5RBVVgSB+7IHpVxMYzw==", + "license": "MIT", + "dependencies": { + "@types/node": "^20", + "debug": "^4.1.1" + } + }, + "node_modules/httpx/node_modules/@types/node": { + "version": "20.19.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", + "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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": "BSD-3-Clause" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kitx": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kitx/-/kitx-2.2.0.tgz", + "integrity": "sha512-tBMwe6AALTBQJb0woQDD40734NKzb0Kzi3k7wQj9ar3AbP9oqhoVrdXPh7rk2r00/glIgd0YbToIUJsnxWMiIg==", + "license": "MIT", + "dependencies": { + "@types/node": "^22.5.4" + } + }, + "node_modules/kitx/node_modules/@types/node": { + "version": "22.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", + "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.48", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", + "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/morgan": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz", + "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz", + "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.6.0", + "concat-stream": "^2.0.0", + "mkdirp": "^0.5.6", + "object-assign": "^4.1.1", + "type-is": "^1.6.18", + "xtend": "^4.0.2" + }, + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/multer/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/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/multer/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/pg": { + "version": "8.16.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", + "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.9.1", + "pg-pool": "^3.10.1", + "pg-protocol": "^1.10.3", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.2.7" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.7.tgz", + "integrity": "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.1.tgz", + "integrity": "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.1.tgz", + "integrity": "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", + "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.4.tgz", + "integrity": "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^4.7.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "license": "BlueOak-1.0.0" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sm3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sm3/-/sm3-1.0.3.tgz", + "integrity": "sha512-KyFkIfr8QBlFG3uc3NaljaXdYcsbRy1KrSfc4tsQV8jW68jAktGeOcifu530Vx/5LC+PULHT0Rv8LiI8Gw+c1g==", + "license": "MIT" + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/winston": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz", + "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.8", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-daily-rotate-file": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-5.0.0.tgz", + "integrity": "sha512-JDjiXXkM5qvwY06733vf09I2wnMXpZEhxEVOSPenZMii+g7pcDcTBt2MRugnoi8BwVSuCT2jfRXBUy+n1Zz/Yw==", + "license": "MIT", + "dependencies": { + "file-stream-rotator": "^0.6.1", + "object-hash": "^3.0.0", + "triple-beam": "^1.4.1", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "winston": "^3" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000..3a84502 --- /dev/null +++ b/server/package.json @@ -0,0 +1,36 @@ +{ + "name": "server", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js", + "init-db": "node scripts/create_db.js && node scripts/setup.js", + "seed-500k": "node scripts/seed_data_limited_500k.js", + "seed-500k:clean": "node scripts/seed_data_limited_500k.js --clean", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "@alicloud/credentials": "^2.4.4", + "@alicloud/dypnsapi20170525": "^2.0.0", + "@alicloud/openapi-client": "^0.4.15", + "@alicloud/tea-util": "^1.4.11", + "archiver": "^7.0.1", + "bcryptjs": "^3.0.3", + "content-disposition": "^1.0.1", + "cors": "^2.8.5", + "dotenv": "^17.2.3", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "file-type": "^16.5.4", + "jsonwebtoken": "^9.0.3", + "morgan": "^1.10.1", + "multer": "^2.0.2", + "pg": "^8.16.3", + "winston": "^3.19.0", + "winston-daily-rotate-file": "^5.0.0" + } +} diff --git a/server/routes/achievements.js b/server/routes/achievements.js new file mode 100644 index 0000000..55b47d4 --- /dev/null +++ b/server/routes/achievements.js @@ -0,0 +1,1487 @@ +const express = require('express'); +const router = express.Router(); +const multer = require('multer'); +const path = require('path'); +const fs = require('fs'); +const archiver = require('archiver'); +const contentDisposition = require('content-disposition'); +const FileType = require('file-type'); +const db = require('../db'); +const logger = require('../utils/logger'); +const { verifyToken, isAdmin, isSuperAdmin } = require('../middleware/auth'); + +const getLeaderDepartmentSet = async () => { + try { + const res = await db.query('SELECT name FROM dict_leader_departments'); + return new Set((res.rows || []).map((row) => row.name).filter(Boolean)); + } catch (err) { + logger.warn(`Failed to load leader departments, fallback to no-filter: ${err.message}`); + return new Set(); + } +}; + +const toOrderedDepartmentList = (assignedDepartments) => { + const source = Array.isArray(assignedDepartments) ? assignedDepartments : []; + const seen = new Set(); + const result = []; + for (const item of source) { + const dept = String(item || '').trim(); + if (!dept || seen.has(dept)) continue; + seen.add(dept); + result.push(dept); + } + return result; +}; + +const filterAssignedDepartments = (assignedDepartments, leaderDeptSet) => { + const normalized = toOrderedDepartmentList(assignedDepartments); + if (normalized.length === 0) return []; + if (!leaderDeptSet || leaderDeptSet.size === 0) { + return [normalized[0]]; + } + + for (const dept of normalized) { + if (!leaderDeptSet.has(dept)) { + return [dept]; + } + } + + // 全部都是院领导部门时,回退首个部门,保证单归属 + return [normalized[0]]; +}; + +const normalizeAchievementDepartments = (row, leaderDeptSet) => { + if (!row || !Object.prototype.hasOwnProperty.call(row, 'assigned_departments')) { + return row; + } + return { + ...row, + assigned_departments: filterAssignedDepartments(row.assigned_departments, leaderDeptSet) + }; +}; + +const resolveAssignedDepartmentsFromContributors = async (client, contributors = []) => { + const list = Array.isArray(contributors) ? contributors : []; + + const orderedPhones = []; + const seenPhone = new Set(); + const pushPhone = (phone) => { + const value = String(phone || '').trim(); + if (!value || seenPhone.has(value)) return; + seenPhone.add(value); + orderedPhones.push(value); + }; + + // 优先主要完成人,再按排序后的其余完成人顺序回退 + list.forEach((c) => { + if (c?.isMain) pushPhone(c?.phone); + }); + list.forEach((c) => { + if (!c?.isMain) pushPhone(c?.phone); + }); + + if (orderedPhones.length === 0) return []; + + const deptRes = await client.query( + 'SELECT username, department FROM users WHERE username = ANY($1) AND department IS NOT NULL AND department <> \'\'', + [orderedPhones] + ); + + const phoneDeptMap = new Map(); + deptRes.rows.forEach((row) => { + const phone = String(row.username || '').trim(); + const dept = String(row.department || '').trim(); + if (phone && dept && !phoneDeptMap.has(phone)) { + phoneDeptMap.set(phone, dept); + } + }); + + let leaderDeptSet = new Set(); + try { + const leaderRes = await client.query('SELECT name FROM dict_leader_departments'); + leaderDeptSet = new Set((leaderRes.rows || []).map((row) => row.name).filter(Boolean)); + } catch (err) { + logger.warn(`Failed to load leader departments while resolving contributor departments: ${err.message}`); + } + + let leaderFallback = null; + for (const phone of orderedPhones) { + const dept = phoneDeptMap.get(phone); + if (!dept) continue; + if (!leaderDeptSet.has(dept)) { + return [dept]; + } + if (!leaderFallback) { + leaderFallback = dept; + } + } + + // 全部都是院领导部门时,回退首个部门,保证“单归属部门” + return leaderFallback ? [leaderFallback] : []; +}; + + +const getSearchPaths = () => { + const paths = []; + + // 1. 涓荤洰褰? + const mainDir = process.env.UPLOAD_DIR || 'uploads'; + paths.push(path.isAbsolute(mainDir) ? mainDir : path.join(__dirname, '..', mainDir)); + + // 2. 备用目录 + if (process.env.UPLOAD_FALLBACK_DIRS) { + const fallbacks = process.env.UPLOAD_FALLBACK_DIRS.split(',').map(p => p.trim()).filter(p => p); + fallbacks.forEach(p => { + const absPath = path.isAbsolute(p) ? p : path.join(__dirname, '..', p); + // 閬垮厤閲嶅 + if (!paths.includes(absPath)) { + paths.push(absPath); + } + }); + } + + // 3. 榛樿 uploads 鐩綍 (鑷姩鍏滃簳) + + const defaultUploads = path.join(__dirname, '..', 'uploads'); + const isDefaultIncluded = paths.some(p => path.resolve(p) === path.resolve(defaultUploads)); + + if (!isDefaultIncluded) { + paths.push(defaultUploads); + } + + return paths; +}; + + +const findFile = (relativePath) => { + const searchPaths = getSearchPaths(); + for (const rootDir of searchPaths) { + + + const fullPath = path.join(rootDir, relativePath); + if (fs.existsSync(fullPath)) { + return fullPath; + } + } + return null; +}; + + +const getUploadRootDir = () => { + const uploadDir = process.env.UPLOAD_DIR || 'uploads'; + if (path.isAbsolute(uploadDir)) { + return uploadDir; + } else { + return path.join(__dirname, '..', uploadDir); + } +}; + +const cleanupUploadedFiles = (files = []) => { + for (const file of files) { + if (!file || !file.path) continue; + try { + if (fs.existsSync(file.path)) { + fs.unlinkSync(file.path); + } + } catch (e) { + logger.warn(`Failed to cleanup uploaded file: ${file.path}`); + } + } +}; + +// 閰嶇疆 Multer 鐢ㄤ簬鏂囦欢涓婁紶 +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + const uploadRoot = getUploadRootDir(); + const date = new Date(); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const subDir = path.join(String(year), month); + + const fullPath = path.join(uploadRoot, subDir); + + if (!fs.existsSync(fullPath)) { + fs.mkdirSync(fullPath, { recursive: true }); + } + cb(null, fullPath); + }, + filename: (req, file, cb) => { + const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9); + cb(null, uniqueSuffix + path.extname(file.originalname)); + } +}); + +// 文件类型白名单 +const allowedExtensions = [ + '.pdf', + '.doc', '.docx', + '.xls', '.xlsx', + '.ppt', '.pptx', + '.txt', + '.jpg', '.jpeg', '.png', + '.zip', '.rar', '.7z' +]; + +const MAX_UPLOAD_FILE_SIZE = Number(process.env.UPLOAD_MAX_FILE_SIZE || 50 * 1024 * 1024); +const MAX_UPLOAD_FILES = Number(process.env.UPLOAD_MAX_FILES || 20); + +const upload = multer({ + storage: storage, + limits: { + fileSize: MAX_UPLOAD_FILE_SIZE, + files: MAX_UPLOAD_FILES + }, + fileFilter: (req, file, cb) => { + const ext = path.extname(file.originalname).toLowerCase(); + if (allowedExtensions.includes(ext)) { + cb(null, true); + } else { + cb(new Error(`Unsupported file type (${ext}).`)); + } + } +}); + + +router.post('/', verifyToken, (req, res, next) => { + upload.any()(req, res, async (err) => { + if (err) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: err.message }); + } + + + if (req.files && req.files.length > 0) { + for (const file of req.files) { + try { + const fileType = await FileType.fromFile(file.path); + + + const ext = path.extname(file.originalname).toLowerCase(); + + // 允许的 MIME 类型前缀 + const allowedMimes = [ + 'image/', + 'application/pdf', + 'application/msword', + 'application/vnd.openxmlformats-officedocument', + 'application/vnd.ms-excel', + 'application/vnd.ms-powerpoint', + 'application/zip', + 'application/x-zip-compressed', + 'application/x-rar-compressed', + 'application/x-7z-compressed' + ]; + + + if (fileType && !allowedMimes.some(mime => fileType.mime.startsWith(mime))) { + // 鍒犻櫎闈炴硶鏂囦欢 + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: `File type not allowed: ${file.originalname} (${fileType.mime})` }); + } + + + if (fileType && (fileType.mime === 'application/x-msdownload' || fileType.mime === 'application/x-executable')) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: `检测到非法可执行文件: ${file.originalname}` }); + } + + } catch (checkErr) { + console.error('文件类型检查失败:', checkErr); + + } + } + } + next(); + }); +}, async (req, res) => { + if (!req.body || !req.body.type) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: '请求参数错误:缺少成果类型(type)' }); + } + const { type, details, name, contributors, achievement_date, remarks } = req.body; + + let parsedDetails = {}; + let parsedContributors = []; + + try { + parsedDetails = typeof details === 'string' ? JSON.parse(details) : (details || {}); + } catch (e) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: 'details 字段格式错误(应为 JSON)' }); + } + + try { + parsedContributors = typeof contributors === 'string' ? JSON.parse(contributors) : (contributors || []); + } catch (e) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: 'contributors 字段格式错误(应为 JSON)' }); + } + + + if (type === 'report') { + if ((parsedDetails.approver_id === undefined || parsedDetails.approver_id === null || parsedDetails.approver_id === '') && req.body?.approver_id) { + const approverId = Number(req.body.approver_id); + parsedDetails.approver_id = Number.isNaN(approverId) ? null : approverId; + } + if ((!parsedDetails.approver_name || parsedDetails.approver_name === '') && req.body?.approver_name) { + parsedDetails.approver_name = req.body.approver_name; + } + } + + const phoneSet = new Set(); + for (const c of parsedContributors) { + if (c.phone) { + if (phoneSet.has(c.phone)) { + + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: `Duplicate contributor phone: ${c.phone} (${c.name})` }); + } + phoneSet.add(c.phone); + } + } + + // 检查重复排名(仅针对支持排名的类型) + if (!['project', 'transformation'].includes(type)) { + const rankingSet = new Set(); + for (const c of parsedContributors) { + if (c.ranking) { + const r = parseInt(c.ranking); + if (rankingSet.has(r)) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: `Duplicate ranking: #${r}` }); + } + rankingSet.add(r); + } + } + } + + const userId = req.user.id; + const files = req.files || []; + + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + // --- 鏌ラ噸閫昏緫 --- + let duplicateCheckQuery = ''; + let duplicateCheckParams = []; + + if (type === 'patent' && parsedDetails.patent_no) { + duplicateCheckQuery = 'SELECT a.id, u.real_name, a.created_at FROM achievement_patent d JOIN achievements a ON d.achievement_id = a.id JOIN users u ON a.user_id = u.id WHERE d.patent_no = $1 AND a.status != \'rejected\''; + duplicateCheckParams = [parsedDetails.patent_no]; + } else if (type === 'software' && parsedDetails.reg_no) { + duplicateCheckQuery = 'SELECT a.id, u.real_name, a.created_at FROM achievement_software d JOIN achievements a ON d.achievement_id = a.id JOIN users u ON a.user_id = u.id WHERE d.reg_no = $1 AND a.status != \'rejected\''; + duplicateCheckParams = [parsedDetails.reg_no]; + } else if (type === 'standard' && parsedDetails.standard_no) { + duplicateCheckQuery = 'SELECT a.id, u.real_name, a.created_at FROM achievement_standard d JOIN achievements a ON d.achievement_id = a.id JOIN users u ON a.user_id = u.id WHERE d.standard_no = $1 AND a.status != \'rejected\''; + duplicateCheckParams = [parsedDetails.standard_no]; + } else if (type === 'paper' && parsedDetails.doi) { + duplicateCheckQuery = 'SELECT a.id, u.real_name, a.created_at FROM achievement_paper d JOIN achievements a ON d.achievement_id = a.id JOIN users u ON a.user_id = u.id WHERE d.doi = $1 AND a.status != \'rejected\''; + duplicateCheckParams = [parsedDetails.doi]; + } else { + + duplicateCheckQuery = 'SELECT a.id, u.real_name, a.created_at FROM achievements a JOIN users u ON a.user_id = u.id WHERE a.name = $1 AND a.type = $2 AND a.achievement_date = $3 AND a.status != \'rejected\''; + duplicateCheckParams = [name, type, achievement_date]; + } + + if (duplicateCheckQuery) { + const dupRes = await client.query(duplicateCheckQuery, duplicateCheckParams); + if (dupRes.rows.length > 0) { + const dup = dupRes.rows[0]; + await client.query('ROLLBACK'); + cleanupUploadedFiles(files); + return res.status(409).json({ + message: `Duplicate submission detected. Existing submitter: ${dup.real_name}, time: ${new Date(dup.created_at).toLocaleString()}.` + }); + } + } + + + let processedContributors = parsedContributors.map(c => ({ + ...c, + ranking: c.ranking ? parseInt(c.ranking) : null + })); + + if (type === 'paper') { + + const mainRoles = ['第一作者', '共同第一作者', '通讯作者', '共同通讯作者']; + processedContributors = processedContributors.map(c => ({ + ...c, + isMain: mainRoles.includes(c.role) + })); + } else if (['project', 'transformation'].includes(type)) { + + } else { + + const rankings = processedContributors.map(c => c.ranking).filter(r => r !== null && !isNaN(r)); + const minRanking = rankings.length > 0 ? Math.min(...rankings) : null; + + processedContributors = processedContributors.map(c => ({ + ...c, + isMain: minRanking !== null && c.ranking === minRanking + })); + } + + // 鎸夋帓鍚嶆帓搴? + processedContributors.sort((a, b) => { + if (a.ranking && b.ranking) return a.ranking - b.ranking; + if (a.ranking) return -1; + if (b.ranking) return 1; + return 0; + }); + + + const main_contributors_str = processedContributors.filter(c => c.isMain).map(c => c.name).join(' '); + const all_contributors_str = processedContributors.map(c => c.name).join(' '); + const contributor_phones_str = processedContributors.map(c => c.phone).join(' '); + + + const assignedDepartments = await resolveAssignedDepartmentsFromContributors(client, processedContributors); + + + const baseRes = await client.query( + 'INSERT INTO achievements (user_id, type, name, main_contributors, all_contributors, contributor_phones, achievement_date, remarks, contributors, assigned_departments) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING id', + [userId, type, name, main_contributors_str, all_contributors_str, contributor_phones_str, achievement_date, remarks, JSON.stringify(processedContributors), assignedDepartments] + ); + const achievementId = baseRes.rows[0].id; + + + let detailQuery = ''; + let params = []; + + switch (type) { + case 'paper': + detailQuery = 'INSERT INTO achievement_paper (achievement_id, paper_type, first_unit, journal_name, publish_date, doi) VALUES ($1, $2, $3, $4, $5, $6)'; + params = [achievementId, parsedDetails.paper_type, parsedDetails.first_unit, parsedDetails.journal_name, parsedDetails.publish_date, parsedDetails.doi]; + break; + case 'project': + detailQuery = 'INSERT INTO achievement_project (achievement_id, project_category, source) VALUES ($1, $2, $3)'; + params = [achievementId, parsedDetails.project_category, parsedDetails.source]; + break; + case 'award': + detailQuery = 'INSERT INTO achievement_award (achievement_id, award_type, award_level, award_unit) VALUES ($1, $2, $3, $4)'; + params = [achievementId, parsedDetails.award_type, parsedDetails.award_level, parsedDetails.award_unit]; + break; + case 'standard': + detailQuery = 'INSERT INTO achievement_standard (achievement_id, standard_type, standard_no, implement_date) VALUES ($1, $2, $3, $4)'; + params = [achievementId, parsedDetails.standard_type, parsedDetails.standard_no, parsedDetails.implement_date]; + break; + case 'monograph': + detailQuery = 'INSERT INTO achievement_monograph (achievement_id, publisher, isbn) VALUES ($1, $2, $3)'; + params = [achievementId, parsedDetails.publisher, parsedDetails.isbn]; + break; + case 'report': + detailQuery = 'INSERT INTO achievement_report (achievement_id, report_type, recipient, approver_id, approver_name) VALUES ($1, $2, $3, $4, $5)'; + params = [achievementId, parsedDetails.report_type, parsedDetails.recipient, parsedDetails.approver_id, parsedDetails.approver_name]; + break; + case 'plan': + detailQuery = 'INSERT INTO achievement_plan (achievement_id) VALUES ($1)'; + params = [achievementId]; + break; + case 'patent': + detailQuery = 'INSERT INTO achievement_patent (achievement_id, patent_no, patent_type, assignee) VALUES ($1, $2, $3, $4)'; + params = [achievementId, parsedDetails.patent_no, parsedDetails.patent_type, parsedDetails.assignee]; + break; + case 'transformation': + detailQuery = 'INSERT INTO achievement_transformation (achievement_id, trans_method, trans_amount, project_category) VALUES ($1, $2, $3, $4)'; + params = [achievementId, parsedDetails.trans_method, parsedDetails.trans_amount, parsedDetails.project_category]; + break; + case 'software': + detailQuery = 'INSERT INTO achievement_software (achievement_id, reg_no, acquisition_method, scope, owner_unit) VALUES ($1, $2, $3, $4, $5)'; + params = [achievementId, parsedDetails.reg_no, parsedDetails.acquisition_method, parsedDetails.scope, parsedDetails.owner_unit]; + break; + default: + throw new Error('Unknown achievement type'); + } + + await client.query(detailQuery, params); + + // 插入多个附件 + const uploadRootDir = getUploadRootDir(); + for (const file of files) { + let originalName = file.originalname; + if (!/[^\u0000-\u00ff]/.test(originalName)) { + try { + const decodedName = Buffer.from(originalName, 'latin1').toString('utf8'); + if (/[\u4e00-\u9fa5]/.test(decodedName)) { + originalName = decodedName; + } + } catch (e) { + console.error('鏂囦欢鍚嶈浆鐮佸け璐?', e); + } + } + + + let relativePath = path.relative(uploadRootDir, file.path); + + relativePath = relativePath.split(path.sep).join('/'); + + await client.query( + 'INSERT INTO achievement_attachments (achievement_id, file_name, file_path) VALUES ($1, $2, $3)', + [achievementId, originalName, relativePath] + ); + } + + await client.query('COMMIT'); + + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + logger.info(`用户 ${req.user.username} 上传了新成果: ${name} (类型: ${type}, ID: ${achievementId}) (IP: ${clientIp})`); + + res.status(201).json({ message: '上传成功', id: achievementId }); + } catch (err) { + await client.query('ROLLBACK'); + cleanupUploadedFiles(files); + console.error(err); + res.status(500).json({ message: 'Server error' }); + } finally { + client.release(); + } +}); + + +const buildExportQuery = (params) => { + const { type, status, keyword, startDate, endDate } = params; + let query = ` + SELECT + a.id, a.type, a.name, a.status, a.created_at, a.updated_at, + u.username as submitter_username, u.real_name as submitter_real_name, + a.main_contributors, a.all_contributors, a.contributor_phones, a.assigned_departments, a.achievement_date, a.remarks, + -- Paper + ap.paper_type, ap.first_unit, ap.journal_name, ap.publish_date as paper_publish_date, ap.doi, + -- Project + apr.project_category as project_category, apr.source as project_source, + -- Award + aa.award_type, aa.award_level, aa.award_unit, + -- Standard + as_std.standard_type, as_std.standard_no, as_std.implement_date as standard_implement_date, + -- Monograph + am.publisher, am.isbn, + -- Report + ar.report_type, ar.recipient, + -- Patent + apat.patent_no, apat.patent_type, apat.assignee, + -- Transformation + at.trans_method, at.trans_amount, at.project_category as trans_project_category, + -- Software + asw.reg_no, asw.acquisition_method, asw.scope, asw.owner_unit + FROM achievements a + JOIN users u ON a.user_id = u.id + LEFT JOIN achievement_paper ap ON a.id = ap.achievement_id AND a.type = 'paper' + LEFT JOIN achievement_project apr ON a.id = apr.achievement_id AND a.type = 'project' + LEFT JOIN achievement_award aa ON a.id = aa.achievement_id AND a.type = 'award' + LEFT JOIN achievement_standard as_std ON a.id = as_std.achievement_id AND a.type = 'standard' + LEFT JOIN achievement_monograph am ON a.id = am.achievement_id AND a.type = 'monograph' + LEFT JOIN achievement_report ar ON a.id = ar.achievement_id AND a.type = 'report' + LEFT JOIN achievement_patent apat ON a.id = apat.achievement_id AND a.type = 'patent' + LEFT JOIN achievement_transformation at ON a.id = at.achievement_id AND a.type = 'transformation' + LEFT JOIN achievement_software asw ON a.id = asw.achievement_id AND a.type = 'software' + WHERE 1=1 + `; + const sqlParams = []; + + if (type) { + query += ' AND a.type = $' + (sqlParams.length + 1); + sqlParams.push(type); + } + if (status) { + query += ' AND a.status = $' + (sqlParams.length + 1); + sqlParams.push(status); + } + if (keyword) { + query += ` AND (a.name ILIKE $${sqlParams.length + 1} OR a.main_contributors ILIKE $${sqlParams.length + 1} OR a.all_contributors ILIKE $${sqlParams.length + 1} OR a.contributor_phones ILIKE $${sqlParams.length + 1})`; + sqlParams.push(`%${keyword}%`); + } + if (startDate) { + query += ` AND a.achievement_date >= $${sqlParams.length + 1}`; + sqlParams.push(startDate); + } + if (endDate) { + query += ` AND a.achievement_date <= $${sqlParams.length + 1}`; + sqlParams.push(endDate); + } + + return { query, sqlParams }; +}; + + +router.get('/export/csv', verifyToken, isSuperAdmin, async (req, res) => { + try { + const { query, sqlParams } = buildExportQuery(req.query); + const result = await db.query(query, sqlParams); + const leaderDeptSet = await getLeaderDepartmentSet(); + const rows = result.rows.map((row) => normalizeAchievementDepartments(row, leaderDeptSet)); + + if (rows.length === 0) return res.status(404).json({ message: '没有可导出的数据' }); + + // 处理 CSV 内容 + const header = Object.keys(rows[0]).join(','); + const csvData = rows.map(row => { + return Object.values(row).map(val => { + if (val === null || val === undefined) return ''; + + const strVal = String(val); + if (strVal.includes(',') || strVal.includes('\n') || strVal.includes('"')) { + return `"${strVal.replace(/"/g, '""')}"`; + } + return strVal; + }).join(','); + }).join('\n'); + + + const bom = '\uFEFF'; + const fullCsv = bom + header + '\n' + csvData; + + res.setHeader('Content-Type', 'text/csv; charset=utf-8'); + res.setHeader('Content-Disposition', 'attachment; filename=achievements_export.csv'); + res.status(200).send(fullCsv); + } catch (err) { + console.error(err); + res.status(500).json({ message: '导出失败' }); + } +}); + +// 5. 瀵煎嚭鍘嬬缉鍖?(鍖呭惈绛涢€夊悗鐨勬暟鎹〃鍜岄檮浠? +router.get('/export/zip', verifyToken, isSuperAdmin, async (req, res) => { + const archive = archiver('zip', { zlib: { level: 9 } }); + res.setHeader('Content-Type', 'application/zip'); + res.setHeader('Content-Disposition', 'attachment; filename=achievements_export.zip'); + + archive.on('error', (err) => { + if (!res.headersSent) res.status(500).send({ error: err.message }); + }); + archive.pipe(res); + + try { + // 1. 鑾峰彇绛涢€夊悗鐨勬暟鎹? + const { query, sqlParams } = buildExportQuery(req.query); + const resultData = await db.query(query, sqlParams); + const leaderDeptSet = await getLeaderDepartmentSet(); + const normalizedRows = resultData.rows.map((row) => normalizeAchievementDepartments(row, leaderDeptSet)); + + if (normalizedRows.length > 0) { + // 鐢熸垚 CSV + const header = Object.keys(normalizedRows[0]).join(','); + const csvData = normalizedRows.map(row => { + return Object.values(row).map(val => { + if (val === null || val === undefined) return ''; + const strVal = String(val); + if (strVal.includes(',') || strVal.includes('\n') || strVal.includes('"')) { + return `"${strVal.replace(/"/g, '""')}"`; + } + return strVal; + }).join(','); + }).join('\n'); + const bom = '\uFEFF'; + archive.append(bom + header + '\n' + csvData, { name: 'achievements_list.csv' }); + + // 2. 获取相关附件 + const achievementIds = normalizedRows.map(r => r.id); + if (achievementIds.length > 0) { + const fileQuery = 'SELECT aa.file_path, aa.file_name, a.name as achievement_name, a.type FROM achievement_attachments aa JOIN achievements a ON aa.achievement_id = a.id WHERE aa.achievement_id = ANY($1)'; + const resultFiles = await db.query(fileQuery, [achievementIds]); + + resultFiles.rows.forEach(row => { + const filePath = findFile(row.file_path); + if (filePath) { + + // 处理文件名中的非法字符 + const safeAchName = row.achievement_name.replace(/[\\/:*?"<>|]/g, '_'); + const archivePath = `${row.type}/${safeAchName}/${row.file_name}`; + archive.file(filePath, { name: archivePath }); + } + }); + } + } else { + archive.append('No data matched current filters.', { name: 'readme.txt' }); + } + + archive.finalize(); + } catch (err) { + console.error(err); + if (!res.headersSent) res.status(500).json({ message: '压缩失败' }); + } +}); + +// 7. 下载单个附件 +router.get('/attachments/:id/download', verifyToken, async (req, res) => { + const { id } = req.params; + try { + + console.log('正在下载附件 ID:', id); + const result = await db.query( + 'SELECT aa.file_name, aa.file_path, aa.achievement_id, a.user_id FROM achievement_attachments aa JOIN achievements a ON aa.achievement_id = a.id WHERE aa.id = $1', + [id] + ); + if (result.rows.length === 0) return res.status(404).json({ message: 'Attachment not found' }); + + const attachment = result.rows[0]; + + const isSystemAdmin = ['admin', 'super_admin'].includes(req.user.role); + + if (!isSystemAdmin) { + + const achRes = await db.query('SELECT status, contributors FROM achievements WHERE id = $1', [attachment.achievement_id]); + const achievement = achRes.rows[0]; + + + if (attachment.user_id === req.user.id && ['pending', 'rejected'].includes(achievement.status)) { + // 鍏佽 + } else { + + const userPhone = req.user.username; + const isContributor = achievement.contributors && Array.isArray(achievement.contributors) && achievement.contributors.some(c => c.phone === userPhone); + + + if (!isContributor) return res.status(403).json({ message: '无权访问' }); + } + } + + const filePath = findFile(attachment.file_path); + if (!filePath) return res.status(404).json({ message: 'File not found' }); + + const encodedFileName = encodeURIComponent(attachment.file_name); + res.setHeader('Content-Disposition', `attachment; filename*=UTF-8''${encodedFileName}`); + res.sendFile(filePath, (err) => { + if (err && !res.headersSent) res.status(500).json({ message: '下载失败' }); + }); + } catch (err) { + console.error(err); + res.status(500).json({ message: 'Server error' }); + } +}); + + +router.get('/', verifyToken, async (req, res) => { + const { type, status, keyword, startDate, endDate, scope, department } = req.query; + let query = 'SELECT a.*, u.username, u.real_name as submitter_name FROM achievements a JOIN users u ON a.user_id = u.id WHERE 1=1'; + const params = []; + + + + + let realName = req.user.real_name; + let userDept = null; + let deptPhones = []; + + // 鏌ヨ鏈€鏂扮殑 real_name 鍜?department + const userRes = await db.query('SELECT real_name, department FROM users WHERE id = $1', [req.user.id]); + if (userRes.rows.length > 0) { + realName = userRes.rows[0].real_name; + userDept = userRes.rows[0].department; + } + + const phonePattern = '(^|[[:space:],])' + req.user.username + '([[:space:],]|$)'; + const namePattern = realName || '__NO_NAME__'; + const phoneParam = phonePattern; + const nameParam = namePattern; + + + + const contributorJsonParam = JSON.stringify([{ phone: req.user.username }]); + + if (scope === 'my') { + // 銆愭垜鐨勬垚鏋溿€戣鍥? + + + query += ` AND ((a.contributors @> $${params.length + 1}) OR (a.user_id = $${params.length + 2} AND a.status IN ('pending', 'rejected')))`; + params.push(contributorJsonParam); + params.push(req.user.id); + } else { + // 銆愭垚鏋滃叕绀恒€戣鍥?(榛樿) + if (req.user.role === 'maintainer') { + + return res.status(403).json({ message: '无权访问' }); + } else if (req.user.role === 'admin' || req.user.role === 'super_admin') { + // 绠$悊鍛?& 瓒呯骇绠$悊鍛橈細 + + } else if (req.user.role === 'senior_user') { + + + query += ` AND (a.status = 'approved' OR (a.contributors @> $${params.length + 1}) OR (a.user_id = $${params.length + 2} AND a.status IN ('pending', 'rejected')))`; + params.push(contributorJsonParam); + params.push(req.user.id); + } else if (req.user.role === 'intermediate_user') { + + // 1. 涓庢垜鐩稿叧 (contributors @> myPhone) + + + + + if (userDept) { + const deptUsersRes = await db.query('SELECT username FROM users WHERE department = $1', [userDept]); + deptPhones = deptUsersRes.rows.map(u => u.username); + } + + // 1. 涓庢垜鐩稿叧 + const relatedCondition = `(a.contributors @> $${params.length + 1})`; + params.push(contributorJsonParam); + + + const myPendingCondition = `(a.user_id = $${params.length + 1} AND a.status IN ('pending', 'rejected'))`; + params.push(req.user.id); + + + let deptExtendedCondition = 'FALSE'; + if (userDept && deptPhones.length > 0) { + deptExtendedCondition = `( + a.status = 'approved' AND ( + $${params.length + 1} = ANY(a.assigned_departments) + OR + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(a.contributors) c + WHERE c->>'phone' = ANY($${params.length + 2}) + ) + ) + )`; + params.push(userDept); + params.push(deptPhones); + } + + query += ` AND (${relatedCondition} OR ${myPendingCondition} OR ${deptExtendedCondition})`; + } else { + + + + // 1. 涓庢垜鐩稿叧 + const relatedCondition = `(a.contributors @> $${params.length + 1})`; + params.push(contributorJsonParam); + + + let deptCondition = 'FALSE'; + if (userDept) { + deptCondition = `(a.status = 'approved' AND $${params.length + 1} = ANY(a.assigned_departments))`; + params.push(userDept); + } + + + const myPendingCondition = `(a.user_id = $${params.length + 1} AND a.status IN ('pending', 'rejected'))`; + params.push(req.user.id); + + query += ` AND (${relatedCondition} OR ${deptCondition} OR ${myPendingCondition})`; + } + } + if (type) { + query += ' AND a.type = $' + (params.length + 1); + params.push(type); + } + if (status) { + query += ' AND a.status = $' + (params.length + 1); + params.push(status); + } + if (keyword) { + query += ` AND (a.name ILIKE $${params.length + 1} OR a.main_contributors ILIKE $${params.length + 1} OR a.all_contributors ILIKE $${params.length + 1} OR a.contributor_phones ILIKE $${params.length + 1})`; + params.push(`%${keyword}%`); + } + if (startDate) { + query += ` AND a.achievement_date >= $${params.length + 1}`; + params.push(startDate); + } + if (endDate) { + query += ` AND a.achievement_date <= $${params.length + 1}`; + params.push(endDate); + } + if (department) { + query += ` AND $${params.length + 1} = ANY(a.assigned_departments)`; + params.push(department); + } + + + query += ' ORDER BY a.achievement_date DESC, a.created_at DESC'; + + try { + const result = await db.query(query, params); + const leaderDeptSet = await getLeaderDepartmentSet(); + + // 妫€鏌ユ暟鎹槸鍚﹀寘鍚?'寰呭畾' 鍐呭 + let rows = result.rows.map(row => { + const normalizedRow = normalizeAchievementDepartments(row, leaderDeptSet); + let hasIssue = false; + + // 1. 妫€鏌ュ綊灞為儴闂? + if (normalizedRow.assigned_departments && normalizedRow.assigned_departments.includes('寰呭畾')) hasIssue = true; + + // 2. 检查各类型特有字段 + const checkFields = [ + normalizedRow.paper_type, normalizedRow.first_unit, // paper + normalizedRow.project_category, normalizedRow.project_source, // project + normalizedRow.award_type, normalizedRow.award_level, normalizedRow.award_unit, // award + normalizedRow.standard_type, // standard + normalizedRow.publisher, // monograph + normalizedRow.trans_project_category, // transformation + normalizedRow.owner_unit // software + ]; + + if (checkFields.some(val => val === '寰呭畾')) hasIssue = true; + + return { ...normalizedRow, has_data_issue: hasIssue }; + }); + + const getOwnerDepartment = (row) => { + const depts = Array.isArray(row?.assigned_departments) ? row.assigned_departments : []; + return String(depts[0] || '').trim(); + }; + const isRelatedToMe = (row) => { + const myPhone = String(req.user.username || '').trim(); + if (!myPhone || !Array.isArray(row?.contributors)) return false; + return row.contributors.some((c) => String(c?.phone || '').trim() === myPhone); + }; + const isMyPending = (row) => { + return Number(row?.user_id) === Number(req.user.id) && ['pending', 'rejected'].includes(row?.status); + }; + + // 部门筛选统一按“单归属部门”口径,不按历史多部门数组匹配 + if (department) { + const targetDept = String(department || '').trim(); + rows = rows.filter((row) => getOwnerDepartment(row) === targetDept); + } + + // 对历史多部门数据做二次收敛,避免 ANY(a.assigned_departments) 带来的越权/误入 + if (scope !== 'my') { + if (req.user.role === 'user') { + rows = rows.filter((row) => { + if (isRelatedToMe(row) || isMyPending(row)) return true; + return row.status === 'approved' && !!userDept && getOwnerDepartment(row) === userDept; + }); + } else if (req.user.role === 'intermediate_user') { + const deptPhoneSet = new Set((deptPhones || []).map((p) => String(p || '').trim()).filter(Boolean)); + rows = rows.filter((row) => { + if (isRelatedToMe(row) || isMyPending(row)) return true; + if (row.status !== 'approved') return false; + if (userDept && getOwnerDepartment(row) === userDept) return true; + if (deptPhoneSet.size === 0 || !Array.isArray(row?.contributors)) return false; + return row.contributors.some((c) => deptPhoneSet.has(String(c?.phone || '').trim())); + }); + } + } + + res.json(rows); + } catch (err) { + res.status(500).json({ message: 'Server error' }); + } +}); + + + +router.get('/validate', verifyToken, async (req, res) => { + // 鏉冮檺妫€鏌? + if (req.user.role !== 'super_admin') { + return res.status(403).json({ message: '无权访问' }); + } + + try { + + const achievementsRes = await db.query(` + SELECT + a.id, a.name, a.type, a.contributors, a.assigned_departments, + u.username as submitter_username, u.real_name as submitter_name, + -- Paper + ap.paper_type, ap.first_unit, + -- Project + apr.project_category, + -- Award + aa.award_type, aa.award_level, aa.award_unit, + -- Standard + as_std.standard_type, + -- Transformation + at.project_category as trans_project_category, + -- Software + asw.owner_unit + FROM achievements a + JOIN users u ON a.user_id = u.id + LEFT JOIN achievement_paper ap ON a.id = ap.achievement_id AND a.type = 'paper' + LEFT JOIN achievement_project apr ON a.id = apr.achievement_id AND a.type = 'project' + LEFT JOIN achievement_award aa ON a.id = aa.achievement_id AND a.type = 'award' + LEFT JOIN achievement_standard as_std ON a.id = as_std.achievement_id AND a.type = 'standard' + LEFT JOIN achievement_transformation at ON a.id = at.achievement_id AND a.type = 'transformation' + LEFT JOIN achievement_software asw ON a.id = asw.achievement_id AND a.type = 'software' + `); + const achievements = achievementsRes.rows; + + + const usersRes = await db.query('SELECT username, real_name, dept_status FROM users'); + const userMap = new Map(); // username -> { real_name, dept_status } + usersRes.rows.forEach(u => userMap.set(u.username, { real_name: u.real_name, dept_status: u.dept_status })); + + // 3. 鑾峰彇鎵€鏈夐儴闂ㄦ暟鎹?(鐢ㄤ簬姣斿) + const deptsRes = await db.query('SELECT name FROM departments'); + const deptSet = new Set(deptsRes.rows.map(d => d.name)); + + // 4. 鑾峰彇鎵€鏈夊瓧鍏歌〃鏁版嵁 (鐢ㄤ簬姣斿) + const dicts = { + orgs: new Set((await db.query('SELECT name FROM dict_organizations')).rows.map(r => r.name)), + awardTypes: new Set((await db.query('SELECT name FROM dict_award_types')).rows.map(r => r.name)), + awardLevels: new Set((await db.query('SELECT name FROM dict_award_levels')).rows.map(r => r.name)), + paperTypes: new Set((await db.query('SELECT name FROM dict_paper_types')).rows.map(r => r.name)), + standardTypes: new Set((await db.query('SELECT name FROM dict_standard_types')).rows.map(r => r.name)), + projectCats: new Set((await db.query('SELECT name FROM dict_project_categories')).rows.map(r => r.name)), + }; + + const validationResults = []; + + for (const ach of achievements) { + const errors = []; + const contributors = ach.contributors || []; + const assignedDepts = ach.assigned_departments || []; + + + for (const c of contributors) { + if (c.phone) { + const userInfo = userMap.get(c.phone); + if (!userInfo) { + errors.push(`完成人 ${c.name}(${c.phone}) 在用户表中不存在`); + } else if (userInfo.dept_status === 'pending') { + errors.push(`完成人 ${c.name}(${c.phone}) 的部门状态为待定,请核实`); + } + } + } + + // 4.2 鏍¢獙閮ㄩ棬 + for (const dept of assignedDepts) { + if (!deptSet.has(dept)) { + errors.push(`归属部门 '${dept}' 在部门表中不存在`); + } + } + + // 4.3 校验字典字段 + switch (ach.type) { + case 'paper': + if (ach.paper_type && !dicts.paperTypes.has(ach.paper_type)) errors.push(`paper_type '${ach.paper_type}' not found in dictionary`); + if (ach.first_unit && !dicts.orgs.has(ach.first_unit)) errors.push(`first_unit '${ach.first_unit}' not found in organization dictionary`); + break; + case 'project': + if (ach.project_category && !dicts.projectCats.has(ach.project_category)) errors.push(`project_category '${ach.project_category}' not found in dictionary`); + break; + case 'award': + if (ach.award_type && !dicts.awardTypes.has(ach.award_type)) errors.push(`award_type '${ach.award_type}' not found in dictionary`); + if (ach.award_level && !dicts.awardLevels.has(ach.award_level)) errors.push(`award_level '${ach.award_level}' not found in dictionary`); + if (ach.award_unit && !dicts.orgs.has(ach.award_unit)) errors.push(`award_unit '${ach.award_unit}' not found in organization dictionary`); + break; + case 'standard': + if (ach.standard_type && !dicts.standardTypes.has(ach.standard_type)) errors.push(`standard_type '${ach.standard_type}' not found in dictionary`); + break; + case 'transformation': + if (ach.trans_project_category && !dicts.projectCats.has(ach.trans_project_category)) errors.push(`trans_project_category '${ach.trans_project_category}' not found in dictionary`); + break; + } + + if (errors.length > 0) { + validationResults.push({ + id: ach.id, + name: ach.name, + type: ach.type, + submitter: ach.submitter_name || ach.submitter_username, + errors: errors + }); + } + } + + res.json(validationResults); + } catch (err) { + console.error(err); + res.status(500).json({ message: '校验失败' }); + } +}); + + +router.get('/:id', verifyToken, async (req, res) => { + const { id } = req.params; + try { + const baseRes = await db.query('SELECT * FROM achievements WHERE id = $1', [id]); + if (baseRes.rows.length === 0) return res.status(404).json({ message: '未找到该成果' }); + + const achievement = baseRes.rows[0]; + const leaderDeptSet = await getLeaderDepartmentSet(); + const normalizedAchievement = normalizeAchievementDepartments(achievement, leaderDeptSet); + + const isSystemAdmin = ['admin', 'super_admin'].includes(req.user.role); + + if (!isSystemAdmin) { + + + if (achievement.user_id === req.user.id && ['pending', 'rejected'].includes(achievement.status)) { + + } else { + + let userDept = null; + + + const userRes = await db.query('SELECT department FROM users WHERE id = $1', [req.user.id]); + if (userRes.rows.length > 0) { + userDept = userRes.rows[0].department; + } + + const userPhone = req.user.username; + const isContributor = achievement.contributors && Array.isArray(achievement.contributors) && achievement.contributors.some(c => c.phone === userPhone); + + if (isContributor) { + + } else { + + if (achievement.status === 'approved') { + if (req.user.role === 'senior_user') { + + } else if (req.user.role === 'user') { + + if (!userDept || !normalizedAchievement.assigned_departments || !normalizedAchievement.assigned_departments.includes(userDept)) { + return res.status(403).json({ message: '无权访问(非本部门成果)' }); + } + } else { + return res.status(403).json({ message: '无权访问' }); + } + } else { + + return res.status(403).json({ message: '无权访问' }); + } + } + } + } + + const detailTable = `achievement_${achievement.type}`; + const detailRes = await db.query(`SELECT * FROM ${detailTable} WHERE achievement_id = $1`, [id]); + const attachmentsRes = await db.query('SELECT * FROM achievement_attachments WHERE achievement_id = $1', [id]); + + res.json({ ...normalizedAchievement, details: detailRes.rows[0], attachments: attachmentsRes.rows }); + } catch (err) { + console.error(err); + res.status(500).json({ message: 'Server error' }); + } +}); + + +router.post('/audit/:id', verifyToken, isAdmin, async (req, res) => { + const { id } = req.params; + const { status, audit_comment } = req.body; + + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + + if (req.user.role === 'admin') { + const checkRes = await client.query('SELECT contributor_phones FROM achievements WHERE id = $1', [id]); + const contributorPhones = checkRes.rows[0]?.contributor_phones || ''; + const selfPhone = req.user.username; + const phonesArray = contributorPhones.split(/[ \t\n,]+/); + + if (phonesArray.includes(selfPhone)) { + await client.query('ROLLBACK'); + return res.status(403).json({ message: 'Conflict-of-interest rule: you cannot audit achievements you contributed to.' }); + } + } + + + await client.query( + 'UPDATE achievements SET status = $1, audit_comment = $2, updated_at = CURRENT_TIMESTAMP WHERE id = $3', + [status, audit_comment, id] + ); + + + if (status === 'rejected') { + const filesRes = await client.query('SELECT file_path FROM achievement_attachments WHERE achievement_id = $1', [id]); + + for (const row of filesRes.rows) { + const filePath = findFile(row.file_path); + if (filePath) { + try { fs.unlinkSync(filePath); } catch (e) {} + } + } + await client.query('DELETE FROM achievement_attachments WHERE achievement_id = $1', [id]); + } + + await client.query('COMMIT'); + + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + logger.info(`管理员 ${req.user.username} 审核了成果 ID ${id}: 状态变更为 ${status} (IP: ${clientIp})`); + + res.json({ message: status === 'rejected' ? 'Rejected and related attachments cleaned' : 'Audit completed' }); + } catch (err) { + await client.query('ROLLBACK'); + console.error(err); + res.status(500).json({ message: 'Server error' }); + } finally { + client.release(); + } +}); + + +router.put('/:id', verifyToken, async (req, res) => { + const { id } = req.params; + const { details, name, contributors, achievement_date, remarks } = req.body; + let parsedDetails = details || {}; + let parsedContributors = contributors || []; + + try { + parsedDetails = typeof details === 'string' ? JSON.parse(details) : (details || {}); + } catch (e) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: 'details 字段格式错误(应为 JSON)' }); + } + + try { + parsedContributors = typeof contributors === 'string' ? JSON.parse(contributors) : (contributors || []); + } catch (e) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: 'contributors 字段格式错误(应为 JSON)' }); + } + + + const phoneSet = new Set(); + for (const c of parsedContributors) { + if (c.phone) { + if (phoneSet.has(c.phone)) { + return res.status(400).json({ message: `Duplicate contributor phone: ${c.phone} (${c.name})` }); + } + phoneSet.add(c.phone); + } + } + + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + const baseRes = await client.query('SELECT type, user_id, status FROM achievements WHERE id = $1', [id]); + if (baseRes.rows.length === 0) { + await client.query('ROLLBACK'); + return res.status(404).json({ message: '未找到该成果' }); + } + + const achievement = baseRes.rows[0]; + // ?????????????????? + if (!['project', 'transformation'].includes(achievement.type)) { + const rankingSet = new Set(); + for (const c of parsedContributors) { + if (c.ranking) { + const r = parseInt(c.ranking); + if (rankingSet.has(r)) { + await client.query('ROLLBACK'); + return res.status(400).json({ message: `Duplicate ranking: #${r}` }); + } + rankingSet.add(r); + } + } + } + + let canEdit = false; + if (req.user.role === 'super_admin') { + canEdit = true; + } else if (achievement.user_id === req.user.id && ['pending', 'rejected'].includes(achievement.status)) { + canEdit = true; + } + + if (!canEdit) { + await client.query('ROLLBACK'); + return res.status(403).json({ message: '无权修改(仅超级管理员,或成果提交人在待审核/已驳回状态下可修改)' }); + } + + const type = achievement.type; + let updateQuery = ''; + let params = []; + + switch (type) { + case 'paper': + updateQuery = 'UPDATE achievement_paper SET paper_type=$2, first_unit=$3, journal_name=$4, publish_date=$5, doi=$6 WHERE achievement_id=$1'; + params = [id, parsedDetails.paper_type, parsedDetails.first_unit, parsedDetails.journal_name, parsedDetails.publish_date, parsedDetails.doi]; + break; + case 'project': + updateQuery = 'UPDATE achievement_project SET project_category=$2, source=$3 WHERE achievement_id=$1'; + params = [id, parsedDetails.project_category, parsedDetails.source]; + break; + case 'award': + updateQuery = 'UPDATE achievement_award SET award_type=$2, award_level=$3, award_unit=$4 WHERE achievement_id=$1'; + params = [id, parsedDetails.award_type, parsedDetails.award_level, parsedDetails.award_unit]; + break; + case 'standard': + updateQuery = 'UPDATE achievement_standard SET standard_type=$2, standard_no=$3, implement_date=$4 WHERE achievement_id=$1'; + params = [id, parsedDetails.standard_type, parsedDetails.standard_no, parsedDetails.implement_date]; + break; + case 'monograph': + updateQuery = 'UPDATE achievement_monograph SET publisher=$2, isbn=$3 WHERE achievement_id=$1'; + params = [id, parsedDetails.publisher, parsedDetails.isbn]; + break; + case 'report': + updateQuery = 'UPDATE achievement_report SET report_type=$2, recipient=$3, approver_id=$4, approver_name=$5 WHERE achievement_id=$1'; + params = [id, parsedDetails.report_type, parsedDetails.recipient, parsedDetails.approver_id, parsedDetails.approver_name]; + break; + case 'plan': + updateQuery = 'SELECT 1'; // 规划表目前没有额外字段需要更新 + params = []; + break; + case 'patent': + updateQuery = 'UPDATE achievement_patent SET patent_no=$2, patent_type=$3, assignee=$4 WHERE achievement_id=$1'; + params = [id, parsedDetails.patent_no, parsedDetails.patent_type, parsedDetails.assignee]; + break; + case 'transformation': + updateQuery = 'UPDATE achievement_transformation SET trans_method=$2, trans_amount=$3, project_category=$4 WHERE achievement_id=$1'; + params = [id, parsedDetails.trans_method, parsedDetails.trans_amount, parsedDetails.project_category]; + break; + case 'software': + updateQuery = 'UPDATE achievement_software SET reg_no=$2, acquisition_method=$3, scope=$4, owner_unit=$5 WHERE achievement_id=$1'; + params = [id, parsedDetails.reg_no, parsedDetails.acquisition_method, parsedDetails.scope, parsedDetails.owner_unit]; + break; + default: + throw new Error('Unknown achievement type'); + } + + + let processedContributors = parsedContributors.map(c => ({ + ...c, + ranking: c.ranking ? parseInt(c.ranking) : null + })); + + if (type === 'paper') { + const mainRoles = ['第一作者', '共同第一作者', '通讯作者', '共同通讯作者']; + processedContributors = processedContributors.map(c => ({ + ...c, + isMain: mainRoles.includes(c.role) + })); + } else if (['project', 'transformation'].includes(type)) { + + } else { + const rankings = processedContributors.map(c => c.ranking).filter(r => r !== null && !isNaN(r)); + const minRanking = rankings.length > 0 ? Math.min(...rankings) : null; + + processedContributors = processedContributors.map(c => ({ + ...c, + isMain: minRanking !== null && c.ranking === minRanking + })); + } + + // 鎸夋帓鍚嶆帓搴? + processedContributors.sort((a, b) => { + if (a.ranking && b.ranking) return a.ranking - b.ranking; + if (a.ranking) return -1; + if (b.ranking) return 1; + return 0; + }); + + + if (!processedContributors.some(c => c.isMain) && (type === 'paper' || ['project', 'transformation'].includes(type))) { + processedContributors = processedContributors.map(c => ({ ...c, isMain: true })); + } + + const main_contributors_str = processedContributors.filter(c => c.isMain).map(c => c.name).join(' '); + const all_contributors_str = processedContributors.map(c => c.name).join(' '); + const contributor_phones_str = processedContributors.map(c => c.phone).join(' '); + + + const assignedDepartments = await resolveAssignedDepartmentsFromContributors(client, processedContributors); + + await client.query(updateQuery, params); + await client.query( + 'UPDATE achievements SET name=$2, main_contributors=$3, all_contributors=$4, contributor_phones=$5, achievement_date=$6, remarks=$7, contributors=$8, assigned_departments=$9, updated_at = CURRENT_TIMESTAMP WHERE id = $1', + [id, name, main_contributors_str, all_contributors_str, contributor_phones_str, achievement_date, remarks, JSON.stringify(processedContributors), assignedDepartments] + ); + await client.query('COMMIT'); + res.json({ message: '修改成功' }); + } catch (err) { + await client.query('ROLLBACK'); + console.error(err); + res.status(500).json({ message: 'Server error' }); + } finally { + client.release(); + } +}); + + +router.delete('/:id', verifyToken, async (req, res) => { + const { id } = req.params; + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + const checkRes = await client.query('SELECT * FROM achievements WHERE id = $1', [id]); + if (checkRes.rows.length === 0) { + await client.query('ROLLBACK'); + return res.status(404).json({ message: '未找到该成果' }); + } + + const achievement = checkRes.rows[0]; + + + let canDelete = false; + if (req.user.role === 'super_admin') { + canDelete = true; + } else if (achievement.user_id === req.user.id && ['pending', 'rejected'].includes(achievement.status)) { + canDelete = true; + } + + if (!canDelete) { + await client.query('ROLLBACK'); + return res.status(403).json({ message: '无权删除(仅超级管理员,或成果提交人在待审核/已驳回状态下可删除)' }); + } + + const filesRes = await client.query('SELECT file_path FROM achievement_attachments WHERE achievement_id = $1', [id]); + for (const row of filesRes.rows) { + const filePath = findFile(row.file_path); + if (filePath) { + try { fs.unlinkSync(filePath); } catch (e) {} + } + } + + await client.query('DELETE FROM achievements WHERE id = $1', [id]); + + await client.query('COMMIT'); + + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + logger.info(`用户 ${req.user.username} 删除了成果 ID ${id} (IP: ${clientIp})`); + + res.json({ message: '删除成功,相关文件已清理' }); + } catch (err) { + await client.query('ROLLBACK'); + res.status(500).json({ message: 'Server error' }); + } finally { + client.release(); + } +}); + + +router.get('/:id/attachments/zip', verifyToken, async (req, res) => { + const { id } = req.params; + try { + const baseRes = await db.query('SELECT user_id, name, contributors, status FROM achievements WHERE id = $1', [id]); + if (baseRes.rows.length === 0) return res.status(404).json({ message: '未找到该成果' }); + + const achievement = baseRes.rows[0]; + + const isSystemAdmin = ['admin', 'super_admin'].includes(req.user.role); + + if (!isSystemAdmin) { + + if (achievement.user_id === req.user.id && ['pending', 'rejected'].includes(achievement.status)) { + // 鍏佽 + } else { + + const userPhone = req.user.username; + const isContributor = achievement.contributors && Array.isArray(achievement.contributors) && achievement.contributors.some(c => c.phone === userPhone); + + if (!isContributor) { + return res.status(403).json({ message: '无权访问' }); + } + } + } + + const attachmentsRes = await db.query('SELECT * FROM achievement_attachments WHERE achievement_id = $1', [id]); + if (attachmentsRes.rows.length === 0) return res.status(404).json({ message: 'No attachments found for this achievement' }); + + const archive = archiver('zip', { zlib: { level: 9 } }); + const zipName = `成果附件_${achievement.name || id}.zip`; + res.setHeader('Content-Type', 'application/zip'); + res.setHeader('Content-Disposition', contentDisposition(zipName)); + + archive.pipe(res); + + attachmentsRes.rows.forEach(file => { + const filePath = findFile(file.file_path); + if (filePath) archive.file(filePath, { name: file.file_name }); + }); + + archive.finalize(); + } catch (err) { + console.error(err); + res.status(500).json({ message: '压缩失败' }); + } +}); + +module.exports = router; + diff --git a/server/routes/aiAnalysis.js b/server/routes/aiAnalysis.js new file mode 100644 index 0000000..38a3a12 --- /dev/null +++ b/server/routes/aiAnalysis.js @@ -0,0 +1,949 @@ +const express = require('express'); +const http = require('http'); +const https = require('https'); +const { URL } = require('url'); +const router = express.Router(); +const db = require('../db'); +const logger = require('../utils/logger'); +const { verifyToken } = require('../middleware/auth'); + +const normalizePositiveInt = (value, fallback, min = 1, max = Number.MAX_SAFE_INTEGER) => { + const n = Number(value); + if (!Number.isFinite(n)) return fallback; + const intValue = Math.trunc(n); + if (intValue < min) return min; + if (intValue > max) return max; + return intValue; +}; + +const AI_TIMEOUT_MS = Number(process.env.AI_TIMEOUT_MS || 45000); +const AI_MAX_TOKENS = normalizePositiveInt(process.env.AI_MAX_TOKENS, 4096, 256, 8192); +const AI_DEFAULT_PROVIDER = String(process.env.AI_DEFAULT_PROVIDER || 'deepseek').trim().toLowerCase(); +const AI_PROVIDER_PRIORITY = String(process.env.AI_PROVIDER_PRIORITY || 'deepseek').trim(); +const AI_NAME_MAX_ITEMS_DEFAULT = normalizePositiveInt(process.env.AI_NAME_MAX_ITEMS_DEFAULT, 100, 20, 500); +const AI_NAME_MAX_ITEMS_HARD_LIMIT = normalizePositiveInt(process.env.AI_NAME_MAX_ITEMS_HARD_LIMIT, 300, 50, 1000); + +const ADMIN_ROLES = new Set(['admin', 'super_admin', 'senior_user', 'intermediate_user']); +const SUPPORTED_PROVIDERS = new Set(['auto', 'deepseek']); +const SUPPORTED_MODES = new Set(['standard', 'deep']); +const SUPPORTED_NAME_STRATEGIES = new Set(['latest', 'balanced']); +const TYPE_LABEL_MAP = { + paper: 'Paper', + project: 'Project', + award: 'Award', + standard: 'Standard', + monograph: 'Monograph', + report: 'Technical Report', + plan: 'Plan', + patent: 'Patent', + transformation: 'Transformation', + software: 'Software Copyright' +}; +const STATUS_LABEL_MAP = { + pending: 'Pending', + approved: 'Approved', + rejected: 'Rejected' +}; + +const clampText = (value, maxLen = 600) => { + return String(value || '').trim().slice(0, maxLen); +}; + +const normalizeFilter = (value) => { + if (value === undefined || value === null) return null; + const s = String(value).trim(); + if (!s || s.toLowerCase() === 'all') return null; + return s; +}; + +const toSafeInt = (value, fallback = null) => { + const n = Number(value); + if (!Number.isFinite(n)) return fallback; + return Math.trunc(n); +}; + +const normalizeProvider = (value) => { + const provider = String(value || '').trim().toLowerCase(); + if (!provider) return 'auto'; + if (!SUPPORTED_PROVIDERS.has(provider)) return 'auto'; + return provider; +}; + +const normalizeMode = (value) => { + const mode = String(value || '').trim().toLowerCase(); + if (!mode || !SUPPORTED_MODES.has(mode)) return 'standard'; + return mode; +}; + +const normalizeNameStrategy = (value) => { + const strategy = String(value || '').trim().toLowerCase(); + if (!strategy || !SUPPORTED_NAME_STRATEGIES.has(strategy)) return 'latest'; + return strategy; +}; + +const normalizeNameLimit = (value) => { + return normalizePositiveInt(value, AI_NAME_MAX_ITEMS_DEFAULT, 20, AI_NAME_MAX_ITEMS_HARD_LIMIT); +}; + +const toIsoDate = (value) => { + if (!value) return null; + const date = value instanceof Date ? value : new Date(value); + if (!Number.isFinite(date.getTime())) return null; + return date.toISOString().slice(0, 10); +}; + +const getProviderConfigs = () => { + return { + deepseek: { + baseUrl: String(process.env.DEEPSEEK_API_BASE_URL || '').trim(), + apiKey: String(process.env.DEEPSEEK_API_KEY || '').trim(), + model: String(process.env.DEEPSEEK_MODEL || 'deepseek-chat').trim() || 'deepseek-chat' + } + }; +}; + +const getAvailableProviders = (configs) => { + return Object.keys(configs).filter((provider) => { + const cfg = configs[provider]; + return !!(cfg && cfg.baseUrl && cfg.apiKey && cfg.model); + }); +}; + +const parsePriority = () => { + const tokens = AI_PROVIDER_PRIORITY + .split(',') + .map((p) => normalizeProvider(p)) + .filter((p) => p !== 'auto'); + return Array.from(new Set(tokens)); +}; + +const resolveProviderOrder = (requestedProvider, availableProviders) => { + if (requestedProvider !== 'auto') { + return availableProviders.includes(requestedProvider) ? [requestedProvider] : []; + } + + const priority = parsePriority(); + const ordered = [ + ...priority.filter((p) => availableProviders.includes(p)), + ...availableProviders.filter((p) => !priority.includes(p)) + ]; + + const defaultProvider = normalizeProvider(AI_DEFAULT_PROVIDER); + if (defaultProvider !== 'auto' && ordered.includes(defaultProvider)) { + return [defaultProvider, ...ordered.filter((p) => p !== defaultProvider)]; + } + + return ordered; +}; + +const postJson = (urlString, payload, headers = {}, timeoutMs = 30000) => { + return new Promise((resolve, reject) => { + const url = new URL(urlString); + const body = JSON.stringify(payload); + const requestLib = url.protocol === 'http:' ? http : https; + const defaultPort = url.protocol === 'http:' ? 80 : 443; + + const req = requestLib.request({ + protocol: url.protocol, + hostname: url.hostname, + port: url.port || defaultPort, + path: `${url.pathname}${url.search}`, + method: 'POST', + timeout: timeoutMs, + headers: { + 'Content-Type': 'application/json', + 'Content-Length': Buffer.byteLength(body), + ...headers + } + }, (res) => { + let raw = ''; + res.setEncoding('utf8'); + res.on('data', (chunk) => { + raw += chunk; + }); + res.on('end', () => { + const statusCode = res.statusCode || 500; + let parsed = {}; + try { + parsed = raw ? JSON.parse(raw) : {}; + } catch (e) { + parsed = { raw }; + } + + if (statusCode >= 200 && statusCode < 300) { + resolve(parsed); + } else { + reject(new Error(parsed?.error?.message || parsed?.message || `AI provider error: ${statusCode}`)); + } + }); + }); + + req.on('timeout', () => { + req.destroy(new Error('AI request timeout')); + }); + req.on('error', reject); + req.write(body); + req.end(); + }); +}; + +const writeSse = (res, event, payload) => { + if (res.writableEnded) return; + res.write(`event: ${event}\n`); + res.write(`data: ${JSON.stringify(payload)}\n\n`); +}; + +const extractChoiceText = (parsed) => { + const choice = parsed?.choices?.[0] || {}; + if (typeof choice?.delta?.content === 'string') return choice.delta.content; + if (typeof choice?.message?.content === 'string') return choice.message.content; + return ''; +}; + +const streamProviderToClient = ({ req, res, provider, config, systemPrompt, userPrompt, maxTokens = AI_MAX_TOKENS, timeoutMs = 30000 }) => { + return new Promise((resolve, reject) => { + const endpoint = `${config.baseUrl.replace(/\/+$/, '')}/chat/completions`; + const url = new URL(endpoint); + const requestLib = url.protocol === 'http:' ? http : https; + const defaultPort = url.protocol === 'http:' ? 80 : 443; + const payload = JSON.stringify({ + model: config.model, + temperature: 0.2, + max_tokens: maxTokens, + stream: true, + messages: [ + { role: 'system', content: systemPrompt }, + { role: 'user', content: userPrompt } + ] + }); + + let settled = false; + let tokenChars = 0; + let lineBuffer = ''; + let rawFallbackBuffer = ''; + let metaSent = false; + const onClientClose = () => { + if (!upstreamReq.destroyed) { + upstreamReq.destroy(new Error('client closed connection')); + } + }; + const settle = (fn, value) => { + if (settled) return; + settled = true; + req.off('close', onClientClose); + fn(value); + }; + + const upstreamReq = requestLib.request({ + protocol: url.protocol, + hostname: url.hostname, + port: url.port || defaultPort, + path: `${url.pathname}${url.search}`, + method: 'POST', + timeout: timeoutMs, + headers: { + 'Content-Type': 'application/json', + 'Content-Length': Buffer.byteLength(payload), + Accept: 'text/event-stream', + Authorization: `Bearer ${config.apiKey}` + } + }, (upstreamRes) => { + const statusCode = upstreamRes.statusCode || 500; + upstreamRes.setEncoding('utf8'); + + if (statusCode < 200 || statusCode >= 300) { + let errRaw = ''; + upstreamRes.on('data', (chunk) => { + errRaw += chunk; + }); + upstreamRes.on('end', () => { + try { + const parsed = errRaw ? JSON.parse(errRaw) : {}; + settle(reject, new Error(parsed?.error?.message || parsed?.message || `AI provider error: ${statusCode}`)); + } catch (e) { + settle(reject, new Error(`AI provider error: ${statusCode}`)); + } + }); + return; + } + + if (!metaSent) { + writeSse(res, 'meta', { + provider, + model: config.model, + generatedAt: new Date().toISOString() + }); + metaSent = true; + } + + const flushLine = (line) => { + const trimmed = String(line || '').trim(); + if (!trimmed || trimmed.startsWith(':') || !trimmed.startsWith('data:')) return; + const data = trimmed.slice(5).trim(); + if (!data || data === '[DONE]') return; + try { + const parsed = JSON.parse(data); + const deltaText = extractChoiceText(parsed); + if (deltaText) { + tokenChars += deltaText.length; + writeSse(res, 'token', { content: deltaText }); + } + } catch (e) { + // Ignore malformed stream chunks. + } + }; + + upstreamRes.on('data', (chunk) => { + rawFallbackBuffer += chunk; + lineBuffer += chunk.replace(/\r/g, ''); + let idx = lineBuffer.indexOf('\n'); + while (idx !== -1) { + const line = lineBuffer.slice(0, idx); + lineBuffer = lineBuffer.slice(idx + 1); + flushLine(line); + idx = lineBuffer.indexOf('\n'); + } + }); + + upstreamRes.on('end', () => { + if (lineBuffer) flushLine(lineBuffer); + + if (tokenChars === 0 && rawFallbackBuffer.trim()) { + try { + const parsed = JSON.parse(rawFallbackBuffer); + const wholeText = extractChoiceText(parsed); + if (wholeText) { + tokenChars += wholeText.length; + writeSse(res, 'token', { content: wholeText }); + } + } catch (e) { + // Ignore fallback parse errors. + } + } + + if (tokenChars === 0) { + settle(reject, new Error('provider returned empty analysis')); + return; + } + settle(resolve, { provider, model: config.model, tokenChars }); + }); + + upstreamRes.on('error', (err) => { + settle(reject, err); + }); + }); + + upstreamReq.on('timeout', () => { + upstreamReq.destroy(new Error('AI request timeout')); + }); + + upstreamReq.on('error', (err) => { + settle(reject, err); + }); + + req.once('close', onClientClose); + + upstreamReq.write(payload); + upstreamReq.end(); + }); +}; + +const buildWhereClause = (filters = {}) => { + const where = ['1=1']; + const params = []; + + const year = toSafeInt(normalizeFilter(filters.year)); + const type = normalizeFilter(filters.type); + const status = normalizeFilter(filters.status); + const department = normalizeFilter(filters.department); + + if (year && year >= 2000 && year <= 2100) { + where.push(`EXTRACT(YEAR FROM achievement_date) = $${params.length + 1}`); + params.push(year); + } + if (type) { + where.push(`type = $${params.length + 1}`); + params.push(type); + } + if (status) { + where.push(`status = $${params.length + 1}`); + params.push(status); + } + + return { whereSql: where.join(' AND '), params, department }; +}; + +const toNumberRows = (rows = []) => { + return rows.map((row) => ({ + ...row, + count: Number(row.count || 0) + })); +}; + +const toPercent = (count, total) => { + if (!total) return 0; + return Number(((Number(count || 0) / Number(total || 1)) * 100).toFixed(1)); +}; + +const formatFilterValue = (key, value) => { + if (!value || value === 'all') return '鍏ㄩ儴'; + if (key === 'type') return TYPE_LABEL_MAP[value] || value; + if (key === 'status') return STATUS_LABEL_MAP[value] || value; + return value; +}; + +const buildPromptDataset = (dataset) => { + const total = Number(dataset?.overview?.total || 0); + const rawFilters = dataset?.filters || {}; + const mode = dataset?.mode === 'deep' ? 'deep' : 'standard'; + const rawNameSamples = dataset?.nameSamples || {}; + + return { + mode, + filters: { + year: formatFilterValue('year', rawFilters.year), + type: formatFilterValue('type', rawFilters.type), + status: formatFilterValue('status', rawFilters.status), + department: formatFilterValue('department', rawFilters.department) + }, + overview: { total }, + byType: (dataset?.byType || []).slice(0, 8).map((item) => ({ + type: TYPE_LABEL_MAP[item.type] || item.type, + count: Number(item.count || 0), + ratio: toPercent(item.count, total) + })), + byStatus: (dataset?.byStatus || []).map((item) => ({ + status: STATUS_LABEL_MAP[item.status] || item.status, + count: Number(item.count || 0), + ratio: toPercent(item.count, total) + })), + byDepartmentTop: (dataset?.byDepartment || []).slice(0, 10).map((item) => ({ + department: item.department, + count: Number(item.count || 0), + ratio: toPercent(item.count, total) + })), + monthlyRecent: (dataset?.byMonth || []).slice(-24).map((item) => ({ + month: item.month, + count: Number(item.count || 0) + })), + quality: dataset?.quality || {}, + nameSamples: { + mode, + strategy: rawNameSamples?.strategy || 'latest', + sent: Number(rawNameSamples?.sent || 0), + total: Number(rawNameSamples?.total || 0), + truncated: Boolean(rawNameSamples?.truncated), + items: (rawNameSamples?.items || []).map((item) => ({ + name: clampText(item?.name, 120), + type: TYPE_LABEL_MAP[item?.type] || item?.type || 'unknown', + department: item?.department || 'unknown', + date: item?.date || null + })) + } + }; +}; + +const gatherAnalysisDataset = async (filters = {}, options = {}) => { + const { whereSql, params, department } = buildWhereClause(filters); + const scopedParams = department ? [...params, department] : params; + const scopedWhere = department ? `${whereSql} AND owner_department = $${params.length + 1}` : whereSql; + + const mode = normalizeMode(options?.mode); + const nameStrategy = normalizeNameStrategy(options?.nameStrategy); + const nameLimit = normalizeNameLimit(options?.nameLimit); + + const ownerAchievementsCte = ` + WITH leader_depts AS ( + SELECT name FROM dict_leader_departments + ), + leader_dept_array AS ( + SELECT COALESCE(array_agg(name::text), ARRAY[]::text[]) AS names FROM leader_depts + ), + owner_achievements AS ( + SELECT + a.id, + a.name, + a.type, + a.status, + a.achievement_date, + a.contributors, + a.assigned_departments, + a.remarks, + COALESCE(non_leader.dept, first_any.dept) AS owner_department + FROM achievements a + CROSS JOIN leader_dept_array lda + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + AND u.dept <> ALL(lda.names) + ORDER BY u.ord + LIMIT 1 + ) non_leader ON TRUE + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + ORDER BY u.ord + LIMIT 1 + ) first_any ON TRUE + ) + `; + + const totalRes = await db.query( + `${ownerAchievementsCte} + SELECT COUNT(*)::int AS count + FROM owner_achievements + WHERE ${scopedWhere}`, + scopedParams + ); + const typeRes = await db.query( + `${ownerAchievementsCte} + SELECT type, COUNT(*)::int AS count + FROM owner_achievements + WHERE ${scopedWhere} + GROUP BY type + ORDER BY count DESC`, + scopedParams + ); + const statusRes = await db.query( + `${ownerAchievementsCte} + SELECT status, COUNT(*)::int AS count + FROM owner_achievements + WHERE ${scopedWhere} + GROUP BY status + ORDER BY count DESC`, + scopedParams + ); + const deptRes = await db.query( + `${ownerAchievementsCte}, + department_scope AS ( + SELECT d.name AS department + FROM departments d, leader_dept_array lda + WHERE d.name::text <> ALL(lda.names) + ) + SELECT ds.department, COUNT(oa.id)::int AS count + FROM department_scope ds + LEFT JOIN owner_achievements oa + ON ds.department = oa.owner_department + AND (${scopedWhere}) + GROUP BY ds.department + ORDER BY count DESC + LIMIT 20`, + scopedParams + ); + const monthlyRes = await db.query( + `${ownerAchievementsCte} + SELECT month, count + FROM ( + SELECT TO_CHAR(achievement_date, 'YYYY-MM') AS month, COUNT(*)::int AS count + FROM owner_achievements + WHERE ${scopedWhere} AND achievement_date IS NOT NULL + GROUP BY month + ORDER BY month DESC + LIMIT 48 + ) t + ORDER BY month`, + scopedParams + ); + + const qualityRes = await db.query( + `${ownerAchievementsCte} + SELECT + COUNT(*) FILTER (WHERE contributors IS NULL OR jsonb_array_length(contributors) = 0)::int AS empty_contributors, + COUNT(*) FILTER (WHERE owner_department IS NULL)::int AS empty_departments, + COUNT(*) FILTER (WHERE remarks IS NULL OR LENGTH(BTRIM(remarks)) = 0)::int AS empty_remarks + FROM owner_achievements + WHERE ${scopedWhere}`, + scopedParams + ); + + const total = Number(totalRes.rows[0]?.count || 0); + const byType = toNumberRows(typeRes.rows); + const byStatus = toNumberRows(statusRes.rows); + const byDepartment = toNumberRows(deptRes.rows); + const byMonth = toNumberRows(monthlyRes.rows); + + const quality = { + emptyContributors: Number(qualityRes.rows[0]?.empty_contributors || 0), + emptyDepartments: Number(qualityRes.rows[0]?.empty_departments || 0), + emptyRemarks: Number(qualityRes.rows[0]?.empty_remarks || 0) + }; + + let nameSamples = { + mode, + strategy: nameStrategy, + sent: 0, + total: 0, + truncated: false, + items: [] + }; + + if (mode === 'deep') { + const nameCountRes = await db.query( + `${ownerAchievementsCte} + SELECT COUNT(*)::int AS count + FROM owner_achievements + WHERE ${scopedWhere} + AND name IS NOT NULL + AND LENGTH(BTRIM(name)) > 0`, + scopedParams + ); + + const totalNameCount = Number(nameCountRes.rows[0]?.count || 0); + let sampleRows = []; + + if (totalNameCount > 0) { + if (nameStrategy === 'balanced') { + const distinctTypeCount = Math.max(byType.filter((item) => !!item.type).length, 1); + const perTypeCap = Math.max(2, Math.ceil(nameLimit / distinctTypeCount)); + const balancedParams = [...scopedParams, perTypeCap, nameLimit]; + const balancedRes = await db.query( + `${ownerAchievementsCte} + SELECT id, name, type, owner_department AS department, achievement_date + FROM ( + SELECT + id, + name, + type, + owner_department, + achievement_date, + ROW_NUMBER() OVER ( + PARTITION BY COALESCE(type, 'unknown') + ORDER BY achievement_date DESC NULLS LAST, id DESC + ) AS rn + FROM owner_achievements + WHERE ${scopedWhere} + AND name IS NOT NULL + AND LENGTH(BTRIM(name)) > 0 + ) t + WHERE rn <= $${scopedParams.length + 1} + ORDER BY achievement_date DESC NULLS LAST, id DESC + LIMIT $${scopedParams.length + 2}`, + balancedParams + ); + sampleRows = balancedRes.rows; + } else { + const latestParams = [...scopedParams, nameLimit]; + const latestRes = await db.query( + `${ownerAchievementsCte} + SELECT id, name, type, owner_department AS department, achievement_date + FROM owner_achievements + WHERE ${scopedWhere} + AND name IS NOT NULL + AND LENGTH(BTRIM(name)) > 0 + ORDER BY achievement_date DESC NULLS LAST, id DESC + LIMIT $${scopedParams.length + 1}`, + latestParams + ); + sampleRows = latestRes.rows; + } + } + + const items = sampleRows + .map((row) => ({ + name: clampText(row?.name, 120), + type: row?.type || null, + department: row?.department || null, + date: toIsoDate(row?.achievement_date) + })) + .filter((item) => !!item.name); + + nameSamples = { + mode, + strategy: nameStrategy, + sent: items.length, + total: totalNameCount, + truncated: items.length < totalNameCount, + items + }; + } + + return { + mode, + filters: { + year: normalizeFilter(filters.year) || 'all', + type: normalizeFilter(filters.type) || 'all', + status: normalizeFilter(filters.status) || 'all', + department: normalizeFilter(filters.department) || 'all' + }, + overview: { + total + }, + byType, + byStatus, + byDepartment, + byMonth, + quality, + nameSamples, + protection: { + attachmentContentSent: false, + attachmentPathSent: false, + attachmentFilenameSent: false, + contributorPhoneSent: false, + contributorNameSent: false, + achievementNameSent: mode === 'deep', + note: mode === 'deep' + ? 'Deep mode sends aggregated statistics and achievement names only. No personal phone, contributor name, or attachment data is sent.' + : 'Standard mode sends aggregated statistics only. No names, phones, or attachment data is sent.' + } + }; +}; + +const buildPrompt = (question, dataset) => { + const promptDataset = buildPromptDataset(dataset); + const mode = dataset?.mode === 'deep' ? 'deep' : 'standard'; + const modeNote = mode === 'deep' + ? '当前为深度分析模式:会额外提供成果名称样本(不含个人姓名与手机号)。' + : '当前为标准分析模式:仅提供聚合统计数据,不提供成果名称。'; + const systemPrompt = ` +你是科研成果统计分析助手。只能基于输入数据给出结论,不得编造事实。 +要求: +1) 明确统计口径与边界; +2) 关键判断尽量给出数量/占比/趋势证据; +3) 证据不足时直接说明“数据不足以支持该结论”; +4) 建议必须可执行、可落地。 +请使用中文 Markdown 输出,结构如下: +## 执行摘要 +## 关键发现 +## 风险与数据质量 +## 优先行动(表格) +## 一句话结论 +`.trim(); + + const userPrompt = ` +用户问题:${question || '请给出整体分析、风险和改进建议。'} + +模式说明:${modeNote} + +隐私口径: +- 不包含附件内容、文件路径、文件名; +- 不包含个人手机号、贡献者姓名; +- 部门统计已排除院领导部门,每条成果仅计入一个归属部门。 + +请先结论后证据再建议。以下是可用数据 JSON: +${JSON.stringify(promptDataset)} +`.trim(); + + return { + systemPrompt, + userPrompt + }; +}; + +const callProvider = async (provider, config, systemPrompt, userPrompt, maxTokens = AI_MAX_TOKENS) => { + const endpoint = `${config.baseUrl.replace(/\/+$/, '')}/chat/completions`; + const aiResp = await postJson( + endpoint, + { + model: config.model, + temperature: 0.2, + max_tokens: maxTokens, + messages: [ + { role: 'system', content: systemPrompt }, + { role: 'user', content: userPrompt } + ] + }, + { + Authorization: `Bearer ${config.apiKey}` + }, + AI_TIMEOUT_MS + ); + + const analysis = aiResp?.choices?.[0]?.message?.content || ''; + if (!analysis) { + throw new Error('provider returned empty analysis'); + } + return { + provider, + model: config.model, + analysis + }; +}; + +router.post('/achievements', verifyToken, async (req, res) => { + if (!ADMIN_ROLES.has(req.user.role)) { + return res.status(403).json({ message: 'No permission to use AI analysis.' }); + } + + const requestedProvider = normalizeProvider(req.body?.provider || 'auto'); + const providerConfigs = getProviderConfigs(); + const availableProviders = getAvailableProviders(providerConfigs); + if (availableProviders.length === 0) { + return res.status(503).json({ message: 'AI service is not configured. Please configure DeepSeek API settings.' }); + } + + const providerOrder = resolveProviderOrder(requestedProvider, availableProviders); + if (providerOrder.length === 0) { + return res.status(503).json({ + message: `Requested provider '${requestedProvider}' is unavailable. Available providers: ${availableProviders.join(', ')}` + }); + } + + const question = clampText(req.body?.question, 600); + const filters = req.body?.filters || {}; + const mode = normalizeMode(req.body?.mode); + const nameLimit = normalizeNameLimit(req.body?.nameLimit); + const nameStrategy = normalizeNameStrategy(req.body?.nameStrategy); + const analysisOptions = { mode, nameLimit, nameStrategy }; + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + + try { + const dataset = await gatherAnalysisDataset(filters, analysisOptions); + const { systemPrompt, userPrompt } = buildPrompt(question, dataset); + const triedProviders = []; + const errors = []; + let aiResult = null; + + for (const provider of providerOrder) { + triedProviders.push(provider); + try { + aiResult = await callProvider(provider, providerConfigs[provider], systemPrompt, userPrompt, AI_MAX_TOKENS); + break; + } catch (providerErr) { + errors.push(`${provider}: ${providerErr.message}`); + } + } + + if (!aiResult) { + throw new Error(`All AI providers failed: ${errors.join(' | ')}`); + } + + logger.info( + `AI analysis generated by user ${req.user.username} (role=${req.user.role}, provider=${aiResult.provider}, ip=${clientIp})` + ); + + res.json({ + provider: aiResult.provider, + model: aiResult.model, + generatedAt: new Date().toISOString(), + analysis: aiResult.analysis, + triedProviders, + mode: dataset.mode, + nameSamples: dataset.nameSamples, + datasetSummary: { + filters: dataset.filters, + total: dataset.overview.total, + byTypeCount: dataset.byType.length, + byDepartmentCount: dataset.byDepartment.length, + byMonthCount: dataset.byMonth.length + }, + protection: dataset.protection + }); + } catch (err) { + logger.error(`AI analysis failed for user ${req.user.username}: ${err.message}`); + res.status(500).json({ message: `AI analysis failed: ${err.message}` }); + } +}); + +router.post('/achievements/stream', verifyToken, async (req, res) => { + if (!ADMIN_ROLES.has(req.user.role)) { + return res.status(403).json({ message: 'No permission to use AI analysis.' }); + } + + const requestedProvider = normalizeProvider(req.body?.provider || 'auto'); + const providerConfigs = getProviderConfigs(); + const availableProviders = getAvailableProviders(providerConfigs); + if (availableProviders.length === 0) { + return res.status(503).json({ message: 'AI service is not configured. Please configure DeepSeek API settings.' }); + } + + const providerOrder = resolveProviderOrder(requestedProvider, availableProviders); + if (providerOrder.length === 0) { + return res.status(503).json({ + message: `Requested provider '${requestedProvider}' is unavailable. Available providers: ${availableProviders.join(', ')}` + }); + } + + const question = clampText(req.body?.question, 600); + const filters = req.body?.filters || {}; + const mode = normalizeMode(req.body?.mode); + const nameLimit = normalizeNameLimit(req.body?.nameLimit); + const nameStrategy = normalizeNameStrategy(req.body?.nameStrategy); + const analysisOptions = { mode, nameLimit, nameStrategy }; + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + + try { + const dataset = await gatherAnalysisDataset(filters, analysisOptions); + const { systemPrompt, userPrompt } = buildPrompt(question, dataset); + const triedProviders = []; + const errors = []; + + res.setHeader('Content-Type', 'text/event-stream; charset=utf-8'); + res.setHeader('Cache-Control', 'no-cache, no-transform'); + res.setHeader('Connection', 'keep-alive'); + res.setHeader('X-Accel-Buffering', 'no'); + if (typeof res.flushHeaders === 'function') { + res.flushHeaders(); + } + + let streamResult = null; + for (const provider of providerOrder) { + triedProviders.push(provider); + try { + streamResult = await streamProviderToClient({ + req, + res, + provider, + config: providerConfigs[provider], + systemPrompt, + userPrompt, + maxTokens: AI_MAX_TOKENS, + timeoutMs: AI_TIMEOUT_MS + }); + break; + } catch (providerErr) { + errors.push(`${provider}: ${providerErr.message}`); + writeSse(res, 'provider_error', { + provider, + message: providerErr.message + }); + } + } + + if (!streamResult) { + writeSse(res, 'error', { message: `All AI providers failed: ${errors.join(' | ')}` }); + writeSse(res, 'done', { success: false, triedProviders }); + res.end(); + return; + } + + logger.info( + `AI stream analysis generated by user ${req.user.username} (role=${req.user.role}, provider=${streamResult.provider}, ip=${clientIp})` + ); + + writeSse(res, 'done', { + success: true, + provider: streamResult.provider, + model: streamResult.model, + generatedAt: new Date().toISOString(), + triedProviders, + mode: dataset.mode, + nameSamples: dataset.nameSamples, + datasetSummary: { + filters: dataset.filters, + total: dataset.overview.total, + byTypeCount: dataset.byType.length, + byDepartmentCount: dataset.byDepartment.length, + byMonthCount: dataset.byMonth.length + }, + protection: dataset.protection + }); + res.end(); + } catch (err) { + logger.error(`AI stream analysis failed for user ${req.user.username}: ${err.message}`); + if (res.headersSent) { + writeSse(res, 'error', { message: `AI analysis failed: ${err.message}` }); + writeSse(res, 'done', { success: false }); + res.end(); + return; + } + res.status(500).json({ message: `AI analysis failed: ${err.message}` }); + } +}); + +module.exports = router; + + diff --git a/server/routes/auth.js b/server/routes/auth.js new file mode 100644 index 0000000..29b207a --- /dev/null +++ b/server/routes/auth.js @@ -0,0 +1,220 @@ +const express = require('express'); +const router = express.Router(); +const bcrypt = require('bcryptjs'); +const jwt = require('jsonwebtoken'); +const db = require('../db'); +const SmsClient = require('../utils/sms'); +const logger = require('../utils/logger'); +require('dotenv').config(); + +// 内存存储验证码 (手机号 -> {code, expire, lastSentTime, ip}) +const verifyCodes = new Map(); + +// 定时清理过期验证码 (每5分钟执行一次) +setInterval(() => { + const now = Date.now(); + for (const [phone, data] of verifyCodes.entries()) { + if (now > data.expire) { + verifyCodes.delete(phone); + } + } +}, 5 * 60 * 1000); + +// 发送验证码 +router.post('/send-code', async (req, res) => { + const { phoneNumber, type } = req.body; // type: 'register' | 'reset' + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + + if (!/^1[3-9]\d{9}$/.test(phoneNumber)) { + return res.status(400).json({ message: '手机号格式不正确' }); + } + + // 检查发送频率 (60s 冷却) + const existingRecord = verifyCodes.get(phoneNumber); + if (existingRecord) { + const timeSinceLastSent = Date.now() - existingRecord.lastSentTime; + if (timeSinceLastSent < 60 * 1000) { + const remainingSeconds = Math.ceil((60000 - timeSinceLastSent) / 1000); + return res.status(429).json({ message: `请等待 ${remainingSeconds} 秒后再试` }); + } + } + + try { + // 如果是重置密码,检查用户是否存在 + if (type === 'reset') { + const userCheck = await db.query('SELECT id FROM users WHERE username = $1', [phoneNumber]); + if (userCheck.rows.length === 0) { + return res.status(404).json({ message: '该手机号未注册' }); + } + } + // 如果是注册,检查用户是否已存在 + else if (type === 'register') { + const userCheck = await db.query('SELECT id FROM users WHERE username = $1', [phoneNumber]); + if (userCheck.rows.length > 0) { + return res.status(400).json({ message: '该手机号已注册' }); + } + } + + const code = Math.floor(100000 + Math.random() * 900000).toString(); + await SmsClient.sendVerifyCode(phoneNumber, code); + + verifyCodes.set(phoneNumber, { + code, + expire: Date.now() + 2 * 60 * 1000, // 2分钟有效 + lastSentTime: Date.now(), + ip: clientIp + }); + + logger.info(`验证码已发送至 ${phoneNumber} (类型: ${type}, IP: ${clientIp})`); + res.json({ message: '验证码已发送' }); + } catch (error) { + logger.error(`发送验证码失败: ${error.message}`); + res.status(500).json({ message: '发送失败,请稍后再试' }); + } +}); + +// 重置密码 +router.post('/reset-password', async (req, res) => { + const { phoneNumber, code, newPassword } = req.body; + + try { + // 1. 校验验证码 + const record = verifyCodes.get(phoneNumber); + if (!record || record.code !== code || Date.now() > record.expire) { + return res.status(400).json({ message: '验证码无效或已过期' }); + } + verifyCodes.delete(phoneNumber); + + // 2. 更新密码 + const salt = await bcrypt.genSalt(10); + const passwordHash = await bcrypt.hash(newPassword, salt); + + // 更新密码同时增加 token_version,使所有旧设备下线 (增加溢出保护) + await db.query( + 'UPDATE users SET password_hash = $1, token_version = CASE WHEN token_version >= 2000000000 THEN 1 ELSE token_version + 1 END WHERE username = $2', + [passwordHash, phoneNumber] + ); + + logger.info(`用户 ${phoneNumber} 重置密码成功`); + res.json({ message: '密码重置成功' }); + } catch (err) { + logger.error(`重置密码失败: ${err.message}`); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 登录 +router.post('/login', async (req, res) => { + const { username, password } = req.body; + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + + if (!username || !password) { + return res.status(400).json({ message: '用户名和密码不能为空' }); + } + + try { + const result = await db.query('SELECT * FROM users WHERE username = $1', [username]); + const user = result.rows[0]; + + if (!user) { + logger.warn(`登录失败: 用户名 ${username} 不存在 (IP: ${clientIp})`); + return res.status(401).json({ message: '用户名或密码错误' }); + } + + const isMatch = await bcrypt.compare(password, user.password_hash); + if (!isMatch) { + logger.warn(`登录失败: 用户 ${username} 密码错误 (IP: ${clientIp})`); + return res.status(401).json({ message: '用户名或密码错误' }); + } + + // 登录成功,更新 token_version 实现单点登录 (增加溢出保护) + const updateRes = await db.query( + 'UPDATE users SET token_version = CASE WHEN token_version >= 2000000000 THEN 1 ELSE token_version + 1 END WHERE id = $1 RETURNING token_version', + [user.id] + ); + const tokenVersion = updateRes.rows[0].token_version; + + logger.info(`用户 ${username} 登录成功 (IP: ${clientIp}, Version: ${tokenVersion})`); + const token = jwt.sign( + { + id: user.id, + username: user.username, + role: user.role, + real_name: user.real_name, + token_version: tokenVersion // 将版本号放入 Token + }, + process.env.JWT_SECRET, + { expiresIn: '24h' } + ); + + res.json({ + token, + user: { + id: user.id, + username: user.username, + role: user.role, + real_name: user.real_name + } + }); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 注册 +router.post('/register', async (req, res) => { + const { username, password, role: requestedRole, real_name, department, code } = req.body; + + try { + // 1. 校验验证码 + const record = verifyCodes.get(username); + if (!record || record.code !== code || Date.now() > record.expire) { + return res.status(400).json({ message: '验证码无效或已过期' }); + } + verifyCodes.delete(username); // 校验成功后删除 + + // 2. 手机号格式校验 + if (!/^1[3-9]\d{9}$/.test(username)) { + return res.status(400).json({ message: '手机号格式不正确' }); + } + + const userExists = await db.query('SELECT * FROM users WHERE username = $1', [username]); + if (userExists.rows.length > 0) { + return res.status(400).json({ message: '该手机号已注册' }); + } + + // 校验部门 + const deptCheck = await db.query('SELECT * FROM departments WHERE name = $1', [department]); + let finalDepartment = department; + let deptStatus = 'verified'; + + if (deptCheck.rows.length === 0) { + finalDepartment = '待定'; + deptStatus = 'pending'; + } + + const salt = await bcrypt.genSalt(10); + const passwordHash = await bcrypt.hash(password, salt); + + if (requestedRole && requestedRole !== 'user') { + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + logger.warn(`娉ㄥ唽 role 瓒婃潈灏濊瘯: username=${username}, requestedRole=${requestedRole}, IP=${clientIp}`); + } + + const result = await db.query( + 'INSERT INTO users (username, password_hash, role, real_name, department, dept_status) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id, username, role, real_name, department, dept_status', + [username, passwordHash, 'user', real_name, finalDepartment, deptStatus] + ); + + const clientIp = req.headers['x-forwarded-for'] || req.socket.remoteAddress; + logger.info(`新用户注册成功: ${username} (${real_name}) (IP: ${clientIp})`); + + res.status(201).json(result.rows[0]); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +module.exports = router; diff --git a/server/routes/dictionaries.js b/server/routes/dictionaries.js new file mode 100644 index 0000000..c7baeff --- /dev/null +++ b/server/routes/dictionaries.js @@ -0,0 +1,165 @@ +const express = require('express'); +const router = express.Router(); +const db = require('../db'); +const { verifyToken, isSystemAdmin } = require('../middleware/auth'); + +// 定义允许管理的字典表映射 +const tableMap = { + 'departments': 'departments', + 'organizations': 'dict_organizations', + 'award-types': 'dict_award_types', + 'award-levels': 'dict_award_levels', + 'paper-types': 'dict_paper_types', + 'standard-types': 'dict_standard_types', + 'project-categories': 'dict_project_categories', + 'leader-departments': 'dict_leader_departments' +}; + +// 特殊接口:公开获取部门列表 (用于注册页面,无需登录) +router.get('/departments', async (req, res) => { + try { + const result = await db.query('SELECT * FROM departments ORDER BY id ASC'); + res.json(result.rows); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 通用获取接口 (登录用户即可访问,用于下拉框) +router.get('/:type', verifyToken, async (req, res) => { + const tableName = tableMap[req.params.type]; + if (!tableName) return res.status(404).json({ message: '未知的字典类型' }); + + try { + const result = await db.query(`SELECT * FROM ${tableName} ORDER BY id ASC`); + res.json(result.rows); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 通用添加接口 (系统管理员:超管或维护员) +router.post('/:type', verifyToken, isSystemAdmin, async (req, res) => { + const tableName = tableMap[req.params.type]; + if (!tableName) return res.status(404).json({ message: '未知的字典类型' }); + + const { name } = req.body; + if (!name) return res.status(400).json({ message: '名称不能为空' }); + + try { + const result = await db.query( + `INSERT INTO ${tableName} (name) VALUES ($1) RETURNING *`, + [name] + ); + res.status(201).json(result.rows[0]); + } catch (err) { + if (err.code === '23505') { + return res.status(400).json({ message: '该项已存在' }); + } + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 通用修改接口 (系统管理员:超管或维护员) +router.put('/:type/:id', verifyToken, isSystemAdmin, async (req, res) => { + const tableName = tableMap[req.params.type]; + if (!tableName) return res.status(404).json({ message: '未知的字典类型' }); + + const { id } = req.params; + const { name } = req.body; + if (!name) return res.status(400).json({ message: '名称不能为空' }); + + try { + const result = await db.query( + `UPDATE ${tableName} SET name = $1 WHERE id = $2 RETURNING *`, + [name, id] + ); + if (result.rows.length === 0) return res.status(404).json({ message: '记录不存在' }); + res.json(result.rows[0]); + } catch (err) { + if (err.code === '23505') { + return res.status(400).json({ message: '名称已存在' }); + } + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 通用删除接口 (系统管理员:超管或维护员) +router.delete('/:type/:id', verifyToken, isSystemAdmin, async (req, res) => { + const type = req.params.type; + const tableName = tableMap[type]; + if (!tableName) return res.status(404).json({ message: '未知的字典类型' }); + + const { id } = req.params; + + try { + // 获取名称用于后续逻辑或检查 + const checkResult = await db.query(`SELECT name FROM ${tableName} WHERE id = $1`, [id]); + if (checkResult.rows.length === 0) return res.status(404).json({ message: '记录不存在' }); + + const name = checkResult.rows[0].name; + + // 检查是否是“待定” + if (name === '待定') { + return res.status(400).json({ message: '系统保留项“待定”不能删除' }); + } + + // 开启事务处理级联更新 + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + // 1. 执行级联更新逻辑 + if (type === 'departments') { + // 更新用户表:部门设为待定,状态设为 pending + await client.query( + "UPDATE users SET department = '待定', dept_status = 'pending' WHERE department = $1", + [name] + ); + // 更新成果表:替换归属部门数组中的项 + await client.query( + "UPDATE achievements SET assigned_departments = array_replace(assigned_departments, $1, '待定') WHERE $1 = ANY(assigned_departments)", + [name] + ); + } else if (type === 'organizations') { + await client.query("UPDATE achievement_award SET award_unit = '待定' WHERE award_unit = $1", [name]); + await client.query("UPDATE achievement_project SET source = '待定' WHERE source = $1", [name]); + await client.query("UPDATE achievement_monograph SET publisher = '待定' WHERE publisher = $1", [name]); + // achievement_plan 表没有 unit 字段,跳过 + // achievement_transformation 表没有 receiver_unit 字段,跳过 + await client.query("UPDATE achievement_software SET owner_unit = '待定' WHERE owner_unit = $1", [name]); // 修正字段名 owner -> owner_unit + await client.query("UPDATE achievement_paper SET first_unit = '待定' WHERE first_unit = $1", [name]); + } else if (type === 'award-types') { + await client.query("UPDATE achievement_award SET award_type = '待定' WHERE award_type = $1", [name]); + } else if (type === 'award-levels') { + await client.query("UPDATE achievement_award SET award_level = '待定' WHERE award_level = $1", [name]); + } else if (type === 'paper-types') { + await client.query("UPDATE achievement_paper SET paper_type = '待定' WHERE paper_type = $1", [name]); + } else if (type === 'standard-types') { + await client.query("UPDATE achievement_standard SET standard_type = '待定' WHERE standard_type = $1", [name]); + } else if (type === 'project-categories') { + await client.query("UPDATE achievement_project SET project_category = '待定' WHERE project_category = $1", [name]); + } else if (type === 'leader-departments') { + // 领导层部门字典仅用于筛选,删除时不影响其他表数据 + } + + // 2. 执行删除 + await client.query(`DELETE FROM ${tableName} WHERE id = $1`, [id]); + + await client.query('COMMIT'); + res.json({ message: '删除成功,关联数据已同步为“待定”' }); + } catch (err) { + await client.query('ROLLBACK'); + throw err; + } finally { + client.release(); + } + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +module.exports = router; diff --git a/server/routes/logs.js b/server/routes/logs.js new file mode 100644 index 0000000..27d7650 --- /dev/null +++ b/server/routes/logs.js @@ -0,0 +1,73 @@ +const express = require('express'); +const router = express.Router(); +const db = require('../db'); +const { verifyToken, isSystemAdmin } = require('../middleware/auth'); + +// 获取所有操作说明列表 +router.get('/descriptions', verifyToken, isSystemAdmin, async (req, res) => { + try { + const result = await db.query('SELECT DISTINCT description FROM audit_logs WHERE description IS NOT NULL AND description != \'\' ORDER BY description'); + res.json(result.rows.map(row => row.description)); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 获取系统日志 (超管 + 维护员) +router.get('/', verifyToken, isSystemAdmin, async (req, res) => { + const { page = 1, limit = 20, username, startDate, endDate, description } = req.query; + const offset = (page - 1) * limit; + + let query = 'SELECT * FROM audit_logs WHERE 1=1'; + let countQuery = 'SELECT COUNT(*) FROM audit_logs WHERE 1=1'; + const params = []; + + if (username) { + query += ` AND (username ILIKE $${params.length + 1} OR real_name ILIKE $${params.length + 1})`; + countQuery += ` AND (username ILIKE $${params.length + 1} OR real_name ILIKE $${params.length + 1})`; + params.push(`%${username}%`); + } + + if (startDate) { + query += ` AND created_at >= $${params.length + 1}`; + countQuery += ` AND created_at >= $${params.length + 1}`; + params.push(startDate); + } + + if (endDate) { + // 结束日期通常需要加一天或者设为当天的 23:59:59,这里假设前端传的是日期字符串 + // 简单处理:如果传的是 YYYY-MM-DD,则数据库比较时会自动转为 00:00:00,所以可能需要处理 + // 这里假设前端传的是完整时间或者后端直接比较 + query += ` AND created_at <= $${params.length + 1}`; + countQuery += ` AND created_at <= $${params.length + 1}`; + params.push(endDate); + } + + if (description) { + query += ` AND description = $${params.length + 1}`; + countQuery += ` AND description = $${params.length + 1}`; + params.push(description); + } + + query += ` ORDER BY created_at DESC LIMIT $${params.length + 1} OFFSET $${params.length + 2}`; + + try { + const countRes = await db.query(countQuery, params); + const total = parseInt(countRes.rows[0].count); + + const result = await db.query(query, [...params, limit, offset]); + + res.json({ + logs: result.rows, + total, + page: parseInt(page), + totalPages: Math.ceil(total / limit) + }); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +module.exports = router; diff --git a/server/routes/notifications.js b/server/routes/notifications.js new file mode 100644 index 0000000..edf06a3 --- /dev/null +++ b/server/routes/notifications.js @@ -0,0 +1,293 @@ +const express = require('express'); +const router = express.Router(); +const multer = require('multer'); +const path = require('path'); +const fs = require('fs'); +const db = require('../db'); +const { verifyToken, isSystemAdmin } = require('../middleware/auth'); + +// 辅助函数:获取所有搜索路径(主目录 + 备用目录) +const getSearchPaths = () => { + const paths = []; + + // 1. 主目录 + const mainDir = process.env.UPLOAD_DIR || 'uploads'; + paths.push(path.isAbsolute(mainDir) ? mainDir : path.join(__dirname, '..', mainDir)); + + // 2. 备用目录 + if (process.env.UPLOAD_FALLBACK_DIRS) { + const fallbacks = process.env.UPLOAD_FALLBACK_DIRS.split(',').map(p => p.trim()).filter(p => p); + fallbacks.forEach(p => { + const absPath = path.isAbsolute(p) ? p : path.join(__dirname, '..', p); + // 避免重复 + if (!paths.includes(absPath)) { + paths.push(absPath); + } + }); + } + + // 3. 默认 uploads 目录 (自动兜底) + // 即使未配置 UPLOAD_FALLBACK_DIRS,也自动查找默认的 uploads 目录,确保旧文件可访问 + const defaultUploads = path.join(__dirname, '..', 'uploads'); + const isDefaultIncluded = paths.some(p => path.resolve(p) === path.resolve(defaultUploads)); + + if (!isDefaultIncluded) { + paths.push(defaultUploads); + } + + return paths; +}; + +// 辅助函数:查找文件(支持多路径回退) +const findFile = (relativePath) => { + const searchPaths = getSearchPaths(); + for (const rootDir of searchPaths) { + const fullPath = path.join(rootDir, relativePath); + if (fs.existsSync(fullPath)) { + return fullPath; + } + } + return null; +}; + +// 辅助函数:获取上传根目录的绝对路径 (仅用于写入新文件) +const getUploadRootDir = () => { + const uploadDir = process.env.UPLOAD_DIR || 'uploads'; + if (path.isAbsolute(uploadDir)) { + return uploadDir; + } else { + return path.join(__dirname, '..', uploadDir); + } +}; + +const cleanupUploadedFiles = (files = []) => { + for (const file of files) { + if (!file || !file.path) continue; + try { + if (fs.existsSync(file.path)) { + fs.unlinkSync(file.path); + } + } catch (e) { + // Ignore cleanup failure + } + } +}; + +const sanitizeNotificationHtml = (html = '') => { + return String(html) + .replace(/)<[^<]*)*<\/script>/gi, '') + .replace(/\son\w+\s*=\s*(['"]).*?\1/gi, '') + .replace(/\son\w+\s*=\s*[^\s>]+/gi, '') + .replace(/javascript:/gi, ''); +}; + +// 配置 Multer 用于文件上传 +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + const uploadDir = getUploadRootDir(); + // 确保目录存在 + if (!fs.existsSync(uploadDir)) { + fs.mkdirSync(uploadDir, { recursive: true }); + } + cb(null, uploadDir); + }, + filename: (req, file, cb) => { + const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9); + cb(null, 'notify-' + uniqueSuffix + path.extname(file.originalname)); + } +}); + +const allowedExtensions = [ + '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', + '.txt', '.jpg', '.jpeg', '.png', '.zip', '.rar', '.7z' +]; + +const MAX_NOTIFICATION_FILE_SIZE = Number(process.env.NOTIFY_MAX_FILE_SIZE || 20 * 1024 * 1024); +const MAX_NOTIFICATION_FILES = Number(process.env.NOTIFY_MAX_FILES || 10); + +const upload = multer({ + storage: storage, + limits: { + fileSize: MAX_NOTIFICATION_FILE_SIZE, + files: MAX_NOTIFICATION_FILES + }, + fileFilter: (req, file, cb) => { + const ext = path.extname(file.originalname).toLowerCase(); + if (allowedExtensions.includes(ext)) { + cb(null, true); + } else { + cb(new Error(`Unsupported file type (${ext}).`)); + } + } +}); + +// 获取通知列表 (所有登录用户) +router.get('/', verifyToken, async (req, res) => { + const { page = 1, limit = 10, keyword } = req.query; + const offset = (page - 1) * limit; + + try { + let query = 'SELECT n.*, u.real_name as publisher_real_name FROM notifications n LEFT JOIN users u ON n.publisher_id = u.id WHERE 1=1'; + let countQuery = 'SELECT COUNT(*) FROM notifications WHERE 1=1'; + const params = []; + + if (keyword) { + query += ` AND (title ILIKE $${params.length + 1} OR content ILIKE $${params.length + 1})`; + countQuery += ` AND (title ILIKE $${params.length + 1} OR content ILIKE $${params.length + 1})`; + params.push(`%${keyword}%`); + } + + query += ` ORDER BY is_top DESC, created_at DESC LIMIT $${params.length + 1} OFFSET $${params.length + 2}`; + + const countRes = await db.query(countQuery, params); + const total = parseInt(countRes.rows[0].count); + + const result = await db.query(query, [...params, limit, offset]); + + res.json({ + list: result.rows, + total, + page: parseInt(page), + totalPages: Math.ceil(total / limit) + }); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 获取通知详情 (所有登录用户) +router.get('/:id', verifyToken, async (req, res) => { + const { id } = req.params; + try { + const result = await db.query('SELECT n.*, u.real_name as publisher_real_name FROM notifications n LEFT JOIN users u ON n.publisher_id = u.id WHERE n.id = $1', [id]); + if (result.rows.length === 0) return res.status(404).json({ message: '通知不存在' }); + + const notification = result.rows[0]; + + // 获取附件 + const attachmentsRes = await db.query('SELECT * FROM notification_attachments WHERE notification_id = $1', [id]); + notification.attachments = attachmentsRes.rows; + + res.json(notification); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 发布通知 (仅超管和维护员) +router.post('/', verifyToken, isSystemAdmin, (req, res, next) => { + upload.array('files')(req, res, (err) => { + if (err) { + cleanupUploadedFiles(req.files || []); + return res.status(400).json({ message: err.message }); + } + next(); + }); +}, async (req, res) => { + const { title, content, is_top } = req.body; + const files = req.files || []; + const publisher_id = req.user.id; + const publisher_name = req.user.real_name || req.user.username; + const safeContent = sanitizeNotificationHtml(content); + + if (!title || !content || !String(safeContent).trim()) { + cleanupUploadedFiles(files); + return res.status(400).json({ message: '标题和内容不能为空' }); + } + + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + const result = await client.query( + 'INSERT INTO notifications (title, content, publisher_id, publisher_name, is_top) VALUES ($1, $2, $3, $4, $5) RETURNING id', + [title, safeContent, publisher_id, publisher_name, is_top === 'true'] + ); + const notificationId = result.rows[0].id; + + // 保存附件 + for (const file of files) { + let originalName = file.originalname; + // 简单处理文件名编码问题 + if (!/[^\u0000-\u00ff]/.test(originalName)) { + try { + const decodedName = Buffer.from(originalName, 'latin1').toString('utf8'); + if (/[\u4e00-\u9fa5]/.test(decodedName)) { + originalName = decodedName; + } + } catch (e) {} + } + + await client.query( + 'INSERT INTO notification_attachments (notification_id, file_name, file_path) VALUES ($1, $2, $3)', + [notificationId, originalName, file.filename] + ); + } + + await client.query('COMMIT'); + res.status(201).json({ message: '发布成功', id: notificationId }); + } catch (err) { + await client.query('ROLLBACK'); + cleanupUploadedFiles(files); + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } finally { + client.release(); + } +}); + +// 删除通知 (仅超管和维护员) +router.delete('/:id', verifyToken, isSystemAdmin, async (req, res) => { + const { id } = req.params; + const client = await db.pool.connect(); + try { + await client.query('BEGIN'); + + // 获取附件并删除文件 + const filesRes = await client.query('SELECT file_path FROM notification_attachments WHERE notification_id = $1', [id]); + + for (const row of filesRes.rows) { + const filePath = findFile(row.file_path); + if (filePath) { + try { fs.unlinkSync(filePath); } catch (e) {} + } + } + + // 级联删除会自动删除 notification_attachments 表中的记录 + await client.query('DELETE FROM notifications WHERE id = $1', [id]); + + await client.query('COMMIT'); + res.json({ message: '删除成功' }); + } catch (err) { + await client.query('ROLLBACK'); + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } finally { + client.release(); + } +}); + +// 下载附件 +router.get('/attachments/:id/download', verifyToken, async (req, res) => { + const { id } = req.params; + try { + const result = await db.query('SELECT * FROM notification_attachments WHERE id = $1', [id]); + if (result.rows.length === 0) return res.status(404).json({ message: '附件不存在' }); + + const attachment = result.rows[0]; + const filePath = findFile(attachment.file_path); + + if (!filePath) return res.status(404).json({ message: '文件不存在' }); + + const encodedFileName = encodeURIComponent(attachment.file_name); + res.setHeader('Content-Disposition', `attachment; filename*=UTF-8''${encodedFileName}`); + res.sendFile(filePath); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +module.exports = router; diff --git a/server/routes/statistics.js b/server/routes/statistics.js new file mode 100644 index 0000000..77b6970 --- /dev/null +++ b/server/routes/statistics.js @@ -0,0 +1,262 @@ +const express = require('express'); +const router = express.Router(); +const db = require('../db'); +const { verifyToken } = require('../middleware/auth'); + +// 获取统计数据 (所有登录用户均可访问) +router.get('/', verifyToken, async (req, res) => { + try { + const { role } = req.user; + + // 权限控制: + // 1. 业务统计图表(雷达图、趋势图、部门分布等):统一只统计“已通过”的数据,反映真实有效的成果。 + // 2. 状态分布图:管理员可以看到所有状态,普通用户只能看到已通过。 + + const approvedCondition = "status = 'approved'"; + + let allStatusCondition = "status = 'approved'"; + if (['super_admin', 'maintainer'].includes(role)) { + allStatusCondition = "1=1"; // 允许所有状态 + } + + // 1. 按类型统计 (雷达图) - 仅统计已通过 + const typeStats = await db.query(` + SELECT type, COUNT(*) as count + FROM achievements + WHERE ${approvedCondition} + GROUP BY type + `); + + // 2. 按状态统计 (饼图) - 管理员看全量,用户看已通过 + const statusStats = await db.query(` + SELECT status, COUNT(*) as count + FROM achievements + WHERE ${allStatusCondition} + GROUP BY status + `); + + // 3. 按部门统计成果总数 (部门排名) - 仅统计已通过 + // 口径:每条成果只归属一个部门(优先首个非院领导部门,否则回退首个部门) + const departmentStats = await db.query(` + WITH leader_depts AS ( + SELECT name FROM dict_leader_departments + ), + leader_dept_array AS ( + SELECT COALESCE(array_agg(name::text), ARRAY[]::text[]) AS names FROM leader_depts + ), + department_scope AS ( + SELECT d.name AS department + FROM departments d, leader_dept_array lda + WHERE d.name::text <> ALL(lda.names) + ), + achievement_owner AS ( + SELECT + a.id, + COALESCE(non_leader.dept, first_any.dept) AS owner_department + FROM achievements a + CROSS JOIN leader_dept_array lda + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + AND u.dept <> ALL(lda.names) + ORDER BY u.ord + LIMIT 1 + ) non_leader ON TRUE + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + ORDER BY u.ord + LIMIT 1 + ) first_any ON TRUE + WHERE ${approvedCondition} + ) + SELECT ds.department, COUNT(ao.id)::int as count + FROM department_scope ds + LEFT JOIN achievement_owner ao ON ds.department = ao.owner_department + GROUP BY ds.department + ORDER BY count DESC + `); + + // 4. 部门成果种类交叉统计 (堆叠柱状图) - 仅统计已通过 + const deptTypeStats = await db.query(` + WITH leader_depts AS ( + SELECT name FROM dict_leader_departments + ), + leader_dept_array AS ( + SELECT COALESCE(array_agg(name::text), ARRAY[]::text[]) AS names FROM leader_depts + ), + department_scope AS ( + SELECT d.name AS department + FROM departments d, leader_dept_array lda + WHERE d.name::text <> ALL(lda.names) + ), + achievement_owner AS ( + SELECT + a.id, + a.type, + a.achievement_date, + COALESCE(non_leader.dept, first_any.dept) AS owner_department + FROM achievements a + CROSS JOIN leader_dept_array lda + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + AND u.dept <> ALL(lda.names) + ORDER BY u.ord + LIMIT 1 + ) non_leader ON TRUE + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + ORDER BY u.ord + LIMIT 1 + ) first_any ON TRUE + WHERE ${approvedCondition} + ) + SELECT + ds.department as department, + ao.type, + EXTRACT(YEAR FROM ao.achievement_date) as year, + COUNT(*)::int as count + FROM department_scope ds + JOIN achievement_owner ao ON ds.department = ao.owner_department + WHERE ao.achievement_date IS NOT NULL + GROUP BY ds.department, ao.type, EXTRACT(YEAR FROM ao.achievement_date) + ORDER BY ds.department + `); + + // 5. 全单位月度趋势统计 (累计折线图) - 仅统计已通过 + // 前端会进行累计计算,后端只需返回每月增量 + const trendStats = await db.query(` + SELECT TO_CHAR(achievement_date, 'YYYY-MM') as month, COUNT(*) as count + FROM achievements + WHERE ${approvedCondition} AND achievement_date IS NOT NULL + GROUP BY month + ORDER BY month + `); + + // 6. 各部门月度趋势统计 (累计面积图) - 仅统计已通过 + // 前端会进行累计计算,后端只需返回每月增量 + const deptTrendStats = await db.query(` + WITH leader_depts AS ( + SELECT name FROM dict_leader_departments + ), + leader_dept_array AS ( + SELECT COALESCE(array_agg(name::text), ARRAY[]::text[]) AS names FROM leader_depts + ), + department_scope AS ( + SELECT d.name AS department + FROM departments d, leader_dept_array lda + WHERE d.name::text <> ALL(lda.names) + ), + achievement_owner AS ( + SELECT + a.id, + a.achievement_date, + COALESCE(non_leader.dept, first_any.dept) AS owner_department + FROM achievements a + CROSS JOIN leader_dept_array lda + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + AND u.dept <> ALL(lda.names) + ORDER BY u.ord + LIMIT 1 + ) non_leader ON TRUE + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + ORDER BY u.ord + LIMIT 1 + ) first_any ON TRUE + WHERE ${approvedCondition} + ) + SELECT + TO_CHAR(ao.achievement_date, 'YYYY-MM') as month, + ds.department as department, + COUNT(*)::int as count + FROM department_scope ds + JOIN achievement_owner ao ON ds.department = ao.owner_department + WHERE ao.achievement_date IS NOT NULL + GROUP BY TO_CHAR(ao.achievement_date, 'YYYY-MM'), ds.department + ORDER BY month + `); + + // 7. 按部门统计“独立完成 / 合作项目” + // 当前口径下每条成果仅归属一个部门,因此合作计数恒为 0。 + const projectModeStats = await db.query(` + WITH leader_depts AS ( + SELECT name FROM dict_leader_departments + ), + leader_dept_array AS ( + SELECT COALESCE(array_agg(name::text), ARRAY[]::text[]) AS names FROM leader_depts + ), + department_scope AS ( + SELECT d.name AS department + FROM departments d, leader_dept_array lda + WHERE d.name::text <> ALL(lda.names) + ), + achievement_owner AS ( + SELECT + a.id, + COALESCE(non_leader.dept, first_any.dept) AS owner_department + FROM achievements a + CROSS JOIN leader_dept_array lda + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + AND u.dept <> ALL(lda.names) + ORDER BY u.ord + LIMIT 1 + ) non_leader ON TRUE + LEFT JOIN LATERAL ( + SELECT u.dept + FROM unnest(COALESCE(a.assigned_departments::text[], ARRAY[]::text[])) WITH ORDINALITY AS u(dept, ord) + WHERE u.dept IS NOT NULL + AND BTRIM(u.dept) <> '' + ORDER BY u.ord + LIMIT 1 + ) first_any ON TRUE + WHERE ${approvedCondition} + ) + SELECT + ds.department, + COUNT(ao.id)::int AS independent_count, + 0::int AS collaboration_count, + COUNT(ao.id)::int AS total_count + FROM department_scope ds + LEFT JOIN achievement_owner ao ON ao.owner_department = ds.department + GROUP BY ds.department + ORDER BY total_count DESC, ds.department + `); + + res.json({ + byType: typeStats.rows, + byStatus: statusStats.rows, + byDepartment: departmentStats.rows, + deptTypeDetails: deptTypeStats.rows, + byMonth: trendStats.rows, + deptTrendDetails: deptTrendStats.rows, + projectModeByDepartment: projectModeStats.rows + }); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +module.exports = router; diff --git a/server/routes/users.js b/server/routes/users.js new file mode 100644 index 0000000..15bbd60 --- /dev/null +++ b/server/routes/users.js @@ -0,0 +1,204 @@ +const express = require('express'); +const router = express.Router(); +const bcrypt = require('bcryptjs'); +const db = require('../db'); +const { verifyToken, isSuperAdmin, isSystemAdmin } = require('../middleware/auth'); + +// 搜索用户 (所有登录用户可用,用于成果录入选择作者) +router.get('/search', verifyToken, async (req, res) => { + const { keyword, leaderOnly } = req.query; + if (!keyword) return res.json([]); + try { + let query = ` + SELECT id, username as phone, real_name, department + FROM users + WHERE (username ILIKE $1 OR real_name ILIKE $1) + `; + const params = [`%${keyword}%`]; + + if (leaderOnly === 'true') { + // 获取所有领导层部门 + const leaderDeptsRes = await db.query('SELECT name FROM dict_leader_departments'); + const leaderDepts = leaderDeptsRes.rows.map(r => r.name); + + if (leaderDepts.length > 0) { + query += ` AND department = ANY($${params.length + 1})`; + params.push(leaderDepts); + } else { + // 如果没有配置领导层部门,则返回空 + return res.json([]); + } + } + + query += ` LIMIT 20`; + const result = await db.query(query, params); + res.json(result.rows); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 获取所有待定状态用户的手机号列表 (用于前端标红显示) +router.get('/pending-list', verifyToken, async (req, res) => { + try { + const result = await db.query('SELECT username FROM users WHERE dept_status = \'pending\''); + const phones = result.rows.map(row => row.username); + res.json(phones); + } catch (err) { + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 获取所有用户列表 (系统管理员:超管或维护员) +router.get('/', verifyToken, isSystemAdmin, async (req, res) => { + const { keyword } = req.query; + try { + let query = 'SELECT id, username, role, real_name, department, dept_status, created_at FROM users WHERE 1=1'; + const params = []; + + if (keyword) { + query += ` AND (username ILIKE $1 OR real_name ILIKE $1 OR department ILIKE $1)`; + params.push(`%${keyword}%`); + } + + query += ' ORDER BY created_at DESC'; + const result = await db.query(query, params); + res.json(result.rows); + } catch (err) { + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 创建新用户 (仅超管) +router.post('/', verifyToken, isSuperAdmin, async (req, res) => { + const { username, password, role, real_name, department: inputDepartment } = req.body; + let department = inputDepartment; + + if (!username || !password || !role) { + return res.status(400).json({ message: '缺少必填字段 (username, password, role)' }); + } + + try { + // 手机号格式校验 + if (!/^1[3-9]\d{9}$/.test(username)) { + return res.status(400).json({ message: '手机号格式不正确' }); + } + + const userExists = await db.query('SELECT * FROM users WHERE username = $1', [username]); + if (userExists.rows.length > 0) { + return res.status(400).json({ message: '该手机号已注册' }); + } + + // 校验部门 + let deptStatus = 'verified'; + if (['admin', 'user'].includes(role)) { + if (!department) { + return res.status(400).json({ message: '该角色必须指定部门' }); + } + const deptCheck = await db.query('SELECT * FROM departments WHERE name = $1', [department]); + deptStatus = deptCheck.rows.length > 0 ? 'verified' : 'pending'; + } else { + // super_admin 或 maintainer 可以没有部门 + if (!department) department = null; + } + + const salt = await bcrypt.genSalt(10); + const passwordHash = await bcrypt.hash(password, salt); + + const result = await db.query( + 'INSERT INTO users (username, password_hash, role, real_name, department, dept_status) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id, username, role, real_name, department, dept_status', + [username, passwordHash, role, real_name, department, deptStatus] + ); + res.status(201).json(result.rows[0]); + } catch (err) { + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 修改用户信息 (系统管理员:超管或维护员) +router.put('/:id', verifyToken, isSystemAdmin, async (req, res) => { + const { id } = req.params; + let { username, role, real_name, department, password } = req.body; + + // 如果是维护员,只能修改密码,忽略其他字段 + if (req.user.role === 'maintainer') { + if (!password) { + return res.json({ message: '未提供新密码,无任何修改' }); + } + try { + const salt = await bcrypt.genSalt(10); + const passwordHash = await bcrypt.hash(password, salt); + await db.query( + 'UPDATE users SET password_hash=$1, token_version = CASE WHEN token_version >= 2000000000 THEN 1 ELSE token_version + 1 END WHERE id=$2', + [passwordHash, id] + ); + return res.json({ message: '密码重置成功' }); + } catch (err) { + return res.status(500).json({ message: '服务器错误' }); + } + } + + // 以下逻辑仅适用于超级管理员 (super_admin) + try { + // 手机号格式校验 + if (!/^1[3-9]\d{9}$/.test(username)) { + return res.status(400).json({ message: '手机号格式不正确' }); + } + + // 校验部门 + let deptStatus = 'verified'; + if (['admin', 'user'].includes(role)) { + if (!department) { + return res.status(400).json({ message: '该角色必须指定部门' }); + } + const deptCheck = await db.query('SELECT * FROM departments WHERE name = $1', [department]); + deptStatus = deptCheck.rows.length > 0 ? 'verified' : 'pending'; + } else { + // super_admin 或 maintainer 可以没有部门 + if (!department) department = null; + } + + let query = 'UPDATE users SET username=$1, role=$2, real_name=$3, department=$4, dept_status=$5'; + let params = [username, role, real_name, department, deptStatus, id]; + + if (password) { + const salt = await bcrypt.genSalt(10); + const passwordHash = await bcrypt.hash(password, salt); + query += ', password_hash=$6, token_version = CASE WHEN token_version >= 2000000000 THEN 1 ELSE token_version + 1 END WHERE id=$7'; + params = [username, role, real_name, department, deptStatus, passwordHash, id]; + } else { + query += ' WHERE id=$6'; + } + + await db.query(query, params); + res.json({ message: '修改成功' }); + } catch (err) { + res.status(500).json({ message: '服务器错误' }); + } +}); + +// 删除用户 (仅超管) +router.delete('/:id', verifyToken, isSuperAdmin, async (req, res) => { + const { id } = req.params; + try { + // 防止删除自己 + if (parseInt(id) === req.user.id) { + return res.status(400).json({ message: '不能删除当前登录账号' }); + } + + // 检查是否有关联的成果 + const achievementCheck = await db.query('SELECT id FROM achievements WHERE user_id = $1 LIMIT 1', [id]); + if (achievementCheck.rows.length > 0) { + return res.status(400).json({ message: '该用户有关联的成果数据,无法直接删除。请先处理关联数据。' }); + } + + await db.query('DELETE FROM users WHERE id = $1', [id]); + res.json({ message: '删除成功' }); + } catch (err) { + console.error(err); + res.status(500).json({ message: '服务器错误' }); + } +}); + +module.exports = router; diff --git a/server/scripts/add_token_version.js b/server/scripts/add_token_version.js new file mode 100644 index 0000000..6b3e2b8 --- /dev/null +++ b/server/scripts/add_token_version.js @@ -0,0 +1,17 @@ +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); +const db = require('../db'); + +async function run() { + try { + console.log('正在添加 token_version 字段...'); + await db.query('ALTER TABLE users ADD COLUMN IF NOT EXISTS token_version INTEGER DEFAULT 0'); + console.log('成功添加 token_version 字段'); + process.exit(0); + } catch (err) { + console.error('执行失败:', err); + process.exit(1); + } +} + +run(); diff --git a/server/scripts/create_audit_table.js b/server/scripts/create_audit_table.js new file mode 100644 index 0000000..ffb8f59 --- /dev/null +++ b/server/scripts/create_audit_table.js @@ -0,0 +1,38 @@ +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); +const db = require('../db'); + +async function createAuditTable() { + const client = await db.pool.connect(); + try { + console.log('正在创建 audit_logs 表...'); + await client.query(` + CREATE TABLE IF NOT EXISTS audit_logs ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + username VARCHAR(50), + real_name VARCHAR(50), + ip_address VARCHAR(50), + method VARCHAR(10), + url TEXT, + description VARCHAR(255), + status INTEGER, + duration INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + `); + + console.log('正在创建索引...'); + await client.query('CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at DESC);'); + await client.query('CREATE INDEX IF NOT EXISTS idx_audit_logs_username ON audit_logs(username);'); + + console.log('audit_logs 表创建成功!'); + } catch (err) { + console.error('创建表失败:', err); + } finally { + client.release(); + process.exit(); + } +} + +createAuditTable(); diff --git a/server/scripts/create_db.js b/server/scripts/create_db.js new file mode 100644 index 0000000..d582a7c --- /dev/null +++ b/server/scripts/create_db.js @@ -0,0 +1,42 @@ +const { Client } = require('pg'); +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); + +const createDb = async () => { + const dbName = process.env.DB_DATABASE || 'stsystem'; + + // 连接到默认的 postgres 数据库 + const client = new Client({ + user: process.env.DB_USER, + host: process.env.DB_HOST, + database: 'postgres', // 连接到默认数据库 + password: process.env.DB_PASSWORD, + port: process.env.DB_PORT, + }); + + try { + await client.connect(); + console.log(`已连接到 postgres 数据库,正在检查 ${dbName} 是否存在...`); + + const res = await client.query(`SELECT 1 FROM pg_database WHERE datname = $1`, [dbName]); + + if (res.rows.length === 0) { + console.log(`数据库 ${dbName} 不存在,正在创建...`); + // CREATE DATABASE 不能在事务块中运行,也不能使用参数化查询 + await client.query(`CREATE DATABASE "${dbName}"`); + console.log(`数据库 ${dbName} 创建成功!`); + } else { + console.log(`数据库 ${dbName} 已存在,跳过创建。`); + } + } catch (err) { + console.error('创建数据库失败:', err); + // 如果是因为 postgres 数据库不存在(极少见)或者密码错误,这里会报错 + // 但我们不应该阻塞后续流程,也许用户已经手动创建了 stsystem + // 不过为了安全起见,如果这一步失败,通常意味着配置错误,还是退出比较好 + process.exit(1); + } finally { + await client.end(); + } +}; + +createDb(); diff --git a/server/scripts/create_notification_tables.js b/server/scripts/create_notification_tables.js new file mode 100644 index 0000000..cbc7e16 --- /dev/null +++ b/server/scripts/create_notification_tables.js @@ -0,0 +1,48 @@ +const db = require('../db'); + +async function createTables() { + const client = await db.pool.connect(); + try { + console.log('开始创建通知相关表...'); + await client.query('BEGIN'); + + // 创建 notifications 表 + await client.query(` + CREATE TABLE IF NOT EXISTS notifications ( + id SERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + content TEXT NOT NULL, + publisher_id INTEGER REFERENCES users(id), + publisher_name VARCHAR(100), + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, + is_top BOOLEAN DEFAULT FALSE, + status VARCHAR(20) DEFAULT 'published' -- published, draft, archived + ); + `); + console.log('notifications 表创建成功'); + + // 创建 notification_attachments 表 + await client.query(` + CREATE TABLE IF NOT EXISTS notification_attachments ( + id SERIAL PRIMARY KEY, + notification_id INTEGER REFERENCES notifications(id) ON DELETE CASCADE, + file_name VARCHAR(255) NOT NULL, + file_path VARCHAR(255) NOT NULL, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP + ); + `); + console.log('notification_attachments 表创建成功'); + + await client.query('COMMIT'); + console.log('所有表创建完成'); + } catch (err) { + await client.query('ROLLBACK'); + console.error('创建表失败:', err); + } finally { + client.release(); + process.exit(); + } +} + +createTables(); diff --git a/server/scripts/debug_stats.js b/server/scripts/debug_stats.js new file mode 100644 index 0000000..2784f91 --- /dev/null +++ b/server/scripts/debug_stats.js @@ -0,0 +1,63 @@ +const { Pool } = require('pg'); +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); + +const pool = new Pool({ + user: process.env.DB_USER, + host: process.env.DB_HOST, + database: process.env.DB_DATABASE || process.env.DB_NAME, + password: process.env.DB_PASSWORD, + port: process.env.DB_PORT, +}); + +async function debug() { + const client = await pool.connect(); + try { + console.log('🔍 开始调试统计数据...'); + + // 1. 检查状态分布 + console.log('\n📊 1. 成果状态分布:'); + const statusRes = await client.query('SELECT status, COUNT(*) FROM achievements GROUP BY status'); + console.table(statusRes.rows); + + // 2. 检查部门字段样本 + console.log('\n📋 2. 成果部门字段样本 (前5条):'); + const deptRes = await client.query('SELECT id, assigned_departments FROM achievements LIMIT 5'); + console.table(deptRes.rows); + + // 3. 检查部门表 + console.log('\n🏢 3. 部门表数据:'); + const deptsRes = await client.query('SELECT name FROM departments'); + console.table(deptsRes.rows); + + // 4. 运行统计查询 (模拟 statistics.js 中的查询) + console.log('\n📈 4. 运行统计查询 (status=\'approved\'):'); + const statsQuery = ` + SELECT + d.name as department, + a.type, + EXTRACT(YEAR FROM a.achievement_date) as year, + COUNT(*) as count + FROM departments d + JOIN achievements a ON d.name = ANY(a.assigned_departments) + WHERE a.status = 'approved' AND a.achievement_date IS NOT NULL + GROUP BY d.name, a.type, year + ORDER BY d.name + `; + const statsRes = await client.query(statsQuery); + console.log(`查询返回 ${statsRes.rows.length} 行数据`); + if (statsRes.rows.length > 0) { + console.table(statsRes.rows.slice(0, 10)); // 只显示前10条 + } else { + console.log('⚠️ 查询结果为空!'); + } + + } catch (e) { + console.error('❌ 调试出错:', e); + } finally { + client.release(); + await pool.end(); + } +} + +debug(); diff --git a/server/scripts/list_db_schema.js b/server/scripts/list_db_schema.js new file mode 100644 index 0000000..b119b47 --- /dev/null +++ b/server/scripts/list_db_schema.js @@ -0,0 +1,45 @@ +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); +const db = require('../db'); + +async function listSchema() { + try { + const res = await db.query(` + SELECT + table_name, + column_name, + data_type, + is_nullable + FROM + information_schema.columns + WHERE + table_schema = 'public' + ORDER BY + table_name, ordinal_position + `); + + const tables = {}; + res.rows.forEach(row => { + if (!tables[row.table_name]) { + tables[row.table_name] = []; + } + tables[row.table_name].push({ + column: row.column_name, + type: row.data_type, + nullable: row.is_nullable + }); + }); + + console.log('--- 数据库全量表结构 ---'); + for (const [tableName, columns] of Object.entries(tables)) { + console.log(`\n表名: ${tableName}`); + console.table(columns); + } + } catch (err) { + console.error('查询失败:', err); + } finally { + process.exit(); + } +} + +listSchema(); diff --git a/server/scripts/seed_data.js b/server/scripts/seed_data.js new file mode 100644 index 0000000..87e8b62 --- /dev/null +++ b/server/scripts/seed_data.js @@ -0,0 +1,212 @@ +const { Pool } = require('pg'); +const bcrypt = require('bcryptjs'); +const path = require('path'); +const fs = require('fs'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); + +const pool = new Pool({ + user: process.env.DB_USER, + host: process.env.DB_HOST, + database: process.env.DB_DATABASE || process.env.DB_NAME, // 兼容 .env 中的不同命名 + password: process.env.DB_PASSWORD, + port: process.env.DB_PORT, +}); + +// 随机数据源 +const DEPARTMENTS = ['研发部', '市场部', '人事部', '财务部', '销售部', '运维部']; +const SURNAMES = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨']; +const NAMES = ['伟', '芳', '娜', '敏', '静', '强', '磊', '军', '洋', '勇', '艳', '杰', '娟', '涛', '明', '超']; +const TITLES_PREFIX = ['基于AI的', '高性能', '分布式', '新一代', '云原生', '跨平台', '智能', '自动化']; +const TITLES_SUFFIX = ['系统设计', '算法研究', '平台开发', '应用实践', '优化方案', '技术白皮书', '分析报告']; + +// 字典数据 +const DICTS = { + dict_organizations: ['科技大学', '软件研究所', '创新中心', '数据实验室'], + dict_paper_types: ['SCI', 'EI', '核心期刊', '会议论文'], + dict_award_types: ['科技进步奖', '技术发明奖', '自然科学奖'], + dict_award_levels: ['一等奖', '二等奖', '三等奖', '特等奖'], + dict_project_categories: ['国家重点研发计划', '自然科学基金', '省部级项目', '横向课题'], + dict_standard_types: ['国家标准', '行业标准', '团体标准', '企业标准'] +}; + +const ACHIEVEMENT_TYPES = [ + 'paper', 'project', 'award', 'standard', 'monograph', 'report', 'plan', 'patent', 'transformation', 'software' +]; + +const STATUSES = ['pending', 'approved', 'rejected']; + +// 辅助函数 +const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; +const randomChoice = (arr) => arr[randomInt(0, arr.length - 1)]; +const generatePhone = () => `1${randomChoice(['3', '5', '7', '8', '9'])}${randomInt(100000000, 999999999)}`; +const generateName = () => `${randomChoice(SURNAMES)}${randomChoice(NAMES)}${Math.random() > 0.5 ? randomChoice(NAMES) : ''}`; +const generateTitle = () => `${randomChoice(TITLES_PREFIX)}${randomChoice(TITLES_SUFFIX)}`; +const generateDate = (startYear, endYear) => { + const year = randomInt(startYear, endYear); + const month = randomInt(0, 11); + const day = randomInt(1, 28); + return new Date(year, month, day); +}; + +async function seed() { + const client = await pool.connect(); + try { + console.log('🚀 开始注入测试数据...'); + + // 0. 初始化数据库架构 + console.log('🏗️ 初始化数据库架构...'); + const schemaPath = path.join(__dirname, '../../database/schema.sql'); + if (fs.existsSync(schemaPath)) { + const schemaSql = fs.readFileSync(schemaPath, 'utf8'); + await client.query(schemaSql); + console.log('✅ 数据库架构已应用'); + } else { + console.warn('⚠️ 未找到 schema.sql,跳过架构初始化'); + } + + // 1. 清理数据 (保留特定账号) + console.log('🧹 清理旧数据...'); + await client.query('BEGIN'); + + // 级联删除所有成果 (这将自动删除详情表和附件表) + await client.query('TRUNCATE achievements CASCADE'); + + // 删除除保留账号外的所有用户 + const keepUsers = ['18888888888', '19999999999']; + await client.query('DELETE FROM users WHERE username != $1 AND username != $2', [keepUsers[0], keepUsers[1]]); + + console.log('✅ 旧数据清理完成'); + + // 2. 填充字典和部门 + console.log('📚 填充字典数据...'); + for (const [table, values] of Object.entries(DICTS)) { + for (const val of values) { + await client.query(`INSERT INTO ${table} (name) VALUES ($1) ON CONFLICT (name) DO NOTHING`, [val]); + } + } + + for (const dept of DEPARTMENTS) { + await client.query( + 'INSERT INTO departments (name) VALUES ($1) ON CONFLICT (name) DO NOTHING', + [dept] + ); + } + + // 3. 生成新用户 + console.log('👥 生成测试用户...'); + const passwordHash = await bcrypt.hash('123456', 10); + const userIds = []; + + // 获取保留用户的ID + const existingUsers = await client.query('SELECT id FROM users WHERE username = $1 OR username = $2', [keepUsers[0], keepUsers[1]]); + existingUsers.rows.forEach(row => userIds.push(row.id)); + + // 生成 20 个新用户 + for (let i = 0; i < 20; i++) { + const username = generatePhone(); + const realName = generateName(); + const dept = randomChoice(DEPARTMENTS); + + try { + const res = await client.query( + 'INSERT INTO users (username, password_hash, role, real_name, department, dept_status) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id', + [username, passwordHash, 'user', realName, dept, 'verified'] + ); + userIds.push(res.rows[0].id); + } catch (e) { + if (e.code !== '23505') console.error(e); + } + } + console.log(`✅ 已生成 ${userIds.length} 个用户`); + + // 4. 生成成果数据 + console.log('📊 生成成果数据 (目标 500+ 条)...'); + const targetCount = 550; + let insertedCount = 0; + + for (let i = 0; i < targetCount; i++) { + const userId = randomChoice(userIds); + const type = randomChoice(ACHIEVEMENT_TYPES); + const status = randomChoice(STATUSES); + const date = generateDate(2023, 2026); + const title = generateTitle(); + const dept = randomChoice(DEPARTMENTS); + + // 构造 contributors JSONB + const contributors = [ + { name: generateName(), phone: generatePhone(), isMain: true }, + { name: generateName(), phone: generatePhone(), isMain: false } + ]; + + // 插入主表 + const res = await client.query( + `INSERT INTO achievements + (user_id, type, name, contributors, assigned_departments, achievement_date, status, remarks, created_at) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING id`, + [ + userId, + type, + title, + JSON.stringify(contributors), + [dept], // 数组格式 + date, + status, + '自动生成的数据', + date + ] + ); + const achievementId = res.rows[0].id; + + // 插入附件 + await client.query( + 'INSERT INTO achievement_attachments (achievement_id, file_name, file_path) VALUES ($1, $2, $3)', + [achievementId, 'test_report.pdf', 'uploads/mock_file.pdf'] + ); + + // 插入详情表 (根据类型) + switch (type) { + case 'paper': + await client.query( + 'INSERT INTO achievement_paper (achievement_id, paper_type, journal_name, publish_date) VALUES ($1, $2, $3, $4)', + [achievementId, randomChoice(DICTS.dict_paper_types), '计算机学报', date] + ); + break; + case 'award': + await client.query( + 'INSERT INTO achievement_award (achievement_id, award_type, award_level, award_unit) VALUES ($1, $2, $3, $4)', + [achievementId, randomChoice(DICTS.dict_award_types), randomChoice(DICTS.dict_award_levels), '科技部'] + ); + break; + case 'project': + await client.query( + 'INSERT INTO achievement_project (achievement_id, project_category, source) VALUES ($1, $2, $3)', + [achievementId, randomChoice(DICTS.dict_project_categories), '国家自然科学基金委员会'] + ); + break; + case 'standard': + await client.query( + 'INSERT INTO achievement_standard (achievement_id, standard_type, standard_no, implement_date) VALUES ($1, $2, $3, $4)', + [achievementId, randomChoice(DICTS.dict_standard_types), `GB/T ${randomInt(1000, 9999)}-2025`, date] + ); + break; + // 其他类型暂略,或插入空记录 + } + + insertedCount++; + if (insertedCount % 100 === 0) process.stdout.write('.'); + } + + await client.query('COMMIT'); + console.log(`\n✅ 成功注入 ${insertedCount} 条成果数据!`); + console.log('🎉 数据注入完成!'); + + } catch (e) { + await client.query('ROLLBACK'); + console.error('❌ 数据注入失败:', e); + } finally { + client.release(); + await pool.end(); + } +} + +seed(); diff --git a/server/scripts/seed_data_limited_500k.js b/server/scripts/seed_data_limited_500k.js new file mode 100644 index 0000000..279970f --- /dev/null +++ b/server/scripts/seed_data_limited_500k.js @@ -0,0 +1,412 @@ +const { Pool } = require('pg'); +const bcrypt = require('bcryptjs'); +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); + +const pool = new Pool({ + user: process.env.DB_USER, + host: process.env.DB_HOST, + database: process.env.DB_DATABASE || process.env.DB_NAME, + password: process.env.DB_PASSWORD, + port: process.env.DB_PORT, +}); + +const USER_COUNT = 20000; +const ACHIEVEMENT_COUNT = 500000; +const BATCH_SIZE = 1000; +const RUN_CLEAN = process.argv.includes('--clean'); + +const dictTables = [ + 'dict_organizations', + 'dict_award_types', + 'dict_award_levels', + 'dict_paper_types', + 'dict_standard_types', + 'dict_project_categories', +]; + +const achievementTypes = [ + 'paper', + 'award', + 'project', + 'standard', + 'monograph', + 'report', + 'plan', + 'patent', + 'transformation', + 'software', +]; +const USERNAME_PREFIX = '176'; +const SEED_REMARK = 'seed_500k'; +const STATUSES = ['pending', 'approved', 'rejected']; +const PATENT_TYPES = ['invention', 'utility', 'design']; +const REPORT_TYPES = ['technical', 'inspection', 'analysis', 'feasibility']; +const TRANS_METHODS = ['transfer', 'license', 'cooperation', 'self-use']; +const ACQUISITION_METHODS = ['independent', 'co-development', 'transfer']; +const SOFTWARE_SCOPES = ['national', 'industry', 'department']; + +const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; +const randomChoice = (arr) => arr[randomInt(0, arr.length - 1)]; +const pad = (num, size) => String(num).padStart(size, '0'); +const randomDateInYears = (years) => + new Date(randomChoice(years), randomInt(0, 11), randomInt(1, 28)); + +function buildInsert(table, columns, rows) { + const values = []; + const params = []; + let paramIndex = 1; + + for (const row of rows) { + const placeholders = []; + for (const value of row) { + params.push(value); + placeholders.push(`$${paramIndex++}`); + } + values.push(`(${placeholders.join(', ')})`); + } + + const sql = `INSERT INTO ${table} (${columns.join(', ')}) VALUES ${values.join(', ')}`; + return { sql, params }; +} + +async function fetchNames(client, table) { + const res = await client.query(`SELECT name FROM ${table} ORDER BY id`); + return res.rows.map((row) => row.name); +} + +async function seedUsers(client, departments) { + const passwordHash = await bcrypt.hash('123456', 10); + let created = 0; + + for (let offset = 0; offset < USER_COUNT; offset += BATCH_SIZE) { + const batchSize = Math.min(BATCH_SIZE, USER_COUNT - offset); + const rows = []; + + for (let i = 0; i < batchSize; i++) { + const index = offset + i; + const username = `${USERNAME_PREFIX}${pad(index, 8)}`; // 11 digits, deterministic + const realName = `Perf User ${index + 1}`; + const department = randomChoice(departments); + rows.push([username, passwordHash, 'user', realName, department, 'verified']); + } + + const { sql, params } = buildInsert( + 'users', + ['username', 'password_hash', 'role', 'real_name', 'department', 'dept_status'], + rows + ); + + await client.query( + `${sql} ON CONFLICT (username) DO UPDATE SET + password_hash = EXCLUDED.password_hash, + role = EXCLUDED.role, + real_name = EXCLUDED.real_name, + department = EXCLUDED.department, + dept_status = EXCLUDED.dept_status` + , params); + + created += batchSize; + if (created % 5000 === 0) { + console.log(`[seed-data-500k] users upserted: ${created}`); + } + } +} + +async function seedAchievements(client, departments, dicts, userIds) { + let inserted = 0; + const dateYears = [2023, 2024, 2026]; + + for (let offset = 0; offset < ACHIEVEMENT_COUNT; offset += BATCH_SIZE) { + const batchSize = Math.min(BATCH_SIZE, ACHIEVEMENT_COUNT - offset); + await client.query('BEGIN'); + try { + const rows = []; + const achievementDates = []; + + for (let i = 0; i < batchSize; i++) { + const index = offset + i; + const userId = randomChoice(userIds); + const type = randomChoice(achievementTypes); + const name = `Perf Achievement ${index + 1}`; + const assignedDept = randomChoice(departments); + const date = randomDateInYears(dateYears); + achievementDates.push(date); + const contributors = [ + { name: `Contributor ${index + 1}A`, phone: `130${pad(index % 100000000, 8)}`, isMain: true }, + { name: `Contributor ${index + 1}B`, phone: `131${pad(index % 100000000, 8)}`, isMain: false }, + ]; + rows.push([ + userId, + type, + name, + JSON.stringify(contributors), + [assignedDept], + date, + randomChoice(STATUSES), + SEED_REMARK, + date, + ]); + } + + const { sql, params } = buildInsert( + 'achievements', + [ + 'user_id', + 'type', + 'name', + 'contributors', + 'assigned_departments', + 'achievement_date', + 'status', + 'remarks', + 'created_at', + ], + rows + ); + + const res = await client.query(`${sql} RETURNING id, type`, params); + + const attachmentsRows = []; + const paperRows = []; + const awardRows = []; + const projectRows = []; + const standardRows = []; + const monographRows = []; + const reportRows = []; + const planRows = []; + const patentRows = []; + const transformationRows = []; + const softwareRows = []; + + for (let i = 0; i < res.rows.length; i++) { + const { id, type } = res.rows[i]; + const date = achievementDates[i]; + const idx = offset + i + 1; + attachmentsRows.push([id, `attachment_${idx}.pdf`, 'uploads/mock_file.pdf']); + + if (type === 'paper') { + paperRows.push([id, randomChoice(dicts.dict_paper_types), 'Perf Journal', randomDateInYears(dateYears)]); + } else if (type === 'award') { + awardRows.push([ + id, + randomChoice(dicts.dict_award_types), + randomChoice(dicts.dict_award_levels), + randomChoice(dicts.dict_organizations), + ]); + } else if (type === 'project') { + projectRows.push([id, randomChoice(dicts.dict_project_categories), 'Perf Project Source']); + } else if (type === 'standard') { + const standardYear = date.getFullYear(); + standardRows.push([ + id, + randomChoice(dicts.dict_standard_types), + `STD-${standardYear}-${pad(idx, 6)}`, + date, + ]); + } else if (type === 'monograph') { + monographRows.push([id, 'Perf Press', `ISBN-${pad(idx, 9)}`]); + } else if (type === 'report') { + reportRows.push([id, randomChoice(REPORT_TYPES), 'Recipient Unit', null, `Approver ${idx}`]); + } else if (type === 'plan') { + planRows.push([id]); + } else if (type === 'patent') { + patentRows.push([id, `PAT-${pad(idx, 8)}`, randomChoice(PATENT_TYPES), 'Perf Assignee']); + } else if (type === 'transformation') { + transformationRows.push([ + id, + randomChoice(TRANS_METHODS), + randomInt(50, 5000) * 1000 + randomInt(0, 99) / 100, + randomChoice(dicts.dict_project_categories), + ]); + } else if (type === 'software') { + softwareRows.push([ + id, + `SW-${pad(idx, 8)}`, + randomChoice(ACQUISITION_METHODS), + randomChoice(SOFTWARE_SCOPES), + 'Perf Owner Unit', + ]); + } + } + + if (attachmentsRows.length) { + const insert = buildInsert( + 'achievement_attachments', + ['achievement_id', 'file_name', 'file_path'], + attachmentsRows + ); + await client.query(insert.sql, insert.params); + } + + if (paperRows.length) { + const insert = buildInsert( + 'achievement_paper', + ['achievement_id', 'paper_type', 'journal_name', 'publish_date'], + paperRows + ); + await client.query(insert.sql, insert.params); + } + if (awardRows.length) { + const insert = buildInsert( + 'achievement_award', + ['achievement_id', 'award_type', 'award_level', 'award_unit'], + awardRows + ); + await client.query(insert.sql, insert.params); + } + if (projectRows.length) { + const insert = buildInsert( + 'achievement_project', + ['achievement_id', 'project_category', 'source'], + projectRows + ); + await client.query(insert.sql, insert.params); + } + if (standardRows.length) { + const insert = buildInsert( + 'achievement_standard', + ['achievement_id', 'standard_type', 'standard_no', 'implement_date'], + standardRows + ); + await client.query(insert.sql, insert.params); + } + if (monographRows.length) { + const insert = buildInsert( + 'achievement_monograph', + ['achievement_id', 'publisher', 'isbn'], + monographRows + ); + await client.query(insert.sql, insert.params); + } + if (reportRows.length) { + const insert = buildInsert( + 'achievement_report', + ['achievement_id', 'report_type', 'recipient', 'approver_id', 'approver_name'], + reportRows + ); + await client.query(insert.sql, insert.params); + } + if (planRows.length) { + const insert = buildInsert( + 'achievement_plan', + ['achievement_id'], + planRows + ); + await client.query(insert.sql, insert.params); + } + if (patentRows.length) { + const insert = buildInsert( + 'achievement_patent', + ['achievement_id', 'patent_no', 'patent_type', 'assignee'], + patentRows + ); + await client.query(insert.sql, insert.params); + } + if (transformationRows.length) { + const insert = buildInsert( + 'achievement_transformation', + ['achievement_id', 'trans_method', 'trans_amount', 'project_category'], + transformationRows + ); + await client.query(insert.sql, insert.params); + } + if (softwareRows.length) { + const insert = buildInsert( + 'achievement_software', + ['achievement_id', 'reg_no', 'acquisition_method', 'scope', 'owner_unit'], + softwareRows + ); + await client.query(insert.sql, insert.params); + } + + await client.query('COMMIT'); + } catch (err) { + await client.query('ROLLBACK'); + throw err; + } + inserted += batchSize; + if (inserted % 10000 === 0) { + console.log(`[seed-data-500k] achievements inserted: ${inserted}`); + } + } +} + +async function cleanSeedData(client) { + console.log('[seed-data-500k] cleaning existing seeded data...'); + await client.query('BEGIN'); + try { + const usersRes = await client.query( + 'SELECT id FROM users WHERE username LIKE $1', + [`${USERNAME_PREFIX}%`] + ); + const userIds = usersRes.rows.map((row) => row.id); + + await client.query( + 'DELETE FROM achievements WHERE remarks = $1 OR user_id = ANY($2)', + [SEED_REMARK, userIds.length ? userIds : [0]] + ); + + await client.query( + 'DELETE FROM users WHERE username LIKE $1', + [`${USERNAME_PREFIX}%`] + ); + + await client.query('COMMIT'); + console.log('[seed-data-500k] clean done'); + } catch (err) { + await client.query('ROLLBACK'); + throw err; + } +} + +async function main() { + const client = await pool.connect(); + try { + console.log('[seed-data-500k] start'); + + if (RUN_CLEAN) { + await cleanSeedData(client); + } + + const departments = await fetchNames(client, 'departments'); + if (departments.length === 0) { + throw new Error('No departments found. Run "npm run init-db" first.'); + } + + const dicts = {}; + for (const table of dictTables) { + const values = await fetchNames(client, table); + if (values.length === 0) { + throw new Error(`No data in ${table}. Run "npm run init-db" first.`); + } + dicts[table] = values; + } + + await client.query('BEGIN'); + await seedUsers(client, departments); + await client.query('COMMIT'); + + const userIdsRes = await client.query( + 'SELECT id FROM users WHERE username LIKE $1 ORDER BY id', + [`${USERNAME_PREFIX}%`] + ); + const userIds = userIdsRes.rows.map((row) => row.id); + if (userIds.length === 0) { + throw new Error('No seeded users found.'); + } + + await seedAchievements(client, departments, dicts, userIds); + + console.log('[seed-data-500k] done'); + } catch (err) { + await client.query('ROLLBACK'); + console.error('[seed-data-500k] failed:', err.message || err); + process.exitCode = 1; + } finally { + client.release(); + await pool.end(); + } +} + +main(); diff --git a/server/scripts/setup.js b/server/scripts/setup.js new file mode 100644 index 0000000..abf56e2 --- /dev/null +++ b/server/scripts/setup.js @@ -0,0 +1,103 @@ +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '../.env') }); +const db = require('../db'); +const bcrypt = require('bcryptjs'); +const fs = require('fs'); + +const setup = async () => { + try { + console.log('--- 科技成果转化系统 部署工具 ---'); + + // 1. 执行完整建表语句 + console.log('正在初始化数据库表结构...'); + const sqlPath = path.join(__dirname, '../../database/schema.sql'); + if (!fs.existsSync(sqlPath)) { + throw new Error(`找不到 SQL 文件: ${sqlPath}`); + } + + const sql = fs.readFileSync(sqlPath, 'utf8'); + // 简单的 SQL 分割逻辑,按分号分割 + const statements = sql.split(';').filter(s => s.trim()); + + for (let statement of statements) { + try { + await db.query(statement); + } catch (e) { + // 忽略“已存在”类的错误 + if (!e.message.includes('already exists')) { + console.log(`执行语句时提示: ${e.message}`); + } + } + } + + // 2. 初始化默认部门 + console.log('正在初始化默认部门...'); + const defaultDepts = [ + '院领导', '卫星中心综合部', '卫星中心生产部', '卫星中心研发部', '大数据中心', + '生产保障部', '生产技术部', '土地调查监测室', '森林调查监测室', '湿地调查监测室', + '专业调查室', '权籍调查室', '碳汇研究中心', '权益研究中心', '科技与档案室', + '办公室', '党群工作部', '待定' + ]; + for (const dept of defaultDepts) { + await db.query('INSERT INTO departments (name) VALUES ($1) ON CONFLICT (name) DO NOTHING', [dept]); + } + + // 3. 初始化字典表数据 + console.log('正在初始化字典表数据...'); + + const dictData = { + dict_organizations: ['黑龙江省自然资源权益调查监测院','黑龙江省自然资源卫星应用技术中心','黑龙江省自然资源权益调查监测院(黑龙江省自然资源卫星应用技术中心)','待定'], + dict_award_types: ['国家级', '省部级', '社会力量', '其他', '待定'], + dict_award_levels: ['一等奖', '二等奖', '三等奖', '其他', '待定'], + dict_paper_types: ['Nature/Science/Cell', 'CCF A类会议','SCI一区期刊','SCI二区期刊', 'CCF B类会议','CCF C类会议','SCI三区期刊','SCI四区期刊','EI源刊', '中文核心期刊', 'EI会议', '普通期刊', '普通会议', '待定'], + dict_standard_types: ['国家标准', '国际标准', '行业标准', '地方标准', '待定'], + dict_project_categories: ['科技', '财政', '横向', '成果转化', '待定'] + }; + + for (const [tableName, values] of Object.entries(dictData)) { + for (const val of values) { + await db.query(`INSERT INTO ${tableName} (name) VALUES ($1) ON CONFLICT (name) DO NOTHING`, [val]); + } + } + + // 4. 创建初始超级管理员 + const adminPhone = '18888888888'; + const adminPass = 'admin123'; + const salt = await bcrypt.genSalt(10); + const passwordHash = await bcrypt.hash(adminPass, salt); + + console.log('正在创建初始超级管理员...'); + await db.query( + `INSERT INTO users (username, password_hash, role, real_name, department, dept_status) + VALUES ($1, $2, $3, $4, $5, $6) + ON CONFLICT (username) DO UPDATE SET role = 'super_admin'`, + [adminPhone, passwordHash, 'super_admin', '系统管理员', null, 'verified'] + ); + + // 5. 创建初始系统维护员 + const maintainerPhone = '19999999999'; + const maintainerPass = 'maintainer123'; + const maintainerHash = await bcrypt.hash(maintainerPass, salt); + + console.log('正在创建初始系统维护员...'); + await db.query( + `INSERT INTO users (username, password_hash, role, real_name, department, dept_status) + VALUES ($1, $2, $3, $4, $5, $6) + ON CONFLICT (username) DO UPDATE SET role = 'maintainer'`, + [maintainerPhone, maintainerHash, 'maintainer', '系统维护员', null, 'verified'] + ); + + console.log('\n-----------------------------------'); + console.log('部署成功!'); + console.log(`初始超管账号: ${adminPhone} / ${adminPass}`); + console.log(`初始维护员账号: ${maintainerPhone} / ${maintainerPass}`); + console.log('-----------------------------------'); + + process.exit(0); + } catch (err) { + console.error('\n部署失败:', err); + process.exit(1); + } +}; + +setup(); diff --git a/server/utils/diskMonitor.js b/server/utils/diskMonitor.js new file mode 100644 index 0000000..0957f41 --- /dev/null +++ b/server/utils/diskMonitor.js @@ -0,0 +1,93 @@ +const fs = require('fs'); +const path = require('path'); +const db = require('../db'); +const logger = require('./logger'); + +const parsePositiveNumber = (value, fallback) => { + const num = Number(value); + return Number.isFinite(num) && num > 0 ? num : fallback; +}; + +// 磁盘告警阈值(GB),默认 10 GB +const THRESHOLD_GB = parsePositiveNumber(process.env.DISK_ALERT_THRESHOLD_GB, 10); +const THRESHOLD_BYTES = THRESHOLD_GB * 1024 * 1024 * 1024; +// 告警冷却时间(小时),默认 24 小时 +const ALERT_COOLDOWN_HOURS = parsePositiveNumber(process.env.DISK_ALERT_COOLDOWN_HOURS, 24); + +const getDiskSpace = async (directoryPath) => { + try { + // 仅在支持 statfs 的 Node 版本启用 + if (fs.promises.statfs) { + const stats = await fs.promises.statfs(directoryPath); + const FreeSpace = stats.bfree * stats.bsize; + const Size = stats.blocks * stats.bsize; + return { FreeSpace, Size }; + } + + logger.warn('当前 Node.js 版本不支持 fs.promises.statfs,跳过磁盘检查'); + return { FreeSpace: Number.MAX_SAFE_INTEGER, Size: Number.MAX_SAFE_INTEGER }; + } catch (error) { + logger.error(`获取磁盘空间失败 [${directoryPath}]: ${error.message}`); + throw error; + } +}; + +const checkDiskSpace = async () => { + try { + // 1. 获取上传目录绝对路径 + const uploadDir = process.env.UPLOAD_DIR || 'uploads'; + const absolutePath = path.resolve(uploadDir); + + // 目录不存在时,回退到所在盘符根目录进行检测 + let targetPath = absolutePath; + try { + await fs.promises.access(targetPath); + } catch { + targetPath = path.parse(absolutePath).root; + } + + // 2. 获取磁盘空间 + const { FreeSpace } = await getDiskSpace(targetPath); + + // 3. 判断是否低于阈值 + if (FreeSpace < THRESHOLD_BYTES) { + const root = path.parse(absolutePath).root; + const freeGB = (FreeSpace / (1024 * 1024 * 1024)).toFixed(2); + const title = `【系统警告】磁盘空间不足 (${root})`; + + // 4. 冷却期内同标题只发一次 + const cooldownTime = new Date(Date.now() - ALERT_COOLDOWN_HOURS * 60 * 60 * 1000); + const recentAlert = await db.query( + `SELECT id FROM notifications + WHERE title = $1 + AND created_at > $2 + LIMIT 1`, + [title, cooldownTime] + ); + + if (recentAlert.rows.length === 0) { + logger.warn(`磁盘空间不足警告: ${root} 剩余 ${freeGB} GB`); + + const content = `系统检测到存储磁盘 (${root}) 剩余空间仅剩 ${freeGB} GB,低于警告阈值 (${THRESHOLD_GB} GB)。\n\n请系统管理员尽快处理:\n1. 清理磁盘空间。\n2. 或配置新的存储路径(如挂载大容量磁盘),并更新配置文件中的 UPLOAD_DIR 参数。`; + + // 尝试获取 ID 最小的 super_admin 作为发布者 + let publisherId = 1; + const adminRes = await db.query("SELECT id FROM users WHERE role = 'super_admin' ORDER BY id ASC LIMIT 1"); + if (adminRes.rows.length > 0) { + publisherId = adminRes.rows[0].id; + } + + await db.query( + 'INSERT INTO notifications (title, content, publisher_id, publisher_name, is_top, created_at) VALUES ($1, $2, $3, $4, $5, CURRENT_TIMESTAMP)', + [title, content, publisherId, '系统监控', true] + ); + + logger.info('已发布磁盘空间不足警告通知'); + } + } + } catch (error) { + logger.error(`磁盘空间检查失败: ${error.message}`); + } +}; + +module.exports = { checkDiskSpace }; diff --git a/server/utils/logger.js b/server/utils/logger.js new file mode 100644 index 0000000..b378e48 --- /dev/null +++ b/server/utils/logger.js @@ -0,0 +1,55 @@ +const winston = require('winston'); +require('winston-daily-rotate-file'); +const path = require('path'); + +// 定义日志目录 +const logDir = path.join(__dirname, '../logs'); + +// 定义日志格式 +const logFormat = winston.format.combine( + winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), + winston.format.printf(({ timestamp, level, message }) => { + return `${timestamp} [${level.toUpperCase()}]: ${message}`; + }) +); + +// 创建 Logger 实例 +const logger = winston.createLogger({ + format: logFormat, + transports: [ + // 1. 错误日志:只记录 error 级别 + new winston.transports.DailyRotateFile({ + filename: path.join(logDir, 'error-%DATE%.log'), + datePattern: 'YYYY-MM-DD', + level: 'error', + maxSize: '20m', + maxFiles: '14d', // 保留14天 + }), + // 2. 综合日志:记录所有级别 + new winston.transports.DailyRotateFile({ + filename: path.join(logDir, 'combined-%DATE%.log'), + datePattern: 'YYYY-MM-DD', + maxSize: '20m', + maxFiles: '14d', + }), + ], +}); + +// 如果不是生产环境,也输出到控制台 +if (process.env.NODE_ENV !== 'production') { + logger.add(new winston.transports.Console({ + format: winston.format.combine( + winston.format.colorize(), + winston.format.simple() + ), + })); +} + +// 创建一个流对象,供 morgan 使用 +logger.stream = { + write: (message) => { + logger.info(message.trim()); + }, +}; + +module.exports = logger; diff --git a/server/utils/sms.js b/server/utils/sms.js new file mode 100644 index 0000000..9450a9d --- /dev/null +++ b/server/utils/sms.js @@ -0,0 +1,33 @@ +const Dypnsapi20170525 = require('@alicloud/dypnsapi20170525'); +const OpenApi = require('@alicloud/openapi-client'); +const Util = require('@alicloud/tea-util'); + +class SmsClient { + static createClient() { + let config = new OpenApi.Config({ + accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID, + accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET, + }); + config.endpoint = `dypnsapi.aliyuncs.com`; + return new Dypnsapi20170525.default(config); + } + + static async sendVerifyCode(phoneNumber, code) { + let client = this.createClient(); + let sendSmsVerifyCodeRequest = new Dypnsapi20170525.SendSmsVerifyCodeRequest({ + signName: process.env.SMS_SIGN_NAME, + templateCode: process.env.SMS_TEMPLATE_CODE, + phoneNumber: phoneNumber, + templateParam: `{"code":"${code}","min":"5"}`, + }); + let runtime = new Util.RuntimeOptions({}); + try { + return await client.sendSmsVerifyCodeWithOptions(sendSmsVerifyCodeRequest, runtime); + } catch (error) { + console.error('短信发送失败:', error.message); + throw error; + } + } +} + +module.exports = SmsClient; diff --git a/static/mobile_forbidden.html b/static/mobile_forbidden.html new file mode 100644 index 0000000..1daf185 --- /dev/null +++ b/static/mobile_forbidden.html @@ -0,0 +1,58 @@ + + + + + + 访问被拒绝 + + + +
+
🚫
+

访问被拒绝

+

根据本单位安全规定,本系统禁止使用移动设备(手机/平板)访问。

+

请使用办公电脑访问。

+ +
+ + diff --git a/开发机与服务器结构相同可以编写移植脚本.txt b/开发机与服务器结构相同可以编写移植脚本.txt new file mode 100644 index 0000000..e69de29 diff --git a/第一次升级.md b/第一次升级.md new file mode 100644 index 0000000..d9947d1 --- /dev/null +++ b/第一次升级.md @@ -0,0 +1,143 @@ +# 第一次升级 + +## 1. 升级目标 +- 不改 PostgreSQL 现有数据与表结构。 +- 不改服务器文件存储路径(`UPLOAD_DIR` / `UPLOAD_FALLBACK_DIRS`)。 +- 通过“代码 + 前端构建产物”发布完成升级。 +- 修复现有高优先级缺陷并增强安全性与稳定性。 + +## 2. 约束与发布原则 +- 不执行任何初始化/造数脚本(如 `init-db`、`seed`、`create_db`、`setup`)。 +- 服务器 `.env` 保持原值(尤其数据库与上传目录相关配置)。 +- 采用兼容式修改,避免破坏现网接口与数据。 + +## 3. 升级计划(逐项完成) + +状态说明: +- `[ ]` 待处理 +- `[-]` 处理中 +- `[x]` 已完成 + +- [x] 01. 建立本升级文档与执行清单 +- [x] 02. 修复成果编辑接口运行时错误与权限判断 +- [x] 03. 前端移除 URL token 传递(导出/下载改为 Header 认证) +- [x] 04. 上传安全加固(文件大小/数量限制、通知附件类型限制) +- [x] 05. 上传失败时清理已落盘文件,避免孤儿文件 +- [x] 06. 数据库配置兼容修复(`DB_DATABASE`/`DB_NAME`) +- [x] 07. 数据库连接池错误策略优化(避免进程直接退出) +- [x] 08. 整体回归检查与发布说明整理 + +## 4. 变更记录 +- 2026-02-25:创建文档与首轮升级清单。 +- 2026-02-25:修复 `GET /api/achievements/:id` 的运行时错误(移除未定义变量 `parsedContributors` 的错误逻辑)。 +- 2026-02-25:修复 `PUT /api/achievements/:id` 事务提前返回未回滚问题(补充 `ROLLBACK`)。 +- 2026-02-25:修复 `DELETE /api/achievements/:id` 事务提前返回未回滚问题(补充 `ROLLBACK`)。 +- 2026-02-25:成果上传接口补充 JSON 解析失败时的落盘文件清理。 +- 2026-02-25:通知发布接口补充附件限制与异常清理,`content` 改为净化后入库(不改表结构)。 +- 2026-02-25:前端导出/下载去除 URL token,统一改为 `Authorization` Header + Blob 下载。 +- 2026-02-25:数据库连接配置兼容 `DB_DATABASE` / `DB_NAME`,连接池 idle error 不再 `process.exit(-1)`。 +- 2026-02-25:后端语法检查通过;前端 `npm run build` 编译通过。 +- 2026-02-25:本次新增与更新内容全部按 UTF-8 编码保存。 +- 2026-02-26:统计页新增“统计口径说明”和 AI 安全说明文案;新增“部门独立完成 / 合作项目统计表”。 +- 2026-02-26:AI Prompt 优化为结构化管理汇报模板(执行摘要/关键发现/独立合作解读/风险/行动建议/一句话结论)。 +- 2026-02-26:修复统计接口 500(`text <> varchar[]/text[]` 类型兼容问题),统一在 SQL 中显式转换为 `text[]`,并同步修复 AI 分析同口径查询。 +- 2026-02-26:AI 分析结果前端改为 Markdown 渲染(支持标题/列表/表格等格式),提升可读性。 +- 2026-02-26:AI 提示词精简;传给模型的数据改为语义化摘要(类型/状态中文化、TopN 与占比、近 24 个月趋势),降低上下文长度并提升分析速度。 +- 2026-02-26:AI 分析新增流式输出(边生成边显示);前端新增“清空输出”按钮(生成中可中止并清空)。 +- 2026-02-26:取消后端 `max_tokens` 人工上限(输出长度不再由项目侧硬限制,受模型侧能力约束)。 +- 2026-02-26:AI 功能权限扩展至 `senior_user`(高级用户)与 `intermediate_user`(中级用户),前后端权限口径保持一致。 +- 2026-02-26:成果列表/成果详情/导出接口的 `assigned_departments` 返回口径统一排除院领导部门(与统计页口径一致)。 +- 2026-02-26:修正部门过滤边界:若某条成果过滤院领导部门后为空,则回退显示原始部门,避免“无归属部门”展示问题。 +- 2026-02-26:成果归属部门计算改为“全体完成人手机号对应部门去重后统计”,并在写库时过滤院领导部门(不再仅按主要完成人计算)。 +- 2026-02-26:归属部门规则再次调整为“单归属部门”: + - 优先按主要完成人顺序取部门; + - 若命中院领导部门则按顺序回退到下一个完成人,取第一个非院领导部门; + - 若全部均为院领导部门,则回退首个部门,保证每条成果只有 1 个归属部门。 +- 2026-02-27:统计页下线“部门独立完成 / 合作项目统计表”(当前每个项目仅归属 1 个部门,该表不再提供有效增量信息)。 +- 2026-02-27:成果相关全入口口径收敛为单归属部门(成果公示/全部成果/我的成果/详情权限/部门筛选/统计/AI 分析统一),并对历史多部门数据按“首个非院领导,否则首个部门”规则读取时归一。 +- 2026-02-27:统计页新增“AI 年份筛选与图表年份联动”:在 AI 卡片选择年份后,下方部门分布/类型分布/部门种类统计三图同步切换;年份来源保持动态,无硬编码年份。 + +## 5. 服务器端操作(全部完成后填写) +- 1. 先备份服务器现有代码目录和前端静态目录(保留可回滚版本)。 +- 2. 保持服务器 `.env` 不变,尤其是 `DB_*`、`UPLOAD_DIR`、`UPLOAD_FALLBACK_DIRS`。 +- 3. 只上传本次变更的后端代码与前端构建产物(`client/build` 或你实际部署目录下的 dist)。 +- 4. 不执行任何数据库初始化、迁移、造数脚本(`init-db`/`seed`/`create_db`/`setup`)。 +- 5. 重启 Node 服务进程(`pm2 restart ...` 或 `systemctl restart ...`,按你现网方式)。 +- 6. 发布后烟测: + - 成果详情页打开(`GET /api/achievements/:id`)。 + - 成果修改/删除权限验证(普通用户、超管各测一次)。 + - 成果附件下载、CSV 导出、ZIP 导出。 + - 通知发布(带附件与异常附件各测一次)。 + - 统计分析页:部门统计已排除院领导部门;每条成果仅计入一个归属部门。 + - 统计分析页:不再显示“部门独立完成 / 合作项目统计表”。 + - AI 分析:可在 `auto / qwen / deepseek` 切换,返回提供方与尝试顺序。 +- 7. 若异常,先回滚代码与前端静态文件,不回滚数据库(本次未做数据库结构变更)。 + +## 6. 功能扩展:AI 分析(2026-02-25) + +### 6.1 功能目标 +- 在“统计分析”页面增加 AI 分析入口。 +- 使用后端调用大模型 API 生成分析结论,前端仅展示结果。 +- 保持数据库与文件存储路径不变,不做任何表结构变更。 + +### 6.2 安全策略(已实现) +- 不向大模型发送附件内容。 +- 不向大模型发送附件路径与文件名。 +- 不向大模型发送完成人手机号和姓名。 +- 仅发送脱敏后的聚合统计数据(类型分布、状态分布、部门分布、月度趋势、质量计数)。 +- 接口权限限制为管理员/超级管理员可用。 + +### 6.3 本次新增文件与改动 +- 新增后端路由:`server/routes/aiAnalysis.js` +- 挂载后端路由:`server/index.js` -> `/api/ai-analysis` +- 新增 AI 配置示例:`server/.env.example` +- 前端入口与交互:`client/src/pages/Statistics.js` +- 新增提供方选择:自动 / 千问 / DeepSeek / custom +- 新增自动回退:按优先级依次尝试(可配置) + +### 6.4 服务器端新增配置 +在服务器 `.env` 新增(或确认)以下变量: + +```env +AI_DEFAULT_PROVIDER=auto +AI_PROVIDER_PRIORITY=qwen,deepseek,custom + +QWEN_API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 +QWEN_API_KEY=你的千问Key +QWEN_MODEL=qwen-plus + +DEEPSEEK_API_BASE_URL=https://api.deepseek.com/v1 +DEEPSEEK_API_KEY=你的DeepSeekKey +DEEPSEEK_MODEL=deepseek-chat + +# 可选:自定义网关/代理 +AI_API_BASE_URL= +AI_API_KEY= +AI_MODEL= + +AI_TIMEOUT_MS=45000 +AI_MAX_TOKENS=1600 +``` + +说明: +- `AI_DEFAULT_PROVIDER=auto` 时,按 `AI_PROVIDER_PRIORITY` 顺序尝试。 +- 前端可手动指定单一提供方,也可选“自动”。 +- 私有网段网关可放在 `AI_API_BASE_URL`(custom)中使用(http/https 均支持)。 + +### 6.5 上线后测试点 +- 1. 管理员/超管登录,进入“统计分析”页面,确认出现“AI 智能分析(脱敏)”卡片。 +- 2. 选择筛选条件并输入问题,点击“生成 AI 分析”应返回文本结果。 +- 3. 普通用户账号不应可用该功能(无入口或接口返回 403)。 +- 4. 服务器日志确认无附件路径、文件名、手机号、姓名外发日志。 + +### 6.6 统计口径调整(院领导部门过滤) +- 部门相关统计(部门分布、部门类型交叉、部门趋势)统一排除 `dict_leader_departments` 中配置的院领导部门。 +- 成果归属采用“单归属部门”写库规则(按主要完成人顺序回退到首个非院领导部门;若均为院领导则回退首个部门)。 +- 统计页已下线“部门独立完成 / 合作项目统计表”。 +- AI 分析入参与统计页保持同口径(排除院领导部门,不再传递独立/合作统计字段)。 + +### 6.7 文案与 Prompt 优化(2026-02-26) +- 前端统计页新增口径提示文案,明确“排除院领导部门 + 单归属部门计数”。 +- AI 卡片新增安全提示文案,明确仅发送脱敏聚合数据,不发送附件信息和个人敏感信息。 +- AI 系统提示词改为结构化输出,支持直接用于院级管理汇报。 +- 输出要求强调“先结论、后证据、再建议”,并在数据不足时必须显式提示证据不足。