diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 0d11c1291ae36bed8f8a527a2c310c01823a0040..4f500246cb14656143a49bb3dc01524548a64dd9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -14,6 +14,7 @@ module.exports = { "no-console": "warn", "no-debugger": "warn", "vue/multi-word-component-names": "off", + "prettier/prettier": ["warn", { endOfLine: "auto" }], }, ignorePatterns: ["dist/", "node_modules/", "public/", "components.d.ts"], }; diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..98a9031272ea83a880396576c56c83b209690594 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,44 @@ +# Copilot Instructions for Topsky Hotel Management System (Vue 3) + +## Architecture Overview + +This is a Vue 3 + Vite frontend for a hotel management system with modular business domains. Each module follows a consistent pattern: + +- **API Layer**: `src/api/{module}api.js` - Axios wrappers returning `response.data.Data` or `response.data` +- **Data Models**: `src/entities/{module}.entity.js` - Field constants, initial values, table columns with i18n titles +- **Filters**: `src/filters/{module}.filter.config.js` - Form configs for search/filtering +- **Views**: `src/views/{module}/{Module}View.vue` - CRUD UIs with Ant Design components + +## Key Patterns + +- **Permissions**: Use `v-perm="ModulePermissions.ACTION"` directive (e.g., `PositionPermissions.CREATE`) +- **Internationalization**: All user-facing text uses `$t("message.key")` from `src/i18n.js` +- **Data Fetching**: APIs expect `{ Success: true, Data: ... }` response format +- **Tables**: Use `a-table` with `:columns`, `:data-source`, `:pagination`, `@change="handleTableChange"` +- **Forms**: Collapse filters above tables, modals for add/edit with `initialFormValues` from entities +- **Error Handling**: Centralized in `src/common/errorHandler.js` with global handlers in `main.js` + +## Common Workflows + +- **Add New Module**: Create API, entity, filter, view files; add route in `src/router/index.js`; define permissions in `src/common/permissioncode.js` +- **CRUD Operations**: Follow existing views - fetch data on mount, handle pagination/sorting/filtering, use modals for forms +- **Permissions**: Check `hasPermission()` or `hasAnyPermission()`; permissions stored in localStorage as `allowedPerms` +- **Build/Run**: `npm run dev` (Vite dev server), `npm run build` (production build), `npm run lint` (ESLint), `npm run format` (Prettier) + +## Dependencies & Config + +- **UI**: Ant Design Vue with auto-imported components via `unplugin-vue-components` +- **HTTP**: Axios with interceptors for auth (Bearer token), CSRF, retry logic +- **Auth**: JWT in localStorage, CSRF tokens managed by `csrfTokenManager` +- **Env**: API base URL from `VITE_API_URL` in `.env` files +- **Build**: Vite with manual chunks for vendor/ant-design, font handling for Noto Sans + +## Examples + +- **API Call**: `const data = await api.get("/Module/GetAll", { params }); return data.Data;` +- **Entity Column**: `{ title: t("message.fieldName"), dataIndex: ModuleFields.FIELD, sorter: true }` +- **Filter Field**: `{ name: ModuleFields.FIELD, type: "text", label: t("message.label") }` +- **Permission Check**: `v-perm="ModulePermissions.UPDATE"` or `if (hasPermission("module.action"))` + +Reference: `src/views/base/PositionView.vue` for basic CRUD pattern, `src/api/administratorapi.js` for API structure. +.github/copilot-instructions.md diff --git a/README.en.md b/README.en.md index b76b953395da6f8b152c0c78e75bec1eabc8204a..343029efa32138976336ddee24f095f16a7d3aef 100644 --- a/README.en.md +++ b/README.en.md @@ -18,7 +18,7 @@ 3. ##### Vue-Route——🚦 The official router for Vue.js [Vue-Route,MIT License](https://github.com/vuejs/router) -4. ##### Ant Design of Vue——🌈 An enterprise-class UI components based on Ant Design and Vue. 🐜 [Ant Design of Vue,MIT License](https://github.com/vueComponent/ant-design-vue) +4. ##### Ant Design for Vue——🌈 An enterprise-class UI components based on Ant Design and Vue. 🐜 [Ant Design of Vue,MIT License](https://github.com/vueComponent/ant-design-vue) 5. ##### axios——Promise based HTTP client for the browser and node.js [axios,MIT License](https://github.com/axios/axios) @@ -30,7 +30,7 @@ 2、Bugs and comments are welcome! -3、The UI framework of this system is mainly created based on Ant Design of Vue, which is specifically declared here! +3、The UI framework of this system is mainly created based on Ant Design for Vue, which is specifically declared here! 4、This project only contains TS Hotel Management System administrator back-office part , the staff front part please move to [TSHotelManagementSystem, MIT open source protocol](https://gitee.com/java-and-net/TopskyHotelManagerSystem) @@ -71,18 +71,19 @@ topsky-hotel-manager-system-vue3 # :books: Summary of System Function Modules: -| Function Summary | | | | | | | -| -------------------------- | -------------------------------- | -------------------------- | ---------------------------- | ---------------------------------- | --- | --- | -| Basic Information | Position Type Maintenance | Ethnicity Type Maintenance | Education Type Maintenance | Department Information Maintenance | | | -| Financial Information | Employee Salary Bills | Internal Financial Bills | Hotel Profit Situation | | | | -| Utilities Management | Utilities Info | | | | | | -| Supervision and Statistics | Supervision Department Situation | | | | | | -| Room Management | Room Status Overview | Add New Room | | | | | -| Customer Management | Customer Information Management | Customer Consumption Bills | | | | | -| HR Management | Employee Management | Announcement Logs | Upload Announcement Logs | | | | -| Material Management | Product Management | Warehouse Supplies | | | | | -| Employee Operation Logs | | | | | | | -| System Management | Add Administrator | Permission Assignment | Enable/Disable Administrator | | | | +| Function Summary | | | | | | | | +| --------------------------- | ------------------------- | ------------------- | ------------------------ | ----------------------------- | ---------------------- | ------------------- | ---------------------------- | +| Home | Dashboard | | | | | | | +| Basic Information | Position Management | Nation Management | Qualification Management | Department Management | Notice Type Management | Passport Management | Promotion Content Management | +| Finance Management | Internal finance Bill | | | | | | | +| Hydroelectricity Management | Hydroelectric Information | | | | | | | +| Supervision Management | Supervision Information | | | | | | | +| Room Info Management | Reser Management | Room Map Overview | Room Management | Room Configuration | | | | +| Customer Management | VIP Level Rules | Customer Management | Customer Spending Bill | Customer Type Management | | | | +| Human Resource Management | Staff Management | | | | | | | +| Material Management | Goods Management | | | | | | | +| Operation Management | Operation Log | Request Log | | | | | | +| System Management | Administrator Management | Menu Management | Role Management | Administrator Type Management | | | | # :family: Project Authors: @@ -96,16 +97,18 @@ topsky-hotel-manager-system-vue3 # Project Review Image: -![Home Page](Review-Images/home.png) +![主页](Review-Images/home.png) -![Employee List Page](Review-Images/staff-list-page.png) +![员工列表页](Review-Images/staff-list-page.png) -![Employee Detail Page](Review-Images/staff-detail-page.png) +![员工详情页](Review-Images/staff-detail-page.png) -![Employee Detail Page(English ver.)](Review-Images/staff-detail-page-english-verison.png) +![员工详情页(英文版)](Review-Images/staff-detail-page-english-verison.png) -![Login Page](Review-Images/login.png) +![登录页](Review-Images/login.png) -![Employee Check Records Page](Review-Images/staff-check-page.png) +![员工打卡记录页](Review-Images/staff-check-page.png) + +![权限插图](Review-Images/account-role-permission.png) [![java-and-net/topsky-hotel-management-system-vue3](https://gitee.com/java-and-net/topsky-hotel-management-system-vue3/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/java-and-net/topsky-hotel-management-system-vue3) diff --git a/README.md b/README.md index c29c21d977500098b753d9c6dbd2004ca37d3cb1..16f1b8d433b6604382316d8f8144903fac9f48c6 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ 3. ##### Vue-Route——🚦 The official router for Vue.js [Vue-Route,MIT开源协议](https://github.com/vuejs/router) -4. ##### Ant Design of Vue——🌈 An enterprise-class UI components based on Ant Design and Vue. 🐜 [Ant Design of Vue,MIT开源协议](https://github.com/vueComponent/ant-design-vue) +4. ##### Ant Design for Vue——🌈 An enterprise-class UI components based on Ant Design and Vue. 🐜 [Ant Design of Vue,MIT开源协议](https://github.com/vueComponent/ant-design-vue) 5. ##### axios——Promise based HTTP client for the browser and node.js [axios,MIT开源协议](https://github.com/axios/axios) @@ -30,7 +30,7 @@ 2、有bug欢迎提出issue!或进行评论 -3、本系统UI框架主要基于Ant Design of Vue进行创建,在此特别声明! +3、本系统UI框架主要基于Ant Design for Vue进行创建,在此特别声明! 4、本项目只包含TS酒店管理系统的管理员后台部分,工作人员前台部分请移步至[TSHotelManagementSystem,MIT开源协议](https://gitee.com/java-and-net/TopskyHotelManagerSystem) @@ -71,18 +71,19 @@ topsky-hotel-manager-system-vue3 # :books: 系统功能模块汇总: -| 功能汇总 | | | | | | | -| ------------ | ------------ | ------------ | ------------- | ------------ | --- | --- | -| 基础信息 | 职位类型维护 | 民族类型维护 | 学历类型维护 | 部门信息维护 | | | -| 财务信息 | 员工工资账单 | 内部财务账单 | 酒店盈利情况 | | | | -| 水电管理 | 水电信息 | | | | | | -| 监管统计 | 监管部门情况 | | | | | | -| 客房管理 | 房态图一览 | 新增客房 | | | | | -| 客户管理 | 客户信息管理 | 顾客消费账单 | | | | | -| 人事管理 | 员工管理 | 公告日志 | 上传公告日志 | | | | -| 物资管理 | 商品管理 | 仓库物资 | | | | | -| 员工操作日志 | | | | | | | -| 系统管理 | 添加管理员 | 权限分配 | 启/禁用管理员 | | | | +| 功能汇总 | | | | | | | | +| ------------ | ------------ | ---------- | ------------ | -------------- | ------------ | -------- | ---------------- | +| 主页 | 仪表盘 | | | | | | | +| 基础信息管理 | 职位管理 | 民族管理 | 学历管理 | 部门管理 | 公告类型管理 | 证件管理 | 宣传联动内容管理 | +| 财务信息 | 内部资产管理 | | | | | | | +| 水电信息管理 | 水电信息 | | | | | | | +| 监管统计管理 | 监管情况 | | | | | | | +| 客房信息管理 | 预约管理 | 房态图一览 | 房间管理 | 客房配置 | | | | +| 客户管理 | 会员等级规则 | 客户管理 | 客户消费记录 | 客户类型管理 | | | | +| 酒店人事管理 | 员工管理 | | | | | | | +| 酒店物资管理 | 商品管理 | | | | | | | +| 操作行为管理 | 操作日志 | 请求日志 | | | | | | +| 系统管理 | 管理员管理 | 菜单管理 | 角色管理 | 管理员类型管理 | | | | # :family: 项目作者: @@ -108,4 +109,6 @@ topsky-hotel-manager-system-vue3 ![员工打卡记录页](Review-Images/staff-check-page.png) +![权限插图](Review-Images/account-role-permission.png) + [![java-and-net/topsky-hotel-management-system-vue3](https://gitee.com/java-and-net/topsky-hotel-management-system-vue3/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/java-and-net/topsky-hotel-management-system-vue3) diff --git a/Review-Images/account-role-permission.png b/Review-Images/account-role-permission.png new file mode 100644 index 0000000000000000000000000000000000000000..51a95b5f699e3c803b796cc396ae3bc23144258d Binary files /dev/null and b/Review-Images/account-role-permission.png differ diff --git a/Review-Images/home.png b/Review-Images/home.png index 800a6b627dda844bc975cb32cd7ba292d160d835..d23195f6b01efc0139ab75a4604946ca025b2f44 100644 Binary files a/Review-Images/home.png and b/Review-Images/home.png differ diff --git a/Review-Images/login.png b/Review-Images/login.png index 0834c88643dc1df54e398a6689c5b770f5a3a13e..9b60956ceee7b0fabe3124f770bd17a9f76b9d94 100644 Binary files a/Review-Images/login.png and b/Review-Images/login.png differ diff --git a/Review-Images/permission-detail.png b/Review-Images/permission-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..10fe29fd2344af514173c6572d0b88db22ca71f1 Binary files /dev/null and b/Review-Images/permission-detail.png differ diff --git a/Review-Images/staff-check-page.png b/Review-Images/staff-check-page.png index 80568551003b8f35fbbf074ba755cfb7f17a90cb..c3fd055645c5a8b3e2daa05fe4342115487339a3 100644 Binary files a/Review-Images/staff-check-page.png and b/Review-Images/staff-check-page.png differ diff --git a/Review-Images/staff-detail-page-english-verison.png b/Review-Images/staff-detail-page-english-verison.png index b733f728942da88741f6f113c52da37c147081cc..d97008f11ad88d44c0249854e50a095bb3e2a4b6 100644 Binary files a/Review-Images/staff-detail-page-english-verison.png and b/Review-Images/staff-detail-page-english-verison.png differ diff --git a/Review-Images/staff-detail-page.png b/Review-Images/staff-detail-page.png index 2688667d36246432d2b1ba43677b475314dede47..31d46c4b9cbc659ef994e6e1905bae1568b1b7ff 100644 Binary files a/Review-Images/staff-detail-page.png and b/Review-Images/staff-detail-page.png differ diff --git a/Review-Images/staff-list-page.png b/Review-Images/staff-list-page.png index 8a762072cdfece4a1de604a082b5c904dedbaaa3..e7e9dd0072a8460e3e51753bba88ff881c858fe6 100644 Binary files a/Review-Images/staff-list-page.png and b/Review-Images/staff-list-page.png differ diff --git a/components.d.ts b/components.d.ts index c4beaf6d5ddfb772475d863af9f3e583297d2858..8ee84d4dcd89224dcb9e2d47f4deb4fdd90796a1 100644 --- a/components.d.ts +++ b/components.d.ts @@ -12,7 +12,11 @@ declare module 'vue' { AAvatar: typeof import('ant-design-vue/es')['Avatar'] AButton: typeof import('ant-design-vue/es')['Button'] ACard: typeof import('ant-design-vue/es')['Card'] + ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] + ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] ACol: typeof import('ant-design-vue/es')['Col'] + ACollapse: typeof import('ant-design-vue/es')['Collapse'] + ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel'] ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] ADescriptions: typeof import('ant-design-vue/es')['Descriptions'] ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem'] @@ -36,10 +40,13 @@ declare module 'vue' { APageHeader: typeof import('ant-design-vue/es')['PageHeader'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] AProgress: typeof import('ant-design-vue/es')['Progress'] + ARadio: typeof import('ant-design-vue/es')['Radio'] ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] + AResult: typeof import('ant-design-vue/es')['Result'] ARow: typeof import('ant-design-vue/es')['Row'] + ASegmented: typeof import('ant-design-vue/es')['Segmented'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] ASkeleton: typeof import('ant-design-vue/es')['Skeleton'] @@ -56,17 +63,28 @@ declare module 'vue' { ATimelineItem: typeof import('ant-design-vue/es')['TimelineItem'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] AUpload: typeof import('ant-design-vue/es')['Upload'] + CaretRightOutlined: typeof import('@ant-design/icons-vue')['CaretRightOutlined'] DeleteOutlined: typeof import('@ant-design/icons-vue')['DeleteOutlined'] EditOutlined: typeof import('@ant-design/icons-vue')['EditOutlined'] EyeOutlined: typeof import('@ant-design/icons-vue')['EyeOutlined'] GlobalNotification: typeof import('./src/components/GlobalNotification.vue')['default'] + GlobalOutlined: typeof import('@ant-design/icons-vue')['GlobalOutlined'] + LinkOutlined: typeof import('@ant-design/icons-vue')['LinkOutlined'] + ListFilter: typeof import('./src/components/common/ListFilter.vue')['default'] LoadingOutlined: typeof import('@ant-design/icons-vue')['LoadingOutlined'] PlusOutlined: typeof import('@ant-design/icons-vue')['PlusOutlined'] + ReloadOutlined: typeof import('@ant-design/icons-vue')['ReloadOutlined'] RetweetOutlined: typeof import('@ant-design/icons-vue')['RetweetOutlined'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SafetyCertificateOutlined: typeof import('@ant-design/icons-vue')['SafetyCertificateOutlined'] + SafetyOutlined: typeof import('@ant-design/icons-vue')['SafetyOutlined'] + SaveOutlined: typeof import('@ant-design/icons-vue')['SaveOutlined'] + SearchOutlined: typeof import('@ant-design/icons-vue')['SearchOutlined'] StopOutlined: typeof import('@ant-design/icons-vue')['StopOutlined'] + SycnOutlined: typeof import('@ant-design/icons-vue')['SycnOutlined'] SyncOutlined: typeof import('@ant-design/icons-vue')['SyncOutlined'] + UndoOutlined: typeof import('@ant-design/icons-vue')['UndoOutlined'] UserOutlined: typeof import('@ant-design/icons-vue')['UserOutlined'] } } diff --git a/package-lock.json b/package-lock.json index bfbded49e282ef33f33f9f6ed2b2870c6f182136..4c6993a43c13ffcfa7c2f8c9bc89cdbb96b0a11e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,9 +11,10 @@ "@akashrajpurohit/snowflake-id": "^2.0.0", "@vueuse/core": "^13.1.0", "ant-design-vue": "^4.2.6", - "axios": "^1.7.9", + "axios": "^1.13.2", "dayjs": "^1.11.10", "echarts": "^5.6.0", + "js-cookie": "^3.0.5", "jwt-decode": "^4.0.0", "less": "^4.2.2", "lodash-es": "^4.17.21", @@ -30,8 +31,9 @@ "eslint": "^8.57.0", "eslint-plugin-vue": "^9.26.0", "prettier": "^3.3.3", + "terser": "^5.44.1", "unplugin-vue-components": "^28.4.1", - "vite": "^6.0.5", + "vite": "^7.3.0", "vite-plugin-commonjs": "^0.10.4" } }, @@ -70,30 +72,30 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmmirror.com/@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.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.28.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.7", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.7.tgz", - "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "version": "7.28.5", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.7" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -103,25 +105,22 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "version": "7.28.4", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.26.7", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.7.tgz", - "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "version": "7.28.5", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -149,9 +148,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", - "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", "cpu": [ "ppc64" ], @@ -166,9 +165,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.3.tgz", - "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", "cpu": [ "arm" ], @@ -183,9 +182,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", - "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", "cpu": [ "arm64" ], @@ -200,9 +199,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.3.tgz", - "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", "cpu": [ "x64" ], @@ -217,9 +216,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", - "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", "cpu": [ "arm64" ], @@ -234,9 +233,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", - "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", "cpu": [ "x64" ], @@ -251,9 +250,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", - "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", "cpu": [ "arm64" ], @@ -268,9 +267,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", - "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", "cpu": [ "x64" ], @@ -285,9 +284,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", - "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", "cpu": [ "arm" ], @@ -302,9 +301,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", - "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", "cpu": [ "arm64" ], @@ -319,9 +318,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", - "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", "cpu": [ "ia32" ], @@ -336,9 +335,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", - "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", "cpu": [ "loong64" ], @@ -353,9 +352,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", - "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", "cpu": [ "mips64el" ], @@ -370,9 +369,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", - "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", "cpu": [ "ppc64" ], @@ -387,9 +386,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", - "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", "cpu": [ "riscv64" ], @@ -404,9 +403,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", - "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", "cpu": [ "s390x" ], @@ -421,9 +420,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", - "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", "cpu": [ "x64" ], @@ -438,9 +437,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", - "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", "cpu": [ "arm64" ], @@ -455,9 +454,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", - "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", "cpu": [ "x64" ], @@ -472,9 +471,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", - "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", "cpu": [ "arm64" ], @@ -489,9 +488,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", - "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", "cpu": [ "x64" ], @@ -505,10 +504,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", - "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", "cpu": [ "x64" ], @@ -523,9 +539,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", - "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", "cpu": [ "arm64" ], @@ -540,9 +556,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", - "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", "cpu": [ "ia32" ], @@ -557,9 +573,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", - "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", "cpu": [ "x64" ], @@ -593,9 +609,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -675,13 +691,13 @@ "license": "BSD-3-Clause" }, "node_modules/@intlify/core-base": { - "version": "9.14.2", - "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.2.tgz", - "integrity": "sha512-DZyQ4Hk22sC81MP4qiCDuU+LdaYW91A6lCjq8AWPvY3+mGMzhGDfOCzvyR6YBQxtlPjFqMoFk9ylnNYRAQwXtQ==", + "version": "9.14.5", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.5.tgz", + "integrity": "sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==", "license": "MIT", "dependencies": { - "@intlify/message-compiler": "9.14.2", - "@intlify/shared": "9.14.2" + "@intlify/message-compiler": "9.14.5", + "@intlify/shared": "9.14.5" }, "engines": { "node": ">= 16" @@ -691,12 +707,12 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "9.14.2", - "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.2.tgz", - "integrity": "sha512-YsKKuV4Qv4wrLNsvgWbTf0E40uRv+Qiw1BeLQ0LAxifQuhiMe+hfTIzOMdWj/ZpnTDj4RSZtkXjJM7JDiiB5LQ==", + "version": "9.14.5", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.5.tgz", + "integrity": "sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==", "license": "MIT", "dependencies": { - "@intlify/shared": "9.14.2", + "@intlify/shared": "9.14.5", "source-map-js": "^1.0.2" }, "engines": { @@ -707,9 +723,9 @@ } }, "node_modules/@intlify/shared": { - "version": "9.14.2", - "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.2.tgz", - "integrity": "sha512-uRAHAxYPeF+G5DBIboKpPgC/Waecd4Jz8ihtkpJQD5ycb5PwXp0k/+hBGl5dAjwF7w+l74kz/PKA8r8OK//RUw==", + "version": "9.14.5", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.5.tgz", + "integrity": "sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==", "license": "MIT", "engines": { "node": ">= 16" @@ -718,12 +734,66 @@ "url": "https://github.com/sponsors/kazupon" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -776,9 +846,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", - "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", "cpu": [ "arm" ], @@ -790,9 +860,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", - "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", "cpu": [ "arm64" ], @@ -804,9 +874,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", - "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", "cpu": [ "arm64" ], @@ -818,9 +888,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", - "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", "cpu": [ "x64" ], @@ -832,9 +902,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", - "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", "cpu": [ "arm64" ], @@ -846,9 +916,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", - "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", "cpu": [ "x64" ], @@ -860,9 +930,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", - "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", "cpu": [ "arm" ], @@ -874,9 +944,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", - "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", "cpu": [ "arm" ], @@ -888,9 +958,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", - "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", "cpu": [ "arm64" ], @@ -902,9 +972,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", - "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", "cpu": [ "arm64" ], @@ -915,10 +985,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", - "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", "cpu": [ "loong64" ], @@ -929,10 +999,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", - "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", "cpu": [ "ppc64" ], @@ -944,9 +1014,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", - "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", "cpu": [ "riscv64" ], @@ -958,9 +1028,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", - "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", "cpu": [ "riscv64" ], @@ -972,9 +1042,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", - "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", "cpu": [ "s390x" ], @@ -986,9 +1056,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", - "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", "cpu": [ "x64" ], @@ -1000,9 +1070,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", - "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", "cpu": [ "x64" ], @@ -1013,10 +1083,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", - "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", "cpu": [ "arm64" ], @@ -1028,9 +1112,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", - "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", "cpu": [ "ia32" ], @@ -1041,10 +1125,24 @@ "win32" ] }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", - "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", "cpu": [ "x64" ], @@ -1066,9 +1164,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, @@ -1086,9 +1184,9 @@ "license": "ISC" }, "node_modules/@vitejs/plugin-vue": { - "version": "5.2.3", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.3.tgz", - "integrity": "sha512-IYSLEQj4LgZZuoVpdSUCw3dIynTWQgPlaRP6iAvMle4My0HdYwr5g5wQAfwOeHQBmYwEkqF70nRpSilr6PoUDg==", + "version": "5.2.4", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", "dev": true, "license": "MIT", "engines": { @@ -1100,53 +1198,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz", - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.22.tgz", + "integrity": "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.13", + "@babel/parser": "^7.28.4", + "@vue/shared": "3.5.22", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz", + "integrity": "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-core": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz", + "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.13", - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13", + "@babel/parser": "^7.28.4", + "@vue/compiler-core": "3.5.22", + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22", "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.48", - "source-map-js": "^1.2.0" + "magic-string": "^0.30.19", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", - "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz", + "integrity": "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-dom": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/devtools-api": { @@ -1171,64 +1269,64 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz", - "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.22.tgz", + "integrity": "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.13" + "@vue/shared": "3.5.22" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz", - "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.22.tgz", + "integrity": "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/reactivity": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", - "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz", + "integrity": "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/runtime-core": "3.5.13", - "@vue/shared": "3.5.13", + "@vue/reactivity": "3.5.22", + "@vue/runtime-core": "3.5.22", + "@vue/shared": "3.5.22", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz", - "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.22.tgz", + "integrity": "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22" }, "peerDependencies": { - "vue": "3.5.13" + "vue": "3.5.22" } }, "node_modules/@vue/shared": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.22.tgz", + "integrity": "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==", "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "13.1.0", - "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-13.1.0.tgz", - "integrity": "sha512-PAauvdRXZvTWXtGLg8cPUFjiZEddTqmogdwYpnn60t08AA5a8Q4hZokBnpTOnVNqySlFlTcRYIC8OqreV4hv3Q==", + "version": "13.9.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.21", - "@vueuse/metadata": "13.1.0", - "@vueuse/shared": "13.1.0" + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1238,18 +1336,18 @@ } }, "node_modules/@vueuse/metadata": { - "version": "13.1.0", - "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-13.1.0.tgz", - "integrity": "sha512-+TDd7/a78jale5YbHX9KHW3cEDav1lz1JptwDvep2zSG8XjCsVE+9mHIzjTOaPbHUAk5XiE4jXLz51/tS+aKQw==", + "version": "13.9.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "13.1.0", - "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-13.1.0.tgz", - "integrity": "sha512-IVS/qRRjhPTZ6C2/AM3jieqXACGwFZwWTdw5sNTSKk2m/ZpkuuN+ri+WCVUP8TqaKwJYt/KuMwmXspMAw8E6ew==", + "version": "13.9.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" @@ -1259,9 +1357,9 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -1404,13 +1502,13 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -1465,6 +1563,26 @@ "node": ">=8" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", @@ -1517,6 +1635,19 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", @@ -1549,6 +1680,13 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/compute-scroll-into-view": { "version": "1.0.20", "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", @@ -1563,9 +1701,9 @@ "license": "MIT" }, "node_modules/confbox": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.1.tgz", - "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==", + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", "dev": true, "license": "MIT" }, @@ -1582,9 +1720,9 @@ } }, "node_modules/core-js": { - "version": "3.40.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.40.0.tgz", - "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", + "version": "3.46.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.46.0.tgz", + "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -1627,15 +1765,15 @@ "license": "MIT" }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "version": "1.11.19", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -1691,6 +1829,20 @@ "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==", "license": "MIT" }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/echarts": { "version": "5.6.0", "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz", @@ -1701,12 +1853,6 @@ "zrender": "5.6.1" } }, - "node_modules/echarts/node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "license": "0BSD" - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", @@ -1732,17 +1878,62 @@ "errno": "cli.js" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { - "version": "0.25.3", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.3.tgz", - "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1753,31 +1944,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.3", - "@esbuild/android-arm": "0.25.3", - "@esbuild/android-arm64": "0.25.3", - "@esbuild/android-x64": "0.25.3", - "@esbuild/darwin-arm64": "0.25.3", - "@esbuild/darwin-x64": "0.25.3", - "@esbuild/freebsd-arm64": "0.25.3", - "@esbuild/freebsd-x64": "0.25.3", - "@esbuild/linux-arm": "0.25.3", - "@esbuild/linux-arm64": "0.25.3", - "@esbuild/linux-ia32": "0.25.3", - "@esbuild/linux-loong64": "0.25.3", - "@esbuild/linux-mips64el": "0.25.3", - "@esbuild/linux-ppc64": "0.25.3", - "@esbuild/linux-riscv64": "0.25.3", - "@esbuild/linux-s390x": "0.25.3", - "@esbuild/linux-x64": "0.25.3", - "@esbuild/netbsd-arm64": "0.25.3", - "@esbuild/netbsd-x64": "0.25.3", - "@esbuild/openbsd-arm64": "0.25.3", - "@esbuild/openbsd-x64": "0.25.3", - "@esbuild/sunos-x64": "0.25.3", - "@esbuild/win32-arm64": "0.25.3", - "@esbuild/win32-ia32": "0.25.3", - "@esbuild/win32-x64": "0.25.3" + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" } }, "node_modules/escape-string-regexp": { @@ -1917,19 +2109,6 @@ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -1960,19 +2139,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", @@ -2044,9 +2210,9 @@ } }, "node_modules/exsolve": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.4.tgz", - "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==", + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.7.tgz", + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", "dev": true, "license": "MIT" }, @@ -2081,6 +2247,19 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2171,9 +2350,9 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "version": "1.15.11", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "funding": [ { "type": "individual", @@ -2191,13 +2370,15 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "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": { @@ -2226,6 +2407,52 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", @@ -2249,16 +2476,16 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/globals": { @@ -2277,6 +2504,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2301,6 +2540,45 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -2461,6 +2739,15 @@ "dev": true, "license": "ISC" }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2521,9 +2808,9 @@ } }, "node_modules/less": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/less/-/less-4.2.2.tgz", - "integrity": "sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==", + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/less/-/less-4.4.2.tgz", + "integrity": "sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==", "license": "Apache-2.0", "dependencies": { "copy-anything": "^2.0.1", @@ -2534,7 +2821,7 @@ "lessc": "bin/lessc" }, "engines": { - "node": ">=6" + "node": ">=14" }, "optionalDependencies": { "errno": "^0.1.1", @@ -2561,15 +2848,15 @@ } }, "node_modules/local-pkg": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.1.tgz", - "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", "dev": true, "license": "MIT", "dependencies": { "mlly": "^1.7.4", - "pkg-types": "^2.0.1", - "quansync": "^0.2.8" + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" }, "engines": { "node": ">=14" @@ -2626,12 +2913,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/make-dir": { @@ -2648,6 +2935,25 @@ "node": ">=6" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", @@ -2726,16 +3032,16 @@ "license": "MIT" }, "node_modules/mlly": { - "version": "1.7.4", - "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.4.tgz", - "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.14.0", - "pathe": "^2.0.1", - "pkg-types": "^1.3.0", - "ufo": "^1.5.4" + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" } }, "node_modules/mlly/node_modules/confbox": { @@ -2765,9 +3071,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -2984,21 +3290,21 @@ } }, "node_modules/pkg-types": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.1.0.tgz", - "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", "dev": true, "license": "MIT", "dependencies": { - "confbox": "^0.2.1", - "exsolve": "^1.0.1", + "confbox": "^0.2.2", + "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.6", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -3015,7 +3321,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3100,9 +3406,9 @@ } }, "node_modules/quansync": { - "version": "0.2.10", - "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.10.tgz", - "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", "dev": true, "funding": [ { @@ -3150,12 +3456,6 @@ "node": ">=8.10.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -3201,13 +3501,13 @@ } }, "node_modules/rollup": { - "version": "4.40.1", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.40.1.tgz", - "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", + "version": "4.52.5", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -3217,26 +3517,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.1", - "@rollup/rollup-android-arm64": "4.40.1", - "@rollup/rollup-darwin-arm64": "4.40.1", - "@rollup/rollup-darwin-x64": "4.40.1", - "@rollup/rollup-freebsd-arm64": "4.40.1", - "@rollup/rollup-freebsd-x64": "4.40.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", - "@rollup/rollup-linux-arm-musleabihf": "4.40.1", - "@rollup/rollup-linux-arm64-gnu": "4.40.1", - "@rollup/rollup-linux-arm64-musl": "4.40.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", - "@rollup/rollup-linux-riscv64-gnu": "4.40.1", - "@rollup/rollup-linux-riscv64-musl": "4.40.1", - "@rollup/rollup-linux-s390x-gnu": "4.40.1", - "@rollup/rollup-linux-x64-gnu": "4.40.1", - "@rollup/rollup-linux-x64-musl": "4.40.1", - "@rollup/rollup-win32-arm64-msvc": "4.40.1", - "@rollup/rollup-win32-ia32-msvc": "4.40.1", - "@rollup/rollup-win32-x64-msvc": "4.40.1", + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", "fsevents": "~2.3.2" } }, @@ -3288,13 +3590,16 @@ } }, "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.7.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, "license": "ISC", - "optional": true, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/shallow-equal": { @@ -3330,8 +3635,8 @@ "version": "0.6.1", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, "license": "BSD-3-Clause", - "optional": true, "engines": { "node": ">=0.10.0" } @@ -3345,6 +3650,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3372,9 +3688,9 @@ } }, "node_modules/stylis": { - "version": "4.3.5", - "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.5.tgz", - "integrity": "sha512-K7npNOKGRYuhAFFzkzMGfxFDpN6gDwf8hcMiE+uveTVbBgm93HrNP3ZDUpKqzZ4pG7TP6fmb+EMAQPjq9FqqvA==", + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "license": "MIT" }, "node_modules/supports-color": { @@ -3406,6 +3722,25 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "dev": true, + "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/text-table": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", @@ -3423,14 +3758,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "version": "0.2.15", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -3440,11 +3775,14 @@ } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -3455,9 +3793,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3481,9 +3819,9 @@ } }, "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, "node_modules/type-check": { @@ -3513,20 +3851,22 @@ } }, "node_modules/ufo": { - "version": "1.5.4", - "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz", - "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", "dev": true, "license": "MIT" }, "node_modules/unplugin": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-2.2.1.tgz", - "integrity": "sha512-Q0YDhwViJaSnHf1cxLf+/VKhmfdr/ZAS/RL2GQVO0cAbAfJAVUef2bvNu+veyWcEPNwsTlFmMiFLjf8Xeqog8g==", + "version": "2.3.10", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-2.3.10.tgz", + "integrity": "sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.14.1", + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" }, "engines": { @@ -3534,14 +3874,14 @@ } }, "node_modules/unplugin-utils": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.4.tgz", - "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.5.tgz", + "integrity": "sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==", "dev": true, "license": "MIT", "dependencies": { - "pathe": "^2.0.2", - "picomatch": "^4.0.2" + "pathe": "^2.0.3", + "picomatch": "^4.0.3" }, "engines": { "node": ">=18.12.0" @@ -3551,9 +3891,9 @@ } }, "node_modules/unplugin-utils/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3564,19 +3904,19 @@ } }, "node_modules/unplugin-vue-components": { - "version": "28.4.1", - "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-28.4.1.tgz", - "integrity": "sha512-niGSc0vJD9ueAnsqcfAldmtpkppZ09B6p2G1dL7X5S8KPdgbk1P+txPwaaDCe7N+eZh2VG1aAypLXkuJs3OSUg==", + "version": "28.8.0", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-28.8.0.tgz", + "integrity": "sha512-2Q6ZongpoQzuXDK0ZsVzMoshH0MWZQ1pzVL538G7oIDKRTVzHjppBDS8aB99SADGHN3lpGU7frraCG6yWNoL5Q==", "dev": true, "license": "MIT", "dependencies": { "chokidar": "^3.6.0", - "debug": "^4.4.0", - "local-pkg": "^1.0.0", + "debug": "^4.4.1", + "local-pkg": "^1.1.1", "magic-string": "^0.30.17", "mlly": "^1.7.4", - "tinyglobby": "^0.2.12", - "unplugin": "^2.2.0", + "tinyglobby": "^0.2.14", + "unplugin": "^2.3.5", "unplugin-utils": "^0.2.4" }, "engines": { @@ -3587,7 +3927,7 @@ }, "peerDependencies": { "@babel/parser": "^7.15.8", - "@nuxt/kit": "^3.2.2", + "@nuxt/kit": "^3.2.2 || ^4.0.0", "vue": "2 || 3" }, "peerDependenciesMeta": { @@ -3599,6 +3939,19 @@ } } }, + "node_modules/unplugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", @@ -3617,24 +3970,24 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.3.4", - "resolved": "https://registry.npmmirror.com/vite/-/vite-6.3.4.tgz", - "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", + "version": "7.3.0", + "resolved": "https://registry.npmmirror.com/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -3643,14 +3996,14 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", - "less": "*", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" @@ -3717,11 +4070,14 @@ } }, "node_modules/vite/node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -3732,9 +4088,9 @@ } }, "node_modules/vite/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -3745,16 +4101,16 @@ } }, "node_modules/vue": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz", - "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "version": "3.5.22", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.22.tgz", + "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-sfc": "3.5.13", - "@vue/runtime-dom": "3.5.13", - "@vue/server-renderer": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-sfc": "3.5.22", + "@vue/runtime-dom": "3.5.22", + "@vue/server-renderer": "3.5.22", + "@vue/shared": "3.5.22" }, "peerDependencies": { "typescript": "*" @@ -3835,27 +4191,14 @@ "eslint": ">=6.0.0" } }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/vue-i18n": { - "version": "9.14.2", - "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.2.tgz", - "integrity": "sha512-JK9Pm80OqssGJU2Y6F7DcM8RFHqVG4WkuCqOZTVsXkEzZME7ABejAUqUdA931zEBedc4thBgSUWxeQh4uocJAQ==", + "version": "9.14.5", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.5.tgz", + "integrity": "sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==", "license": "MIT", "dependencies": { - "@intlify/core-base": "9.14.2", - "@intlify/shared": "9.14.2", + "@intlify/core-base": "9.14.5", + "@intlify/shared": "9.14.5", "@vue/devtools-api": "^6.5.0" }, "engines": { @@ -3869,9 +4212,9 @@ } }, "node_modules/vue-router": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz", - "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", + "version": "4.6.3", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.3.tgz", + "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" @@ -3880,7 +4223,7 @@ "url": "https://github.com/sponsors/posva" }, "peerDependencies": { - "vue": "^3.2.0" + "vue": "^3.5.0" } }, "node_modules/vue-types": { @@ -3978,12 +4321,6 @@ "dependencies": { "tslib": "2.3.0" } - }, - "node_modules/zrender/node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "license": "0BSD" } } } diff --git a/package.json b/package.json index 27d27a910b03fa5696ab7be35e46847f1e392dc8..0ede05180a4c335dc520b18e4494da2218895866 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,10 @@ "@akashrajpurohit/snowflake-id": "^2.0.0", "@vueuse/core": "^13.1.0", "ant-design-vue": "^4.2.6", - "axios": "^1.7.9", + "axios": "^1.13.2", "dayjs": "^1.11.10", "echarts": "^5.6.0", + "js-cookie": "^3.0.5", "jwt-decode": "^4.0.0", "less": "^4.2.2", "lodash-es": "^4.17.21", @@ -30,12 +31,13 @@ "devDependencies": { "@ant-design/icons-vue": "^7.0.1", "@vitejs/plugin-vue": "^5.2.1", - "unplugin-vue-components": "^28.4.1", - "vite": "^6.0.5", - "vite-plugin-commonjs": "^0.10.4", + "@vue/eslint-config-prettier": "^9.0.0", "eslint": "^8.57.0", "eslint-plugin-vue": "^9.26.0", - "@vue/eslint-config-prettier": "^9.0.0", - "prettier": "^3.3.3" + "prettier": "^3.3.3", + "terser": "^5.44.1", + "unplugin-vue-components": "^28.4.1", + "vite": "^7.3.0", + "vite-plugin-commonjs": "^0.10.4" } } diff --git a/src/App.vue b/src/App.vue index 5578736d8451a9918d7f5e21342a1c66fce8e26f..4960fc7c1c1fa64ca7c126657680d2bf5e24036b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,12 +1,17 @@ + + diff --git a/src/components/common/filterConfigBuilder.js b/src/components/common/filterConfigBuilder.js new file mode 100644 index 0000000000000000000000000000000000000000..8fa70fb205a7c8ad8debcb2ba4a8b61ebc44229a --- /dev/null +++ b/src/components/common/filterConfigBuilder.js @@ -0,0 +1,96 @@ +import { dateFieldConfig } from "@/config/dateFields"; +import { BaseFields } from "@/common.entity"; + +const BASE_EXCLUDE = new Set([ + BaseFields.ID, + BaseFields.IGNOREPAGING, + BaseFields.IS_DELETED, + BaseFields.USER_TOKEN, + BaseFields.MODIFYSTATUS, + BaseFields.PAGE, + BaseFields.PAGE_SIZE, +]); + +const isBooleanField = (name) => { + const upper = name.toUpperCase(); + if (upper.startsWith("IS")) return true; + return ["ISENABLE", "IS_DELETED", "IGNOREPAGING"].includes(upper); +}; + +const isDateFieldWithTime = (name) => + (dateFieldConfig.WITH_TIME || []).includes(name); +const isDateFieldWithoutTime = (name) => + (dateFieldConfig.WITHOUT_TIME || []).includes(name); + +const inferType = (name, optionsMap, defaultDateMode) => { + if (optionsMap && optionsMap[name]) return "select"; + if (isBooleanField(name)) return "boolean"; + if (isDateFieldWithTime(name) || isDateFieldWithoutTime(name)) { + return defaultDateMode === "single" ? "date" : "date-range"; + } + return "text"; +}; + +const defaultLabelFor = (name) => name; + +/** + * 构建通用列表过滤配置 + * 输入 entityFields 和 columns(通过 entity.getColumns(t) 生成),自动推断控件类型与标签 + * 可通过 optionsMap 为选择控件提供数据;通过 overrides 精细化控制单字段配置 + */ +export function buildFilterConfig( + t, + { + entityFields, + columns = [], + title = t("message.filter"), + optionsMap = {}, + overrides = {}, + defaultDateMode = "range", + }, +) { + const columnTitleMap = {}; + (columns || []).forEach((c) => { + if (c?.dataIndex && c?.title) { + columnTitleMap[c.dataIndex] = + typeof c.title === "function" ? c.title(t) : c.title; + } + }); + + const fields = Object.values(entityFields) + .filter((k) => !BASE_EXCLUDE.has(k)) + .map((name) => { + const override = overrides[name] || {}; + const type = + override.type || inferType(name, optionsMap, defaultDateMode); + const label = + override.label || columnTitleMap[name] || defaultLabelFor(name); + const placeholder = + override.placeholder || + (type === "select" + ? t("message.pleaseSelect") + : t("message.pleaseInput")); + const field = { + name, + type, + label, + placeholder, + }; + if (type === "date-range") { + field.startPlaceholder = t("message.startDate"); + field.endPlaceholder = t("message.endDate"); + } + if (optionsMap && optionsMap[name]) { + field.options = optionsMap[name]; + } + if (override.filterFn) { + field.filterFn = override.filterFn; + } + return field; + }); + + return { + title, + fields, + }; +} diff --git a/src/directives/permission.js b/src/directives/permission.js new file mode 100644 index 0000000000000000000000000000000000000000..d05c1cc2a2cda6c6eef122d5005f6c2c77657994 --- /dev/null +++ b/src/directives/permission.js @@ -0,0 +1,40 @@ +import { getAllowedMenuKeys, getAllowedPerms } from "@/utils/permission"; + +/** + * v-perm 指令:支持菜单键或按钮权限码两种来源 + * - 传入 string 或 string[],例如:v-perm="'system:role:grant'" 或 v-perm="['department.create','department.update']" + * - .all 修饰符表示需要全部命中(默认任意命中其一即可) + */ +function isPermitted(required, needAll = false) { + // 未配置要求时默认放行(方便逐步接入) + if (!required || (Array.isArray(required) && required.length === 0)) + return true; + + // 合并“菜单键集合 + 按钮权限码集合” + const allowedSet = new Set([...getAllowedMenuKeys(), ...getAllowedPerms()]); + + // 首屏或尚未拉取权限列表时(两个集合都为空)默认放行,避免按钮被永久隐藏 + if (allowedSet.size === 0) { + return true; + } + + const reqList = Array.isArray(required) ? required : [required]; + + if (needAll) { + return reqList.every((k) => allowedSet.has(k)); + } + return reqList.some((k) => allowedSet.has(k)); +} + +export default { + beforeMount(el, binding) { + const required = binding.value; + const needAll = !!binding.modifiers.all; + + const permitted = isPermitted(required, needAll); + if (!permitted) { + el.style.display = "none"; + el.setAttribute("data-permission-hidden", "true"); + } + }, +}; diff --git a/src/entities/common.entity.js b/src/entities/common.entity.js index 64bd8a7538c88785f083e1e1cb2fa206da2d21fd..5f55dd48c4c0b3c943ffb3d9248f42979b570f21 100644 --- a/src/entities/common.entity.js +++ b/src/entities/common.entity.js @@ -6,6 +6,7 @@ export const BaseFields = { MODIFYSTATUS: "ModifyStatus", PAGE: "Page", PAGE_SIZE: "PageSize", + VERSION: "RowVersion", }; export const BaseInitialValues = { @@ -16,4 +17,5 @@ export const BaseInitialValues = { [BaseFields.MODIFYSTATUS]: "", [BaseFields.PAGE]: 1, [BaseFields.PAGE_SIZE]: 15, + [BaseFields.VERSION]: 0, }; diff --git a/src/entities/constant.entity.js b/src/entities/constant.entity.js new file mode 100644 index 0000000000000000000000000000000000000000..09016c79fb9e3fba0863f8a1feb946d1a0dbf1b7 --- /dev/null +++ b/src/entities/constant.entity.js @@ -0,0 +1,11 @@ +export const ConstantFields = { + ID: "Id", + NAME: "Name", + DESCRIPTION: "Description", +}; + +export const ConstantInitialValues = { + [ConstantFields.ID]: 0, + [ConstantFields.NAME]: "", + [ConstantFields.DESCRIPTION]: "", +}; diff --git a/src/entities/customer.entity.js b/src/entities/customer.entity.js index cae2a52f1311f136708e11423e36c023dd1648cb..bed94054550e4feaa02501c8e5b3db9e00c58e56 100644 --- a/src/entities/customer.entity.js +++ b/src/entities/customer.entity.js @@ -13,6 +13,7 @@ export const CustomerSpecificFields = { ID_NUMBER: "IdCardNumber", PHONE: "CustomerPhoneNumber", ADDRESS: "CustomerAddress", + DATE_RANGE_DTO: "DateRangeDto", }; export const CustomerFields = { @@ -39,6 +40,11 @@ export const initialFormValues = { [CustomerFields.ID_NUMBER]: "", [CustomerFields.PHONE]: "", [CustomerFields.ADDRESS]: "", + [CustomerFields.DATE_RANGE_DTO]: { + Start: null, + End: null, + Ranges: null, + }, }; export const getColumns = (t) => [ @@ -66,6 +72,8 @@ export const getColumns = (t) => [ title: t("message.customerBirth"), dataIndex: CustomerFields.BIRTH_DATE, key: CustomerFields.BIRTH_DATE, + sorter: (a, b) => + a[CustomerFields.BIRTH_DATE].localeCompare(b[CustomerFields.BIRTH_DATE]), }, { title: t("message.customerType"), @@ -98,6 +106,8 @@ export const getColumns = (t) => [ title: t("message.customerTel"), dataIndex: CustomerFields.PHONE, key: CustomerFields.PHONE, + sorter: (a, b) => + a[CustomerFields.PHONE].localeCompare(b[CustomerFields.PHONE]), }, { title: t("message.customerAddress"), diff --git a/src/entities/department.entity.js b/src/entities/department.entity.js index bede4b20bcb3580943050f54824b771342e7e250..704861a0a4046a12c64f6bedc9b49a90aa81049a 100644 --- a/src/entities/department.entity.js +++ b/src/entities/department.entity.js @@ -9,6 +9,7 @@ export const DepartmentSpecificFields = { LEADERNAME: "LeaderName", PARENT: "ParentDepartmentNumber", PARENTNAME: "ParentDepartmentName", + DATE_RANGE_DTO: "DateRangeDto", }; export const DepartmentFields = { @@ -26,6 +27,11 @@ export const initialFormValues = { [DepartmentFields.LEADERNAME]: "", [DepartmentFields.PARENT]: "", [DepartmentFields.PARENTNAME]: "", + [DepartmentFields.DATE_RANGE_DTO]: { + Start: null, + End: null, + Ranges: null, + }, }; export const getColumns = (t) => [ diff --git a/src/entities/employee.entity.js b/src/entities/employee.entity.js index 4e15779f3a6b8bcb2557f14ed5ee3963875a9197..36b3479942ec61ea393f879a3b65bcb30b019561 100644 --- a/src/entities/employee.entity.js +++ b/src/entities/employee.entity.js @@ -25,6 +25,7 @@ export const EmployeeSpecificFields = { EDUCATIONLEVELNAME: "EducationLevelName", EMAILADDRESS: "EmailAddress", ISENABLE: "IsEnable", + DATE_RANGE_DTO: "DateRangeDto", }; export const EmployeeFields = { @@ -61,6 +62,11 @@ export const initialFormValues = { [EmployeeFields.EDUCATIONLEVELNAME]: "", [EmployeeFields.EMAILADDRESS]: "", [EmployeeFields.ISENABLE]: 0, + [EmployeeFields.DATE_RANGE_DTO]: { + Start: null, + End: null, + Ranges: null, + }, }; export const getColumns = (t) => [ @@ -127,6 +133,11 @@ export const getColumns = (t) => [ dataIndex: EmployeeFields.DEPARTMENTNAME, key: EmployeeFields.DEPARTMENTNAME, }, + { + title: t("message.hireDate"), + dataIndex: EmployeeFields.HIREDATE, + key: EmployeeFields.HIREDATE, + }, { title: t("message.staffPosition"), dataIndex: EmployeeFields.POSITION, @@ -144,11 +155,6 @@ export const getColumns = (t) => [ key: EmployeeFields.POLITICALAFFILIATION, hidden: true, }, - { - title: t("message.staffFace"), - dataIndex: EmployeeFields.POLITICALAFFILIATIONNAME, - key: EmployeeFields.POLITICALAFFILIATIONNAME, - }, { title: t("message.staffCardType"), dataIndex: EmployeeFields.IDCARDTYPE, @@ -160,21 +166,11 @@ export const getColumns = (t) => [ dataIndex: EmployeeFields.IDCARDTYPENAME, key: EmployeeFields.IDCARDTYPENAME, }, - { - title: t("message.staffCardID"), - dataIndex: EmployeeFields.IDCARDNUMBER, - key: EmployeeFields.IDCARDNUMBER, - }, { title: t("message.staffTel"), dataIndex: EmployeeFields.PHONENUMBER, key: EmployeeFields.PHONENUMBER, }, - { - title: t("message.staffAddress"), - dataIndex: EmployeeFields.ADDRESS, - key: EmployeeFields.ADDRESS, - }, { title: t("message.staffEnable"), dataIndex: EmployeeFields.ISENABLE, diff --git a/src/entities/log.entity.js b/src/entities/log.entity.js index 42998db54246701b8f33df35984f7ab6e2ee6530..5566bcbb384a2e4724f1af25be21d1c8ddc56c74 100644 --- a/src/entities/log.entity.js +++ b/src/entities/log.entity.js @@ -12,6 +12,7 @@ export const LogSpecificFields = { LEVELNAME: "LogLevelName", STARTTIME: "StartTime", ENDTIME: "EndTime", + DATE_RANGE_DTO: "DateRangeDto", }; export const LogFields = { @@ -30,6 +31,11 @@ export const initialFormValues = { [LogFields.IPADDRESS]: "", [LogFields.STARTTIME]: null, [LogFields.ENDTIME]: null, + [LogFields.DATE_RANGE_DTO]: { + Start: null, + End: null, + Ranges: null, + }, }; export const getColumns = (t) => [ diff --git a/src/entities/passport.entity.js b/src/entities/passport.entity.js index 79df9f8dbf48c1f0ebfa6b0474b3cc833b3c90af..063351769c74168e7d33b039b17953c9f3b55a78 100644 --- a/src/entities/passport.entity.js +++ b/src/entities/passport.entity.js @@ -21,8 +21,11 @@ export const getColumns = (t) => [ title: t("message.passportNo"), dataIndex: PassportFields.NUMBER, key: PassportFields.NUMBER, - sorter: (a, b) => - a[PassportFields.NUMBER].localeCompare(b[PassportFields.NUMBER]), + sorter: (a, b) => { + const aVal = String(a[PassportFields.NUMBER] || ""); + const bVal = String(b[PassportFields.NUMBER] || ""); + return aVal.localeCompare(bVal); + }, defaultSortOrder: "ascend", }, { diff --git a/src/entities/requestlog.entity.js b/src/entities/requestlog.entity.js index 58101ca1f73f74c298da06a72a7b64504a3517c4..c0d1d6e7152150b3fb4616dcac749ae117f2577d 100644 --- a/src/entities/requestlog.entity.js +++ b/src/entities/requestlog.entity.js @@ -16,6 +16,7 @@ export const LogSpecificFields = { RESPONSESIZE: "ResponseSize", ACTIONNAME: "ActionName", SOFTWAREVERSION: "SoftwareVersion", + DATE_RANGE_DTO: "DateRangeDto", }; export const LogFields = { @@ -39,6 +40,11 @@ export const initialFormValues = { [LogFields.RESPONSESIZE]: null, [LogFields.ACTIONNAME]: "", [LogFields.SOFTWAREVERSION]: "", + [LogFields.DATE_RANGE_DTO]: { + Start: null, + End: null, + Ranges: null, + }, }; export const getColumns = (t) => [ diff --git a/src/entities/reser.entity.js b/src/entities/reser.entity.js index d34c37d4739251788b82e714ec80d8be8365b935..1c4ff2dad0c1bd1d4e56a51321b5c00ca679b336 100644 --- a/src/entities/reser.entity.js +++ b/src/entities/reser.entity.js @@ -5,6 +5,7 @@ export const ReserSpecificFields = { CUSTOMERNAME: "CustomerName", PHONENUMBER: "ReservationPhoneNumber", CHANNEL: "ReservationChannel", + CHANNELDESCRIPTION: "ReservationChannelDescription", ROOMNUMBER: "ReservationRoomNumber", STARTDATE: "ReservationStartDate", ENDDATE: "ReservationEndDate", @@ -49,6 +50,12 @@ export const getColumns = (t) => [ title: t("message.reserChannel"), dataIndex: ReserFields.CHANNEL, key: ReserFields.CHANNEL, + hidden: true, + }, + { + title: t("message.reserChannel"), + dataIndex: ReserFields.CHANNELDESCRIPTION, + key: ReserFields.CHANNELDESCRIPTION, }, { title: t("message.reserRoomNumber"), diff --git a/src/entities/spendinfo.entity.js b/src/entities/spendinfo.entity.js index eb89e9fac095fbb52a9e1994b8d814345e8340fa..25ce35354a83c932a99d13c949fc5ded7ffc6bbd 100644 --- a/src/entities/spendinfo.entity.js +++ b/src/entities/spendinfo.entity.js @@ -14,6 +14,7 @@ export const SpendInfoSpecificFields = { TIME: "ConsumptionTime", STATE: "SettlementStatus", STATE_NAME: "SettlementStatusDescription", + DATE_RANGE_DTO: "DateRangeDto", }; export const SpendInfoFields = { @@ -44,6 +45,11 @@ export const initialFormValues = { [SpendInfoFields.MONEY]: 0, [SpendInfoFields.TIME]: null, [SpendInfoFields.STATE]: SpendState.UNPAID, + [SpendInfoFields.DATE_RANGE_DTO]: { + Start: null, + End: null, + Ranges: null, + }, }; export const getColumns = (t) => [ diff --git a/src/entities/supervision.entity.js b/src/entities/supervision.entity.js index fa312d73d097c2e68c858dae465648452447ef4c..7c8b3e8864cc29d92086e7b8ed6e42791a6ec15b 100644 --- a/src/entities/supervision.entity.js +++ b/src/entities/supervision.entity.js @@ -9,11 +9,6 @@ export const SupervisionSpecificFields = { CHECK_SCORE: "SupervisionScore", CHECK_PERSON: "SupervisionStatistician", CHECK_ADVICE: "SupervisionAdvice", - DATA_INS_USR: "DataInsUsr", - DATA_INS_DATE: "DataInsDate", - DATA_CHG_USR: "DataChgUsr", - DATA_CHG_DATE: "DataChgDate", - IS_DELETE: "isDelete", }; export const SupervisionFields = { diff --git a/src/filters/customer.filter.config.js b/src/filters/customer.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..df1d79b32ab60abd207bec87486f0fcbe75d9502 --- /dev/null +++ b/src/filters/customer.filter.config.js @@ -0,0 +1,62 @@ +import { CustomerFields } from "@/entities/customer.entity"; + +export const getCustomerFilterConfig = (t, customerTypeOptions) => { + return { + title: t("message.customerFilter"), + fields: [ + { + name: CustomerFields.NUMBER, + type: "text", + label: t("message.customerNo"), + placeholder: t("message.pleaseInputCustomerNo"), + }, + { + name: CustomerFields.NAME, + type: "text", + label: t("message.customerName"), + placeholder: t("message.pleaseInputCustomerName"), + }, + { + name: CustomerFields.PHONE, + type: "text", + label: t("message.customerTel"), + placeholder: t("message.pleaseInputCustomerTel"), + }, + { + name: CustomerFields.TYPE, + type: "select", + label: t("message.customerType"), + placeholder: t("message.pleaseSelect"), + options: customerTypeOptions, + }, + { + name: CustomerFields.GENDER, + type: "select", + label: t("message.customerSex"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: 0, label: t("message.female") }, + { value: 1, label: t("message.male") }, + ], + }, + { + name: CustomerFields.DATE_RANGE_DTO, + type: "date-range", + label: t("message.customerBirth"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + if (!itemValue || !itemValue.Start || !itemValue.End) return true; + const itemStart = dayjs(itemValue.Start); + const itemEnd = dayjs(itemValue.End); + // 检查数据范围是否与过滤范围重叠 + return ( + itemStart.isBefore(dayjs(end)) && itemEnd.isAfter(dayjs(start)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/customertype.filter.config.js b/src/filters/customertype.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..1b9a426103fdc5953998e29cf93ee8249912c58f --- /dev/null +++ b/src/filters/customertype.filter.config.js @@ -0,0 +1,15 @@ +import { CustomerTypeFields } from "@/entities/customertype.entity"; + +export const getCustomerTypeFilterConfig = (t) => { + return { + title: t("message.customerTypeFilter"), + fields: [ + { + name: CustomerTypeFields.NAME, + type: "text", + label: t("message.customerTypeName"), + placeholder: t("message.pleaseInputCustomerTypeName"), + }, + ], + }; +}; diff --git a/src/filters/department.filter.config.js b/src/filters/department.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..5de0d6b0eaae74d1cf1e4ec028a96dc293327ba2 --- /dev/null +++ b/src/filters/department.filter.config.js @@ -0,0 +1,52 @@ +import { DepartmentFields } from "@/entities/department.entity"; +import dayjs from "dayjs"; + +export const getDepartmentFilterConfig = ( + t, + departmentOptions, + leaderOptions, +) => { + return { + title: t("message.departmentFilter"), + fields: [ + { + name: DepartmentFields.NAME, + type: "text", + label: t("message.departmentName"), + placeholder: t("message.pleaseInputDepartmentName"), + }, + { + name: DepartmentFields.LEADER, + type: "select", + label: t("message.departmentLeader"), + placeholder: t("message.pleaseSelect"), + options: leaderOptions, + }, + { + name: DepartmentFields.PARENT, + type: "select", + label: t("message.departmentParent"), + placeholder: t("message.pleaseSelect"), + options: departmentOptions, + }, + { + name: DepartmentFields.DATE_RANGE_DTO, + type: "date-range", + label: t("message.departmentDate"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + if (!itemValue || !itemValue.Start || !itemValue.End) return true; + const itemStart = dayjs(itemValue.Start); + const itemEnd = dayjs(itemValue.End); + // 检查数据范围是否与过滤范围重叠 + return ( + itemStart.isBefore(dayjs(end)) && itemEnd.isAfter(dayjs(start)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/employee.filter.config.js b/src/filters/employee.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..7cd3c0d8d7110ef050db8afe22077c1ea34b9620 --- /dev/null +++ b/src/filters/employee.filter.config.js @@ -0,0 +1,78 @@ +import { EmployeeFields } from "@/entities/employee.entity"; +import dayjs from "dayjs"; + +export const getEmployeeFilterConfig = ( + t, + departmentOptions, + positionOptions, +) => { + return { + title: t("message.employeeFilter"), + fields: [ + { + name: EmployeeFields.NAME, + type: "text", + label: t("message.employeeName"), + placeholder: t("message.pleaseInputEmployeeName"), + }, + { + name: EmployeeFields.PHONENUMBER, + type: "text", + label: t("message.phoneNumber"), + placeholder: t("message.pleaseInputPhoneNumber"), + }, + { + name: EmployeeFields.DEPARTMENT, + type: "select", + label: t("message.departmentName"), + placeholder: t("message.pleaseSelect"), + options: departmentOptions, + }, + { + name: EmployeeFields.POSITION, + type: "select", + label: t("message.position"), + placeholder: t("message.pleaseSelect"), + options: positionOptions, + }, + { + name: EmployeeFields.GENDER, + type: "select", + label: t("message.gender"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: 0, label: t("message.female") }, + { value: 1, label: t("message.male") }, + ], + }, + { + name: EmployeeFields.ISENABLE, + type: "select", + label: t("message.status"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: 1, label: t("message.enabled") }, + { value: 0, label: t("message.disabled") }, + ], + }, + { + name: EmployeeFields.DATE_RANGE_DTO, + type: "date-range", + label: t("message.hireDate"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + if (!itemValue || !itemValue.Start || !itemValue.End) return true; + const itemStart = dayjs(itemValue.Start); + const itemEnd = dayjs(itemValue.End); + // 检查数据范围是否与过滤范围重叠 + return ( + itemStart.isBefore(dayjs(end)) && itemEnd.isAfter(dayjs(start)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/energymanagement.filter.config.js b/src/filters/energymanagement.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..bb4dd759b7c9be1b05233ff5aeebb10391b233e0 --- /dev/null +++ b/src/filters/energymanagement.filter.config.js @@ -0,0 +1,42 @@ +import { EnergyManagementFields } from "@/entities/energymanagement.entity"; +import dayjs from "dayjs"; + +export const getEnergyManagementFilterConfig = (t) => { + return { + title: t("message.energyManagementFilter"), + fields: [ + { + name: EnergyManagementFields.ROOMNUMBER, + type: "text", + label: t("message.roomNo"), + placeholder: t("message.pleaseInputRoomNo"), + }, + { + name: EnergyManagementFields.CUSTOMERNUMBER, + type: "text", + label: t("message.custoNo"), + placeholder: t("message.pleaseInputCustomerNo"), + }, + { + name: EnergyManagementFields.STARTDATE, + type: "date", + label: t("message.startDate"), + placeholder: t("message.pleaseSelectDate"), + filterFn: (value, itemValue) => { + if (!value) return true; + return dayjs(itemValue).isSameOrAfter(dayjs(value)); + }, + }, + { + name: EnergyManagementFields.ENDDATE, + type: "date", + label: t("message.endDate"), + placeholder: t("message.pleaseSelectDate"), + filterFn: (value, itemValue) => { + if (!value) return true; + return dayjs(itemValue).isSameOrBefore(dayjs(value)); + }, + }, + ], + }; +}; diff --git a/src/filters/goods.filter.config.js b/src/filters/goods.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..ab48c0ca1db915429eeadafaf36132ce230ce3ac --- /dev/null +++ b/src/filters/goods.filter.config.js @@ -0,0 +1,21 @@ +import { GoodsFields } from "@/entities/goods.entity"; + +export const getGoodsFilterConfig = (t) => { + return { + title: t("message.goodsFilter"), + fields: [ + { + name: GoodsFields.NAME, + type: "text", + label: t("message.goodsName"), + placeholder: t("message.pleaseInputGoodsName"), + }, + { + name: GoodsFields.SPECIFICATION, + type: "text", + label: t("message.goodsSpecification"), + placeholder: t("message.pleaseInputGoodsSpecification"), + }, + ], + }; +}; diff --git a/src/filters/internalfinance.filter.config.js b/src/filters/internalfinance.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..5e2593d9ba77d5e67b284fc94c92b94147b0b33a --- /dev/null +++ b/src/filters/internalfinance.filter.config.js @@ -0,0 +1,49 @@ +import { InternalFinanceFields } from "@/entities/internalfinance.entity"; +import dayjs from "dayjs"; + +export const getInternalFinanceFilterConfig = ( + t, + departmentOptions, + personOptions, +) => { + return { + title: t("message.internalFinanceFilter"), + fields: [ + { + name: InternalFinanceFields.NAME, + type: "text", + label: t("message.internalfinanceName"), + placeholder: t("message.pleaseInputInternalFinanceName"), + }, + { + name: InternalFinanceFields.DEPARTMENT, + type: "select", + label: t("message.internalfinanceDepartment"), + placeholder: t("message.pleaseSelect"), + options: departmentOptions, + }, + { + name: InternalFinanceFields.ACQUIREDBYEMPLOYEE, + type: "select", + label: t("message.internalfinancePerson"), + placeholder: t("message.pleaseSelect"), + options: personOptions, + }, + { + name: InternalFinanceFields.ACQUISITIONDATE, + type: "date-range", + label: t("message.internalfinanceTime"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + const itemDate = dayjs(itemValue); + return ( + itemDate.isAfter(dayjs(start)) && itemDate.isBefore(dayjs(end)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/log.filter.config.js b/src/filters/log.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..1ab9e658dfe81d2892c9573e4f3a386f780ae0a1 --- /dev/null +++ b/src/filters/log.filter.config.js @@ -0,0 +1,48 @@ +import { LogFields } from "@/entities/log.entity"; +import dayjs from "dayjs"; + +export const getLogFilterConfig = (t) => { + return { + title: t("message.logFilter"), + fields: [ + { + name: LogFields.ACCOUNT, + type: "text", + label: t("message.operationAccount"), + placeholder: t("message.pleaseInputOperationAccount"), + }, + { + name: LogFields.LEVEL, + type: "select", + label: t("message.logLevel"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: 100, label: t("message.normal") }, + { value: 200, label: t("message.warning") }, + { value: 300, label: t("message.error") }, + ], + }, + { + name: LogFields.IPADDRESS, + type: "text", + label: t("message.ipAddress"), + placeholder: t("message.pleaseInputIpAddress"), + }, + { + name: LogFields.DATE_RANGE_DTO, + type: "date-range", + label: t("message.operationTime"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + const itemDate = dayjs(itemValue); + return ( + itemDate.isAfter(dayjs(start)) && itemDate.isBefore(dayjs(end)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/nation.filter.config.js b/src/filters/nation.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..8f8e891ee1cf5cd73c391113cc73a2260455eca3 --- /dev/null +++ b/src/filters/nation.filter.config.js @@ -0,0 +1,15 @@ +import { NationFields } from "@/entities/nation.entity"; + +export const getNationFilterConfig = (t) => { + return { + title: t("message.nationFilter"), + fields: [ + { + name: NationFields.NAME, + type: "text", + label: t("message.nationName"), + placeholder: t("message.pleaseInputNationName"), + }, + ], + }; +}; diff --git a/src/filters/noticetype.filter.config.js b/src/filters/noticetype.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..a8cedf11e5d49fa08be4680a37f70a3d3316d3e3 --- /dev/null +++ b/src/filters/noticetype.filter.config.js @@ -0,0 +1,15 @@ +import { NoticeTypeFields } from "@/entities/noticetype.entity"; + +export const getNoticeTypeFilterConfig = (t) => { + return { + title: t("message.noticeTypeFilter"), + fields: [ + { + name: NoticeTypeFields.NAME, + type: "text", + label: t("message.noticeTypeName"), + placeholder: t("message.pleaseInputNoticeTypeName"), + }, + ], + }; +}; diff --git a/src/filters/passport.filter.config.js b/src/filters/passport.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..e35bb7ed509dd2730f59e42ea7344c092a240a52 --- /dev/null +++ b/src/filters/passport.filter.config.js @@ -0,0 +1,15 @@ +import { PassportFields } from "@/entities/passport.entity"; + +export const getPassportFilterConfig = (t) => { + return { + title: t("message.passportFilter"), + fields: [ + { + name: PassportFields.NAME, + type: "text", + label: t("message.passportName"), + placeholder: t("message.pleaseInputPassportName"), + }, + ], + }; +}; diff --git a/src/filters/position.filter.config.js b/src/filters/position.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..2ba9165eabdbf48d3c38622585d3daca449f28cc --- /dev/null +++ b/src/filters/position.filter.config.js @@ -0,0 +1,15 @@ +import { PositionFields } from "@/entities/position.entity"; + +export const getPositionFilterConfig = (t) => { + return { + title: t("message.positionFilter"), + fields: [ + { + name: PositionFields.NAME, + type: "text", + label: t("message.positionName"), + placeholder: t("message.pleaseInputPositionName"), + }, + ], + }; +}; diff --git a/src/filters/promotioncontent.filter.config.js b/src/filters/promotioncontent.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..5ae6166aae895b98e0d2b02790ef51bd3374a91c --- /dev/null +++ b/src/filters/promotioncontent.filter.config.js @@ -0,0 +1,21 @@ +import { PromotionContentFields } from "@/entities/promotionContent.entity"; + +export const getPromotionContentFilterConfig = (t) => { + return { + title: t("message.promotionContentFilter"), + fields: [ + { + name: PromotionContentFields.NUMBER, + type: "text", + label: t("message.promotionContentNumber"), + placeholder: t("message.pleaseInputPromotionContentNumber"), + }, + { + name: PromotionContentFields.MESSAGE, + type: "text", + label: t("message.promotionContentMessage"), + placeholder: t("message.pleaseInputPromotionContentMessage"), + }, + ], + }; +}; diff --git a/src/filters/qualification.filter.config.js b/src/filters/qualification.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..1bc18c9ad0499df0311821df781d5a9486176a94 --- /dev/null +++ b/src/filters/qualification.filter.config.js @@ -0,0 +1,15 @@ +import { EducationSpecificFields } from "@/entities/qualification.entity"; + +export const getQualificationFilterConfig = (t) => { + return { + title: t("message.qualificationFilter"), + fields: [ + { + name: EducationSpecificFields.NAME, + type: "text", + label: t("message.qualificationName"), + placeholder: t("message.pleaseInputQualificationName"), + }, + ], + }; +}; diff --git a/src/filters/requestlog.filter.config.js b/src/filters/requestlog.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..a3e190701d4b29e6594353591364b8d9f8ccfeb2 --- /dev/null +++ b/src/filters/requestlog.filter.config.js @@ -0,0 +1,49 @@ +import { LogFields } from "@/entities/requestlog.entity"; +import dayjs from "dayjs"; + +export const getRequestLogFilterConfig = (t) => { + return { + title: t("message.requestLogFilter"), + fields: [ + { + name: LogFields.PATH, + type: "text", + label: t("message.path"), + placeholder: t("message.pleaseInputPath"), + }, + { + name: LogFields.METHOD, + type: "select", + label: t("message.method"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: "GET", label: "GET" }, + { value: "POST", label: "POST" }, + { value: "PUT", label: "PUT" }, + { value: "DELETE", label: "DELETE" }, + ], + }, + { + name: LogFields.USERNAME, + type: "text", + label: t("message.userName"), + placeholder: t("message.pleaseInputUserName"), + }, + { + name: LogFields.DATE_RANGE_DTO, + type: "date-range", + label: t("message.requestTime"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + const itemDate = dayjs(itemValue); + return ( + itemDate.isAfter(dayjs(start)) && itemDate.isBefore(dayjs(end)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/reser.filter.config.js b/src/filters/reser.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..e21aedd7a81ddec2540101c1380531c5693ced98 --- /dev/null +++ b/src/filters/reser.filter.config.js @@ -0,0 +1,51 @@ +import { ReserFields } from "@/entities/reser.entity"; +import dayjs from "dayjs"; + +export const getReserFilterConfig = (t, roomOptions, reserTypeOptions) => { + return { + title: t("message.reserFilter"), + fields: [ + { + name: ReserFields.CUSTOMERNAME, + type: "text", + label: t("message.reserCustomerName"), + placeholder: t("message.pleaseInputReserCustomerName"), + }, + { + name: ReserFields.PHONENUMBER, + type: "text", + label: t("message.reserPhoneNumber"), + placeholder: t("message.pleaseInputReserPhoneNumberName"), + }, + { + name: ReserFields.CHANNEL, + type: "select", + label: t("message.reserChannel"), + placeholder: t("message.pleaseInputReserChannel"), + options: reserTypeOptions, + }, + { + name: ReserFields.ROOMNUMBER, + type: "select", + label: t("message.reserRoomNumber"), + placeholder: t("message.pleaseSelect"), + options: roomOptions, + }, + { + name: ReserFields.STARTDATE, + type: "date-range", + label: t("message.reserDate"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + const itemDate = dayjs(itemValue); + return ( + itemDate.isAfter(dayjs(start)) && itemDate.isBefore(dayjs(end)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/room.filter.config.js b/src/filters/room.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..e9a9756f3c31394746745db09cd255c63ed1ef66 --- /dev/null +++ b/src/filters/room.filter.config.js @@ -0,0 +1,41 @@ +import { RoomFields } from "@/entities/room.entity"; + +export const getRoomFilterConfig = (t, roomTypeOptions) => { + return { + title: t("message.roomFilter"), + fields: [ + { + name: RoomFields.NO, + type: "text", + label: t("message.roomNo"), + placeholder: t("message.pleaseInputRoomNo"), + }, + { + name: RoomFields.NAME, + type: "text", + label: t("message.roomName"), + placeholder: t("message.pleaseInputRoomName"), + }, + { + name: RoomFields.TYPE, + type: "select", + label: t("message.roomType"), + placeholder: t("message.pleaseSelect"), + options: roomTypeOptions, + }, + { + name: RoomFields.STATE_ID, + type: "select", + label: t("message.roomState"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: 1, label: t("message.vacant") }, + { value: 2, label: t("message.occupied") }, + { value: 3, label: t("message.maintenance") }, + { value: 4, label: t("message.dirty") }, + { value: 5, label: t("message.reserved") }, + ], + }, + ], + }; +}; diff --git a/src/filters/roomconfig.filter.config.js b/src/filters/roomconfig.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..0b7712e67ad31c574e70692ae1674e0ee09026c6 --- /dev/null +++ b/src/filters/roomconfig.filter.config.js @@ -0,0 +1,15 @@ +import { RoomConfigFields } from "@/entities/roomconfig.entity"; + +export const getRoomConfigFilterConfig = (t) => { + return { + title: t("message.roomConfigFilter"), + fields: [ + { + name: RoomConfigFields.NAME, + type: "text", + label: t("message.roomTypeName"), + placeholder: t("message.pleaseInputRoomTypeName"), + }, + ], + }; +}; diff --git a/src/filters/spendinfo.filter.config.js b/src/filters/spendinfo.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..f13b38957b6ceb2149acf31c7006d72c118a7fde --- /dev/null +++ b/src/filters/spendinfo.filter.config.js @@ -0,0 +1,49 @@ +import { SpendInfoFields } from "@/entities/spendinfo.entity"; + +export const getSpendInfoFilterConfig = (t) => { + return { + title: t("message.spendInfoFilter"), + fields: [ + { + name: SpendInfoFields.CUSTO_NO, + type: "text", + label: t("message.customerNo"), + placeholder: t("message.pleaseInputCustomerNo"), + }, + { + name: SpendInfoFields.NAME, + type: "text", + label: t("message.goodsName"), + placeholder: t("message.pleaseInputSpendName"), + }, + { + name: SpendInfoFields.STATE, + type: "select", + label: t("message.moneyState"), + placeholder: t("message.pleaseSelect"), + options: [ + { value: "UnSettle", label: t("message.unsettled") }, + { value: "Settled", label: t("message.settled") }, + ], + }, + { + name: SpendInfoFields.DATE_RANGE_DTO, + type: "date-range", + label: t("message.consumptionTime"), + startPlaceholder: t("message.startDate"), + endPlaceholder: t("message.endDate"), + filterFn: (value, itemValue, item) => { + if (!value || value.length !== 2) return true; + const [start, end] = value; + if (!itemValue || !itemValue.Start || !itemValue.End) return true; + const itemStart = dayjs(itemValue.Start); + const itemEnd = dayjs(itemValue.End); + // 检查数据范围是否与过滤范围重叠 + return ( + itemStart.isBefore(dayjs(end)) && itemEnd.isAfter(dayjs(start)) + ); + }, + }, + ], + }; +}; diff --git a/src/filters/viprule.filter.config.js b/src/filters/viprule.filter.config.js new file mode 100644 index 0000000000000000000000000000000000000000..3ba7f6a85e491de6788151a78f828abb7cfc536b --- /dev/null +++ b/src/filters/viprule.filter.config.js @@ -0,0 +1,22 @@ +import { VipRuleFields } from "@/entities/viprule.entity"; + +export const getVipRuleFilterConfig = (t, customerTypeOptions) => { + return { + title: t("message.vipRuleFilter"), + fields: [ + { + name: VipRuleFields.NAME, + type: "text", + label: t("message.vipRuleName"), + placeholder: t("message.pleaseInputVipRuleName"), + }, + { + name: VipRuleFields.CUSTOMER_TYPE_ID, + type: "select", + label: t("message.vipRuleCustomerType"), + placeholder: t("message.pleaseSelect"), + options: customerTypeOptions, + }, + ], + }; +}; diff --git a/src/i18n.js b/src/i18n.js index e2fda43c7649d1a625d0cb13315224ae400508e4..615a6b0d5681e582cfcbf22f9787d3d8594f3d49 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -36,6 +36,9 @@ const messages = { avatarUpdateSuccess: "Avatar Update Success", uploadImageOnly: "Only image format is supported", imageSizeLimit: "Image size cannot exceed 1MB", + loading: "Loading...", + verifyCsrfTokenFailed: "Failed to verify CSRF Token", + loginExpired: "Login Expired, please login again", uploading: "Uploading...", uploadSuccess: "Upload Success", resetPassword: "Reset Password", @@ -44,23 +47,40 @@ const messages = { addSuccess: "Add Success", updateSuccess: "Update Success", deleteSuccess: "Delete Success", + restoreSuccess: "Restore Success", + restore: "Restore", operationFailed: "Operation Failed", deleteFailed: "Delete Failed", addFailed: "Add Failed", updateFailed: "Update Failed", + filter: "Filter", operationTitle: "Operation Information", pleaseTryAgainLater: "Please try again later", - loginExpired: "Login Expired", pleaseLoginAgain: "Please Login Again", + pleaseSelect: "Please Select", + pleaseSelectDate: "Please Select Date", loginSuccess: "Login Success", welcomeBack: "Welcome Back", loginFailed: "Login Failed", backToHome: "Back to Home Page", + isDeleted: "Is Deleted?", areYouSureToDeleteRecord: "Are you sure to delete this record?", + areYouSureToRestoreRecord: "Are you sure to restore this record?", checkUsernameAndPassword: "Please check username and password", fetchDataFailed: "Fetch Data Failed", - systemName: "TopSky Hotel Management System - Backstage", + systemName: "TopSky Hotel Management System", org: "Easy Open Meta", + invalidCredentials: "Invalid credentials", + noPermission: "No permission", + notFound: "Not Found", + validationFailed: "Validation Failed", + duplicate: "Duplicate Data", + serverError: "Server Error", + networkError: "Network Error", + requestFailed: "Request Failed", + loginExpired: "Login expired, please log in again", + unexpectedError: "An unexpected error occurred", + serverVersion: "Server Version", basic: "Basic Information", finance: "Finance Management", supervisionmanagement: "Supervision Management", @@ -90,6 +110,16 @@ const messages = { materialmanagement: "Material Management", goodsmanagement: "Goods Management", operationmanagement: "Operation Management", + accountpermission: "Account & Permission", + accountPermissionSettings: "Account & Permission Settings", + waittingchoseAdministrator: "Waitting chose Administrator", + rolePermissionDetail: "Role Permission Detail", + assignPermissions: "Assign Permissions", + permissionGranted: "Permission Granted", + permissionAsscialion: "Permission Association", + asscialionAccount: "Association Account", + choseAll: "Chose All", + save: "Save", operationlog: "Operation Log", requestlog: "Request Log", systemmanagement: "System Management", @@ -99,6 +129,21 @@ const messages = { dashboard: "Dashboard", defaultTitle: "Default Title", resetPasswordSuccess: "Reset Password Success", + search: "Search", + reset: "Reset", + startDate: "Start Date", + departmentFilter: "Department Filter", + nationFilter: "Nation Filter", + positionFilter: "Position Filter", + qualificationFilter: "Qualification Filter", + noticeTypeFilter: "Notice Type Filter", + passportFilter: "Passport Type Filter", + promotionContentFilter: "Promotion Content Filter", + internalFinanceFilter: "Internal Finance Filter", + logFilter: "Log Filter", + reserFilter: "Reservation Filter", + employeeFilter: "Employee Filter", + vipRuleFilter: "VIP Rule Filter", pageNotFound: "Page not found", @@ -187,6 +232,10 @@ const messages = { powerUse: "Power Use", recorder: "Recorder", custoNo: "Customer No", + energyManagementFilter: "Energy Management Filter", + useDateRange: "Use Date Range", + startDateStart: "Start Date From", + startDateEnd: "Start Date To", supervisioninfo: "Supervision Information", insertSupervisionInfo: "Create SupervisionInfo", @@ -205,6 +254,9 @@ const messages = { checkScore: "Check Score", checkPerson: "Check Person", checkAdvice: "Check Advice", + supervisionFilter: "Supervision Filter", + dataInsDateStart: "Start Date", + dataInsDateEnd: "End Date", roommanagement: "Room Management", insertRoom: "Create Room", @@ -221,6 +273,9 @@ const messages = { roomState: "Room State", roomPosition: "Room Position", roomType: "Room Type", + roomFilter: "Room Filter", + roomName: "Room Name", + pleaseInputRoomName: "Please input Room Name", roomconfig: "Room Configuration", insertRoomConfig: "Create Room Configuration", @@ -229,6 +284,7 @@ const messages = { pleaseInputRoomTypeName: "Please input Room Type Name", roomTypeCode: "Room Type Code", roomTypeName: "Room Type Name", + roomConfigFilter: "Room Config Filter", viprule: "Vip Rule Management", insertVipRule: "Create Vip Rule", @@ -265,6 +321,7 @@ const messages = { customerAddress: "Customer Address", customerBirth: "Customer Birthday", customerType: "Customer Type", + customerFilter: "Customer Filter", customertype: "Customer Type Management", insertCustomerType: "Create Customer Type", @@ -275,6 +332,8 @@ const messages = { customerTypeNo: "Customer Type No", customerTypeName: "Customer Type Name", customerTypeDiscount: "Customer Type Discount(%)", + discountRange: "Discount range is 0-100", + customerTypeFilter: "Customer Type Filter", customerspend: "Customer Spending Bill", insertSpend: "Create Spending Bill", @@ -292,10 +351,14 @@ const messages = { spendMoney: "Goods Total Price", spendTime: "Spending Time", moneyState: "Spending State", + spendInfoFilter: "Spending Bill Filter", insertStaff: "Create Staff", updateStaff: "Edit Staff", pleaseInputStaffName: "Please input staff name", + pleaseInputEmployeeName: "Please input employee name", + pleaseInputPhoneNumber: "Please input phone number", + pleaseInputHireDate: "Please select hire date", pleaseInputStaffBirthday: "Please input staff birthday", pleaseInputStaffSex: "Please input staff sex", pleaseInputStaffNation: "Please input staff nation", @@ -312,6 +375,9 @@ const messages = { "Please input staff email(Used to receive initial password or reset password)", staffId: "Staff No.", staffName: "Staff Name", + employeeName: "Employee Name", + phoneNumber: "Phone Number", + hireDate: "Hire Date", staffBirthday: "Staff Birthday", staffSex: "Staff Sex", staffNation: "Staff Nation", @@ -333,6 +399,7 @@ const messages = { personalInfo: "Personal Information", rewardPunishmentInfo: "Reward & Punishment Information", checkInfo: "Check Information", + status: "Status", employeeDetail: "Employee Detail", personalInfo: "Personal Information", @@ -364,6 +431,7 @@ const messages = { goodsPrice: "Goods Price", goodsSpecification: "Goods Specification", goodsStock: "Goods Stock", + goodsFilter: "Goods Filter", resermanagement: "Reser Management", insertReser: "Create Reser", @@ -380,6 +448,7 @@ const messages = { reserPhoneNumber: "Phone Number", reserChannel: "Reservation Channel", reserRoomNumber: "Room Number", + reserDate: "Reservation Date", reserStartDate: "Start Date", reserEndDate: "End Date", @@ -432,6 +501,8 @@ const messages = { menuPath: "Menu Path", menuParent: "Menu Parent", menuIcon: "Menu Icon", + permissionNumber: "Permission Number", + permissionName: "Permission Name", promotioncontent: "Promotion Content Management", insertPromotionContent: "Create Promotion Content", @@ -446,6 +517,10 @@ const messages = { operationTime: "Operation Time", logContent: "Log Content", operator: "Operator", + operationAccount: "Operation Account", + ipAddress: "IP Address", + pleaseInputOperationAccount: "Please input operation account", + pleaseInputIpAddress: "Please input IP address", logLevel: "Log Level", softwareVersion: "Software Version", loginIP: "Login IP", @@ -466,6 +541,9 @@ const messages = { softwareVersion: "Software Version", userName: "User Name", exception: "Exception", + requestLogFilter: "Request Log Filter", + requestTimeStart: "Request Start Time", + requestTimeEnd: "Request End Time", daysofStay: "Days of stay", checkInTime: "Check-in Time", @@ -524,6 +602,7 @@ const messages = { unknownGuest: "Unknown Guest", unknownPhoneNo: "Unknown Phone Number", settled: "Settled", + unsettled: "Unsettled", yearConsumption: "Yearly Consumption", consumptionTrend: "Consumption Trend", settledAmount: "Settled Amount", @@ -533,6 +612,10 @@ const messages = { present: "Present", late: "Late", absent: "Absent", + consumptionTime: "Consumption Time", + + pleaseInputPath: "Please input path", + pleaseInputUserName: "Please input user name", }, }, "zh-CN": { @@ -568,6 +651,9 @@ const messages = { avatarUpdateSuccess: "头像更新成功", uploadImageOnly: "仅支持图片格式", imageSizeLimit: "图片大小不能超过 1MB", + loading: "加载中...", + verifyCsrfTokenFailed: "验证CSRF Token失败", + loginExpired: "登录已过期,请重新登录", uploading: "上传中...", uploadSuccess: "上传成功", resetPassword: "重置密码", @@ -576,24 +662,41 @@ const messages = { addSuccess: "添加成功", updateSuccess: "更新成功", deleteSuccess: "删除成功", + restoreSuccess: "恢复成功", + restore: "恢复", operationFailed: "操作失败", deleteFailed: "删除失败", addFailed: "添加失败", updateFailed: "更新失败", operationTitle: "操作信息", pleaseTryAgainLater: "请稍后重试", - loginExpired: "登录过期", pleaseLoginAgain: "请重新登录", + filter: "筛选条件", + pleaseSelect: "请选择", + pleaseSelectDate: "请选择日期", loginSuccess: "登录成功", welcomeBack: "欢迎回来", loginFailed: "登录失败", backToHome: "返回主页", + isDeleted: "已删除?", undefined: "未定义", areYouSureToDeleteRecord: "确定要删除这条记录吗?", + areYouSureToRestoreRecord: "确定要恢复这条记录吗?", checkUsernameAndPassword: "请检查用户名和密码", fetchDataFailed: "获取数据失败", - systemName: "TopSky酒店管理系统 - 后台管理系统", + systemName: "TopSky酒店管理系统", org: "易开元", + invalidCredentials: "无效的凭据", + noPermission: "无权限", + notFound: "未找到", + validationFailed: "验证失败", + duplicate: "重复数据", + serverError: "服务器错误", + networkError: "网络错误", + requestFailed: "请求失败", + loginExpired: "登录已过期,请重新登录", + unexpectedError: "发生了意外错误", + serverVersion: "服务器版本", basic: "基础信息管理", finance: "财务信息管理", supervisionmanagement: "监管统计管理", @@ -626,11 +729,40 @@ const messages = { operationlog: "操作日志", requestlog: "请求日志", systemmanagement: "系统管理", + accountpermission: "账号与权限", + accountPermissionSettings: "账号与权限设置", + waittingchoseAccount: "等待选择账号", + waittingchoseAdministrator: "等待选择管理员", + rolePermissionDetail: "角色权限详情", + assignPermissions: "分配权限", + associatedAdministrators: "关联管理员", + customeraccountpermission: "客户账号权限", + employeeaccountpermission: "员工账号权限", + permissionGranted: "权限已分配", + permissionAsscialion: "权限关联", + asscialionAccount: "关联账号", + choseAll: "全选", + save: "保存", addadmin: "添加管理员", systemmodule: "系统模块", dashboard: "仪表盘", defaultTitle: "默认标题", resetPasswordSuccess: "重置密码成功", + search: "搜索", + reset: "重置", + startDate: "开始日期", + departmentFilter: "部门筛选", + nationFilter: "民族筛选", + positionFilter: "职位筛选", + qualificationFilter: "学历筛选", + noticeTypeFilter: "公告类型筛选", + passportFilter: "证件类型筛选", + promotionContentFilter: "宣传联动内容筛选", + internalFinanceFilter: "内部资产筛选", + logFilter: "日志筛选", + reserFilter: "预订筛选", + employeeFilter: "员工筛选", + vipRuleFilter: "会员规则筛选", pageNotFound: "找不到页面", @@ -719,6 +851,10 @@ const messages = { powerUse: "电资源用量", recorder: "记录员", custoNo: "客户编号", + energyManagementFilter: "水电管理筛选", + useDateRange: "使用日期范围", + startDateStart: "开始日期从", + startDateEnd: "开始日期到", supervisioninfo: "监管情况", insertSupervisionInfo: "添加监管情况", @@ -736,6 +872,9 @@ const messages = { checkScore: "本次评分", checkPerson: "本次监管人员", checkAdvice: "本次监管建议", + supervisionFilter: "监管筛选", + dataInsDateStart: "开始日期", + dataInsDateEnd: "结束日期", roommanagement: "房间管理", insertRoom: "添加房间", @@ -749,6 +888,7 @@ const messages = { roomState: "房间状态", roomPosition: "房间位置", roomType: "房间类型", + roomFilter: "房间筛选", roomconfig: "客房配置", insertRoomConfig: "添加客房配置", @@ -757,6 +897,9 @@ const messages = { pleaseInputRoomTypeName: "请输入客房类型名称", roomTypeCode: "客房类型代码", roomTypeName: "客房类型名称", + roomConfigFilter: "客房配置筛选", + roomName: "房间名称", + pleaseInputRoomName: "请输入房间名称", viprule: "会员规则", insertVipRule: "添加会员规则", @@ -793,6 +936,7 @@ const messages = { customerAddress: "客户地址", customerBirth: "出生日期", customerType: "客户类型", + customerFilter: "客户筛选", customertype: "客户类型管理", insertCustomerType: "添加客户类型", @@ -803,6 +947,8 @@ const messages = { customerTypeNo: "客户类型编号", customerTypeName: "客户类型名称", customerTypeDiscount: "客户类型折扣(%)", + discountRange: "折扣范围为0-100", + customerTypeFilter: "客户类型筛选", customerspend: "客户消费记录", insertSpend: "添加消费记录", @@ -820,10 +966,14 @@ const messages = { spendMoney: "总价", spendTime: "消费日期", moneyState: "付款状态", + spendInfoFilter: "消费账单筛选", insertStaff: "添加员工", updateStaff: "编辑员工", pleaseInputStaffName: "请输入员工姓名", + pleaseInputEmployeeName: "请输入员工姓名", + pleaseInputPhoneNumber: "请输入电话号码", + pleaseInputHireDate: "请选择入职日期", pleaseInputStaffBirthday: "请选择员工出生日期", pleaseInputStaffSex: "请选择员工性别", pleaseInputStaffNation: "请输入员工民族", @@ -839,6 +989,9 @@ const messages = { pleaseInputStaffEmail: "请输入员工邮箱(用于接收初始密码或重置密码)", staffId: "员工编号", staffName: "员工姓名", + employeeName: "员工姓名", + phoneNumber: "电话号码", + hireDate: "入职日期", staffBirthday: "出生日期", staffSex: "性别", staffNation: "民族", @@ -860,6 +1013,7 @@ const messages = { personalInfo: "个人信息", rewardPunishmentInfo: "奖惩信息", checkInfo: "打卡信息", + status: "状态", employeeDetail: "员工详情", personalInfo: "个人信息", @@ -891,6 +1045,7 @@ const messages = { goodsPrice: "商品价格", goodsSpecification: "商品规格", goodsStock: "商品库存", + goodsFilter: "商品筛选", resermanagement: "预约管理", insertReser: "创建预约", @@ -907,6 +1062,7 @@ const messages = { reserPhoneNumber: "电话号码", reserChannel: "预约渠道", reserRoomNumber: "房间号", + reserDate: "预约日期", reserStartDate: "开始日期", reserEndDate: "结束日期", @@ -959,6 +1115,8 @@ const messages = { menuPath: "菜单路径", menuParent: "上级菜单", menuIcon: "菜单图标", + permissionNumber: "权限编码", + permissionName: "权限名称", promotioncontent: "宣传联动内容管理", insertPromotionContent: "创建宣传联动内容", @@ -971,6 +1129,10 @@ const messages = { operationTime: "操作时间", logContent: "日志内容", operator: "操作人", + operationAccount: "操作账号", + ipAddress: "IP地址", + pleaseInputOperationAccount: "请输入操作账号", + pleaseInputIpAddress: "请输入IP地址", logLevel: "日志级别", softwareVersion: "软件版本", loginIP: "登录IP地址", @@ -991,6 +1153,9 @@ const messages = { softwareVersion: "软件版本", userName: "用户名", exception: "异常信息", + requestLogFilter: "请求日志筛选", + requestTimeStart: "请求开始时间", + requestTimeEnd: "请求结束时间", daysofStay: "已住天数", checkInTime: "入住时间", @@ -1017,6 +1182,7 @@ const messages = { todayConsumption: "当日消费", weeklyConsumption: "本周消费", settled: "已结算", + unsettled: "未结算", logisticsOverview: "后勤概览", totalProducts: "商品总数", lowStock: "低库存商品:", @@ -1058,6 +1224,10 @@ const messages = { present: "正常", late: "迟到", absent: "旷工", + consumptionTime: "消费时间", + + pleaseInputPath: "请输入请求路径", + pleaseInputUserName: "请输入用户名", }, }, }; diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 94af890bb426f4c2108ec995b51189274a5eaabc..5b8ad2034c594cb51020fc5f16f067646faccfe5 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -57,7 +57,7 @@ > @@ -67,13 +67,15 @@ - © 2024 {{ $t("message.org") }} {{ $t("message.systemName") }} + © {{ "2024-" + new Date().getFullYear() }} {{ $t("message.org") }} + {{ $t("message.systemName") }} | {{ $t("message.serverVersion") }}: + {{ serverVersion }} @@ -81,6 +83,7 @@ diff --git a/src/views/systemmanagement/AdminTypeManagementView.vue b/src/views/systemmanagement/AdminTypeManagementView.vue index 7d6e5b13cb62b60c160fbbdf275a62283dae9c65..78ab7837601fba43d5ed42321fb71e2d852bdfe0 100644 --- a/src/views/systemmanagement/AdminTypeManagementView.vue +++ b/src/views/systemmanagement/AdminTypeManagementView.vue @@ -6,7 +6,11 @@ @click="refreshData" > {{ $t("message.refreshData") }} - {{ $t("message.insertAdminType") }}