commit 6ebf253598fc800930e97d7dbf17db853f4d1e07 Author: my_ong <429426262@qq.com> Date: Sun Dec 1 19:02:48 2024 +0800 :new: 项目初始化,页面布局待修改完善 diff --git a/README.md b/README.md new file mode 100644 index 0000000..33895ab --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..d19377c --- /dev/null +++ b/package.json @@ -0,0 +1,113 @@ +{ + "name": "iot-front", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite --host 0.0.0.0 --open", + "build": "vue-tsc -b && vite build", + "report": "vue-tsc -b && vite build", + "commit": "git add . && git-cz && git push", + "lint:eslint": "eslint --fix", + "lint:format": "prettier --write --log-level warn \"src/**/*.{js,ts,json,tsx,css,less,vue,html,md}\"", + "lint:stylelint": "stylelint \"**/*.{css,scss,vue,html}\" --fix", + "lint:lint-staged": "lint-staged", + "preview": "vite preview --host 0.0.0.0 --open", + "prepare": "husky" + }, + "dependencies": { + "@ant-design/icons-vue": "^7.0.1", + "@codemirror/lang-java": "^6.0.1", + "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-markdown": "^6.3.0", + "@codemirror/lang-sql": "^6.8.0", + "@codemirror/lang-xml": "^6.1.0", + "@codemirror/language": "^6.10.3", + "@codemirror/theme-one-dark": "^6.1.2", + "@kjgl77/datav-vue3": "^1.7.3", + "@vueuse/core": "^11.1.0", + "@vxe-ui/plugin-export-xlsx": "^4.0.3", + "@vxe-ui/plugin-render-antd": "^4.0.7", + "ant-design-vue": "^4.2.5", + "axios": "^1.7.7", + "codemirror": "^6.0.1", + "dayjs": "^1.11.13", + "echarts": "^5.5.1", + "exceljs": "^4.4.0", + "pinia": "^2.2.4", + "pinia-plugin-persistedstate": "^4.1.1", + "sortablejs": "^1.15.3", + "vue": "^3.5.11", + "vue-codemirror": "^6.1.1", + "vue-echarts": "^7.0.3", + "vue-i18n": "^10.0.4", + "vue-router": "^4.4.5", + "vxe-pc-ui": "^4.2.18", + "vxe-table": "^4.7.86", + "vxe-table-plugin-antd": "^4.0.8", + "xe-utils": "^3.5.31" + }, + "devDependencies": { + "@commitlint/cli": "^19.5.0", + "@commitlint/config-conventional": "^19.5.0", + "@eslint/js": "^9.12.0", + "@types/sortablejs": "^1.15.8", + "@vitejs/plugin-vue": "^5.1.4", + "@vitejs/plugin-vue-jsx": "^4.0.1", + "commitizen": "^4.3.1", + "cz-git": "^1.10.1", + "eslint": "^9.12.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-vue": "^9.28.0", + "globals": "^15.11.0", + "husky": "^9.1.6", + "lint-staged": "^15.2.10", + "pont-engine": "^1.6.3", + "prettier": "^3.3.3", + "rollup-plugin-visualizer": "^5.12.0", + "stylelint": "^16.9.0", + "stylelint-config-html": "^1.1.0", + "stylelint-config-prettier": "^9.0.5", + "stylelint-config-recess-order": "^5.1.1", + "stylelint-config-recommended-scss": "^14.1.0", + "stylelint-config-recommended-vue": "^1.5.0", + "stylelint-config-standard": "^36.0.1", + "typescript": "^5.6.3", + "typescript-eslint": "^8.8.1", + "unplugin-auto-import": "^0.18.3", + "unplugin-vue-components": "^0.27.4", + "vite": "^5.4.8", + "vite-eslint-plugin": "^1.9.2", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-vue-devtools": "^7.4.6", + "vue-tsc": "^2.1.6" + }, + "config": { + "commitizen": { + "path": "node_modules/cz-git" + } + }, + "lint-staged": { + "*.{js,ts}": [ + "eslint --fix", + "prettier --write" + ], + "*.{cjs,json}": [ + "prettier --write" + ], + "*.{vue,html}": [ + "eslint --fix", + "prettier --write", + "stylelint --fix" + ], + "*.{scss,css}": [ + "stylelint --fix", + "prettier --write" + ], + "*.md": [ + "prettier --write" + ] + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..e2add1a --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,7759 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@ant-design/icons-vue': + specifier: ^7.0.1 + version: 7.0.1(vue@3.5.11(typescript@5.6.3)) + '@codemirror/lang-java': + specifier: ^6.0.1 + version: 6.0.1 + '@codemirror/lang-javascript': + specifier: ^6.2.2 + version: 6.2.2 + '@codemirror/lang-json': + specifier: ^6.0.1 + version: 6.0.1 + '@codemirror/lang-markdown': + specifier: ^6.3.0 + version: 6.3.0 + '@codemirror/lang-sql': + specifier: ^6.8.0 + version: 6.8.0(@codemirror/view@6.33.0) + '@codemirror/lang-xml': + specifier: ^6.1.0 + version: 6.1.0 + '@codemirror/language': + specifier: ^6.10.3 + version: 6.10.3 + '@codemirror/theme-one-dark': + specifier: ^6.1.2 + version: 6.1.2 + '@kjgl77/datav-vue3': + specifier: ^1.7.3 + version: 1.7.3(vue@3.5.11(typescript@5.6.3)) + '@vueuse/core': + specifier: ^11.1.0 + version: 11.1.0(vue@3.5.11(typescript@5.6.3)) + '@vxe-ui/plugin-export-xlsx': + specifier: ^4.0.3 + version: 4.0.3 + '@vxe-ui/plugin-render-antd': + specifier: ^4.0.7 + version: 4.0.7 + ant-design-vue: + specifier: ^4.2.5 + version: 4.2.5(vue@3.5.11(typescript@5.6.3)) + axios: + specifier: ^1.7.7 + version: 1.7.7 + codemirror: + specifier: ^6.0.1 + version: 6.0.1(@lezer/common@1.2.1) + dayjs: + specifier: ^1.11.13 + version: 1.11.13 + echarts: + specifier: ^5.5.1 + version: 5.5.1 + exceljs: + specifier: ^4.4.0 + version: 4.4.0 + pinia: + specifier: ^2.2.4 + version: 2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)) + pinia-plugin-persistedstate: + specifier: ^4.1.1 + version: 4.1.1(pinia@2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)))(rollup@4.21.2)(webpack-sources@3.2.3) + sortablejs: + specifier: ^1.15.3 + version: 1.15.3 + vue: + specifier: ^3.5.11 + version: 3.5.11(typescript@5.6.3) + vue-codemirror: + specifier: ^6.1.1 + version: 6.1.1(codemirror@6.0.1(@lezer/common@1.2.1))(vue@3.5.11(typescript@5.6.3)) + vue-echarts: + specifier: ^7.0.3 + version: 7.0.3(@vue/runtime-core@3.5.11)(echarts@5.5.1)(vue@3.5.11(typescript@5.6.3)) + vue-i18n: + specifier: ^10.0.4 + version: 10.0.4(vue@3.5.11(typescript@5.6.3)) + vue-router: + specifier: ^4.4.5 + version: 4.4.5(vue@3.5.11(typescript@5.6.3)) + vxe-pc-ui: + specifier: ^4.2.18 + version: 4.2.18 + vxe-table: + specifier: ^4.7.86 + version: 4.9.10(vue@3.5.11(typescript@5.6.3)) + vxe-table-plugin-antd: + specifier: ^4.0.8 + version: 4.0.8(vxe-table@4.9.10(vue@3.5.11(typescript@5.6.3))) + xe-utils: + specifier: ^3.5.31 + version: 3.5.31 + devDependencies: + '@commitlint/cli': + specifier: ^19.5.0 + version: 19.5.0(@types/node@22.5.3)(typescript@5.6.3) + '@commitlint/config-conventional': + specifier: ^19.5.0 + version: 19.5.0 + '@eslint/js': + specifier: ^9.12.0 + version: 9.12.0 + '@types/sortablejs': + specifier: ^1.15.8 + version: 1.15.8 + '@vitejs/plugin-vue': + specifier: ^5.1.4 + version: 5.1.4(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3)) + '@vitejs/plugin-vue-jsx': + specifier: ^4.0.1 + version: 4.0.1(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3)) + commitizen: + specifier: ^4.3.1 + version: 4.3.1(@types/node@22.5.3)(typescript@5.6.3) + cz-git: + specifier: ^1.10.1 + version: 1.10.1 + eslint: + specifier: ^9.12.0 + version: 9.12.0(jiti@1.21.6) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.12.0(jiti@1.21.6)) + eslint-plugin-prettier: + specifier: ^5.2.1 + version: 5.2.1(@types/eslint@8.56.12)(eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6))(prettier@3.3.3) + eslint-plugin-vue: + specifier: ^9.28.0 + version: 9.28.0(eslint@9.12.0(jiti@1.21.6)) + globals: + specifier: ^15.11.0 + version: 15.11.0 + husky: + specifier: ^9.1.6 + version: 9.1.6 + lint-staged: + specifier: ^15.2.10 + version: 15.2.10 + pont-engine: + specifier: ^1.6.3 + version: 1.6.3 + prettier: + specifier: ^3.3.3 + version: 3.3.3 + rollup-plugin-visualizer: + specifier: ^5.12.0 + version: 5.12.0(rollup@4.21.2) + stylelint: + specifier: ^16.9.0 + version: 16.9.0(typescript@5.6.3) + stylelint-config-html: + specifier: ^1.1.0 + version: 1.1.0(postcss-html@1.7.0)(stylelint@16.9.0(typescript@5.6.3)) + stylelint-config-prettier: + specifier: ^9.0.5 + version: 9.0.5(stylelint@16.9.0(typescript@5.6.3)) + stylelint-config-recess-order: + specifier: ^5.1.1 + version: 5.1.1(stylelint@16.9.0(typescript@5.6.3)) + stylelint-config-recommended-scss: + specifier: ^14.1.0 + version: 14.1.0(postcss@8.4.47)(stylelint@16.9.0(typescript@5.6.3)) + stylelint-config-recommended-vue: + specifier: ^1.5.0 + version: 1.5.0(postcss-html@1.7.0)(stylelint@16.9.0(typescript@5.6.3)) + stylelint-config-standard: + specifier: ^36.0.1 + version: 36.0.1(stylelint@16.9.0(typescript@5.6.3)) + typescript: + specifier: ^5.6.3 + version: 5.6.3 + typescript-eslint: + specifier: ^8.8.1 + version: 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + unplugin-auto-import: + specifier: ^0.18.3 + version: 0.18.3(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(@vueuse/core@11.1.0(vue@3.5.11(typescript@5.6.3)))(rollup@4.21.2)(webpack-sources@3.2.3) + unplugin-vue-components: + specifier: ^0.27.4 + version: 0.27.4(@babel/parser@7.25.6)(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(rollup@4.21.2)(vue@3.5.11(typescript@5.6.3)) + vite: + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.5.3) + vite-eslint-plugin: + specifier: ^1.9.2 + version: 1.9.2(@types/eslint@8.56.12)(eslint@9.12.0(jiti@1.21.6))(rollup@4.21.2)(vite@5.4.8(@types/node@22.5.3)) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@5.4.8(@types/node@22.5.3)) + vite-plugin-vue-devtools: + specifier: ^7.4.6 + version: 7.4.6(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(rollup@4.21.2)(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3)) + vue-tsc: + specifier: ^2.1.6 + version: 2.1.6(typescript@5.6.3) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@ant-design/colors@6.0.0': + resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==} + + '@ant-design/icons-svg@4.4.2': + resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} + + '@ant-design/icons-vue@7.0.1': + resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==} + peerDependencies: + vue: '>=3.0.3' + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-member-expression-to-functions@7.24.8': + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.22.15': + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.25.0': + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-decorators@7.24.7': + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.24.7': + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.25.6': + resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.4': + resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.25.2': + resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + engines: {node: '>=6.9.0'} + + '@babel/standalone@7.25.6': + resolution: {integrity: sha512-Kf2ZcZVqsKbtYhlA7sP0z5A3q5hmCVYMKMWRWNK/5OVwHIve3JY1djVRmIVAx8FMueLIfZGKQDIILK2w8zO4mg==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + engines: {node: '>=6.9.0'} + + '@codemirror/autocomplete@6.18.0': + resolution: {integrity: sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + + '@codemirror/commands@6.6.1': + resolution: {integrity: sha512-iBfKbyIoXS1FGdsKcZmnrxmbc8VcbMrSgD7AVrsnX+WyAYjmUDWvE93dt5D874qS4CCVu4O1JpbagHdXbbLiOw==} + + '@codemirror/lang-css@6.2.1': + resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} + + '@codemirror/lang-html@6.4.9': + resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} + + '@codemirror/lang-java@6.0.1': + resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} + + '@codemirror/lang-javascript@6.2.2': + resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} + + '@codemirror/lang-json@6.0.1': + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + + '@codemirror/lang-markdown@6.3.0': + resolution: {integrity: sha512-lYrI8SdL/vhd0w0aHIEvIRLRecLF7MiiRfzXFZY94dFwHqC9HtgxgagJ8fyYNBldijGatf9wkms60d8SrAj6Nw==} + + '@codemirror/lang-sql@6.8.0': + resolution: {integrity: sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==} + + '@codemirror/lang-xml@6.1.0': + resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} + + '@codemirror/language@6.10.3': + resolution: {integrity: sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==} + + '@codemirror/lint@6.8.1': + resolution: {integrity: sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==} + + '@codemirror/search@6.5.6': + resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} + + '@codemirror/state@6.4.1': + resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + + '@codemirror/theme-one-dark@6.1.2': + resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} + + '@codemirror/view@6.33.0': + resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==} + + '@commitlint/cli@19.5.0': + resolution: {integrity: sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@19.5.0': + resolution: {integrity: sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@19.5.0': + resolution: {integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==} + engines: {node: '>=v18'} + + '@commitlint/ensure@19.5.0': + resolution: {integrity: sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@19.5.0': + resolution: {integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==} + engines: {node: '>=v18'} + + '@commitlint/format@19.5.0': + resolution: {integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@19.5.0': + resolution: {integrity: sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==} + engines: {node: '>=v18'} + + '@commitlint/lint@19.5.0': + resolution: {integrity: sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==} + engines: {node: '>=v18'} + + '@commitlint/load@19.5.0': + resolution: {integrity: sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==} + engines: {node: '>=v18'} + + '@commitlint/message@19.5.0': + resolution: {integrity: sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==} + engines: {node: '>=v18'} + + '@commitlint/parse@19.5.0': + resolution: {integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==} + engines: {node: '>=v18'} + + '@commitlint/read@19.5.0': + resolution: {integrity: sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@19.5.0': + resolution: {integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==} + engines: {node: '>=v18'} + + '@commitlint/rules@19.5.0': + resolution: {integrity: sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@19.5.0': + resolution: {integrity: sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==} + engines: {node: '>=v18'} + + '@commitlint/top-level@19.5.0': + resolution: {integrity: sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==} + engines: {node: '>=v18'} + + '@commitlint/types@19.5.0': + resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} + engines: {node: '>=v18'} + + '@csstools/css-parser-algorithms@3.0.1': + resolution: {integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/css-tokenizer@3.0.1': + resolution: {integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==} + engines: {node: '>=18'} + + '@csstools/media-query-list-parser@3.0.1': + resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/selector-specificity@4.0.0': + resolution: {integrity: sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^6.1.0 + + '@ctrl/tinycolor@3.6.1': + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + + '@dual-bundle/import-meta-resolve@4.1.0': + resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/unitless@0.8.1': + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.6.0': + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.12.0': + resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.0': + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fast-csv/format@4.3.5': + resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==} + + '@fast-csv/parse@4.3.6': + resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} + + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@intlify/core-base@10.0.4': + resolution: {integrity: sha512-GG428DkrrWCMhxRMRQZjuS7zmSUzarYcaHJqG9VB8dXAxw4iQDoKVQ7ChJRB6ZtsCsX3Jse1PEUlHrJiyQrOTg==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@10.0.4': + resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==} + engines: {node: '>= 16'} + + '@intlify/shared@10.0.4': + resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==} + engines: {node: '>= 16'} + + '@jiaminghi/bezier-curve@0.0.9': + resolution: {integrity: sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==} + + '@jiaminghi/c-render@0.4.3': + resolution: {integrity: sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==} + + '@jiaminghi/charts@0.2.18': + resolution: {integrity: sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==} + + '@jiaminghi/color@1.1.3': + resolution: {integrity: sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg==} + + '@jiaminghi/transition@1.1.11': + resolution: {integrity: sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@kjgl77/datav-vue3@1.7.3': + resolution: {integrity: sha512-8zNu2zDXylDS6aL8SNDR7/h4ccO2LnBg/KbTwOeF7p9hqiRW9TR7Zd/e8baYnJPb9tAwYOubzWTQnjUTdtE8dA==} + + '@lezer/common@1.2.1': + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + + '@lezer/css@1.1.8': + resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==} + + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + + '@lezer/html@1.3.10': + resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} + + '@lezer/java@1.1.2': + resolution: {integrity: sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==} + + '@lezer/javascript@1.4.17': + resolution: {integrity: sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==} + + '@lezer/json@1.0.2': + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} + + '@lezer/lr@1.4.2': + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + + '@lezer/markdown@1.3.1': + resolution: {integrity: sha512-DGlzU/i8DC8k0uz1F+jeePrkATl0jWakauTzftMQOcbaMkHbNSRki/4E2tOzJWsVpoKYhe7iTJ03aepdwVUXUA==} + + '@lezer/xml@1.0.5': + resolution: {integrity: sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nuxt/kit@3.13.2': + resolution: {integrity: sha512-KvRw21zU//wdz25IeE1E5m/aFSzhJloBRAQtv+evcFeZvuroIxpIQuUqhbzuwznaUwpiWbmwlcsp5uOWmi4vwA==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@nuxt/schema@3.13.2': + resolution: {integrity: sha512-CCZgpm+MkqtOMDEgF9SWgGPBXlQ01hV/6+2reDEpJuqFPGzV8HYKPBcIFvn7/z5ahtgutHLzjP71Na+hYcqSpw==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.21.2': + resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.21.2': + resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.21.2': + resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.21.2': + resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.21.2': + resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.21.2': + resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-s390x-gnu@4.21.2': + resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.21.2': + resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.21.2': + resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-win32-arm64-msvc@4.21.2': + resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.21.2': + resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.21.2': + resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} + cpu: [x64] + os: [win32] + + '@simonwep/pickr@1.8.2': + resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@translate-tools/core@0.2.16': + resolution: {integrity: sha512-OUxyeLyKutxpB2Qph792IMQUxZ8Rbc3AyWGWo9PMpvFx4lJF5Vx8sd85DM8g6DfjB6EI2ZEt5ljtIUwq1BhYZw==} + + '@types/blueimp-md5@2.18.2': + resolution: {integrity: sha512-dJ9yRry9Olt5GAWlgCtE5dK9d/Dfhn/V7hna86eEO2Pn76+E8Y0S0n61iEUEGhWXXgtKtHxtZLVNwL8X+vLHzg==} + + '@types/conventional-commits-parser@5.0.0': + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + + '@types/eslint@8.56.12': + resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/http-errors@1.8.2': + resolution: {integrity: sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@types/node@22.5.3': + resolution: {integrity: sha512-njripolh85IA9SQGTAqbmnNZTdxv7X/4OYGPz8tgy5JDr8MP+uDBa921GpYEoDDnwm0Hmn5ZPeJgiiSTPoOzkQ==} + + '@types/sortablejs@1.15.8': + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@typescript-eslint/eslint-plugin@8.8.1': + resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.8.1': + resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.8.1': + resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.8.1': + resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.8.1': + resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.8.1': + resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.8.1': + resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.8.1': + resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitalets/google-translate-api@9.2.0': + resolution: {integrity: sha512-w98IPWGuexlGmh8Y19AxF6cgWT0U5JLevVNDKEuFpTWtBC9z3YtDWKTDxF3nPP1k9bWicuB1V7I7YfHoZiDScw==} + engines: {node: '>=14'} + + '@vitejs/plugin-vue-jsx@4.0.1': + resolution: {integrity: sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@5.1.4': + resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@volar/language-core@2.4.1': + resolution: {integrity: sha512-9AKhC7Qn2mQYxj7Dz3bVxeOk7gGJladhWixUYKef/o0o7Bm4an+A3XvmcTHVqZ8stE6lBVH++g050tBtJ4TZPQ==} + + '@volar/source-map@2.4.1': + resolution: {integrity: sha512-Xq6ep3OZg9xUqN90jEgB9ztX5SsTz1yiV8wiQbcYNjWkek+Ie3dc8l7AVt3EhDm9mSIR58oWczHkzM2H6HIsmQ==} + + '@volar/typescript@2.4.1': + resolution: {integrity: sha512-UoRzC0PXcwajFQTu8XxKSYNsWNBtVja6Y9gC8eLv7kYm+UEKJCcZ8g7dialsOYA0HKs3Vpg57MeCsawFLC6m9Q==} + + '@vue/babel-helper-vue-transform-on@1.2.2': + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} + + '@vue/babel-plugin-jsx@1.2.2': + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.2.2': + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.11': + resolution: {integrity: sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg==} + + '@vue/compiler-core@3.5.4': + resolution: {integrity: sha512-oNwn+BAt3n9dK9uAYvI+XGlutwuTq/wfj4xCBaZCqwwVIGtD7D6ViihEbyYZrDHIHTDE3Q6oL3/hqmAyFEy9DQ==} + + '@vue/compiler-core@3.5.7': + resolution: {integrity: sha512-A0gay3lK71MddsSnGlBxRPOugIVdACze9L/rCo5X5srCyjQfZOfYtSFMJc3aOZCM+xN55EQpb4R97rYn/iEbSw==} + + '@vue/compiler-core@3.5.9': + resolution: {integrity: sha512-KE1sCdwqSKq0CQ/ltg3XnlMTKeinjegIkuFsuq9DKvNPmqLGdmI51ChZdGBBRXIvEYTLm8X/JxOuBQ1HqF/+PA==} + + '@vue/compiler-dom@3.5.11': + resolution: {integrity: sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew==} + + '@vue/compiler-dom@3.5.4': + resolution: {integrity: sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw==} + + '@vue/compiler-dom@3.5.7': + resolution: {integrity: sha512-GYWl3+gO8/g0ZdYaJ18fYHdI/WVic2VuuUd1NsPp60DWXKy+XjdhFsDW7FbUto8siYYZcosBGn9yVBkjhq1M8Q==} + + '@vue/compiler-dom@3.5.9': + resolution: {integrity: sha512-gEAURwPo902AsJF50vl59VaWR+Cx6cX9SoqLYHu1jq9hDbmQlXvpZyYNIIbxa2JTJ+FD/oBQweVUwuTQv79KTg==} + + '@vue/compiler-sfc@3.5.11': + resolution: {integrity: sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw==} + + '@vue/compiler-sfc@3.5.9': + resolution: {integrity: sha512-kp9qawcTXakYm0TN6YAwH24IurSywoXh4fWhRbLu0at4UVyo994bhEzJlQn82eiyqtut4GjkQodSfn8drFbpZQ==} + + '@vue/compiler-ssr@3.5.11': + resolution: {integrity: sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA==} + + '@vue/compiler-ssr@3.5.9': + resolution: {integrity: sha512-fb1g2mQv32QzIei76rlXRTz08Grw+ZzBXSQfHo4StGFutm/flyebw3dGJkexKwcU3GjX9s5fIGjEv/cjO8j8Yw==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/devtools-core@7.4.6': + resolution: {integrity: sha512-7ATNPEbVqThOOAp2bg/YUIm9MqqgimbSk24D05hdXUp89JlXX12aTzdrWd9xZRwS78hDR+wCToHl1C/8sopBrg==} + peerDependencies: + vue: ^3.0.0 + + '@vue/devtools-kit@7.4.6': + resolution: {integrity: sha512-NbYBwPWgEic1AOd9bWExz9weBzFdjiIfov0yRn4DrRfR+EQJCI9dn4I0XS7IxYGdkmUJi8mFW42LLk18WsGqew==} + + '@vue/devtools-shared@7.4.6': + resolution: {integrity: sha512-rPeSBzElnHYMB05Cc056BQiJpgocQjY8XVulgni+O9a9Gr9tNXgPteSzFFD+fT/iWMxNuUgGKs9CuW5DZewfIg==} + + '@vue/language-core@2.1.6': + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.11': + resolution: {integrity: sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w==} + + '@vue/runtime-core@3.5.11': + resolution: {integrity: sha512-7PsxFGqwfDhfhh0OcDWBG1DaIQIVOLgkwA5q6MtkPiDFjp5gohVnJEahSktwSFLq7R5PtxDKy6WKURVN1UDbzA==} + + '@vue/runtime-dom@3.5.11': + resolution: {integrity: sha512-GNghjecT6IrGf0UhuYmpgaOlN7kxzQBhxWEn08c/SQDxv1yy4IXI1bn81JgEpQ4IXjRxWtPyI8x0/7TF5rPfYQ==} + + '@vue/server-renderer@3.5.11': + resolution: {integrity: sha512-cVOwYBxR7Wb1B1FoxYvtjJD8X/9E5nlH4VSkJy2uMA1MzYNdzAAB//l8nrmN9py/4aP+3NjWukf9PZ3TeWULaA==} + peerDependencies: + vue: 3.5.11 + + '@vue/shared@3.5.11': + resolution: {integrity: sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ==} + + '@vue/shared@3.5.4': + resolution: {integrity: sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA==} + + '@vue/shared@3.5.7': + resolution: {integrity: sha512-NBE1PBIvzIedxIc2RZiKXvGbJkrZ2/hLf3h8GlS4/sP9xcXEZMFWOazFkNd6aGeUCMaproe5MHVYB3/4AW9q9g==} + + '@vue/shared@3.5.9': + resolution: {integrity: sha512-8wiT/m0mnsLhTME0mPgc57jv+4TipRBSAAmheUdYgiOaO6AobZPNOmm87ub4np65VVDgLcWxc+Edc++5Wyz1uA==} + + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + + '@vueuse/core@11.1.0': + resolution: {integrity: sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg==} + + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} + + '@vueuse/metadata@11.1.0': + resolution: {integrity: sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg==} + + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} + + '@vueuse/shared@11.1.0': + resolution: {integrity: sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w==} + + '@vxe-ui/core@4.0.13': + resolution: {integrity: sha512-DKXHFDOIPzIxF3Pl4VUXDDiMYxqQjrOk2iABZSt8WXDhz3VpZTLegd8EHH353WFPaSIOofBrNbwJi2nffzVihw==} + + '@vxe-ui/core@4.0.18': + resolution: {integrity: sha512-stC7nVz3nqpbMQ5Qc8WtR2zgiByOBS1pXfJb0veGft/gV/EKlAnGZyJpnjgj8tSGEhPV4jSvvJqMddR3FIUpYQ==} + peerDependencies: + vue: ^3.2.0 + + '@vxe-ui/plugin-export-xlsx@4.0.3': + resolution: {integrity: sha512-82xwIQZlIHWHu2dzliwQ6mBud3eNh58JxVINAiXgk5VHHi7SvMnLcbSRcnD9jdPLTHuot0v09US396S8sJZNwQ==} + + '@vxe-ui/plugin-render-antd@4.0.7': + resolution: {integrity: sha512-yK7AtL9xfB2A034NAZF81nPIScMRcz2/HaAv1SA/J/LR0GCzNCdESMbWQTYPo08rOUTOvfhH1Y8FufxgVrFuLw==} + + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + ant-design-vue@4.2.5: + resolution: {integrity: sha512-dh5CBXSaxJZBFQBd156sOUuZPfxI7pZsNXDYpHNBt/JyKZoYlbetRp/nJmSragS2Oo0mVC23Ote+TQSGc0TX6g==} + engines: {node: '>=12.22.0'} + peerDependencies: + vue: '>=3.2.0' + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + + axios@0.23.0: + resolution: {integrity: sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg==} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + baidu-translate@1.3.0: + resolution: {integrity: sha512-Eex1F4dH2As0U/t/9jbYhtBbBPW7O5miavG+kGJ53CW6H3YlEOFu6lIo9g2n/FviuAy+OAstIV62ITNNH4g4/A==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + + birpc@0.2.17: + resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + + blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + c12@1.11.2: + resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==} + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true + + cachedir@2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001655: + resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + codemirror@6.0.1: + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commitizen@4.3.1: + resolution: {integrity: sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==} + engines: {node: '>= 12'} + hasBin: true + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + + compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-commit-types@3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + core-js@3.38.1: + resolution: {integrity: sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig-typescript-loader@5.0.0: + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-functions-list@3.2.2: + resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} + engines: {node: '>=12 || >=16'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + cz-conventional-changelog@3.3.0: + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + + cz-git@1.10.1: + resolution: {integrity: sha512-pBudDYUEqSOgt5cAlAk6BDs/h99lxfiii+1KCxfuVNOgcpn+yz7AejDjdBEJ+XDt7MOeAvcpYW3gi7C7il+IFA==} + engines: {node: '>=v12.20.0'} + + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deep-pick-omit@1.2.1: + resolution: {integrity: sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dom-align@1.12.4: + resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} + + dom-scroll-into-view@2.0.1: + resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + dom-zindex@1.0.6: + resolution: {integrity: sha512-FKWIhiU96bi3xpP9ewRMgANsoVmMUBnMnmpCT6dPMZOunVYJQmJhSRruoI0XSPoHeIif3kyEuiHbFrOJwEJaEA==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + + echarts@5.5.1: + resolution: {integrity: sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==} + + electron-to-chromium@1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser-es@0.1.5: + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-vue@9.28.0: + resolution: {integrity: sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.12.0: + resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + exceljs@4.4.0: + resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==} + engines: {node: '>=8.3.0'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + fast-csv@4.3.6: + resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==} + engines: {node: '>=10.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-entry-cache@9.1.0: + resolution: {integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==} + engines: {node: '>=18'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + + find-node-modules@2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + + findup-sync@4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@5.0.0: + resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + + globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.1.6: + resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + + inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-plain-object@3.0.1: + resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.1.0: + resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + + known-css-properties@0.34.0: + resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@15.2.10: + resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + engines: {node: '>=18.12.0'} + hasBin: true + + listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + engines: {node: '>=18.0.0'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.groupby@4.6.0: + resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isnil@4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isundefined@3.0.1: + resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.map@4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + longest@2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanopop@2.4.2: + resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nypm@0.3.11: + resolution: {integrity: sha512-E5GqaAYSnbb6n1qZyik2wjPDZON43FqOJO59+3OkWrnmQtjggrMOVnsyzfjxp/tS6nlYJBA4zRA5jSM2YaadMg==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pinia-plugin-persistedstate@4.1.1: + resolution: {integrity: sha512-fUiUsbfBetGUZzX28z+ImAZw7FDXzwRrk+fN+ljF5OhQMhsSYfYeUzI9FLLtpjekYbfFHWvJiECkLI60RIuiPA==} + peerDependencies: + '@pinia/nuxt': '>=0.5.0' + pinia: '>=2.0.0' + peerDependenciesMeta: + '@pinia/nuxt': + optional: true + pinia: + optional: true + + pinia@2.2.4: + resolution: {integrity: sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + + pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + + pont-engine@1.6.3: + resolution: {integrity: sha512-598Kw4bid691m/mBwnptlJJ4I8ohIikIX2VCWZEYwtcRIxOxSJJbVm2vLAhcm2leKhTZjGNQSfD1V2xwFDHfDQ==} + hasBin: true + + postcss-html@1.7.0: + resolution: {integrity: sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==} + engines: {node: ^12 || >=14} + + postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + + postcss-resolve-nested-selector@0.1.6: + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} + + postcss-safe-parser@6.0.0: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + + postcss-safe-parser@7.0.0: + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-sorting@8.0.2: + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} + peerDependencies: + postcss: ^8.4.20 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.44: + resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + query-string@6.14.1: + resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} + engines: {node: '>=6'} + + querystring@0.2.1: + resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} + engines: {node: '>=0.4.x'} + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + + rollup@4.21.2: + resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + + scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-equal@1.2.1: + resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + sortablejs@1.15.3: + resolution: {integrity: sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg==} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + + stylelint-config-html@1.1.0: + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + + stylelint-config-prettier@9.0.5: + resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} + engines: {node: '>= 12'} + hasBin: true + peerDependencies: + stylelint: '>= 11.x < 15' + + stylelint-config-recess-order@5.1.1: + resolution: {integrity: sha512-eDAHWVBelzDbMbdMj15pSw0Ycykv5eLeriJdbGCp0zd44yvhgZLI+wyVHegzXp5NrstxTPSxl0fuOVKdMm0XLA==} + peerDependencies: + stylelint: '>=16' + + stylelint-config-recommended-scss@14.1.0: + resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.6.1 + peerDependenciesMeta: + postcss: + optional: true + + stylelint-config-recommended-vue@1.5.0: + resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + + stylelint-config-recommended@14.0.1: + resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + + stylelint-config-standard@36.0.1: + resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + + stylelint-order@6.0.4: + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + + stylelint-scss@6.5.1: + resolution: {integrity: sha512-ZLqdqihm6uDYkrsOeD6YWb+stZI8Wn92kUNDhE4M+g9g1aCnRv0JlOrttFiAJJwaNzpdQgX3YJb5vDQXVuO9Ww==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.2 + + stylelint@16.9.0: + resolution: {integrity: sha512-31Nm3WjxGOBGpQqF43o3wO9L5AC36TPIe6030Lnm13H3vDMTcS21DrLh69bMX+DBilKqMMVLian4iG6ybBoNRQ==} + engines: {node: '>=18.12.0'} + hasBin: true + + stylis@4.3.4: + resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} + + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-hyperlinks@3.1.0: + resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} + engines: {node: '>=14.18'} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + + table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + throttle-debounce@5.0.2: + resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} + engines: {node: '>=12.22'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + translation.js@0.7.15: + resolution: {integrity: sha512-TFgTbvbUY73JXIir3A/MUBDkdlstYOIF3PzpzsC8T5FZVCWrRHtdLeICN0G//GblX3vKCg3cSdCnTovq1/utxw==} + + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + typescript-eslint@8.8.1: + resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.3.1: + resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unimport@3.12.0: + resolution: {integrity: sha512-5y8dSvNvyevsnw4TBQkIQR1Rjdbb+XjVSwQwxltpnVZrStBvvPkMPcZrh1kg5kY77kpx6+D4Ztd3W6FOBH/y2Q==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unplugin-auto-import@0.18.3: + resolution: {integrity: sha512-q3FUtGQjYA2e+kb1WumyiQMjHM27MrTQ05QfVwtLRVhyYe+KF6TblBYaEX9L6Z0EibsqaXAiW+RFfkcQpfaXzg==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + + unplugin-vue-components@0.27.4: + resolution: {integrity: sha512-1XVl5iXG7P1UrOMnaj2ogYa5YTq8aoh5jwDPQhemwO/OrXW+lPQKDXd1hMz15qxQPxgb/XXlbgo3HQ2rLEbmXQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + + unplugin@1.12.3: + resolution: {integrity: sha512-my8DH0/T/Kx33KO+6QXAqdeMYgyy0GktlOpdQjpagfHKw5DrD0ctPr7SHUyOT3g4ZVpzCQGt/qcpuoKJ/pniHA==} + engines: {node: '>=14.0.0'} + + unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + engines: {node: '>=14.0.0'} + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true + + untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} + hasBin: true + + unzipper@0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + + vite-eslint-plugin@1.9.2: + resolution: {integrity: sha512-fWdWkdqNE2lFuf6q4eyNXt3XLT9p7PFGm0fbx4afioGICfTzMKNNmTzjKkGPHOH9c6OzoAJykXAStwIr3ge8EA==} + peerDependencies: + '@types/eslint': '>=7' + eslint: '>=7' + vite: '>=2' + + vite-hot-client@0.2.3: + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + + vite-plugin-inspect@0.8.7: + resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-vue-devtools@7.4.6: + resolution: {integrity: sha512-lOKur3qovCB3BQStL0qfHEoIusqya1ngfxfWuqn9DTa6h9rlw6+S3PV4geOP5YBGYQ4NW1hRX70OD8I+sYr1dA==} + engines: {node: '>=v14.21.3'} + peerDependencies: + vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 + + vite-plugin-vue-inspector@5.2.0: + resolution: {integrity: sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-codemirror@6.1.1: + resolution: {integrity: sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==} + peerDependencies: + codemirror: 6.x + vue: 3.x + + vue-demi@0.13.11: + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-echarts@7.0.3: + resolution: {integrity: sha512-/jSxNwOsw5+dYAUcwSfkLwKPuzTQ0Cepz1LxCOpj2QcHrrmUa/Ql0eQqMmc1rTPQVrh2JQ29n2dhq75ZcHvRDw==} + peerDependencies: + '@vue/runtime-core': ^3.0.0 + echarts: ^5.5.1 + vue: ^2.7.0 || ^3.1.1 + peerDependenciesMeta: + '@vue/runtime-core': + optional: true + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-i18n@10.0.4: + resolution: {integrity: sha512-1xkzVxqBLk2ZFOmeI+B5r1J7aD/WtNJ4j9k2mcFcQo5BnOmHBmD7z4/oZohh96AAaRZ4Q7mNQvxc9h+aT+Md3w==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + + vue-router@4.4.5: + resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==} + peerDependencies: + vue: ^3.2.0 + + vue-tsc@2.1.6: + resolution: {integrity: sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue-types@3.0.2: + resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==} + engines: {node: '>=10.15.0'} + peerDependencies: + vue: ^3.0.0 + + vue@3.5.11: + resolution: {integrity: sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vxe-pc-ui@4.2.18: + resolution: {integrity: sha512-OfS3h7YitqwGCk4ILMUyFTBEtXnv3DnTvT7R2DYjG9O1fr6tY2EbRfnpaMMKUCfSHbq/7AyOJJNJz7/g6u8ucw==} + + vxe-pc-ui@4.3.10: + resolution: {integrity: sha512-XvB1FiD32o4ePoSi75cJgyLUUnZgMR0PmYVuXvp83UCanPHfRwdHVwKJOR3AYvZ8+OFoIMZle5hetO3SxsOwXg==} + + vxe-table-plugin-antd@4.0.8: + resolution: {integrity: sha512-/ZGw8Iz0R6YfDnf7FL3A0VZpQnxEjRnfE0DW4dQTuLnFCP6UmQqQuKVWU9Vj7vPGM3x3p8rwAVHtU8YtMCXZqQ==} + peerDependencies: + vxe-table: ^4.5.0 + + vxe-table@4.9.10: + resolution: {integrity: sha512-sXuuBsKyPbfd+QUwA+dGbn7pUB3dBvpjA6c/ZQMFPKN45E24K8hsCD9CBniQPyXX8sTWvGgEDuQGbn5jLcU6sA==} + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + xe-utils@3.5.31: + resolution: {integrity: sha512-oS4yv8qktvlE0wc9yYkitDidEmThc5qN0UTRvKCvrWnejxbTyIxbwfrdZmPKdKGZtB+/U8cEAMFywLJjHtD11A==} + + xe-utils@3.5.32: + resolution: {integrity: sha512-R8ZT2lRnRBQO3pchM1za/Aru+/29DVDWD/OmOFODWWGkiQYz0iVIr8Bq8uKXS6zMhEsSqVCrn46bXzfe/Agjcw==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xpath@0.0.32: + resolution: {integrity: sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==} + engines: {node: '>=0.6.0'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + + zrender@5.6.0: + resolution: {integrity: sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@ant-design/colors@6.0.0': + dependencies: + '@ctrl/tinycolor': 3.6.1 + + '@ant-design/icons-svg@4.4.2': {} + + '@ant-design/icons-vue@7.0.1(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-svg': 4.4.2 + vue: 3.5.11(typescript@5.6.3) + + '@antfu/utils@0.7.10': {} + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.1.0 + + '@babel/compat-data@7.25.4': {} + + '@babel/core@7.25.2': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + convert-source-map: 2.0.0 + debug: 4.3.6 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.6': + dependencies: + '@babel/types': 7.25.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.25.6 + + '@babel/helper-compilation-targets@7.25.2': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.6 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.24.8': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.25.6 + + '@babel/helper-module-imports@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.25.6 + + '@babel/helper-plugin-utils@7.24.8': {} + + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-option@7.24.8': {} + + '@babel/helpers@7.25.6': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/parser@7.25.6': + dependencies: + '@babel/types': 7.25.6 + + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.25.6': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/standalone@7.25.6': {} + + '@babel/template@7.25.0': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + + '@babel/traverse@7.25.6': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + debug: 4.3.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.6': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)': + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + + '@codemirror/commands@6.6.1': + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + + '@codemirror/lang-css@6.2.1(@codemirror/view@6.33.0)': + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@lezer/common': 1.2.1 + '@lezer/css': 1.1.8 + transitivePeerDependencies: + - '@codemirror/view' + + '@codemirror/lang-html@6.4.9': + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) + '@codemirror/lang-javascript': 6.2.2 + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + '@lezer/css': 1.1.8 + '@lezer/html': 1.3.10 + + '@codemirror/lang-java@6.0.1': + dependencies: + '@codemirror/language': 6.10.3 + '@lezer/java': 1.1.2 + + '@codemirror/lang-javascript@6.2.2': + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.3 + '@codemirror/lint': 6.8.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + '@lezer/javascript': 1.4.17 + + '@codemirror/lang-json@6.0.1': + dependencies: + '@codemirror/language': 6.10.3 + '@lezer/json': 1.0.2 + + '@codemirror/lang-markdown@6.3.0': + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/lang-html': 6.4.9 + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + '@lezer/markdown': 1.3.1 + + '@codemirror/lang-sql@6.8.0(@codemirror/view@6.33.0)': + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + transitivePeerDependencies: + - '@codemirror/view' + + '@codemirror/lang-xml@6.1.0': + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + '@lezer/xml': 1.0.5 + + '@codemirror/language@6.10.3': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + + '@codemirror/lint@6.8.1': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + crelt: 1.0.6 + + '@codemirror/search@6.5.6': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + crelt: 1.0.6 + + '@codemirror/state@6.4.1': {} + + '@codemirror/theme-one-dark@6.1.2': + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/highlight': 1.2.1 + + '@codemirror/view@6.33.0': + dependencies: + '@codemirror/state': 6.4.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + + '@commitlint/cli@19.5.0(@types/node@22.5.3)(typescript@5.6.3)': + dependencies: + '@commitlint/format': 19.5.0 + '@commitlint/lint': 19.5.0 + '@commitlint/load': 19.5.0(@types/node@22.5.3)(typescript@5.6.3) + '@commitlint/read': 19.5.0 + '@commitlint/types': 19.5.0 + tinyexec: 0.3.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-validator@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + ajv: 8.17.1 + + '@commitlint/ensure@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@19.5.0': {} + + '@commitlint/format@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + chalk: 5.3.0 + + '@commitlint/is-ignored@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + semver: 7.6.3 + + '@commitlint/lint@19.5.0': + dependencies: + '@commitlint/is-ignored': 19.5.0 + '@commitlint/parse': 19.5.0 + '@commitlint/rules': 19.5.0 + '@commitlint/types': 19.5.0 + + '@commitlint/load@19.5.0(@types/node@22.5.3)(typescript@5.6.3)': + dependencies: + '@commitlint/config-validator': 19.5.0 + '@commitlint/execute-rule': 19.5.0 + '@commitlint/resolve-extends': 19.5.0 + '@commitlint/types': 19.5.0 + chalk: 5.3.0 + cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@22.5.3)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@19.5.0': {} + + '@commitlint/parse@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + + '@commitlint/read@19.5.0': + dependencies: + '@commitlint/top-level': 19.5.0 + '@commitlint/types': 19.5.0 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + tinyexec: 0.3.0 + + '@commitlint/resolve-extends@19.5.0': + dependencies: + '@commitlint/config-validator': 19.5.0 + '@commitlint/types': 19.5.0 + global-directory: 4.0.1 + import-meta-resolve: 4.1.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + + '@commitlint/rules@19.5.0': + dependencies: + '@commitlint/ensure': 19.5.0 + '@commitlint/message': 19.5.0 + '@commitlint/to-lines': 19.5.0 + '@commitlint/types': 19.5.0 + + '@commitlint/to-lines@19.5.0': {} + + '@commitlint/top-level@19.5.0': + dependencies: + find-up: 7.0.0 + + '@commitlint/types@19.5.0': + dependencies: + '@types/conventional-commits-parser': 5.0.0 + chalk: 5.3.0 + + '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/css-tokenizer@3.0.1': {} + + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/selector-specificity@4.0.0(postcss-selector-parser@6.1.2)': + dependencies: + postcss-selector-parser: 6.1.2 + + '@ctrl/tinycolor@3.6.1': {} + + '@dual-bundle/import-meta-resolve@4.1.0': {} + + '@emotion/hash@0.9.2': {} + + '@emotion/unitless@0.8.1': {} + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@1.21.6))': + dependencies: + eslint: 9.12.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.0': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.6.0': {} + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.12.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.0': + dependencies: + levn: 0.4.1 + + '@fast-csv/format@4.3.5': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + + '@fast-csv/parse@4.3.6': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.groupby: 4.6.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + lodash.isundefined: 3.0.1 + lodash.uniq: 4.5.0 + + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@intlify/core-base@10.0.4': + dependencies: + '@intlify/message-compiler': 10.0.4 + '@intlify/shared': 10.0.4 + + '@intlify/message-compiler@10.0.4': + dependencies: + '@intlify/shared': 10.0.4 + source-map-js: 1.2.1 + + '@intlify/shared@10.0.4': {} + + '@jiaminghi/bezier-curve@0.0.9': + dependencies: + '@babel/runtime': 7.25.6 + + '@jiaminghi/c-render@0.4.3': + dependencies: + '@babel/runtime': 7.25.6 + '@jiaminghi/bezier-curve': 0.0.9 + '@jiaminghi/color': 1.1.3 + '@jiaminghi/transition': 1.1.11 + + '@jiaminghi/charts@0.2.18': + dependencies: + '@babel/runtime': 7.25.6 + '@jiaminghi/c-render': 0.4.3 + + '@jiaminghi/color@1.1.3': {} + + '@jiaminghi/transition@1.1.11': + dependencies: + '@babel/runtime': 7.25.6 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@kjgl77/datav-vue3@1.7.3(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@jiaminghi/c-render': 0.4.3 + '@jiaminghi/charts': 0.2.18 + '@jiaminghi/color': 1.1.3 + '@vueuse/core': 10.11.1(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@lezer/common@1.2.1': {} + + '@lezer/css@1.1.8': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/highlight@1.2.1': + dependencies: + '@lezer/common': 1.2.1 + + '@lezer/html@1.3.10': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/java@1.1.2': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/javascript@1.4.17': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/json@1.0.2': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/lr@1.4.2': + dependencies: + '@lezer/common': 1.2.1 + + '@lezer/markdown@1.3.1': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + + '@lezer/xml@1.0.5': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3)': + dependencies: + '@nuxt/schema': 3.13.2(rollup@4.21.2)(webpack-sources@3.2.3) + c12: 1.11.2 + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.0.2 + hash-sum: 2.0.0 + ignore: 5.3.2 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + semver: 7.6.3 + ufo: 1.5.4 + unctx: 2.3.1(webpack-sources@3.2.3) + unimport: 3.12.0(rollup@4.21.2)(webpack-sources@3.2.3) + untyped: 1.4.2 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + - webpack-sources + + '@nuxt/schema@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3)': + dependencies: + compatx: 0.1.8 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unimport: 3.12.0(rollup@4.21.2)(webpack-sources@3.2.3) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + - webpack-sources + + '@pkgr/core@0.1.1': {} + + '@polka/url@1.0.0-next.25': {} + + '@rollup/pluginutils@5.1.0(rollup@4.21.2)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.21.2 + + '@rollup/rollup-android-arm-eabi@4.21.2': + optional: true + + '@rollup/rollup-android-arm64@4.21.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.21.2': + optional: true + + '@rollup/rollup-darwin-x64@4.21.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.21.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.21.2': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.21.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.21.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.21.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.21.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.21.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.21.2': + optional: true + + '@simonwep/pickr@1.8.2': + dependencies: + core-js: 3.38.1 + nanopop: 2.4.2 + + '@sindresorhus/merge-streams@2.3.0': {} + + '@translate-tools/core@0.2.16': + dependencies: + '@xmldom/xmldom': 0.8.10 + axios: 0.23.0 + lodash: 4.17.21 + query-string: 6.14.1 + xpath: 0.0.32 + transitivePeerDependencies: + - debug + + '@types/blueimp-md5@2.18.2': {} + + '@types/conventional-commits-parser@5.0.0': + dependencies: + '@types/node': 22.5.3 + + '@types/eslint@8.56.12': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.5': {} + + '@types/estree@1.0.6': {} + + '@types/http-errors@1.8.2': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@12.20.55': {} + + '@types/node@14.18.63': {} + + '@types/node@22.5.3': + dependencies: + undici-types: 6.19.8 + + '@types/sortablejs@1.15.8': {} + + '@types/web-bluetooth@0.0.20': {} + + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.8.1 + eslint: 9.12.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.8.1 + debug: 4.3.6 + eslint: 9.12.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.8.1': + dependencies: + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 + + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + debug: 4.3.6 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.8.1': {} + + '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.3)': + dependencies: + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 + debug: 4.3.6 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + eslint: 9.12.0(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.8.1': + dependencies: + '@typescript-eslint/types': 8.8.1 + eslint-visitor-keys: 3.4.3 + + '@vitalets/google-translate-api@9.2.0': + dependencies: + '@types/http-errors': 1.8.2 + http-errors: 2.0.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) + vite: 5.4.8(@types/node@22.5.3) + vue: 3.5.11(typescript@5.6.3) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.1.4(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3))': + dependencies: + vite: 5.4.8(@types/node@22.5.3) + vue: 3.5.11(typescript@5.6.3) + + '@volar/language-core@2.4.1': + dependencies: + '@volar/source-map': 2.4.1 + + '@volar/source-map@2.4.1': {} + + '@volar/typescript@2.4.1': + dependencies: + '@volar/language-core': 2.4.1 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vue/babel-helper-vue-transform-on@1.2.2': {} + + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.25.2)': + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.25.2) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.25.2)': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/parser': 7.25.6 + '@vue/compiler-sfc': 3.5.9 + + '@vue/compiler-core@3.5.11': + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.11 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-core@3.5.4': + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.4 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-core@3.5.7': + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.7 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-core@3.5.9': + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.9 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.11': + dependencies: + '@vue/compiler-core': 3.5.11 + '@vue/shared': 3.5.11 + + '@vue/compiler-dom@3.5.4': + dependencies: + '@vue/compiler-core': 3.5.4 + '@vue/shared': 3.5.4 + + '@vue/compiler-dom@3.5.7': + dependencies: + '@vue/compiler-core': 3.5.7 + '@vue/shared': 3.5.7 + + '@vue/compiler-dom@3.5.9': + dependencies: + '@vue/compiler-core': 3.5.9 + '@vue/shared': 3.5.9 + + '@vue/compiler-sfc@3.5.11': + dependencies: + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.5.11 + '@vue/compiler-dom': 3.5.11 + '@vue/compiler-ssr': 3.5.11 + '@vue/shared': 3.5.11 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-sfc@3.5.9': + dependencies: + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.5.9 + '@vue/compiler-dom': 3.5.9 + '@vue/compiler-ssr': 3.5.9 + '@vue/shared': 3.5.9 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.11': + dependencies: + '@vue/compiler-dom': 3.5.11 + '@vue/shared': 3.5.11 + + '@vue/compiler-ssr@3.5.9': + dependencies: + '@vue/compiler-dom': 3.5.9 + '@vue/shared': 3.5.9 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/devtools-api@6.6.4': {} + + '@vue/devtools-core@7.4.6(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@vue/devtools-kit': 7.4.6 + '@vue/devtools-shared': 7.4.6 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.4.8(@types/node@22.5.3)) + vue: 3.5.11(typescript@5.6.3) + transitivePeerDependencies: + - vite + + '@vue/devtools-kit@7.4.6': + dependencies: + '@vue/devtools-shared': 7.4.6 + birpc: 0.2.17 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.1 + + '@vue/devtools-shared@7.4.6': + dependencies: + rfdc: 1.4.1 + + '@vue/language-core@2.1.6(typescript@5.6.3)': + dependencies: + '@volar/language-core': 2.4.1 + '@vue/compiler-dom': 3.5.4 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.4 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.6.3 + + '@vue/reactivity@3.5.11': + dependencies: + '@vue/shared': 3.5.11 + + '@vue/runtime-core@3.5.11': + dependencies: + '@vue/reactivity': 3.5.11 + '@vue/shared': 3.5.11 + + '@vue/runtime-dom@3.5.11': + dependencies: + '@vue/reactivity': 3.5.11 + '@vue/runtime-core': 3.5.11 + '@vue/shared': 3.5.11 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.11(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@vue/compiler-ssr': 3.5.11 + '@vue/shared': 3.5.11 + vue: 3.5.11(typescript@5.6.3) + + '@vue/shared@3.5.11': {} + + '@vue/shared@3.5.4': {} + + '@vue/shared@3.5.7': {} + + '@vue/shared@3.5.9': {} + + '@vueuse/core@10.11.1(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.11(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/core@11.1.0(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 11.1.0 + '@vueuse/shared': 11.1.0(vue@3.5.11(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.1': {} + + '@vueuse/metadata@11.1.0': {} + + '@vueuse/shared@10.11.1(vue@3.5.11(typescript@5.6.3))': + dependencies: + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/shared@11.1.0(vue@3.5.11(typescript@5.6.3))': + dependencies: + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vxe-ui/core@4.0.13': + dependencies: + dom-zindex: 1.0.6 + xe-utils: 3.5.31 + + '@vxe-ui/core@4.0.18(vue@3.5.11(typescript@5.6.3))': + dependencies: + dom-zindex: 1.0.6 + vue: 3.5.11(typescript@5.6.3) + xe-utils: 3.5.32 + + '@vxe-ui/plugin-export-xlsx@4.0.3': {} + + '@vxe-ui/plugin-render-antd@4.0.7': {} + + '@xmldom/xmldom@0.8.10': {} + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + ant-design-vue@4.2.5(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-vue': 7.0.1(vue@3.5.11(typescript@5.6.3)) + '@babel/runtime': 7.25.6 + '@ctrl/tinycolor': 3.6.1 + '@emotion/hash': 0.9.2 + '@emotion/unitless': 0.8.1 + '@simonwep/pickr': 1.8.2 + array-tree-filter: 2.1.0 + async-validator: 4.2.5 + csstype: 3.1.3 + dayjs: 1.11.13 + dom-align: 1.12.4 + dom-scroll-into-view: 2.0.1 + lodash: 4.17.21 + lodash-es: 4.17.21 + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.31 + shallow-equal: 1.2.1 + stylis: 4.3.4 + throttle-debounce: 5.0.2 + vue: 3.5.11(typescript@5.6.3) + vue-types: 3.0.2(vue@3.5.11(typescript@5.6.3)) + warning: 4.0.3 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + + argparse@2.0.1: {} + + array-ify@1.0.0: {} + + array-tree-filter@2.1.0: {} + + array-union@2.1.0: {} + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: {} + + astral-regex@2.0.0: {} + + async-validator@4.2.5: {} + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + aws-sign2@0.7.0: {} + + aws4@1.13.2: {} + + axios@0.23.0: + dependencies: + follow-redirects: 1.15.9 + transitivePeerDependencies: + - debug + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + baidu-translate@1.3.0: + dependencies: + querystring: 0.2.1 + request: 2.88.2 + + balanced-match@1.0.2: {} + + balanced-match@2.0.0: {} + + base64-js@1.5.1: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + big-integer@1.6.52: {} + + binary-extensions@2.3.0: {} + + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + + birpc@0.2.17: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + bluebird@3.4.7: {} + + blueimp-md5@2.19.0: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001655 + electron-to-chromium: 1.5.13 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + buffer-crc32@0.2.13: {} + + buffer-indexof-polyfill@1.0.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffers@0.1.1: {} + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + c12@1.11.2: + dependencies: + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + rc9: 2.1.2 + + cachedir@2.3.0: {} + + callsites@3.1.0: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001655: {} + + caseless@0.12.0: {} + + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + chardet@0.7.0: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@2.0.0: {} + + citty@0.1.6: + dependencies: + consola: 3.2.3 + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cli-width@3.0.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + codemirror@6.0.1(@lezer/common@1.2.1): + dependencies: + '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) + '@codemirror/commands': 6.6.1 + '@codemirror/language': 6.10.3 + '@codemirror/lint': 6.8.1 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + transitivePeerDependencies: + - '@lezer/common' + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colord@2.9.3: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + commander@2.20.3: {} + + commitizen@4.3.1(@types/node@22.5.3)(typescript@5.6.3): + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0(@types/node@22.5.3)(typescript@5.6.3) + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@types/node' + - typescript + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + compatx@0.1.8: {} + + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + compute-scroll-into-view@1.0.20: {} + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.7: {} + + consola@3.2.3: {} + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@7.0.2: + dependencies: + compare-func: 2.0.0 + + conventional-commit-types@3.0.0: {} + + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + + convert-source-map@2.0.0: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + core-js@3.38.1: {} + + core-util-is@1.0.2: {} + + core-util-is@1.0.3: {} + + cosmiconfig-typescript-loader@5.0.0(@types/node@22.5.3)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3): + dependencies: + '@types/node': 22.5.3 + cosmiconfig: 9.0.0(typescript@5.6.3) + jiti: 1.21.6 + typescript: 5.6.3 + + cosmiconfig@9.0.0(typescript@5.6.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.6.3 + + crc-32@1.2.2: {} + + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + crelt@1.0.6: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-functions-list@3.2.2: {} + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + cz-conventional-changelog@3.3.0(@types/node@22.5.3)(typescript@5.6.3): + dependencies: + chalk: 2.4.2 + commitizen: 4.3.1(@types/node@22.5.3)(typescript@5.6.3) + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.5 + optionalDependencies: + '@commitlint/load': 19.5.0(@types/node@22.5.3)(typescript@5.6.3) + transitivePeerDependencies: + - '@types/node' + - typescript + + cz-git@1.10.1: {} + + dargs@8.1.0: {} + + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + + dayjs@1.11.13: {} + + de-indent@1.0.2: {} + + debug@4.3.6: + dependencies: + ms: 2.1.2 + + decode-uri-component@0.2.2: {} + + dedent@0.7.0: {} + + deep-is@0.1.4: {} + + deep-pick-omit@1.2.1: {} + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-lazy-prop@2.0.0: {} + + define-lazy-prop@3.0.0: {} + + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + destr@2.0.3: {} + + detect-file@1.0.0: {} + + detect-indent@6.1.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dom-align@1.12.4: {} + + dom-scroll-into-view@2.0.1: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + dom-zindex@1.0.6: {} + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + dotenv@16.4.5: {} + + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + echarts@5.5.1: + dependencies: + tslib: 2.3.0 + zrender: 5.6.0 + + electron-to-chromium@1.5.13: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + environment@1.1.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser-es@0.1.5: {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@1.21.6)): + dependencies: + eslint: 9.12.0(jiti@1.21.6) + + eslint-plugin-prettier@5.2.1(@types/eslint@8.56.12)(eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6))(prettier@3.3.3): + dependencies: + eslint: 9.12.0(jiti@1.21.6) + prettier: 3.3.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.1 + optionalDependencies: + '@types/eslint': 8.56.12 + eslint-config-prettier: 9.1.0(eslint@9.12.0(jiti@1.21.6)) + + eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + eslint: 9.12.0(jiti@1.21.6) + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.12.0(jiti@1.21.6)) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.1.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.1.0: {} + + eslint@9.12.0(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.0 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.12.0 + '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + espree@10.2.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.1.0 + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + exceljs@4.4.0: + dependencies: + archiver: 5.3.2 + dayjs: 1.11.13 + fast-csv: 4.3.6 + jszip: 3.10.1 + readable-stream: 3.6.2 + saxes: 5.0.1 + tmp: 0.2.3 + unzipper: 0.10.14 + uuid: 8.3.2 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expand-tilde@2.0.2: + dependencies: + homedir-polyfill: 1.0.3 + + extend@3.0.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + extsprintf@1.3.0: {} + + fast-csv@4.3.6: + dependencies: + '@fast-csv/format': 4.3.5 + '@fast-csv/parse': 4.3.6 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.0.1: {} + + fastest-levenshtein@1.0.16: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-entry-cache@9.1.0: + dependencies: + flat-cache: 5.0.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + filter-obj@1.1.0: {} + + find-node-modules@2.1.3: + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 + + find-root@1.1.0: {} + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + + findup-sync@4.0.0: + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.8 + resolve-dir: 1.0.1 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flatted@3.3.1: {} + + follow-redirects@1.15.9: {} + + forever-agent@0.6.1: {} + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fs-constants@1.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@5.0.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-stream@8.0.1: {} + + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + + giget@1.2.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.11 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 + + git-raw-commits@4.0.0: + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + global-modules@1.0.0: + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + + global-prefix@1.0.2: + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@15.11.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + globjoin@0.1.4: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + har-schema@2.0.0: {} + + har-validator@5.1.5: + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + hash-sum@2.0.0: {} + + he@1.2.0: {} + + homedir-polyfill@1.0.3: + dependencies: + parse-passwd: 1.0.0 + + hookable@5.5.3: {} + + html-tags@3.3.1: {} + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-signature@1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + + human-signals@5.0.0: {} + + husky@9.1.6: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + immediate@3.0.6: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.1.0: {} + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@4.1.1: {} + + inquirer@7.3.3: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + + inquirer@8.2.5: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@1.0.0: {} + + is-number@7.0.0: {} + + is-obj@2.0.0: {} + + is-plain-object@3.0.1: {} + + is-plain-object@5.0.0: {} + + is-stream@3.0.0: {} + + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + + is-typedarray@1.0.0: {} + + is-unicode-supported@0.1.0: {} + + is-utf8@0.2.1: {} + + is-what@4.1.16: {} + + is-windows@1.0.2: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isstream@0.1.2: {} + + jiti@1.21.6: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbn@0.1.1: {} + + jsesc@2.5.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsprim@1.4.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + klona@2.0.6: {} + + knitwork@1.1.0: {} + + known-css-properties@0.34.0: {} + + kolorist@1.8.0: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + lint-staged@15.2.10: + dependencies: + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.6 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.4 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.5.1 + transitivePeerDependencies: + - supports-color + + listenercount@1.0.1: {} + + listr2@8.2.4: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.2.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash-es@4.17.21: {} + + lodash.camelcase@4.3.0: {} + + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.flatten@4.4.0: {} + + lodash.groupby@4.6.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isequal@4.5.0: {} + + lodash.isfunction@3.0.9: {} + + lodash.isnil@4.0.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isundefined@3.0.1: {} + + lodash.kebabcase@4.1.1: {} + + lodash.map@4.6.0: {} + + lodash.merge@4.6.2: {} + + lodash.mergewith@4.6.2: {} + + lodash.snakecase@4.1.1: {} + + lodash.startcase@4.4.0: {} + + lodash.truncate@4.4.2: {} + + lodash.union@4.6.0: {} + + lodash.uniq@4.5.0: {} + + lodash.upperfirst@4.3.1: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + longest@2.0.1: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + mathml-tag-names@2.1.3: {} + + mdn-data@2.0.30: {} + + meow@12.1.1: {} + + meow@13.2.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + merge@2.1.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.7: {} + + minimist@1.2.8: {} + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mitt@3.0.1: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mlly@1.7.1: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + ufo: 1.5.4 + + mri@1.2.0: {} + + mrmime@2.0.0: {} + + ms@2.1.2: {} + + muggle-string@0.4.1: {} + + mute-stream@0.0.8: {} + + nanoid@3.3.7: {} + + nanopop@2.4.2: {} + + natural-compare@1.4.0: {} + + node-fetch-native@1.6.4: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + nypm@0.3.11: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + ufo: 1.5.4 + + oauth-sign@0.9.0: {} + + ohash@1.1.3: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + os-tmpdir@1.0.2: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.1.1 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + pako@1.0.11: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-passwd@1.0.0: {} + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-type@4.0.0: {} + + path-type@5.0.0: {} + + pathe@1.1.2: {} + + perfect-debounce@1.0.0: {} + + performance-now@2.1.0: {} + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + pidtree@0.6.0: {} + + pinia-plugin-persistedstate@4.1.1(pinia@2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)))(rollup@4.21.2)(webpack-sources@3.2.3): + dependencies: + '@nuxt/kit': 3.13.2(rollup@4.21.2)(webpack-sources@3.2.3) + deep-pick-omit: 1.2.1 + defu: 6.1.4 + destr: 2.0.3 + optionalDependencies: + pinia: 2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + - webpack-sources + + pinia@2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.11(typescript@5.6.3) + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + optionalDependencies: + typescript: 5.6.3 + + pkg-types@1.2.0: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + + pont-engine@1.6.3: + dependencies: + '@translate-tools/core': 0.2.16 + '@vitalets/google-translate-api': 9.2.0 + baidu-translate: 1.3.0 + chalk: 2.4.2 + commander: 2.20.3 + fs-extra: 5.0.0 + inquirer: 7.3.3 + lodash: 4.17.21 + node-fetch: 2.7.0 + prettier: 2.8.8 + translation.js: 0.7.15 + typescript: 4.9.5 + transitivePeerDependencies: + - debug + - encoding + + postcss-html@1.7.0: + dependencies: + htmlparser2: 8.0.2 + js-tokens: 9.0.0 + postcss: 8.4.47 + postcss-safe-parser: 6.0.0(postcss@8.4.47) + + postcss-media-query-parser@0.2.3: {} + + postcss-resolve-nested-selector@0.1.6: {} + + postcss-safe-parser@6.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-safe-parser@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + postcss-scss@4.0.9(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-sorting@8.0.2(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.44: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.0 + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@2.8.8: {} + + prettier@3.3.3: {} + + process-nextick-args@2.0.1: {} + + proxy-from-env@1.1.0: {} + + psl@1.9.0: {} + + punycode@2.3.1: {} + + qs@6.5.3: {} + + query-string@6.14.1: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + + querystring@0.2.1: {} + + queue-microtask@1.2.3: {} + + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.3 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + regenerator-runtime@0.14.1: {} + + request@2.88.2: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.2 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-dir@1.0.1: + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rollup-plugin-visualizer@5.12.0(rollup@4.21.2): + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.21.2 + + rollup@4.21.2: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.21.2 + '@rollup/rollup-android-arm64': 4.21.2 + '@rollup/rollup-darwin-arm64': 4.21.2 + '@rollup/rollup-darwin-x64': 4.21.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 + '@rollup/rollup-linux-arm-musleabihf': 4.21.2 + '@rollup/rollup-linux-arm64-gnu': 4.21.2 + '@rollup/rollup-linux-arm64-musl': 4.21.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 + '@rollup/rollup-linux-riscv64-gnu': 4.21.2 + '@rollup/rollup-linux-s390x-gnu': 4.21.2 + '@rollup/rollup-linux-x64-gnu': 4.21.2 + '@rollup/rollup-linux-x64-musl': 4.21.2 + '@rollup/rollup-win32-arm64-msvc': 4.21.2 + '@rollup/rollup-win32-ia32-msvc': 4.21.2 + '@rollup/rollup-win32-x64-msvc': 4.21.2 + fsevents: 2.3.3 + + run-applescript@7.0.0: {} + + run-async@2.4.1: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + saxes@5.0.1: + dependencies: + xmlchars: 2.2.0 + + scroll-into-view-if-needed@2.2.31: + dependencies: + compute-scroll-into-view: 1.0.20 + + scule@1.3.0: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + setimmediate@1.0.5: {} + + setprototypeof@1.2.0: {} + + shallow-equal@1.2.1: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + + slash@3.0.0: {} + + slash@5.1.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + sortablejs@1.15.3: {} + + source-map-js@1.2.0: {} + + source-map-js@1.2.1: {} + + source-map@0.7.4: {} + + speakingurl@14.0.1: {} + + split-on-first@1.1.0: {} + + split2@4.2.0: {} + + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + + statuses@2.0.1: {} + + std-env@3.7.0: {} + + strict-uri-encode@2.0.0: {} + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom@4.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-json-comments@3.1.1: {} + + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + + style-mod@4.1.2: {} + + stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + postcss-html: 1.7.0 + stylelint: 16.9.0(typescript@5.6.3) + + stylelint-config-prettier@9.0.5(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + stylelint: 16.9.0(typescript@5.6.3) + + stylelint-config-recess-order@5.1.1(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + stylelint: 16.9.0(typescript@5.6.3) + stylelint-order: 6.0.4(stylelint@16.9.0(typescript@5.6.3)) + + stylelint-config-recommended-scss@14.1.0(postcss@8.4.47)(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + postcss-scss: 4.0.9(postcss@8.4.47) + stylelint: 16.9.0(typescript@5.6.3) + stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.6.3)) + stylelint-scss: 6.5.1(stylelint@16.9.0(typescript@5.6.3)) + optionalDependencies: + postcss: 8.4.47 + + stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + postcss-html: 1.7.0 + semver: 7.6.3 + stylelint: 16.9.0(typescript@5.6.3) + stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@16.9.0(typescript@5.6.3)) + stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.6.3)) + + stylelint-config-recommended@14.0.1(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + stylelint: 16.9.0(typescript@5.6.3) + + stylelint-config-standard@36.0.1(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + stylelint: 16.9.0(typescript@5.6.3) + stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.6.3)) + + stylelint-order@6.0.4(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + postcss: 8.4.47 + postcss-sorting: 8.0.2(postcss@8.4.47) + stylelint: 16.9.0(typescript@5.6.3) + + stylelint-scss@6.5.1(stylelint@16.9.0(typescript@5.6.3)): + dependencies: + css-tree: 2.3.1 + is-plain-object: 5.0.0 + known-css-properties: 0.34.0 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.6 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + stylelint: 16.9.0(typescript@5.6.3) + + stylelint@16.9.0(typescript@5.6.3): + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@dual-bundle/import-meta-resolve': 4.1.0 + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.6.3) + css-functions-list: 3.2.2 + css-tree: 2.3.1 + debug: 4.3.6 + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 9.1.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.34.0 + mathml-tag-names: 2.1.3 + meow: 13.2.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.44 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 7.0.0(postcss@8.4.44) + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 7.1.0 + supports-hyperlinks: 3.1.0 + svg-tags: 1.0.0 + table: 6.8.2 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + + stylis@4.3.4: {} + + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@3.1.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + svg-tags@1.0.0: {} + + synckit@0.9.1: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.7.0 + + table@6.8.2: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + text-extensions@2.4.0: {} + + text-table@0.2.0: {} + + throttle-debounce@5.0.2: {} + + through@2.3.8: {} + + tinyexec@0.3.0: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.2.3: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + totalist@3.0.1: {} + + tough-cookie@2.5.0: + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + + tr46@0.0.3: {} + + translation.js@0.7.15: + dependencies: + '@types/blueimp-md5': 2.18.2 + '@types/node': 12.20.55 + blueimp-md5: 2.19.0 + tslib: 1.14.1 + + traverse@0.3.9: {} + + ts-api-utils@1.3.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + + tslib@1.14.1: {} + + tslib@2.3.0: {} + + tslib@2.7.0: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + tweetnacl@0.14.5: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + typescript-eslint@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + typescript@4.9.5: {} + + typescript@5.6.3: {} + + ufo@1.5.4: {} + + uncrypto@0.1.3: {} + + unctx@2.3.1(webpack-sources@3.2.3): + dependencies: + acorn: 8.12.1 + estree-walker: 3.0.3 + magic-string: 0.30.11 + unplugin: 1.14.1(webpack-sources@3.2.3) + transitivePeerDependencies: + - webpack-sources + + undici-types@6.19.8: {} + + unicorn-magic@0.1.0: {} + + unimport@3.12.0(rollup@4.21.2)(webpack-sources@3.2.3): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.14.1(webpack-sources@3.2.3) + transitivePeerDependencies: + - rollup + - webpack-sources + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unplugin-auto-import@0.18.3(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(@vueuse/core@11.1.0(vue@3.5.11(typescript@5.6.3)))(rollup@4.21.2)(webpack-sources@3.2.3): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + minimatch: 9.0.5 + unimport: 3.12.0(rollup@4.21.2)(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) + optionalDependencies: + '@nuxt/kit': 3.13.2(rollup@4.21.2)(webpack-sources@3.2.3) + '@vueuse/core': 11.1.0(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - rollup + - webpack-sources + + unplugin-vue-components@0.27.4(@babel/parser@7.25.6)(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(rollup@4.21.2)(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + chokidar: 3.6.0 + debug: 4.3.6 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + minimatch: 9.0.5 + mlly: 1.7.1 + unplugin: 1.12.3 + vue: 3.5.11(typescript@5.6.3) + optionalDependencies: + '@babel/parser': 7.25.6 + '@nuxt/kit': 3.13.2(rollup@4.21.2)(webpack-sources@3.2.3) + transitivePeerDependencies: + - rollup + - supports-color + + unplugin@1.12.3: + dependencies: + acorn: 8.12.1 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.2 + + unplugin@1.14.1(webpack-sources@3.2.3): + dependencies: + acorn: 8.12.1 + webpack-virtual-modules: 0.6.2 + optionalDependencies: + webpack-sources: 3.2.3 + + untyped@1.4.2: + dependencies: + '@babel/core': 7.25.2 + '@babel/standalone': 7.25.6 + '@babel/types': 7.25.6 + defu: 6.1.4 + jiti: 1.21.6 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + + unzipper@0.10.14: + dependencies: + big-integer: 1.6.52 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + uuid@3.4.0: {} + + uuid@8.3.2: {} + + verror@1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + vite-eslint-plugin@1.9.2(@types/eslint@8.56.12)(eslint@9.12.0(jiti@1.21.6))(rollup@4.21.2)(vite@5.4.8(@types/node@22.5.3)): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@types/eslint': 8.56.12 + eslint: 9.12.0(jiti@1.21.6) + vite: 5.4.8(@types/node@22.5.3) + transitivePeerDependencies: + - rollup + + vite-hot-client@0.2.3(vite@5.4.8(@types/node@22.5.3)): + dependencies: + vite: 5.4.8(@types/node@22.5.3) + + vite-plugin-compression@0.5.1(vite@5.4.8(@types/node@22.5.3)): + dependencies: + chalk: 4.1.2 + debug: 4.3.6 + fs-extra: 10.1.0 + vite: 5.4.8(@types/node@22.5.3) + transitivePeerDependencies: + - supports-color + + vite-plugin-inspect@0.8.7(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(rollup@4.21.2)(vite@5.4.8(@types/node@22.5.3)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + debug: 4.3.6 + error-stack-parser-es: 0.1.5 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.1.0 + sirv: 2.0.4 + vite: 5.4.8(@types/node@22.5.3) + optionalDependencies: + '@nuxt/kit': 3.13.2(rollup@4.21.2)(webpack-sources@3.2.3) + transitivePeerDependencies: + - rollup + - supports-color + + vite-plugin-vue-devtools@7.4.6(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(rollup@4.21.2)(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@vue/devtools-core': 7.4.6(vite@5.4.8(@types/node@22.5.3))(vue@3.5.11(typescript@5.6.3)) + '@vue/devtools-kit': 7.4.6 + '@vue/devtools-shared': 7.4.6 + execa: 8.0.1 + sirv: 2.0.4 + vite: 5.4.8(@types/node@22.5.3) + vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.2(rollup@4.21.2)(webpack-sources@3.2.3))(rollup@4.21.2)(vite@5.4.8(@types/node@22.5.3)) + vite-plugin-vue-inspector: 5.2.0(vite@5.4.8(@types/node@22.5.3)) + transitivePeerDependencies: + - '@nuxt/kit' + - rollup + - supports-color + - vue + + vite-plugin-vue-inspector@5.2.0(vite@5.4.8(@types/node@22.5.3)): + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) + '@vue/compiler-dom': 3.5.7 + kolorist: 1.8.0 + magic-string: 0.30.11 + vite: 5.4.8(@types/node@22.5.3) + transitivePeerDependencies: + - supports-color + + vite@5.4.8(@types/node@22.5.3): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.21.2 + optionalDependencies: + '@types/node': 22.5.3 + fsevents: 2.3.3 + + vscode-uri@3.0.8: {} + + vue-codemirror@6.1.1(codemirror@6.0.1(@lezer/common@1.2.1))(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@codemirror/commands': 6.6.1 + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + codemirror: 6.0.1(@lezer/common@1.2.1) + vue: 3.5.11(typescript@5.6.3) + + vue-demi@0.13.11(vue@3.5.11(typescript@5.6.3)): + dependencies: + vue: 3.5.11(typescript@5.6.3) + + vue-demi@0.14.10(vue@3.5.11(typescript@5.6.3)): + dependencies: + vue: 3.5.11(typescript@5.6.3) + + vue-echarts@7.0.3(@vue/runtime-core@3.5.11)(echarts@5.5.1)(vue@3.5.11(typescript@5.6.3)): + dependencies: + echarts: 5.5.1 + vue: 3.5.11(typescript@5.6.3) + vue-demi: 0.13.11(vue@3.5.11(typescript@5.6.3)) + optionalDependencies: + '@vue/runtime-core': 3.5.11 + transitivePeerDependencies: + - '@vue/composition-api' + + vue-eslint-parser@9.4.3(eslint@9.12.0(jiti@1.21.6)): + dependencies: + debug: 4.3.6 + eslint: 9.12.0(jiti@1.21.6) + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@intlify/core-base': 10.0.4 + '@intlify/shared': 10.0.4 + '@vue/devtools-api': 6.6.4 + vue: 3.5.11(typescript@5.6.3) + + vue-router@4.4.5(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.11(typescript@5.6.3) + + vue-tsc@2.1.6(typescript@5.6.3): + dependencies: + '@volar/typescript': 2.4.1 + '@vue/language-core': 2.1.6(typescript@5.6.3) + semver: 7.6.3 + typescript: 5.6.3 + + vue-types@3.0.2(vue@3.5.11(typescript@5.6.3)): + dependencies: + is-plain-object: 3.0.1 + vue: 3.5.11(typescript@5.6.3) + + vue@3.5.11(typescript@5.6.3): + dependencies: + '@vue/compiler-dom': 3.5.11 + '@vue/compiler-sfc': 3.5.11 + '@vue/runtime-dom': 3.5.11 + '@vue/server-renderer': 3.5.11(vue@3.5.11(typescript@5.6.3)) + '@vue/shared': 3.5.11 + optionalDependencies: + typescript: 5.6.3 + + vxe-pc-ui@4.2.18: + dependencies: + '@vxe-ui/core': 4.0.13 + + vxe-pc-ui@4.3.10(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@vxe-ui/core': 4.0.18(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - vue + + vxe-table-plugin-antd@4.0.8(vxe-table@4.9.10(vue@3.5.11(typescript@5.6.3))): + dependencies: + vxe-table: 4.9.10(vue@3.5.11(typescript@5.6.3)) + + vxe-table@4.9.10(vue@3.5.11(typescript@5.6.3)): + dependencies: + vxe-pc-ui: 4.3.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - vue + + w3c-keyname@2.2.8: {} + + warning@4.0.3: + dependencies: + loose-envify: 1.4.0 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + webidl-conversions@3.0.1: {} + + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.6.2: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + xe-utils@3.5.31: {} + + xe-utils@3.5.32: {} + + xml-name-validator@4.0.0: {} + + xmlchars@2.2.0: {} + + xpath@0.0.32: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@2.5.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + yocto-queue@1.1.1: {} + + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + + zrender@5.6.0: + dependencies: + tslib: 2.3.0 diff --git a/pont-config.json b/pont-config.json new file mode 100644 index 0000000..d16ebb4 --- /dev/null +++ b/pont-config.json @@ -0,0 +1,34 @@ +{ + "outDir": "./src/api", + "templatePath": "./pontTemplate", + "usingMultipleOrigins": true, + "origins": [ + { + "name": "auth", + "originUrl": "http://127.0.0.1:7777/v3/api-docs/auth", + "originType": "SwaggerV3", + "usingOperationId": true + }, + { + "name": "acl", + "originUrl": "http://127.0.0.1:7777/v3/api-docs/acl", + "originType": "SwaggerV3", + "usingOperationId": true + }, + { + "name": "dictionary", + "originUrl": "http://127.0.0.1:7777/v3/api-docs/dictionary", + "originType": "SwaggerV3", + "usingOperationId": true + }, + { + "name": "material", + "originUrl": "http://127.0.0.1:7777/v3/api-docs/material", + "originType": "SwaggerV3", + "usingOperationId": true + } + + + + ] +} diff --git a/pontTemplate.ts b/pontTemplate.ts new file mode 100644 index 0000000..7719663 --- /dev/null +++ b/pontTemplate.ts @@ -0,0 +1,537 @@ +import * as Pont from 'pont-engine' +import { BaseClass, CodeGenerator, Interface } from 'pont-engine' + +/** + * 首字母大写 + * @param str 源字符串 + * @returns 首字母大写字符串 + */ +export function upperFirst(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1) +} +/** + * 数组去重 + * @param arr 源数组 + * @returns 去重数组 + */ +export function distinct(arr: Array): Array { + return Array.from(new Set([...arr])) +} +export const dsUrlMapping = {} + +export function getUrl(ds: string): string { + return dsUrlMapping[ds] || '' +} +export function fixInterfaceName(name: string) { + return name.replace(/_\d?/, '') +} + +/** + * 提取路径参数 + * @param url url + * @returns + */ +export function extractPathParameters(url: string): string[] { + const reg = /\{(.+?)\}/ + const reg_g = /\{(.+?)\}/g + const result = url.match(reg_g) + if (result == null) { + return [] + } else { + const list = result.reduce((pre: string[], item) => { + const r = item.match(reg) + if (r == null) { + return pre + } else { + pre.push(r[1]) + return pre + } + }, []) + return list + } +} + +/** + * 求差集 + * @param arr1 + * @param arr2 + * @returns + */ +export function subSet(arr1: string[], arr2: string[]) { + const set1 = new Set(arr1) + const set2 = new Set(arr2) + const subset: string[] = [] + for (const item of set1) { + if (!set2.has(item)) { + subset.push(item) + } + } + return subset +} + +export class FileStructures extends Pont.FileStructures { + /** + * 多源的文件结构 + */ + getMultipleOriginsFileStructures(): { + 'index.ts': unknown + 'api-lock.json': string + 'api.d.ts': unknown + } { + const files = {} + this.generators.forEach((generator) => { + const dsName = generator.dataSource.name + const dsFiles = this.getOriginFileStructures(generator, true) + files[dsName] = dsFiles + }) + return { + ...files, + 'index.ts': this.getDataSourcesTs.bind(this), + 'api.d.ts': this.getDataSourcesDeclarationTs.bind(this), + 'api-lock.json': this.getLockContent.bind(this), + } + } + + /** + * api 插件 index.ts 生成 + * @returns + */ + getDataSourcesTs(): string { + const dsNames = this.generators.map((ge) => ge.dataSource.name) + const apis = dsNames + .map((name) => { + return `${name}Api` + }) + .join(',') + return ` + import type { App } from 'vue'; + ${dsNames + .map((name) => { + return `import ${name}Api from './${name}/mods'; + ` + }) + .join('\n')} + export const api = { + ${apis}, + install: (app: App) => { + app.config.globalProperties.$api = api; + }, + }; + export default api; + ` + } + /** + * 生成全局类型定义 + * @returns + */ + getDataSourcesDeclarationTs(): string { + const dsNames = this.generators.map((ge) => ge.dataSource.name) + return ` + /** + * mybatis-plus 分页对象 + */ + export interface IPage { + /** + * 当前页面 + */ + current: number; + /** + * 总页数 + */ + pages?: number; + /** + * 数据记录 + */ + records?: Array; + /** + * 分页大小 + */ + size: number; + /** + * 数据总条数 + */ + total?: number; + } + /** + * Nutz 分页对象 + */ + export interface Pagination { + /** + * 数据记录 + */ + dataList: Array; + /** + * 是否首页 + */ + first?: boolean; + /** + * 是否尾页 + */ + last?: boolean; + /** + * 偏移量 + */ + offset?: number; + /** + * 总页数 + */ + pageCount: number; + /** + * 当前页码 + */ + pageNumber: number; + /** + * 页面大小 + */ + pageSize: number; + /** + * sql参数 + */ + paras: Record; + /** + * 数据记录总数 + */ + recordCount?: number; + } + /** + * VXE 数据结构 + */ + export interface VXETableSaveDTO { + /** + * 新增记录数据 + */ + insertRecords: Array; + /** + * 删除记录数据 + */ + removeRecords: Array; + /** + * 更新记录数据 + */ + updateRecords: Array; + } + /** + * 枚举码本 + */ + export interface Codebook { + /** 码本编码 */ + code: string; + + /** 码本名称 */ + description: string; + + /** 码本值 */ + name: string; + } + + /** + * 全局错误 + */ + export interface GlobalError { + /** 错误码 */ + code?: number; + + /** 错误信息 */ + message?: string; + } + /** + * NutMap + */ + type NutMap = { + [key in Key]: Value; + }; + // 导入其他模块 + ${dsNames + .map((name) => { + return `/// ` + }) + .join('\n')} + ` + } + /** + * 生成单个数据源文件结构 + * @param generator 生成器 + * @param usingMultipleOrigins 是否多源 + * @returns + */ + getOriginFileStructures( + generator: CodeGenerator, + usingMultipleOrigins = false, + ): { + [x: string]: unknown + mods: Record + 'api.d.ts': unknown + } { + const mods = {} + const dataSource = generator.dataSource + dataSource.mods.forEach((mod) => { + const currMod = {} + //每一个接口一个文件 + mod.interfaces.forEach((inter) => { + currMod[fixInterfaceName(inter.name) + '.ts'] = generator.getInterfaceContent.bind(generator, inter) + }) + //接口汇总导出文件和接口声明 + currMod['index.ts'] = generator.getModIndex.bind(generator, mod) + + //每个模块生成一份 + mods[mod.name] = currMod + + //每个模块的汇总导出文件和声明文件 + mods['index.ts'] = generator.getModsIndex.bind(generator) + }) + const result = { + mods: mods, //tags + 'api.d.ts': generator.getDeclaration.bind(generator), // 模块类型声明 + } + if (!usingMultipleOrigins) { + result['api-lock.json'] = this.getLockContent.bind(this) + } + return result + } +} + +export default class MyGenerator extends CodeGenerator { + /** + * 生成 namespace 类型定义 + * @returns + */ + getDeclaration(): string { + return ` + ${this.getCommonDeclaration()} + ${this.getBaseClassesInDeclaration()} + ` + } + getBaseClassesInDeclaration(): string { + const content = `declare namespace ${this.dataSource.name || 'defs'} { + ${this.dataSource.baseClasses + .filter((item) => { + return ( + item.name !== 'Result' && + !item.name.startsWith('Result') && + item.name !== 'Pagination' && + !item.name.startsWith('Pagination') && + item.name !== 'IPage' && + !item.name.startsWith('IPage') && + item.name !== 'VXETable' && + !item.name.startsWith('VXETable') && + item.name !== 'NutMap' && + !item.name.startsWith('NutMap') && + item.name !== 'Codebook' && + !item.name.startsWith('Codebook') && + item.name !== 'GlobalError' && + !item.name.startsWith('GlobalError') + ) + }) + .map( + (base) => ` + ${this.getBaseClassInDeclaration(base)} + `, + ) + .join('\n')} + } + ` + return content.replace(/defs./g, '') + } + + getBaseClassInDeclaration(base: BaseClass): string { + if (base.templateArgs && base.templateArgs.length) { + return ` + /** + * ${base.description || base.name} + */ + export interface ${base.name}<${base.templateArgs.map((_, index) => `T${index} = any`).join(', ')}> { + ${base.properties.map((prop) => prop.toPropertyCode(Pont.Surrounding.typeScript, true)).join('\n')} + } + ` + } + return ` + /** + * ${base.description || base.name} + */ + export interface ${base.name} { + ${base.properties.map((prop) => prop.toPropertyCode(Pont.Surrounding.typeScript, true)).join('\n')} + } + ` + } + + getParamsTypeDec(inter: Interface): string { + if (!inter.parameters.filter((p) => p.in === 'query').length) { + return '' + } + return `export interface Params { + ${inter.parameters + .filter((param) => param.in === 'query') + .sort((a, b) => { + const x = a.required ? 1 : 0 + const y = b.required ? 1 : 0 + return y - x + }) + .map( + (param) => + `/** ${param.description || param.name} */ + ${param.name}${param.required ? '' : '?'}:${param.dataType + .generateCode(param.getDsName()) + .replace(/defs./g, '')},`, + ) + .join('\n')} + }` + } + getParamsDec(inter: Interface): string { + const hasQueryParams: boolean = inter.parameters.filter((p) => p.in === 'query').length > 0 + let extPathParameters = extractPathParameters(inter.path) + extPathParameters = subSet( + extPathParameters, + inter.parameters.filter((p) => p.in === 'path').map((p) => p.name), + ) + + return ` + ${inter.parameters + .filter((p) => p.in === 'path') + .map( + (p) => + `/** ${p.description || p.name} */ + ${p.name}:${p.dataType.generateCode(p.getDsName()).replace(/defs./g, '')},`, + ) + .join('\n')} + ${extPathParameters.map((p) => `${p} : string,`).join('\n')} + ${inter.parameters + .filter((p) => p.in === 'body') + .map((p) => { + let temp = p.dataType.generateCode(p.getDsName()).replace(/defs./g, '') + temp = + temp.indexOf('VXETableSaveDTO') > 0 ? `VXETableSaveDTO<${temp.replace('VXETableSaveDTO', '')}>` : temp + return `/** ${p.description || '请求体'} */ + ${p.name}:${temp},` + }) + .join('\n')} + ${hasQueryParams ? 'params: Params,' : ''}` + } + genDataType(dsName: string, inter: Interface) { + const typeName = inter.response.typeName + if (!typeName || typeName === 'ResultVoid' || typeName === 'Void') { + return 'void' + } + if (typeName === 'string' || typeName === 'number' || typeName === 'boolean') { + return typeName + } + const dataType = typeName.replace('Result', '').replace('IPage', '').replace('Pagination', '').replace('List', '') + const originType = `${dsName}.${dataType}` + let genDataType = typeName.replace(dataType, originType).replace('Result', '') + if (typeName.indexOf('IPage') >= 0) { + genDataType = genDataType.replace('IPage', 'IPage<') + '>' + } + if (typeName.indexOf('Pagination') >= 0) { + genDataType = genDataType.replace('Pagination', 'Pagination<') + '>' + } + if (typeName.indexOf('VXETableSaveDTO') >= 0) { + genDataType = genDataType.replace('VXETableSaveDTO', 'VXETableSaveDTO<') + '>' + } + if (typeName.indexOf('List') >= 0) { + genDataType = genDataType.replace('List', 'Array<') + '>' + } + if (typeName.indexOf('Array') >= 0) { + genDataType = inter.response.generateCode(dsName).replace('defs.', '') + if (genDataType.indexOf('Codebook') >= 0) { + genDataType = genDataType.replace(dsName + '.', '') + } + } + return genDataType + } + getInterfaceContent(inter: Interface) { + const bodyParmas = inter.getBodyParamsCode() + const bodyParam = inter.parameters.find((p) => p.in === 'body') + const bodyParmaName = bodyParam ? bodyParam.name : '' + const hasQueryParams = inter.parameters.filter((p) => p.in === 'query').length > 0 + const hasResult = inter.response.typeName.indexOf('Result') >= 0 + const hasIPage = inter.response.typeName.indexOf('IPage') >= 0 + const hasPagination = inter.response.typeName.indexOf('Pagination') >= 0 + const hasCodebook = inter.response.typeArgs[0] && inter.response.typeArgs[0].typeName.indexOf('Codebook') >= 0 + const hasVxe = !!inter.parameters.find((p) => p.dataType.typeName.indexOf('VXETableSaveDTO') >= 0) + // const defTypes = this.getAllRefTypeNames(inter); + const imports = [ + hasResult ? 'Result' : null, + hasIPage ? 'IPage' : null, + hasPagination ? 'Pagination' : null, + hasVxe ? 'VXETableSaveDTO' : null, + hasCodebook ? 'Codebook' : null, + ].filter((item) => item !== null) + //url: \`/${getUrl(inter.getDsName())}${inter.path.replace(/{/g, '${')}\`, + const url = getUrl(inter.getDsName()) ? `/${getUrl(inter.getDsName())}` : '' + return ` + /** + * @desc ${inter.description} + */ + import {defaultSuccess, defaultError, http} from '@/plugins/axios'; + import type { AxiosResponse } from 'axios'; + ${imports.length ? `import type { ${imports.join(',')} } from '@/api/api';` : ''}; + ${hasQueryParams ? `${this.getParamsTypeDec(inter)}` : ''} + + export default async function( + ${this.getParamsDec(inter)} + success: (data: ${this.genDataType(inter.getDsName(), inter)}) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError + ) :Promise{ + return http({ + method: '${inter.method}', + url: \`${url}${inter.path.replace(/{/g, '${')}\`, + ${bodyParmas ? `data: ${bodyParmaName},` : ''} + ${hasQueryParams ? `params,` : ''} + }).then((data: AxiosResponse<${this.genDataType(inter.getDsName(), inter)}, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); + } + ` + } + + getModIndex(mod: Pont.Mod): string { + // const name: string = upperFirst(mod.name); + // const hasResult = mod.interfaces.find(inter => inter.response.typeName.indexOf('Result') >= 0); + // const hasIPage = mod.interfaces.find(inter => inter.response.typeName.indexOf('IPage') >= 0); + // const hasPagination = mod.interfaces.find(inter => inter.response.typeName.indexOf('Pagination') >= 0); + // const hasVxe = mod.interfaces.find(inter => + // inter.parameters.find(p => p.dataType.typeName.indexOf('VXETableSaveDTO') >= 0), + // ); + // const hasCodebook = mod.interfaces.find( + // inter => inter.response.typeArgs[0] && inter.response.typeArgs[0].typeName.indexOf('Codebook') >= 0, + // ); + // const defTypes = this.getAllRefTypeNames(inter); + // const imports = [ + // hasResult ? 'Result' : null, + // hasIPage ? 'IPage' : null, + // hasPagination ? 'Pagination' : null, + // hasVxe ? 'VXETableSaveDTO' : null, + // hasCodebook ? 'Codebook' : null, + // ].filter(item => item !== null); + return ` + /** + * @description ${mod.description} + * + */ + ${mod.interfaces + .map((inter) => { + return `import ${fixInterfaceName(inter.name)} from './${fixInterfaceName(inter.name)}';` + }) + .join('\n')} + + export default { + ${mod.interfaces.map((inter) => fixInterfaceName(inter.name)).join(', \n')} + } + ` + } + getModsIndex(): string { + const exportseg = `export default { + ${this.dataSource.mods.map((mod) => mod.name).join(', \n')} + };` + return ` + ${this.dataSource.mods + .map((mod) => { + return ` + import ${mod.name} from './${mod.name}'; + ` + }) + .join('\n')} + ${exportseg} + ` + } +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..d4d0f63 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,21 @@ +export default { + tabWidth: 2, // 缩进 + useTabs: true, // 缩进方式 + trailingComma: 'all', + semi: false, // 语句结尾是否加分号 + singleQuote: true, // 单引号 + printWidth: 120, // 换行长度 + arrowParens: 'always', // 箭头函数参数 + bracketSpacing: true, // 对象花括号内是否加空格 + endOfLine: 'lf', + vueIndentScriptAndStyle: true, // vue文件内script和style标签缩进 + htmlWhitespaceSensitivity: 'ignore', + overrides: [ + { + files: '.prettierrc', + options: { + parser: 'json', + }, + }, + ], +} diff --git a/public/DS-DIGII-3.ttf b/public/DS-DIGII-3.ttf new file mode 100644 index 0000000..2aae3d8 Binary files /dev/null and b/public/DS-DIGII-3.ttf differ diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000..c2395f5 Binary files /dev/null and b/public/logo.png differ diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..7541cd6 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/api/acl/api.d.ts b/src/api/acl/api.d.ts new file mode 100644 index 0000000..c01cf97 --- /dev/null +++ b/src/api/acl/api.d.ts @@ -0,0 +1,198 @@ +declare namespace acl { + /** + * 权限 + */ + export interface Permission { + /** createdTime */ + createdTime?: string; + + /** 权限描述 */ + description?: string; + + /** id */ + id?: number; + + /** 权限key,英文 */ + key?: string; + + /** 权限keyPath,用来做业务,(父级keyPath.key) */ + keyPath?: string; + + /** 权限名称,中文用来做标识 */ + name?: string; + + /** 父权限key */ + parentKey?: string; + + /** 权限类型 */ + type?: 'MENU' | 'BUTTON' | 'OTHER'; + + /** typeInfo */ + typeInfo?: acl.Codebook; + + /** updatedTime */ + updatedTime?: string; + } + + /** + * 权限信息,包含是否选中标识 + */ + export interface PermissionInfo { + /** createdTime */ + createdTime?: string; + + /** 权限描述 */ + description?: string; + + /** id */ + id?: number; + + /** 权限key,英文 */ + key?: string; + + /** 权限keyPath,用来做业务,(父级keyPath.key) */ + keyPath?: string; + + /** 权限名称,中文用来做标识 */ + name?: string; + + /** 父权限key */ + parentKey?: string; + + /** 权限是否选中标识 */ + selected: boolean; + + /** 权限类型 */ + type?: 'MENU' | 'BUTTON' | 'OTHER'; + + /** typeInfo */ + typeInfo?: acl.Codebook; + + /** updatedTime */ + updatedTime?: string; + } + + /** + * 角色 + */ + export interface Role { + /** createdTime */ + createdTime?: string; + + /** 角色描述 */ + description?: string; + + /** id */ + id?: number; + + /** 角色key,英文,用来做业务 */ + key: string; + + /** 角色名称,中文用来做标识 */ + name?: string; + + /** updatedTime */ + updatedTime?: string; + } + + /** + * 角色信息,包含是否选中标识 + */ + export interface RoleInfo { + /** createdTime */ + createdTime?: string; + + /** 角色描述 */ + description?: string; + + /** id */ + id?: number; + + /** 角色key,英文,用来做业务 */ + key: string; + + /** 角色名称,中文用来做标识 */ + name?: string; + + /** 角色是否选中标识 */ + selected: boolean; + + /** updatedTime */ + updatedTime?: string; + } + + /** + * 树 + */ + export interface TreeString { + /** 下级列表 */ + children?: Array; + + /** 描述 */ + description?: string; + + /** ID */ + key: string; + + /** 名称 */ + name: string; + + /** originData */ + originData: acl.TreeableString; + + /** 父级 ID */ + parentKey?: string; + } + + /** + * 原始数据 + */ + export interface TreeableString { + /** description */ + description?: string; + + /** key */ + key?: string; + + /** name */ + name?: string; + + /** parentKey */ + parentKey?: string; + } + + /** + * 用户 + */ + export interface User { + /** createdTime */ + createdTime?: string; + + /** 邮箱 */ + email?: string; + + /** 真实姓名 */ + fullName?: string; + + /** id */ + id?: number; + + /** 手机号 */ + mobile?: string; + + /** 用户名 */ + name: string; + + /** 密码 */ + password?: string; + + /** 性别 */ + sex?: 'MALE' | 'FEMALE'; + + /** sexInfo */ + sexInfo?: acl.Codebook; + + /** updatedTime */ + updatedTime?: string; + } +} diff --git a/src/api/acl/mods/index.ts b/src/api/acl/mods/index.ts new file mode 100644 index 0000000..865d972 --- /dev/null +++ b/src/api/acl/mods/index.ts @@ -0,0 +1,11 @@ +import permission from './permission'; + +import role from './role'; + +import user from './user'; + +export default { + permission, + role, + user, +}; diff --git a/src/api/acl/mods/permission/add.ts b/src/api/acl/mods/permission/add.ts new file mode 100644 index 0000000..0f697b5 --- /dev/null +++ b/src/api/acl/mods/permission/add.ts @@ -0,0 +1,22 @@ +/** + * @desc 增加权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: acl.Permission, + + success: (data: acl.Permission) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/permission`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/batchInitPermissions.ts b/src/api/acl/mods/permission/batchInitPermissions.ts new file mode 100644 index 0000000..e043e7d --- /dev/null +++ b/src/api/acl/mods/permission/batchInitPermissions.ts @@ -0,0 +1,22 @@ +/** + * @desc 批量新增权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: Array, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/batch-init-permissions`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/batchSyncPermissions.ts b/src/api/acl/mods/permission/batchSyncPermissions.ts new file mode 100644 index 0000000..e8456d1 --- /dev/null +++ b/src/api/acl/mods/permission/batchSyncPermissions.ts @@ -0,0 +1,22 @@ +/** + * @desc 增量新增权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: Array, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'patch', + url: `/batch-sync-permissions`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/deletePermission.ts b/src/api/acl/mods/permission/deletePermission.ts new file mode 100644 index 0000000..c59e56b --- /dev/null +++ b/src/api/acl/mods/permission/deletePermission.ts @@ -0,0 +1,21 @@ +/** + * @desc 删除权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 权限key */ + key: string, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/permission/${key}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/detail.ts b/src/api/acl/mods/permission/detail.ts new file mode 100644 index 0000000..c26e141 --- /dev/null +++ b/src/api/acl/mods/permission/detail.ts @@ -0,0 +1,21 @@ +/** + * @desc 权限详情 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 权限id */ + id: number, + + success: (data: acl.Permission) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/permission/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/index.ts b/src/api/acl/mods/permission/index.ts new file mode 100644 index 0000000..64169a0 --- /dev/null +++ b/src/api/acl/mods/permission/index.ts @@ -0,0 +1,25 @@ +/** + * @description 权限 + * + */ +import batchInitPermissions from './batchInitPermissions'; +import batchSyncPermissions from './batchSyncPermissions'; +import add from './add'; +import update from './update'; +import types from './types'; +import detail from './detail'; +import deletePermission from './deletePermission'; +import permissions from './permissions'; +import permissionTree from './permissionTree'; + +export default { + batchInitPermissions, + batchSyncPermissions, + add, + update, + types, + detail, + deletePermission, + permissions, + permissionTree, +}; diff --git a/src/api/acl/mods/permission/permissionTree.ts b/src/api/acl/mods/permission/permissionTree.ts new file mode 100644 index 0000000..b4c49ce --- /dev/null +++ b/src/api/acl/mods/permission/permissionTree.ts @@ -0,0 +1,26 @@ +/** + * @desc 权限树 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export interface Params { + /** 强制拉取 */ + force?: boolean; +} + +export default async function ( + params: Params, + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/permissions/tree`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/permissions.ts b/src/api/acl/mods/permission/permissions.ts new file mode 100644 index 0000000..534a2ca --- /dev/null +++ b/src/api/acl/mods/permission/permissions.ts @@ -0,0 +1,26 @@ +/** + * @desc 权限列表 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export interface Params { + /** 强制拉取 */ + force?: boolean; +} + +export default async function ( + params: Params, + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/permissions`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/types.ts b/src/api/acl/mods/permission/types.ts new file mode 100644 index 0000000..a36d06f --- /dev/null +++ b/src/api/acl/mods/permission/types.ts @@ -0,0 +1,20 @@ +/** + * @desc 权限类型 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { Codebook } from '@/api/api'; + +export default async function ( + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/permission/types`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/permission/update.ts b/src/api/acl/mods/permission/update.ts new file mode 100644 index 0000000..03a42c0 --- /dev/null +++ b/src/api/acl/mods/permission/update.ts @@ -0,0 +1,22 @@ +/** + * @desc 更新权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: acl.Permission, + + success: (data: acl.Permission) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'patch', + url: `/permission`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/deleteRole.ts b/src/api/acl/mods/role/deleteRole.ts new file mode 100644 index 0000000..8d0f8f9 --- /dev/null +++ b/src/api/acl/mods/role/deleteRole.ts @@ -0,0 +1,21 @@ +/** + * @desc 删除角色 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 角色key */ + key: string, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/role/${key}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/detail.ts b/src/api/acl/mods/role/detail.ts new file mode 100644 index 0000000..a36c4d7 --- /dev/null +++ b/src/api/acl/mods/role/detail.ts @@ -0,0 +1,21 @@ +/** + * @desc 角色详情 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 角色id */ + id: number, + + success: (data: acl.Role) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/role/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/grant.ts b/src/api/acl/mods/role/grant.ts new file mode 100644 index 0000000..492f230 --- /dev/null +++ b/src/api/acl/mods/role/grant.ts @@ -0,0 +1,25 @@ +/** + * @desc 为指定角色授权 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 角色key */ + key: string, + + /** 请求体 */ + requestBody: Array, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/role/${key}/permissions`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/index.ts b/src/api/acl/mods/role/index.ts new file mode 100644 index 0000000..bc1a6b8 --- /dev/null +++ b/src/api/acl/mods/role/index.ts @@ -0,0 +1,21 @@ +/** + * @description 角色 + * + */ +import saveOrUpdateRole from './saveOrUpdateRole'; +import detail from './detail'; +import deleteRole from './deleteRole'; +import permissionInfos from './permissionInfos'; +import permissions from './permissions'; +import grant from './grant'; +import roles from './roles'; + +export default { + saveOrUpdateRole, + detail, + deleteRole, + permissionInfos, + permissions, + grant, + roles, +}; diff --git a/src/api/acl/mods/role/permissionInfos.ts b/src/api/acl/mods/role/permissionInfos.ts new file mode 100644 index 0000000..21f933e --- /dev/null +++ b/src/api/acl/mods/role/permissionInfos.ts @@ -0,0 +1,21 @@ +/** + * @desc 查询用于授权的权限信息 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 角色key */ + key: string, + + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/role/${key}/permission-infos`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/permissions.ts b/src/api/acl/mods/role/permissions.ts new file mode 100644 index 0000000..6f4b0f6 --- /dev/null +++ b/src/api/acl/mods/role/permissions.ts @@ -0,0 +1,21 @@ +/** + * @desc 查询角色权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 角色key */ + key: string, + + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/role/${key}/permissions`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/roles.ts b/src/api/acl/mods/role/roles.ts new file mode 100644 index 0000000..b51d7a0 --- /dev/null +++ b/src/api/acl/mods/role/roles.ts @@ -0,0 +1,31 @@ +/** + * @desc 分页查询角色 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { IPage } from '@/api/api'; +export interface Params { + /** 页码 */ + page?: number; + /** 页面大小 */ + size?: number; + /** 搜索关键词 */ + key?: string; +} + +export default async function ( + params: Params, + success: (data: IPage) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/roles`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/role/saveOrUpdateRole.ts b/src/api/acl/mods/role/saveOrUpdateRole.ts new file mode 100644 index 0000000..8c3bc79 --- /dev/null +++ b/src/api/acl/mods/role/saveOrUpdateRole.ts @@ -0,0 +1,22 @@ +/** + * @desc 增加/编辑角色 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: acl.Role, + + success: (data: acl.Role) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'put', + url: `/role`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/deleteUser.ts b/src/api/acl/mods/user/deleteUser.ts new file mode 100644 index 0000000..e1d2052 --- /dev/null +++ b/src/api/acl/mods/user/deleteUser.ts @@ -0,0 +1,21 @@ +/** + * @desc 删除用户 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户id */ + id: number, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/user/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/detail.ts b/src/api/acl/mods/user/detail.ts new file mode 100644 index 0000000..2e7e273 --- /dev/null +++ b/src/api/acl/mods/user/detail.ts @@ -0,0 +1,21 @@ +/** + * @desc 用户详情 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户id */ + id: number, + + success: (data: acl.User) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/user/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/grant.ts b/src/api/acl/mods/user/grant.ts new file mode 100644 index 0000000..a5ef3a3 --- /dev/null +++ b/src/api/acl/mods/user/grant.ts @@ -0,0 +1,25 @@ +/** + * @desc 为指定用户授权 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户名 */ + name: string, + + /** 请求体 */ + requestBody: Array, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/user/${name}/permissions`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/grantRole.ts b/src/api/acl/mods/user/grantRole.ts new file mode 100644 index 0000000..515d526 --- /dev/null +++ b/src/api/acl/mods/user/grantRole.ts @@ -0,0 +1,25 @@ +/** + * @desc 为指定用户设置角色 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户名 */ + name: string, + + /** 请求体 */ + requestBody: Array, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/user/${name}/roles`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/index.ts b/src/api/acl/mods/user/index.ts new file mode 100644 index 0000000..7e2e31e --- /dev/null +++ b/src/api/acl/mods/user/index.ts @@ -0,0 +1,29 @@ +/** + * @description 用户 + * + */ +import saveOrUpdateUser from './saveOrUpdateUser'; +import sexes from './sexes'; +import detail from './detail'; +import deleteUser from './deleteUser'; +import resetPassword from './resetPassword'; +import permissionInfos from './permissionInfos'; +import permissions from './permissions'; +import grant from './grant'; +import roleInfos from './roleInfos'; +import grantRole from './grantRole'; +import users from './users'; + +export default { + saveOrUpdateUser, + sexes, + detail, + deleteUser, + resetPassword, + permissionInfos, + permissions, + grant, + roleInfos, + grantRole, + users, +}; diff --git a/src/api/acl/mods/user/permissionInfos.ts b/src/api/acl/mods/user/permissionInfos.ts new file mode 100644 index 0000000..ee8b2bb --- /dev/null +++ b/src/api/acl/mods/user/permissionInfos.ts @@ -0,0 +1,21 @@ +/** + * @desc 查询用于授权的权限信息 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户名 */ + name: string, + + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/user/${name}/permission-infos`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/permissions.ts b/src/api/acl/mods/user/permissions.ts new file mode 100644 index 0000000..a4848f8 --- /dev/null +++ b/src/api/acl/mods/user/permissions.ts @@ -0,0 +1,21 @@ +/** + * @desc 查询用户权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户名 */ + name: string, + + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/user/${name}/permissions`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/resetPassword.ts b/src/api/acl/mods/user/resetPassword.ts new file mode 100644 index 0000000..0cc40f4 --- /dev/null +++ b/src/api/acl/mods/user/resetPassword.ts @@ -0,0 +1,21 @@ +/** + * @desc 重置密码 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户名 */ + name: string, + + success: (data: string) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'patch', + url: `/user/${name}/password`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/roleInfos.ts b/src/api/acl/mods/user/roleInfos.ts new file mode 100644 index 0000000..440be15 --- /dev/null +++ b/src/api/acl/mods/user/roleInfos.ts @@ -0,0 +1,21 @@ +/** + * @desc 查询用户权限 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 用户名 */ + name: string, + + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/user/${name}/role-infos`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/saveOrUpdateUser.ts b/src/api/acl/mods/user/saveOrUpdateUser.ts new file mode 100644 index 0000000..2308984 --- /dev/null +++ b/src/api/acl/mods/user/saveOrUpdateUser.ts @@ -0,0 +1,22 @@ +/** + * @desc 增加/编辑用户 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: acl.User, + + success: (data: acl.User) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'put', + url: `/user`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/sexes.ts b/src/api/acl/mods/user/sexes.ts new file mode 100644 index 0000000..6ed8bfa --- /dev/null +++ b/src/api/acl/mods/user/sexes.ts @@ -0,0 +1,20 @@ +/** + * @desc 用户性别 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { Codebook } from '@/api/api'; + +export default async function ( + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/user/sexes`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/acl/mods/user/users.ts b/src/api/acl/mods/user/users.ts new file mode 100644 index 0000000..068473b --- /dev/null +++ b/src/api/acl/mods/user/users.ts @@ -0,0 +1,33 @@ +/** + * @desc 分页查询用户 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { IPage } from '@/api/api'; +export interface Params { + /** 页码 */ + page?: number; + /** 页面大小 */ + size?: number; + /** 性别 */ + sex?: 'MALE' | 'FEMALE'; + /** 搜索关键词 */ + key?: string; +} + +export default async function ( + params: Params, + success: (data: IPage) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/users`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/api-lock.json b/src/api/api-lock.json new file mode 100644 index 0000000..2235a20 --- /dev/null +++ b/src/api/api-lock.json @@ -0,0 +1,4329 @@ +[ + { + "mods": [ + { + "description": "登录", + "name": "auth", + "interfaces": [ + { + "description": "当前用户", + "name": "currentUser", + "method": "get", + "path": "/auth/current-user", + "response": { + "typeArgs": [], + "typeName": "AuthUser", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [] + }, + { + "description": "登录", + "name": "login", + "method": "post", + "path": "/auth/login", + "response": { + "typeArgs": [], + "typeName": "AuthUser", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "LoginDTO", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "登出", + "name": "logout", + "method": "post", + "path": "/auth/logout", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [] + } + ] + } + ], + "name": "auth", + "baseClasses": [ + { + "name": "AuthUser", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "anonymous", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "avatar", + "description": "用户头像", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "email", + "description": "邮箱", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "NutMap", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "extInfo", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "fullName", + "description": "姓名", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "mobile", + "description": "电话", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "password", + "description": "密码", + "required": true + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "permissions", + "description": "权限列表", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "refreshToken", + "description": "jwt refreshToken", + "required": true + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "roles", + "description": "角色列表", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [ + "'MALE'", + "'FEMALE'" + ], + "typeProperties": [] + }, + "name": "sex", + "description": "性别", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "Codebook", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "sexInfo", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "token", + "description": "jwt Token", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "userName", + "description": "用户名", + "required": true + } + ] + }, + { + "description": "枚举码本", + "name": "Codebook", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "码本编码", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "码本名称", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "码本值", + "required": true + } + ] + }, + { + "description": "全局错误", + "name": "GlobalError", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "错误码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "message", + "description": "错误信息", + "required": false + } + ] + }, + { + "description": "登录实体", + "name": "LoginDTO", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "captcha", + "description": "验证码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "mobile", + "description": "手机号", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "password", + "description": "密码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [ + "'ACCOUNT'", + "'WECHAT'" + ], + "typeProperties": [] + }, + "name": "type", + "description": "登录类型", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "userName", + "description": "用户名", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "uuid", + "description": "uuid", + "required": false + } + ] + }, + { + "name": "NutMap", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + { + "typeArgs": [], + "typeName": "object", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "ObjectMap", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "all", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "empty", + "required": false + } + ] + } + ] + }, + { + "mods": [ + { + "description": "权限", + "name": "permission", + "interfaces": [ + { + "description": "批量新增权限", + "name": "batchInitPermissions", + "method": "post", + "path": "/batch-init-permissions", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "增量新增权限", + "name": "batchSyncPermissions", + "method": "patch", + "path": "/batch-sync-permissions", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "增加权限", + "name": "add", + "method": "post", + "path": "/permission", + "response": { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "更新权限", + "name": "update", + "method": "patch", + "path": "/permission", + "response": { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "权限类型", + "name": "types", + "method": "get", + "path": "/permission/types", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Codebook", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [] + }, + { + "description": "权限详情", + "name": "detail_2", + "method": "get", + "path": "/permission/{id}", + "response": { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "权限id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "删除权限", + "name": "deletePermission", + "method": "delete", + "path": "/permission/{key}", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "权限key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "权限列表", + "name": "permissions_2", + "method": "get", + "path": "/permissions", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "强制拉取", + "required": false, + "in": "query", + "name": "force", + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "权限树", + "name": "permissionTree", + "method": "get", + "path": "/permissions/tree", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "TreeString", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "强制拉取", + "required": false, + "in": "query", + "name": "force", + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + } + ] + }, + { + "description": "角色", + "name": "role", + "interfaces": [ + { + "description": "增加/编辑角色", + "name": "saveOrUpdateRole", + "method": "put", + "path": "/role", + "response": { + "typeArgs": [], + "typeName": "Role", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "Role", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "角色详情", + "name": "detail_1", + "method": "get", + "path": "/role/{id}", + "response": { + "typeArgs": [], + "typeName": "Role", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "角色id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "删除角色", + "name": "deleteRole", + "method": "delete", + "path": "/role/{key}", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "角色key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询用于授权的权限信息", + "name": "permissionInfos_1", + "method": "get", + "path": "/role/{key}/permission-infos", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "PermissionInfo", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "角色key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询角色权限", + "name": "permissions_1", + "method": "get", + "path": "/role/{key}/permissions", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "角色key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "为指定角色授权", + "name": "grant_1", + "method": "post", + "path": "/role/{key}/permissions", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "角色key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "分页查询角色", + "name": "roles", + "method": "get", + "path": "/roles", + "response": { + "typeArgs": [], + "typeName": "IPageRole", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "页码", + "required": false, + "in": "query", + "name": "page", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "页面大小", + "required": false, + "in": "query", + "name": "size", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "搜索关键词", + "required": false, + "in": "query", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + } + ] + }, + { + "description": "用户", + "name": "user", + "interfaces": [ + { + "description": "增加/编辑用户", + "name": "saveOrUpdateUser", + "method": "put", + "path": "/user", + "response": { + "typeArgs": [], + "typeName": "User", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "User", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "用户性别", + "name": "sexes", + "method": "get", + "path": "/user/sexes", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Codebook", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [] + }, + { + "description": "用户详情", + "name": "detail", + "method": "get", + "path": "/user/{id}", + "response": { + "typeArgs": [], + "typeName": "User", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "删除用户", + "name": "deleteUser", + "method": "delete", + "path": "/user/{id}", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "重置密码", + "name": "resetPassword", + "method": "patch", + "path": "/user/{name}/password", + "response": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户名", + "required": true, + "in": "path", + "name": "name", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询用于授权的权限信息", + "name": "permissionInfos", + "method": "get", + "path": "/user/{name}/permission-infos", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "PermissionInfo", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户名", + "required": true, + "in": "path", + "name": "name", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询用户权限", + "name": "permissions", + "method": "get", + "path": "/user/{name}/permissions", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Permission", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户名", + "required": true, + "in": "path", + "name": "name", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "为指定用户授权", + "name": "grant", + "method": "post", + "path": "/user/{name}/permissions", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户名", + "required": true, + "in": "path", + "name": "name", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询用户权限", + "name": "roleInfos", + "method": "get", + "path": "/user/{name}/role-infos", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "RoleInfo", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户名", + "required": true, + "in": "path", + "name": "name", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "为指定用户设置角色", + "name": "grantRole", + "method": "post", + "path": "/user/{name}/roles", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "用户名", + "required": true, + "in": "path", + "name": "name", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "分页查询用户", + "name": "users", + "method": "get", + "path": "/users", + "response": { + "typeArgs": [], + "typeName": "IPageUser", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "页码", + "required": false, + "in": "query", + "name": "page", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "页面大小", + "required": false, + "in": "query", + "name": "size", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "性别", + "required": false, + "in": "query", + "name": "sex", + "dataType": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [ + "'MALE'", + "'FEMALE'" + ], + "typeProperties": [] + } + }, + { + "description": "搜索关键词", + "required": false, + "in": "query", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + } + ] + } + ], + "name": "acl", + "baseClasses": [ + { + "description": "枚举码本", + "name": "Codebook", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "码本编码", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "码本名称", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "码本值", + "required": true + } + ] + }, + { + "description": "全局错误", + "name": "GlobalError", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "错误码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "message", + "description": "错误信息", + "required": false + } + ] + }, + { + "name": "IPageRole", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "current", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "pages", + "required": false + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Role", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "records", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "size", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "total", + "required": false + } + ] + }, + { + "name": "IPageUser", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "current", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "pages", + "required": false + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "User", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "records", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "size", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "total", + "required": false + } + ] + }, + { + "description": "权限", + "name": "Permission", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "权限描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "权限key,英文", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "keyPath", + "description": "权限keyPath,用来做业务,(父级keyPath.key)", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "权限名称,中文用来做标识", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "parentKey", + "description": "父权限key", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [ + "'MENU'", + "'BUTTON'", + "'OTHER'" + ], + "typeProperties": [] + }, + "name": "type", + "description": "权限类型", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "Codebook", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "typeInfo", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "description": "权限信息,包含是否选中标识", + "name": "PermissionInfo", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "权限描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "权限key,英文", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "keyPath", + "description": "权限keyPath,用来做业务,(父级keyPath.key)", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "权限名称,中文用来做标识", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "parentKey", + "description": "父权限key", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "selected", + "description": "权限是否选中标识", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [ + "'MENU'", + "'BUTTON'", + "'OTHER'" + ], + "typeProperties": [] + }, + "name": "type", + "description": "权限类型", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "Codebook", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "typeInfo", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "description": "角色", + "name": "Role", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "角色描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "角色key,英文,用来做业务", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "角色名称,中文用来做标识", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "description": "角色信息,包含是否选中标识", + "name": "RoleInfo", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "角色描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "角色key,英文,用来做业务", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "角色名称,中文用来做标识", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "selected", + "description": "角色是否选中标识", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "description": "树", + "name": "TreeString", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "TreeString", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "children", + "description": "下级列表", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "ID", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "名称", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "TreeableString", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "originData", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "parentKey", + "description": "父级 ID", + "required": false + } + ] + }, + { + "description": "原始数据", + "name": "TreeableString", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "parentKey", + "required": false + } + ] + }, + { + "description": "用户", + "name": "User", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "email", + "description": "邮箱", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "fullName", + "description": "真实姓名", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "mobile", + "description": "手机号", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "用户名", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "password", + "description": "密码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [ + "'MALE'", + "'FEMALE'" + ], + "typeProperties": [] + }, + "name": "sex", + "description": "性别", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "Codebook", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "sexInfo", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + } + ] + }, + { + "mods": [ + { + "description": "码本数据", + "name": "dictionary", + "interfaces": [ + { + "description": "增加/编辑码本分组", + "name": "saveOrUpdateGroup", + "method": "put", + "path": "/group", + "response": { + "typeArgs": [], + "typeName": "Group", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "Group", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "分组下的数据字典列表", + "name": "dictionaries", + "method": "get", + "path": "/group/{group}/dictionaries", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Dictionary", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "码本分组key", + "required": true, + "in": "path", + "name": "group", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "增加/编辑码本数据", + "name": "saveOrUpdateDictionary", + "method": "put", + "path": "/group/{group}/dictionary", + "response": { + "typeArgs": [], + "typeName": "Dictionary", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "码本分组key", + "required": true, + "in": "path", + "name": "group", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "Dictionary", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "删除码本数据", + "name": "deleteDictionary", + "method": "delete", + "path": "/group/{group}/dictionary/{key}", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "码本分组key", + "required": true, + "in": "path", + "name": "group", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "码本数据key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "码本分组详情", + "name": "groupDetail", + "method": "get", + "path": "/group/{id}", + "response": { + "typeArgs": [], + "typeName": "Group", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "码本分组id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "删除码本分组", + "name": "deleteGroup", + "method": "delete", + "path": "/group/{key}", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "码本分组key", + "required": true, + "in": "path", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "分页查询码本分组", + "name": "groups", + "method": "get", + "path": "/groups", + "response": { + "typeArgs": [], + "typeName": "IPageGroup", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "页码", + "required": false, + "in": "query", + "name": "page", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "页面大小", + "required": false, + "in": "query", + "name": "size", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "搜索关键词", + "required": false, + "in": "query", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + } + ] + } + ], + "name": "dictionary", + "baseClasses": [ + { + "description": "码本数据", + "name": "Dictionary", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "disabled", + "description": "禁用标识", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "groupKey", + "description": "分组Key", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "index", + "description": "序号", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "key", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "parentKey", + "description": "上级Key", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "value", + "description": "value", + "required": false + } + ] + }, + { + "description": "全局错误", + "name": "GlobalError", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "错误码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "message", + "description": "错误信息", + "required": false + } + ] + }, + { + "description": "码本分组", + "name": "Group", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "分组描述", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "disabled", + "description": "禁用标识", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "key", + "description": "分组唯一键", + "required": true + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "分组名称", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "name": "IPageGroup", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "current", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "pages", + "required": false + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Group", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "records", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "size", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "total", + "required": false + } + ] + } + ] + }, + { + "mods": [ + { + "description": "入库/出库 申请单管理", + "name": "apply", + "interfaces": [ + { + "description": "分页查询申请单列表", + "name": "applies", + "method": "get", + "path": "/apply", + "response": { + "typeArgs": [], + "typeName": "IPageApplyForm", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "页码", + "required": false, + "in": "query", + "name": "page", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "页面大小", + "required": false, + "in": "query", + "name": "size", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "类型", + "required": true, + "in": "query", + "name": "type", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "搜索关键词", + "required": false, + "in": "query", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "增加/编辑申请单", + "name": "saveOrUpdateApply", + "method": "put", + "path": "/apply", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "ApplyInfo", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询申请单详情", + "name": "detail_1", + "method": "get", + "path": "/apply/{applyId}", + "response": { + "typeArgs": [], + "typeName": "ApplyInfo", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "类型", + "required": true, + "in": "path", + "name": "applyId", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + } + ] + }, + { + "description": "物料管理", + "name": "material", + "interfaces": [ + { + "description": "增加/编辑物料", + "name": "saveOrUpdateMaterial", + "method": "put", + "path": "/material", + "response": { + "typeArgs": [], + "typeName": "Material", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "required": true, + "in": "body", + "name": "requestBody", + "dataType": { + "typeArgs": [], + "typeName": "Material", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "查询所有物料列表", + "name": "all", + "method": "get", + "path": "/material/list", + "response": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Material", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [] + }, + { + "description": "物料详情", + "name": "detail", + "method": "get", + "path": "/material/{id}", + "response": { + "typeArgs": [], + "typeName": "Material", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "物料id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "删除物料", + "name": "deleteMaterial", + "method": "delete", + "path": "/material/{id}", + "response": { + "typeArgs": [], + "typeName": "", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "物料id", + "required": true, + "in": "path", + "name": "id", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + }, + { + "description": "分页查询物料列表", + "name": "materials", + "method": "get", + "path": "/materials", + "response": { + "typeArgs": [], + "typeName": "IPageMaterial", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "parameters": [ + { + "description": "页码", + "required": false, + "in": "query", + "name": "page", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "页面大小", + "required": false, + "in": "query", + "name": "size", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "类型", + "required": false, + "in": "query", + "name": "type", + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + }, + { + "description": "搜索关键词", + "required": false, + "in": "query", + "name": "key", + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + } + ] + } + ] + } + ], + "name": "material", + "baseClasses": [ + { + "description": "申请单明细", + "name": "ApplyDetail", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "applyId", + "description": "申请单ID", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "confirmQuantity", + "description": "确认数量", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "exceptionRemark", + "description": "异常情况说明", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "materialId", + "description": "物料Id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "quantity", + "description": "申请数量", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "description": "入库/出库 申请单", + "name": "ApplyForm", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "applicant", + "description": "申请人", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "applyDate", + "description": "申请日期", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "exceptionExplain", + "description": "异常说明", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "boolean", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "isConfirm", + "description": "是否确认", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "type", + "description": "类型", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + }, + { + "description": "申请单", + "name": "ApplyInfo", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "ApplyDetail", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "applyDetails", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "ApplyForm", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "applyForm", + "required": false + } + ] + }, + { + "description": "全局错误", + "name": "GlobalError", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "错误码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "message", + "description": "错误信息", + "required": false + } + ] + }, + { + "name": "IPageApplyForm", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "current", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "pages", + "required": false + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "ApplyForm", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "records", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "size", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "total", + "required": false + } + ] + }, + { + "name": "IPageMaterial", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "current", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "pages", + "required": false + }, + { + "dataType": { + "typeArgs": [ + { + "typeArgs": [], + "typeName": "Material", + "isDefsType": true, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + } + ], + "typeName": "Array", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "records", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "size", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "total", + "required": false + } + ] + }, + { + "description": "物料信息", + "name": "Material", + "templateArgs": [], + "properties": [ + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "assignRule", + "description": "赋码规则", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "code", + "description": "编码", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "createdTime", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "description", + "description": "备注", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "id", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "name", + "description": "名称", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "spec", + "description": "规格", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "number", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "stock", + "description": "库存数量", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "type", + "description": "类型", + "required": false + }, + { + "dataType": { + "typeArgs": [], + "typeName": "string", + "isDefsType": false, + "templateIndex": -1, + "compileTemplateKeyword": "#/definitions/", + "enum": [], + "typeProperties": [] + }, + "name": "updatedTime", + "required": false + } + ] + } + ] + } +] \ No newline at end of file diff --git a/src/api/api.d.ts b/src/api/api.d.ts new file mode 100644 index 0000000..e566cec --- /dev/null +++ b/src/api/api.d.ts @@ -0,0 +1,118 @@ +/** + * mybatis-plus 分页对象 + */ +export interface IPage { + /** + * 当前页面 + */ + current: number; + /** + * 总页数 + */ + pages?: number; + /** + * 数据记录 + */ + records?: Array; + /** + * 分页大小 + */ + size: number; + /** + * 数据总条数 + */ + total?: number; +} +/** + * Nutz 分页对象 + */ +export interface Pagination { + /** + * 数据记录 + */ + dataList: Array; + /** + * 是否首页 + */ + first?: boolean; + /** + * 是否尾页 + */ + last?: boolean; + /** + * 偏移量 + */ + offset?: number; + /** + * 总页数 + */ + pageCount: number; + /** + * 当前页码 + */ + pageNumber: number; + /** + * 页面大小 + */ + pageSize: number; + /** + * sql参数 + */ + paras: Record; + /** + * 数据记录总数 + */ + recordCount?: number; +} +/** + * VXE 数据结构 + */ +export interface VXETableSaveDTO { + /** + * 新增记录数据 + */ + insertRecords: Array; + /** + * 删除记录数据 + */ + removeRecords: Array; + /** + * 更新记录数据 + */ + updateRecords: Array; +} +/** + * 枚举码本 + */ +export interface Codebook { + /** 码本编码 */ + code: string; + + /** 码本名称 */ + description: string; + + /** 码本值 */ + name: string; +} + +/** + * 全局错误 + */ +export interface GlobalError { + /** 错误码 */ + code?: number; + + /** 错误信息 */ + message?: string; +} +/** + * NutMap + */ +type NutMap = { + [key in Key]: Value; +}; +// 导入其他模块 +/// +/// +/// +/// diff --git a/src/api/auth/api.d.ts b/src/api/auth/api.d.ts new file mode 100644 index 0000000..10350fb --- /dev/null +++ b/src/api/auth/api.d.ts @@ -0,0 +1,71 @@ +declare namespace auth { + /** + * AuthUser + */ + export interface AuthUser { + /** anonymous */ + anonymous?: boolean; + + /** 用户头像 */ + avatar?: string; + + /** 邮箱 */ + email?: string; + + /** extInfo */ + extInfo?: auth.NutMap; + + /** 姓名 */ + fullName: string; + + /** 电话 */ + mobile?: string; + + /** 密码 */ + password: string; + + /** 权限列表 */ + permissions: Array; + + /** jwt refreshToken */ + refreshToken: string; + + /** 角色列表 */ + roles: Array; + + /** 性别 */ + sex?: 'MALE' | 'FEMALE'; + + /** sexInfo */ + sexInfo?: auth.Codebook; + + /** jwt Token */ + token: string; + + /** 用户名 */ + userName: string; + } + + /** + * 登录实体 + */ + export interface LoginDTO { + /** 验证码 */ + captcha?: string; + + /** 手机号 */ + mobile?: string; + + /** 密码 */ + password?: string; + + /** 登录类型 */ + type: 'ACCOUNT' | 'WECHAT'; + + /** 用户名 */ + userName?: string; + + /** uuid */ + uuid?: string; + } +} diff --git a/src/api/auth/mods/auth/currentUser.ts b/src/api/auth/mods/auth/currentUser.ts new file mode 100644 index 0000000..a609560 --- /dev/null +++ b/src/api/auth/mods/auth/currentUser.ts @@ -0,0 +1,18 @@ +/** + * @desc 当前用户 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + success: (data: auth.AuthUser) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/auth/current-user`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/auth/mods/auth/index.ts b/src/api/auth/mods/auth/index.ts new file mode 100644 index 0000000..7797cc1 --- /dev/null +++ b/src/api/auth/mods/auth/index.ts @@ -0,0 +1,13 @@ +/** + * @description 登录 + * + */ +import currentUser from './currentUser'; +import login from './login'; +import logout from './logout'; + +export default { + currentUser, + login, + logout, +}; diff --git a/src/api/auth/mods/auth/login.ts b/src/api/auth/mods/auth/login.ts new file mode 100644 index 0000000..efc7abd --- /dev/null +++ b/src/api/auth/mods/auth/login.ts @@ -0,0 +1,22 @@ +/** + * @desc 登录 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: auth.LoginDTO, + + success: (data: auth.AuthUser) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/auth/login`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/auth/mods/auth/logout.ts b/src/api/auth/mods/auth/logout.ts new file mode 100644 index 0000000..8d7f290 --- /dev/null +++ b/src/api/auth/mods/auth/logout.ts @@ -0,0 +1,18 @@ +/** + * @desc 登出 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'post', + url: `/auth/logout`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/auth/mods/index.ts b/src/api/auth/mods/index.ts new file mode 100644 index 0000000..a9d5dca --- /dev/null +++ b/src/api/auth/mods/index.ts @@ -0,0 +1,5 @@ +import auth from './auth'; + +export default { + auth, +}; diff --git a/src/api/dictionary/api.d.ts b/src/api/dictionary/api.d.ts new file mode 100644 index 0000000..000ab20 --- /dev/null +++ b/src/api/dictionary/api.d.ts @@ -0,0 +1,62 @@ +declare namespace dictionary { + /** + * 码本数据 + */ + export interface Dictionary { + /** createdTime */ + createdTime?: string; + + /** 描述 */ + description?: string; + + /** 禁用标识 */ + disabled?: boolean; + + /** 分组Key */ + groupKey?: string; + + /** id */ + id?: number; + + /** 序号 */ + index?: number; + + /** key */ + key?: string; + + /** 上级Key */ + parentKey?: string; + + /** updatedTime */ + updatedTime?: string; + + /** value */ + value?: string; + } + + /** + * 码本分组 + */ + export interface Group { + /** createdTime */ + createdTime?: string; + + /** 分组描述 */ + description?: string; + + /** 禁用标识 */ + disabled?: boolean; + + /** id */ + id?: number; + + /** 分组唯一键 */ + key: string; + + /** 分组名称 */ + name?: string; + + /** updatedTime */ + updatedTime?: string; + } +} diff --git a/src/api/dictionary/mods/dictionary/deleteDictionary.ts b/src/api/dictionary/mods/dictionary/deleteDictionary.ts new file mode 100644 index 0000000..76c3eb5 --- /dev/null +++ b/src/api/dictionary/mods/dictionary/deleteDictionary.ts @@ -0,0 +1,23 @@ +/** + * @desc 删除码本数据 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 码本分组key */ + group: string, + /** 码本数据key */ + key: string, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/group/${group}/dictionary/${key}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/dictionary/deleteGroup.ts b/src/api/dictionary/mods/dictionary/deleteGroup.ts new file mode 100644 index 0000000..d298a79 --- /dev/null +++ b/src/api/dictionary/mods/dictionary/deleteGroup.ts @@ -0,0 +1,21 @@ +/** + * @desc 删除码本分组 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 码本分组key */ + key: string, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/group/${key}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/dictionary/dictionaries.ts b/src/api/dictionary/mods/dictionary/dictionaries.ts new file mode 100644 index 0000000..099c761 --- /dev/null +++ b/src/api/dictionary/mods/dictionary/dictionaries.ts @@ -0,0 +1,21 @@ +/** + * @desc 分组下的数据字典列表 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 码本分组key */ + group: string, + + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/group/${group}/dictionaries`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/dictionary/groupDetail.ts b/src/api/dictionary/mods/dictionary/groupDetail.ts new file mode 100644 index 0000000..2978c44 --- /dev/null +++ b/src/api/dictionary/mods/dictionary/groupDetail.ts @@ -0,0 +1,21 @@ +/** + * @desc 码本分组详情 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 码本分组id */ + id: number, + + success: (data: dictionary.Group) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/group/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/dictionary/groups.ts b/src/api/dictionary/mods/dictionary/groups.ts new file mode 100644 index 0000000..8050813 --- /dev/null +++ b/src/api/dictionary/mods/dictionary/groups.ts @@ -0,0 +1,31 @@ +/** + * @desc 分页查询码本分组 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { IPage } from '@/api/api'; +export interface Params { + /** 页码 */ + page?: number; + /** 页面大小 */ + size?: number; + /** 搜索关键词 */ + key?: string; +} + +export default async function ( + params: Params, + success: (data: IPage) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/groups`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/dictionary/index.ts b/src/api/dictionary/mods/dictionary/index.ts new file mode 100644 index 0000000..2064c6c --- /dev/null +++ b/src/api/dictionary/mods/dictionary/index.ts @@ -0,0 +1,21 @@ +/** + * @description 码本数据 + * + */ +import saveOrUpdateGroup from './saveOrUpdateGroup'; +import dictionaries from './dictionaries'; +import saveOrUpdateDictionary from './saveOrUpdateDictionary'; +import deleteDictionary from './deleteDictionary'; +import groupDetail from './groupDetail'; +import deleteGroup from './deleteGroup'; +import groups from './groups'; + +export default { + saveOrUpdateGroup, + dictionaries, + saveOrUpdateDictionary, + deleteDictionary, + groupDetail, + deleteGroup, + groups, +}; diff --git a/src/api/dictionary/mods/dictionary/saveOrUpdateDictionary.ts b/src/api/dictionary/mods/dictionary/saveOrUpdateDictionary.ts new file mode 100644 index 0000000..6d5aecb --- /dev/null +++ b/src/api/dictionary/mods/dictionary/saveOrUpdateDictionary.ts @@ -0,0 +1,25 @@ +/** + * @desc 增加/编辑码本数据 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 码本分组key */ + group: string, + + /** 请求体 */ + requestBody: dictionary.Dictionary, + + success: (data: dictionary.Dictionary) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'put', + url: `/group/${group}/dictionary`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/dictionary/saveOrUpdateGroup.ts b/src/api/dictionary/mods/dictionary/saveOrUpdateGroup.ts new file mode 100644 index 0000000..2c4faa4 --- /dev/null +++ b/src/api/dictionary/mods/dictionary/saveOrUpdateGroup.ts @@ -0,0 +1,22 @@ +/** + * @desc 增加/编辑码本分组 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: dictionary.Group, + + success: (data: dictionary.Group) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'put', + url: `/group`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/dictionary/mods/index.ts b/src/api/dictionary/mods/index.ts new file mode 100644 index 0000000..8675ef4 --- /dev/null +++ b/src/api/dictionary/mods/index.ts @@ -0,0 +1,5 @@ +import dictionary from './dictionary'; + +export default { + dictionary, +}; diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..344dac7 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,19 @@ +import type { App } from 'vue'; +import authApi from './auth/mods'; + +import aclApi from './acl/mods'; + +import dictionaryApi from './dictionary/mods'; + +import materialApi from './material/mods'; + +export const api = { + authApi, + aclApi, + dictionaryApi, + materialApi, + install: (app: App) => { + app.config.globalProperties.$api = api; + }, +}; +export default api; diff --git a/src/api/material/api.d.ts b/src/api/material/api.d.ts new file mode 100644 index 0000000..eb55392 --- /dev/null +++ b/src/api/material/api.d.ts @@ -0,0 +1,105 @@ +declare namespace material { + /** + * 申请单明细 + */ + export interface ApplyDetail { + /** 申请单ID */ + applyId?: number; + + /** 确认数量 */ + confirmQuantity?: number; + + /** createdTime */ + createdTime?: string; + + /** 异常情况说明 */ + exceptionRemark?: string; + + /** id */ + id?: number; + + /** 物料Id */ + materialId?: number; + + /** 申请数量 */ + quantity?: number; + + /** updatedTime */ + updatedTime?: string; + } + + /** + * 入库/出库 申请单 + */ + export interface ApplyForm { + /** 申请人 */ + applicant?: string; + + /** 申请日期 */ + applyDate?: string; + + /** createdTime */ + createdTime?: string; + + /** 异常说明 */ + exceptionExplain?: string; + + /** id */ + id?: number; + + /** 是否确认 */ + isConfirm?: boolean; + + /** 类型 */ + type?: number; + + /** updatedTime */ + updatedTime?: string; + } + + /** + * 申请单 + */ + export interface ApplyInfo { + /** applyDetails */ + applyDetails?: Array; + + /** applyForm */ + applyForm?: material.ApplyForm; + } + + /** + * 物料信息 + */ + export interface Material { + /** 赋码规则 */ + assignRule?: number; + + /** 编码 */ + code?: string; + + /** createdTime */ + createdTime?: string; + + /** 备注 */ + description?: string; + + /** id */ + id?: number; + + /** 名称 */ + name?: string; + + /** 规格 */ + spec?: string; + + /** 库存数量 */ + stock?: number; + + /** 类型 */ + type?: string; + + /** updatedTime */ + updatedTime?: string; + } +} diff --git a/src/api/material/mods/apply/applies.ts b/src/api/material/mods/apply/applies.ts new file mode 100644 index 0000000..c111f48 --- /dev/null +++ b/src/api/material/mods/apply/applies.ts @@ -0,0 +1,33 @@ +/** + * @desc 分页查询申请单列表 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { IPage } from '@/api/api'; +export interface Params { + /** 类型 */ + type: number; + /** 页码 */ + page?: number; + /** 页面大小 */ + size?: number; + /** 搜索关键词 */ + key?: string; +} + +export default async function ( + params: Params, + success: (data: IPage) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/apply`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/apply/detail.ts b/src/api/material/mods/apply/detail.ts new file mode 100644 index 0000000..5c4d5e5 --- /dev/null +++ b/src/api/material/mods/apply/detail.ts @@ -0,0 +1,21 @@ +/** + * @desc 查询申请单详情 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 类型 */ + applyId: number, + + success: (data: material.ApplyInfo) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/apply/${applyId}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/apply/index.ts b/src/api/material/mods/apply/index.ts new file mode 100644 index 0000000..be446a2 --- /dev/null +++ b/src/api/material/mods/apply/index.ts @@ -0,0 +1,13 @@ +/** + * @description 入库/出库 申请单管理 + * + */ +import applies from './applies'; +import saveOrUpdateApply from './saveOrUpdateApply'; +import detail from './detail'; + +export default { + applies, + saveOrUpdateApply, + detail, +}; diff --git a/src/api/material/mods/apply/materials.ts b/src/api/material/mods/apply/materials.ts new file mode 100644 index 0000000..9da3738 --- /dev/null +++ b/src/api/material/mods/apply/materials.ts @@ -0,0 +1,34 @@ +/** + * @desc 分页查询申请单列表 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { IPage } from '@/api/api'; +export interface Params { + /** 页码 */ + page?: number; + /** 页面大小 */ + size?: number; + /** 搜索关键词 */ + key?: string; +} + +export default async function ( + /** 类型 */ + type: number, + + params: Params, + success: (data: IPage) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/apply/${type}`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/apply/saveOrUpdateApply.ts b/src/api/material/mods/apply/saveOrUpdateApply.ts new file mode 100644 index 0000000..de920c8 --- /dev/null +++ b/src/api/material/mods/apply/saveOrUpdateApply.ts @@ -0,0 +1,22 @@ +/** + * @desc 增加/编辑申请单 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: material.ApplyInfo, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'put', + url: `/apply`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/index.ts b/src/api/material/mods/index.ts new file mode 100644 index 0000000..2499b18 --- /dev/null +++ b/src/api/material/mods/index.ts @@ -0,0 +1,8 @@ +import apply from './apply'; + +import material from './material'; + +export default { + apply, + material, +}; diff --git a/src/api/material/mods/material/all.ts b/src/api/material/mods/material/all.ts new file mode 100644 index 0000000..84f7c1d --- /dev/null +++ b/src/api/material/mods/material/all.ts @@ -0,0 +1,18 @@ +/** + * @desc 查询所有物料列表 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + success: (data: Array) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/material/list`, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/material/deleteMaterial.ts b/src/api/material/mods/material/deleteMaterial.ts new file mode 100644 index 0000000..419489b --- /dev/null +++ b/src/api/material/mods/material/deleteMaterial.ts @@ -0,0 +1,21 @@ +/** + * @desc 删除物料 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 物料id */ + id: number, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/material/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/material/deleteUser.ts b/src/api/material/mods/material/deleteUser.ts new file mode 100644 index 0000000..419489b --- /dev/null +++ b/src/api/material/mods/material/deleteUser.ts @@ -0,0 +1,21 @@ +/** + * @desc 删除物料 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 物料id */ + id: number, + + success: (data: void) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'delete', + url: `/material/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/material/detail.ts b/src/api/material/mods/material/detail.ts new file mode 100644 index 0000000..2cc7eae --- /dev/null +++ b/src/api/material/mods/material/detail.ts @@ -0,0 +1,21 @@ +/** + * @desc 物料详情 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 物料id */ + id: number, + + success: (data: material.Material) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/material/${id}`, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/material/index.ts b/src/api/material/mods/material/index.ts new file mode 100644 index 0000000..57efb60 --- /dev/null +++ b/src/api/material/mods/material/index.ts @@ -0,0 +1,17 @@ +/** + * @description 物料管理 + * + */ +import saveOrUpdateMaterial from './saveOrUpdateMaterial'; +import all from './all'; +import detail from './detail'; +import deleteMaterial from './deleteMaterial'; +import materials from './materials'; + +export default { + saveOrUpdateMaterial, + all, + detail, + deleteMaterial, + materials, +}; diff --git a/src/api/material/mods/material/materials.ts b/src/api/material/mods/material/materials.ts new file mode 100644 index 0000000..7626361 --- /dev/null +++ b/src/api/material/mods/material/materials.ts @@ -0,0 +1,33 @@ +/** + * @desc 分页查询物料列表 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +import type { IPage } from '@/api/api'; +export interface Params { + /** 页码 */ + page?: number; + /** 页面大小 */ + size?: number; + /** 类型 */ + type?: number; + /** 搜索关键词 */ + key?: string; +} + +export default async function ( + params: Params, + success: (data: IPage) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'get', + url: `/materials`, + + params, + }) + .then((data: AxiosResponse, unknown>) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/material/mods/material/saveOrUpdateMaterial.ts b/src/api/material/mods/material/saveOrUpdateMaterial.ts new file mode 100644 index 0000000..e6766d0 --- /dev/null +++ b/src/api/material/mods/material/saveOrUpdateMaterial.ts @@ -0,0 +1,22 @@ +/** + * @desc 增加/编辑物料 + */ +import { defaultSuccess, defaultError, http } from '@/plugins/axios'; +import type { AxiosResponse } from 'axios'; +export default async function ( + /** 请求体 */ + requestBody: material.Material, + + success: (data: material.Material) => void = defaultSuccess, + fail: (error: { code: string; error?: string }) => void = defaultError, +): Promise { + return http({ + method: 'put', + url: `/material`, + data: requestBody, + }) + .then((data: AxiosResponse) => { + success(data.data); + }) + .catch((error: { code: string; error?: string }) => fail(error)); +} diff --git a/src/api/pontCore.ts b/src/api/pontCore.ts new file mode 100644 index 0000000..d16b941 --- /dev/null +++ b/src/api/pontCore.ts @@ -0,0 +1,72 @@ +/** + * @description pont内置请求单例 + */ + +class PontCoreManager { + static singleInstance = null as PontCoreManager; + + static getSignleInstance() { + if (!PontCoreManager.singleInstance) { + PontCoreManager.singleInstance = new PontCoreManager(); + return PontCoreManager.singleInstance; + } + return PontCoreManager.singleInstance; + } + + /** + * fetch请求 + * @param url 请求url + * @param options fetch 请求配置 + */ + fetch(url: string, options = {}) { + return fetch(url, options).then((res) => { + return res.json(); + }); + } + + /** + * 使用外部传入的请求方法替换默认的fetch请求 + */ + useFetch(fetch: (url: string, options?: any) => Promise) { + if (typeof fetch !== 'function') { + console.error('fetch should be a function '); + return; + } + + this.fetch = fetch; + } + + getUrl(path: string, queryParams: any, method: string) { + const params = { + ...(queryParams || ({} as any)), + }; + + const url = path.replace(/\{([^\\}]*(?:\\.[^\\}]*)*)\}/gm, (match, key) => { + // eslint-disable-next-line no-param-reassign + key = key.trim(); + + if (params[key] !== undefined) { + const value = params[key]; + delete params[key]; + return value; + } + console.warn('Please set value for template key: ', key); + return ''; + }); + + const paramStr = Object.keys(params) + .map((key) => { + return params[key] === undefined ? '' : `${key}=${params[key]}`; + }) + .filter((id) => id) + .join('&'); + + if (paramStr) { + return `${url}?${paramStr}`; + } + + return url; + } +} + +export const PontCore = PontCoreManager.getSignleInstance(); diff --git a/src/assets/PDF.png b/src/assets/PDF.png new file mode 100644 index 0000000..5ca5adc Binary files /dev/null and b/src/assets/PDF.png differ diff --git a/src/assets/WORD.png b/src/assets/WORD.png new file mode 100644 index 0000000..a395c32 Binary files /dev/null and b/src/assets/WORD.png differ diff --git a/src/assets/crun.png b/src/assets/crun.png new file mode 100644 index 0000000..63cbc85 Binary files /dev/null and b/src/assets/crun.png differ diff --git a/src/assets/excel.png b/src/assets/excel.png new file mode 100644 index 0000000..09b26a4 Binary files /dev/null and b/src/assets/excel.png differ diff --git a/src/assets/iam.png b/src/assets/iam.png new file mode 100644 index 0000000..5c3613b Binary files /dev/null and b/src/assets/iam.png differ diff --git a/src/assets/image.png b/src/assets/image.png new file mode 100644 index 0000000..5bd0e7c Binary files /dev/null and b/src/assets/image.png differ diff --git a/src/assets/login-bg.png b/src/assets/login-bg.png new file mode 100644 index 0000000..db7e78a Binary files /dev/null and b/src/assets/login-bg.png differ diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000..c2395f5 Binary files /dev/null and b/src/assets/logo.png differ diff --git a/src/assets/vue.svg b/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts new file mode 100644 index 0000000..0f3e257 --- /dev/null +++ b/src/auto-imports.d.ts @@ -0,0 +1,297 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +// biome-ignore lint: disable +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] + const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] + const computed: typeof import('vue')['computed'] + const computedAsync: typeof import('@vueuse/core')['computedAsync'] + const computedEager: typeof import('@vueuse/core')['computedEager'] + const computedInject: typeof import('@vueuse/core')['computedInject'] + const computedWithControl: typeof import('@vueuse/core')['computedWithControl'] + const controlledComputed: typeof import('@vueuse/core')['controlledComputed'] + const controlledRef: typeof import('@vueuse/core')['controlledRef'] + const createApp: typeof import('vue')['createApp'] + const createEventHook: typeof import('@vueuse/core')['createEventHook'] + const createGlobalState: typeof import('@vueuse/core')['createGlobalState'] + const createInjectionState: typeof import('@vueuse/core')['createInjectionState'] + const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn'] + const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate'] + const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable'] + const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise'] + const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn'] + const customRef: typeof import('vue')['customRef'] + const debouncedRef: typeof import('@vueuse/core')['debouncedRef'] + const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const eagerComputed: typeof import('@vueuse/core')['eagerComputed'] + const effectScope: typeof import('vue')['effectScope'] + const extendRef: typeof import('@vueuse/core')['extendRef'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch'] + const inject: typeof import('vue')['inject'] + const injectLocal: typeof import('@vueuse/core')['injectLocal'] + const isDefined: typeof import('@vueuse/core')['isDefined'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onClickOutside: typeof import('@vueuse/core')['onClickOutside'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke'] + const onLongPress: typeof import('@vueuse/core')['onLongPress'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onStartTyping: typeof import('@vueuse/core')['onStartTyping'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] + const pausableWatch: typeof import('@vueuse/core')['pausableWatch'] + const provide: typeof import('vue')['provide'] + const provideLocal: typeof import('@vueuse/core')['provideLocal'] + const reactify: typeof import('@vueuse/core')['reactify'] + const reactifyObject: typeof import('@vueuse/core')['reactifyObject'] + const reactive: typeof import('vue')['reactive'] + const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed'] + const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit'] + const reactivePick: typeof import('@vueuse/core')['reactivePick'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const refAutoReset: typeof import('@vueuse/core')['refAutoReset'] + const refDebounced: typeof import('@vueuse/core')['refDebounced'] + const refDefault: typeof import('@vueuse/core')['refDefault'] + const refThrottled: typeof import('@vueuse/core')['refThrottled'] + const refWithControl: typeof import('@vueuse/core')['refWithControl'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const resolveRef: typeof import('@vueuse/core')['resolveRef'] + const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const syncRef: typeof import('@vueuse/core')['syncRef'] + const syncRefs: typeof import('@vueuse/core')['syncRefs'] + const templateRef: typeof import('@vueuse/core')['templateRef'] + const throttledRef: typeof import('@vueuse/core')['throttledRef'] + const throttledWatch: typeof import('@vueuse/core')['throttledWatch'] + const toRaw: typeof import('vue')['toRaw'] + const toReactive: typeof import('@vueuse/core')['toReactive'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount'] + const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount'] + const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted'] + const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose'] + const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted'] + const unref: typeof import('vue')['unref'] + const unrefElement: typeof import('@vueuse/core')['unrefElement'] + const until: typeof import('@vueuse/core')['until'] + const useActiveElement: typeof import('@vueuse/core')['useActiveElement'] + const useAnimate: typeof import('@vueuse/core')['useAnimate'] + const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference'] + const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery'] + const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter'] + const useArrayFind: typeof import('@vueuse/core')['useArrayFind'] + const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex'] + const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast'] + const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes'] + const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin'] + const useArrayMap: typeof import('@vueuse/core')['useArrayMap'] + const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce'] + const useArraySome: typeof import('@vueuse/core')['useArraySome'] + const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique'] + const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue'] + const useAsyncState: typeof import('@vueuse/core')['useAsyncState'] + const useAttrs: typeof import('vue')['useAttrs'] + const useBase64: typeof import('@vueuse/core')['useBase64'] + const useBattery: typeof import('@vueuse/core')['useBattery'] + const useBluetooth: typeof import('@vueuse/core')['useBluetooth'] + const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints'] + const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel'] + const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation'] + const useCached: typeof import('@vueuse/core')['useCached'] + const useClipboard: typeof import('@vueuse/core')['useClipboard'] + const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems'] + const useCloned: typeof import('@vueuse/core')['useCloned'] + const useColorMode: typeof import('@vueuse/core')['useColorMode'] + const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog'] + const useCounter: typeof import('@vueuse/core')['useCounter'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVar: typeof import('@vueuse/core')['useCssVar'] + const useCssVars: typeof import('vue')['useCssVars'] + const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement'] + const useCycleList: typeof import('@vueuse/core')['useCycleList'] + const useDark: typeof import('@vueuse/core')['useDark'] + const useDateFormat: typeof import('@vueuse/core')['useDateFormat'] + const useDebounce: typeof import('@vueuse/core')['useDebounce'] + const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn'] + const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory'] + const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion'] + const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] + const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] + const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] + const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] + const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] + const useDraggable: typeof import('@vueuse/core')['useDraggable'] + const useDropZone: typeof import('@vueuse/core')['useDropZone'] + const useElementBounding: typeof import('@vueuse/core')['useElementBounding'] + const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint'] + const useElementHover: typeof import('@vueuse/core')['useElementHover'] + const useElementSize: typeof import('@vueuse/core')['useElementSize'] + const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility'] + const useEventBus: typeof import('@vueuse/core')['useEventBus'] + const useEventListener: typeof import('@vueuse/core')['useEventListener'] + const useEventSource: typeof import('@vueuse/core')['useEventSource'] + const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper'] + const useFavicon: typeof import('@vueuse/core')['useFavicon'] + const useFetch: typeof import('@vueuse/core')['useFetch'] + const useFileDialog: typeof import('@vueuse/core')['useFileDialog'] + const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess'] + const useFocus: typeof import('@vueuse/core')['useFocus'] + const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin'] + const useFps: typeof import('@vueuse/core')['useFps'] + const useFullscreen: typeof import('@vueuse/core')['useFullscreen'] + const useGamepad: typeof import('@vueuse/core')['useGamepad'] + const useGeolocation: typeof import('@vueuse/core')['useGeolocation'] + const useId: typeof import('vue')['useId'] + const useIdle: typeof import('@vueuse/core')['useIdle'] + const useImage: typeof import('@vueuse/core')['useImage'] + const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll'] + const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver'] + const useInterval: typeof import('@vueuse/core')['useInterval'] + const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn'] + const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] + const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] + const useLink: typeof import('vue-router')['useLink'] + const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] + const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] + const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] + const useMediaControls: typeof import('@vueuse/core')['useMediaControls'] + const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] + const useMemoize: typeof import('@vueuse/core')['useMemoize'] + const useMemory: typeof import('@vueuse/core')['useMemory'] + const useModel: typeof import('vue')['useModel'] + const useMounted: typeof import('@vueuse/core')['useMounted'] + const useMouse: typeof import('@vueuse/core')['useMouse'] + const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] + const useMousePressed: typeof import('@vueuse/core')['useMousePressed'] + const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] + const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] + const useNetwork: typeof import('@vueuse/core')['useNetwork'] + const useNow: typeof import('@vueuse/core')['useNow'] + const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] + const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] + const useOnline: typeof import('@vueuse/core')['useOnline'] + const usePageLeave: typeof import('@vueuse/core')['usePageLeave'] + const useParallax: typeof import('@vueuse/core')['useParallax'] + const useParentElement: typeof import('@vueuse/core')['useParentElement'] + const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver'] + const usePermission: typeof import('@vueuse/core')['usePermission'] + const usePointer: typeof import('@vueuse/core')['usePointer'] + const usePointerLock: typeof import('@vueuse/core')['usePointerLock'] + const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe'] + const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme'] + const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast'] + const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark'] + const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages'] + const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion'] + const usePrevious: typeof import('@vueuse/core')['usePrevious'] + const useRafFn: typeof import('@vueuse/core')['useRafFn'] + const useRefHistory: typeof import('@vueuse/core')['useRefHistory'] + const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation'] + const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea'] + const useScriptTag: typeof import('@vueuse/core')['useScriptTag'] + const useScroll: typeof import('@vueuse/core')['useScroll'] + const useScrollLock: typeof import('@vueuse/core')['useScrollLock'] + const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage'] + const useShare: typeof import('@vueuse/core')['useShare'] + const useSlots: typeof import('vue')['useSlots'] + const useSorted: typeof import('@vueuse/core')['useSorted'] + const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition'] + const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis'] + const useStepper: typeof import('@vueuse/core')['useStepper'] + const useStorage: typeof import('@vueuse/core')['useStorage'] + const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync'] + const useStyleTag: typeof import('@vueuse/core')['useStyleTag'] + const useSupported: typeof import('@vueuse/core')['useSupported'] + const useSwipe: typeof import('@vueuse/core')['useSwipe'] + const useTemplateRef: typeof import('vue')['useTemplateRef'] + const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList'] + const useTextDirection: typeof import('@vueuse/core')['useTextDirection'] + const useTextSelection: typeof import('@vueuse/core')['useTextSelection'] + const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize'] + const useThrottle: typeof import('@vueuse/core')['useThrottle'] + const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn'] + const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory'] + const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo'] + const useTimeout: typeof import('@vueuse/core')['useTimeout'] + const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn'] + const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll'] + const useTimestamp: typeof import('@vueuse/core')['useTimestamp'] + const useTitle: typeof import('@vueuse/core')['useTitle'] + const useToNumber: typeof import('@vueuse/core')['useToNumber'] + const useToString: typeof import('@vueuse/core')['useToString'] + const useToggle: typeof import('@vueuse/core')['useToggle'] + const useTransition: typeof import('@vueuse/core')['useTransition'] + const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams'] + const useUserMedia: typeof import('@vueuse/core')['useUserMedia'] + const useVModel: typeof import('@vueuse/core')['useVModel'] + const useVModels: typeof import('@vueuse/core')['useVModels'] + const useVibrate: typeof import('@vueuse/core')['useVibrate'] + const useVirtualList: typeof import('@vueuse/core')['useVirtualList'] + const useWakeLock: typeof import('@vueuse/core')['useWakeLock'] + const useWebNotification: typeof import('@vueuse/core')['useWebNotification'] + const useWebSocket: typeof import('@vueuse/core')['useWebSocket'] + const useWebWorker: typeof import('@vueuse/core')['useWebWorker'] + const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn'] + const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus'] + const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll'] + const useWindowSize: typeof import('@vueuse/core')['useWindowSize'] + const watch: typeof import('vue')['watch'] + const watchArray: typeof import('@vueuse/core')['watchArray'] + const watchAtMost: typeof import('@vueuse/core')['watchAtMost'] + const watchDebounced: typeof import('@vueuse/core')['watchDebounced'] + const watchDeep: typeof import('@vueuse/core')['watchDeep'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable'] + const watchImmediate: typeof import('@vueuse/core')['watchImmediate'] + const watchOnce: typeof import('@vueuse/core')['watchOnce'] + const watchPausable: typeof import('@vueuse/core')['watchPausable'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] + const watchThrottled: typeof import('@vueuse/core')['watchThrottled'] + const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable'] + const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter'] + const whenever: typeof import('@vueuse/core')['whenever'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' + import('vue') +} diff --git a/src/components.d.ts b/src/components.d.ts new file mode 100644 index 0000000..fc8b170 --- /dev/null +++ b/src/components.d.ts @@ -0,0 +1,99 @@ +/* eslint-disable */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + AAlert: typeof import('ant-design-vue/es')['Alert'] + AAvatar: typeof import('ant-design-vue/es')['Avatar'] + ABadge: typeof import('ant-design-vue/es')['Badge'] + ABadgeRibbon: typeof import('ant-design-vue/es')['BadgeRibbon'] + AButton: typeof import('ant-design-vue/es')['Button'] + ACard: typeof import('ant-design-vue/es')['Card'] + ACardGrid: typeof import('ant-design-vue/es')['CardGrid'] + ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] + ACol: typeof import('ant-design-vue/es')['Col'] + AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] + ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] + ADescriptions: typeof import('ant-design-vue/es')['Descriptions'] + ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem'] + ADivider: typeof import('ant-design-vue/es')['Divider'] + ADrawer: typeof import('ant-design-vue/es')['Drawer'] + ADropdown: typeof import('ant-design-vue/es')['Dropdown'] + AFlex: typeof import('ant-design-vue/es')['Flex'] + AFloatButton: typeof import('ant-design-vue/es')['FloatButton'] + AForm: typeof import('ant-design-vue/es')['Form'] + AFormItem: typeof import('ant-design-vue/es')['FormItem'] + AImage: typeof import('ant-design-vue/es')['Image'] + AInput: typeof import('ant-design-vue/es')['Input'] + AInputPassword: typeof import('ant-design-vue/es')['InputPassword'] + AInputSearch: typeof import('ant-design-vue/es')['InputSearch'] + ALayout: typeof import('ant-design-vue/es')['Layout'] + ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] + ALayoutFooter: typeof import('ant-design-vue/es')['LayoutFooter'] + ALayoutHeader: typeof import('ant-design-vue/es')['LayoutHeader'] + ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider'] + AMentionsOption: typeof import('ant-design-vue/es')['MentionsOption'] + AMenu: typeof import('ant-design-vue/es')['Menu'] + AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] + AModal: typeof import('ant-design-vue/es')['Modal'] + APageHeader: typeof import('ant-design-vue/es')['PageHeader'] + APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] + ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] + ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] + AResult: typeof import('ant-design-vue/es')['Result'] + ARow: typeof import('ant-design-vue/es')['Row'] + ASelect: typeof import('ant-design-vue/es')['Select'] + ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] + ASlider: typeof import('ant-design-vue/es')['Slider'] + ASpace: typeof import('ant-design-vue/es')['Space'] + ASpin: typeof import('ant-design-vue/es')['Spin'] + AStatistic: typeof import('ant-design-vue/es')['Statistic'] + ASteps: typeof import('ant-design-vue/es')['Steps'] + ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] + ASwitch: typeof import('ant-design-vue/es')['Switch'] + ATable: typeof import('ant-design-vue/es')['Table'] + ATabPane: typeof import('ant-design-vue/es')['TabPane'] + ATabs: typeof import('ant-design-vue/es')['Tabs'] + ATag: typeof import('ant-design-vue/es')['Tag'] + ATooltip: typeof import('ant-design-vue/es')['Tooltip'] + ATransfer: typeof import('ant-design-vue/es')['Transfer'] + ATree: typeof import('ant-design-vue/es')['Tree'] + ATypographyLink: typeof import('ant-design-vue/es')['TypographyLink'] + ATypographyParagraph: typeof import('ant-design-vue/es')['TypographyParagraph'] + ATypographyTitle: typeof import('ant-design-vue/es')['TypographyTitle'] + AuxiliaryItemRender: typeof import('./components/form-render/auxiliary-item-render.vue')['default'] + AWatermark: typeof import('ant-design-vue/es')['Watermark'] + CodeGeneratorDrawer: typeof import('./components/form-designer/component-container/code-generator-drawer.vue')['default'] + ColComponentItem: typeof import('./components/form-designer/component-container/col-component-item.vue')['default'] + ComponentContainer: typeof import('./components/form-designer/component-container/component-container.vue')['default'] + ComponentItem: typeof import('./components/form-designer/component-container/component-item.vue')['default'] + ComponentPanel: typeof import('./components/form-designer/component-panel/component-panel.vue')['default'] + ConfigPanel: typeof import('./components/form-designer/config-panel/config-panel.vue')['default'] + DataSourceTable: typeof import('./components/form-designer/config-panel/data-source-table.vue')['default'] + FormConfigPanel: typeof import('./components/form-designer/config-panel/form-config-panel.vue')['default'] + FormDesigner: typeof import('./components/form-designer/form-designer.vue')['default'] + FormDrawer: typeof import('./components/form-render/form-drawer.vue')['default'] + FormItemConfigPanel: typeof import('./components/form-designer/config-panel/form-item-config-panel.vue')['default'] + FormItemRender: typeof import('./components/form-render/form-item-render.vue')['default'] + FormModal: typeof import('./components/form-render/form-modal.vue')['default'] + FormPreviewDrawer: typeof import('./components/form-designer/component-container/form-preview-drawer.vue')['default'] + FormRender: typeof import('./components/form-render/form-render.vue')['default'] + IconFont: typeof import('./components/icon-font/icon-font.vue')['default'] + ImageUploader: typeof import('./components/image-uploader/image-uploader.vue')['default'] + InputItem: typeof import('./components/form-designer/component-panel/input-item.vue')['default'] + OptionTable: typeof import('./components/form-designer/config-panel/option-table.vue')['default'] + PageContainer: typeof import('./components/page-container/page-container.vue')['default'] + PropertyConfig: typeof import('./components/form-designer/config-panel/property-config.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + RowComponentItem: typeof import('./components/form-designer/component-container/row-component-item.vue')['default'] + SearchTree: typeof import('./components/search-tree.vue')['default'] + SelectedTree: typeof import('./components/search-tree.vue')['default'] + TreeDataTable: typeof import('./components/form-designer/config-panel/tree-data-table.vue')['default'] + ValidateRuleConfig: typeof import('./components/form-designer/config-panel/validate-rule-config.vue')['default'] + } +} diff --git a/src/components/form-designer/component-container/code-generator-drawer.vue b/src/components/form-designer/component-container/code-generator-drawer.vue new file mode 100644 index 0000000..ae6c7f0 --- /dev/null +++ b/src/components/form-designer/component-container/code-generator-drawer.vue @@ -0,0 +1,253 @@ + + diff --git a/src/components/form-designer/component-container/col-component-item.vue b/src/components/form-designer/component-container/col-component-item.vue new file mode 100644 index 0000000..b5068bb --- /dev/null +++ b/src/components/form-designer/component-container/col-component-item.vue @@ -0,0 +1,119 @@ + + + diff --git a/src/components/form-designer/component-container/component-container.vue b/src/components/form-designer/component-container/component-container.vue new file mode 100644 index 0000000..a02c6fc --- /dev/null +++ b/src/components/form-designer/component-container/component-container.vue @@ -0,0 +1,267 @@ + + + diff --git a/src/components/form-designer/component-container/component-item.vue b/src/components/form-designer/component-container/component-item.vue new file mode 100644 index 0000000..a6326d6 --- /dev/null +++ b/src/components/form-designer/component-container/component-item.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/components/form-designer/component-container/form-preview-drawer.vue b/src/components/form-designer/component-container/form-preview-drawer.vue new file mode 100644 index 0000000..4dcf7ae --- /dev/null +++ b/src/components/form-designer/component-container/form-preview-drawer.vue @@ -0,0 +1,54 @@ + + diff --git a/src/components/form-designer/component-container/row-component-item.vue b/src/components/form-designer/component-container/row-component-item.vue new file mode 100644 index 0000000..7b85685 --- /dev/null +++ b/src/components/form-designer/component-container/row-component-item.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/components/form-designer/component-panel/component-panel.vue b/src/components/form-designer/component-panel/component-panel.vue new file mode 100644 index 0000000..f27a563 --- /dev/null +++ b/src/components/form-designer/component-panel/component-panel.vue @@ -0,0 +1,91 @@ + + diff --git a/src/components/form-designer/component-panel/components.ts b/src/components/form-designer/component-panel/components.ts new file mode 100644 index 0000000..99d870e --- /dev/null +++ b/src/components/form-designer/component-panel/components.ts @@ -0,0 +1,4703 @@ +import { + FormItem, + FormItemProperties, + FormItemTypeEnum, + FormValueType, +} from '@/components/form-render/form-render-types' +import { FormDesignerItem } from '../form-designer-types' +import XEUtils from 'xe-utils' + +export const inputPropertiesForm: FormItem[] = [ + { + type: FormItemTypeEnum.RADIO, + group: 'form', + config: { + label: '控件大小', + name: 'size', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.RADIO, + group: 'form', + config: { + label: '输入类型', + name: 'type', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '文本', + value: 'text', + }, + { + label: '邮箱', + value: 'email', + }, + { + label: '颜色', + value: 'color', + }, + { + label: '电话', + value: 'tel', + }, + { + label: 'URL', + value: 'url', + }, + ], + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '占位符', + name: 'placeholder', + }, + properties: { + size: 'small', + placeholder: '请输入表单占位符', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '清除图标', + name: 'allowClear', + }, + properties: { + checkedChildren: '显示', + unCheckedChildren: '隐藏', + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '显示边框', + name: 'bordered', + }, + properties: { + checkedChildren: '显示', + unCheckedChildren: '隐藏', + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '展示字数', + name: 'showCount', + }, + properties: { + checkedChildren: '显示', + unCheckedChildren: '隐藏', + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '最大长度', + name: 'maxlength', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入最大长度', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '默认值', + name: 'defaultValue', + }, + properties: { + size: 'small', + placeholder: '请输入默认值', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '前置标签', + name: 'addonBefore', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入前置标签', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '后置标签', + name: 'addonAfter', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入后置标签', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '前缀图标', + name: 'prefix', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入前缀图标', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '后缀图标', + name: 'suffix', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入后缀图标', + }, + rules: [], + }, + { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '禁用状态', + name: 'disabled', + }, + properties: { + checkedChildren: '开启', + unCheckedChildren: '关闭', + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '输入框的 id', + name: 'id', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入输入框的 id', + }, + rules: [], + }, +] + +const passwordForm = () => { + const passwordForm = XEUtils.clone(inputPropertiesForm, true) + passwordForm.splice(1, 1, { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '是否显示切换按钮', + name: 'visibilityToggle', + }, + properties: { + checkedChildren: '显示', + unCheckedChildren: '隐藏', + size: 'small', + disabled: false, + }, + rules: [], + }) + return passwordForm +} + +const textAreaForm = () => { + const textAreaForm = XEUtils.clone(inputPropertiesForm, true) + textAreaForm.splice( + 1, + 1, + { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '自适应内容高度', + name: 'autoSize', + }, + properties: { + checkedChildren: '开启', + unCheckedChildren: '关闭', + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '最小行', + name: 'minRows', + }, + properties: { + size: 'small', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '最大行', + name: 'maxRows', + }, + properties: { + size: 'small', + disabled: false, + }, + rules: [], + }, + ) + return textAreaForm +} + +export const switchForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '开关大小', + name: 'size', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + size: 'small', + options: [ + { + label: '默认', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { size: 'small' }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '加载中', + name: 'loading', + }, + properties: { size: 'small' }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '选中时的内容', + name: 'checkedChildren', + help: '', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入选中时的内容', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '非选中时的内容', + name: 'unCheckedChildren', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入非选中时的内容', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '选中时的值', + name: 'checkedValue', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入选中时的值', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '非选中时的值', + name: 'unCheckedValue', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入非选中时的值', + }, + rules: [], + }, +] +export const inputNumberForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '开关大小', + name: 'size', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + size: 'small', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '占位符', + name: 'placeholder', + }, + properties: { + size: 'small', + placeholder: '请输入表单占位符', + disabled: false, + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '最大值', + name: 'max', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入最大值', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '最小值', + name: 'min', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入最小值', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '数值精度', + name: 'precision', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入数值精度', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '步长', + name: 'step', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入步长', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '字符值模式', + name: 'stringMode', + }, + properties: { size: 'small' }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '前置标签', + name: 'addonBefore', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入前置标签', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '后置标签', + name: 'addonAfter', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入后置标签', + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '前缀图标', + name: 'prefix', + }, + properties: { + size: 'small', + disabled: false, + placeholder: '请输入前缀图标', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { size: 'small' }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否有边框', + name: 'bordered', + }, + properties: { size: 'small' }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否显示增减按钮', + name: 'controls', + }, + properties: { size: 'small' }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否启用键盘快捷行为', + name: 'keyboard', + }, + properties: { size: 'small' }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '小数点 ', + name: 'decimalSeparator', + help: '', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入小数点', + }, + rules: [], + }, +] + +export const radioForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '开关大小', + name: 'size', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + size: 'small', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '选项类型', + name: 'optionType', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + size: 'small', + options: [ + { + label: '默认', + value: 'default', + }, + { + label: '按钮', + value: 'button', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '选项按钮风格', + name: 'buttonStyle', + }, + properties: { + optionType: 'button', + buttonStyle: 'solid', + size: 'small', + options: [ + { + label: '描边', + value: 'outline', + }, + { + label: '填色', + value: 'solid', + }, + ], + }, + rules: [], + }, + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '表单 name 属性', + name: 'name', + }, + properties: { + size: 'small', + placeholder: '请输入表单 name 属性', + disabled: false, + }, + rules: [], + }, +] + +export const autoCompleteForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '输入框提示', + name: 'placeholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入输入框提示', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '支持清除', + name: 'allowClear', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '使用键盘选择选项的时候把选中项回填到输入框中', + name: 'backfill', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '默认高亮第一个选项', + name: 'defaultActiveFirstOption', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '默认展开下拉菜单', + name: 'defaultOpen', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉菜单和选择器同宽', + name: 'dropdownMatchSelectWidth', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '展开下拉菜单', + name: 'open', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, +] + +export const mentionsForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '输入框提示', + name: 'placeholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入输入框提示', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + checkedChildren: '', + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '弹出层展示位置', + name: 'placement', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '顶部', + value: 'top', + }, + { + label: '底部', + value: 'bottom', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '触发关键字', + name: 'prefix', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入触发关键字","分割', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '选中项前后分隔符', + name: 'split', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入选中项前后分隔符', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉列表为空时显示的内容', + name: 'notFoundContent', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入下拉列表为空时显示的内容', + }, + rules: [], + }, +] + +export const checkboxForm = [ + { + type: FormItemTypeEnum.INPUT, + group: 'form', + config: { + label: '表单 name 属性', + name: 'name', + }, + properties: { + size: 'small', + placeholder: '请输入表单 name 属性', + disabled: false, + }, + rules: [], + }, +] + +export const selectForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '模式', + name: 'mode', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '多选', + value: 'multiple', + }, + { + label: '标签', + value: 'tags', + }, + { + value: 'combobox', + label: '组合', + }, + ], + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '最多显示多少个 tag', + name: 'maxTagCount', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入最多显示多少个 tag', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '最大显示的 tag 文本长度', + name: 'maxTagTextLength', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入最大显示的 tag 文本长度', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉列表为空时显示的内容', + name: 'notFoundContent', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入下拉列表为空时显示的内容', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '支持清除', + name: 'allowClear', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否可搜索', + name: 'showSearch', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '选中项后清空搜索框', + name: 'autoClearSearchValue', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '控制搜索文本', + name: 'searchValue', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入控制搜索文本', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '搜索时过滤对应的 option 属性', + name: 'optionFilterProp', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入搜索时过滤对应的 option 属性', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '默认获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否有边框', + name: 'bordered', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '选择框默认文字', + name: 'placeholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入选择框默认文字', + }, + rules: [], + }, + + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '默认高亮第一个选项', + name: 'defaultActiveFirstOption', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '在 tags 和 multiple 模式下自动分词的分隔符', + name: 'tokenSeparators', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入在 tags 和 multiple 模式下自动分词的分隔符', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否显示下拉小箭头', + name: 'showArrow', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '默认展开下拉菜单', + name: 'defaultOpen', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '回填到选择框的 Option 的属性值', + name: 'optionLabelProp', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入回填到选择框的 Option 的属性值', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展开下拉菜单', + name: 'open', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉菜单的 className 属性', + name: 'dropdownClassName', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入下拉菜单的 className 属性', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉菜单和选择器同宽', + name: 'dropdownMatchSelectWidth', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '默认高亮的选项', + name: 'firstActiveValue', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入默认高亮的选项', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '选项的 label 包装到 value 中', + name: 'labelInValue', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '弹窗滚动高度', + name: 'listHeight', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入弹窗滚动高度', + }, + rules: [], + }, +] + +export const cascaderForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '设置搜索的值', + name: 'searchValue', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入设置搜索的值', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '输入框占位文本', + name: 'placeholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入输入框占位文本', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '支持多选节点', + name: 'multiple', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '最多显示多少个 tag', + name: 'maxTagCount', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入最多显示多少个 tag', + min: 1, + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '浮层预设位置', + name: 'placement', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '坐下', + value: 'bottomLeft', + }, + { + label: '右下', + value: 'bottomRight', + }, + { + value: 'topLeft', + label: '左上', + }, + { + value: 'topRight', + label: '右上', + }, + ], + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '浮层显隐', + name: 'open', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '在选择框中显示搜索框', + name: 'showSearch', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '点选每级菜单选项值都会发生变化', + name: 'changeOnSelect', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否有边框', + name: 'bordered', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉列表为空时显示的内容', + name: 'notFoundContent', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入自定义浮层类名', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '自定义的选择框后缀图标', + name: 'suffixIcon', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入自定义的选择框后缀图标', + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '次级菜单的展开方式', + name: 'expandTrigger', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '点击', + value: 'click', + }, + { + label: '悬停', + value: 'hover', + }, + ], + }, + rules: [], + }, +] + +export const alterForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '警告提示的样式', + name: 'type', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '成功', + value: 'success', + }, + { + label: '提示', + value: 'info', + }, + { + value: 'warning', + label: '警告', + }, + { + value: 'error', + label: '错误', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '警告提示内容', + name: 'message', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入警告提示内容', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '警告提示的辅助性文字介绍', + name: 'description', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入警告提示的辅助性文字介绍', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否显示辅助图标', + name: 'showIcon', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '显示关闭按钮', + name: 'closable', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '自定义关闭按钮文字', + name: 'closeText', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入自定义关闭按钮文字', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否用作顶部公告', + name: 'banner', + }, + properties: { + size: 'small', + }, + rules: [], + }, +] + +export const dividerForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '类型', + name: 'type', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '水平', + value: 'horizontal', + }, + { + label: '垂直', + value: 'vertical', + }, + ], + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否虚线', + name: 'vertical', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '显示标题', + name: 'showText', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '标题', + name: 'text', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入分割线标题', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '标题是否显示为普通正文样式', + name: 'plain', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '分割线标题的位置', + name: 'orientation', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '左', + value: 'left', + }, + { + label: '中', + value: 'center', + }, + { + label: '右', + value: 'right', + }, + ], + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '标题边距', + name: 'orientationMargin', + }, + properties: { + size: 'small', + controls: true, + prefix: '', + addonAfter: 'px', + }, + rules: [], + }, +] + +export const typographyFrom = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '类型', + name: 'type', + }, + properties: { + size: 'default', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '非主要', + value: 'secondary', + }, + { + label: '成功', + value: 'success ', + }, + { + value: 'warning', + label: '警告', + }, + { + value: 'danger', + label: '危险', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '内容', + name: 'content', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入内容', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '添加代码样式', + name: 'code', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否可拷贝', + name: 'copyable', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '删除线样式', + name: 'delete', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '禁用文本', + name: 'disabled', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否可编辑', + name: 'editable', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动溢出省略', + name: 'ellipsis', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '添加键盘样式', + name: 'keyboard', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '添加标记样式', + name: 'mark', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否加粗', + name: 'strong', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '添加下划线样式', + name: 'underline', + }, + properties: { + size: 'small', + }, + rules: [], + }, +] + +export const spaceForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '方向', + name: 'direction', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '垂直', + value: 'vertical', + }, + { + label: '水平', + value: 'horizontal', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '小', + value: 'small', + }, + { + label: '中', + value: 'middle', + }, + { + value: 'large', + label: '大', + }, + { + value: 'number', + label: '数值', + }, + ], + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小像素值', + name: 'sizeInPx', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入大小像素值', + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '对齐', + name: 'align', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '开始', + value: 'start', + }, + { + label: '结尾', + value: 'end', + }, + { + value: 'center', + label: '居中', + }, + { + value: 'baseline', + label: '基线', + }, + ], + }, + rules: [], + }, +] + +export const rateForm = [ + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否允许再次点击后清除', + name: 'allowClear', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否允许半选', + name: 'allowHalf', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '自定义字符', + name: 'character', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入自定义字符', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: 'star 总数', + name: 'count', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入star 总数', + step: 1, + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '每项的提示信息', + name: 'tooltips', + }, + properties: { + size: 'default', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入每项的提示信息,","分隔', + }, + rules: [], + }, +] + +export const sliderForm = [ + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否只能拖拽到刻度上', + name: 'dots', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '最大值', + name: 'max', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入最大值', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '最小值', + name: 'min', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入最小值', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '双滑块模式', + name: 'range', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '反向坐标轴', + name: 'reverse', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '步长', + name: 'step', + }, + properties: { + size: 'default', + controls: true, + placeholder: '请输入步长', + min: 1, + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '垂直方向', + name: 'vertical', + }, + properties: { + size: 'small', + }, + rules: [], + }, +] + +export const timePickerForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + value: 'small', + label: '小', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '绑定值的格式', + name: 'valueFormat', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入绑定值的格式', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展示清除按钮', + name: 'allowClear', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否有边框', + name: 'bordered', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '清除按钮的提示文案', + name: 'clearText', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入清除按钮的提示文案', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '展示的时间格式', + name: 'format', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入展示的时间格式', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '隐藏禁止选择的选项', + name: 'hideDisabledOptions', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '小时选项间隔', + name: 'hourStep', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入小时选项间隔', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '设置输入框为只读', + name: 'inputReadOnly', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '分钟选项间隔', + name: 'minuteStep', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入分钟选项间隔', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '没有值的时候显示的内容', + name: 'placeholder', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入没有值的时候显示的内容', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '弹出层类名', + name: 'popupClassName', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入弹出层类名', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '秒选项间隔', + name: 'secondStep', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入秒选项间隔', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '面板是否显示“此刻”按钮', + name: 'showNow', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '使用 12 小时制', + name: 'use12Hours', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '绑定值的格式', + name: 'valueFormat', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入绑定值的格式', + }, + rules: [], + }, +] + +export const timeRangePickerForm = () => { + const timeRangePickerForm = XEUtils.clone(timePickerForm, true) + timeRangePickerForm.splice(1, 0, { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '始末时间是否自动排序', + name: 'order', + }, + properties: { + size: 'small', + }, + rules: [], + }) + return timeRangePickerForm +} + +export const dateBaseForm = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'middle', + }, + { + value: 'small', + label: '小', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '选择器类型', + name: 'picker', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '日期', + value: 'date', + }, + { + label: '星期', + value: 'week', + }, + { + value: 'month', + label: '月份', + }, + { + value: 'quarter', + label: '季度', + }, + { + value: 'year', + label: '年份', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '日期面板状态', + name: 'mode', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '日期', + value: 'date', + }, + { + label: '时间', + value: 'time', + }, + { + value: 'month', + label: '月份', + }, + { + value: 'decade', + label: '十年', + }, + { + value: 'year', + label: '年份', + }, + ], + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '绑定值的格式', + name: 'valueFormat', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入绑定值的格式', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否显示清除按钮', + name: 'allowClear', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '自动获取焦点', + name: 'autofocus', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否有边框', + name: 'bordered', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '额外的弹出日历 className', + name: 'dropdownClassName', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入额外的弹出日历 className', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '输入框为只读', + name: 'inputReadOnly', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '弹层是否展开', + name: 'open', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '输入框提示文字', + name: 'placeholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入输入框提示文字', + }, + rules: [], + }, +] +export const datePickerForm = () => { + const datePickerForm = XEUtils.clone(dateBaseForm, true) + datePickerForm.splice( + 1, + 0, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '面板是否显示“此刻”按钮', + name: 'showNow', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '增加时间选择功能', + name: 'showTime', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展示“今天”按钮', + name: 'showToday', + }, + properties: { + size: 'small', + }, + rules: [], + }, + ) + return datePickerForm +} +export const dateRangePickerForm = () => { + const dateRangePickerForm = XEUtils.clone(dateBaseForm, true) + dateRangePickerForm.splice( + 1, + 0, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '分隔符', + name: 'separator', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入分隔符', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '增加时间选择功能', + name: 'showTime', + }, + properties: { + size: 'small', + }, + rules: [], + }, + ) + return dateRangePickerForm +} + +export const uploadForm = [ + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '接受上传的文件类型', + name: 'accept', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入接受上传的文件类型', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '上传地址', + name: 'action', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入上传地址', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '支持上传文件夹', + name: 'directory', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '上传列表的内建样式', + name: 'listType', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '文本', + value: 'text', + }, + { + label: '图片', + value: 'picture', + }, + { + value: 'picture-card', + label: '卡片', + }, + ], + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '限制上传数量', + name: 'maxCount', + }, + properties: { + size: 'small', + controls: true, + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否支持多选文件', + name: 'multiple', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '发到后台的文件参数名', + name: 'name', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入发到后台的文件参数名', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '点击打开文件对话框', + name: 'openFileDialogOnClick', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展示 uploadList', + name: 'showUploadList', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '支持服务端渲染', + name: 'supportServerRender', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '上传请求时是否携带 cookie', + name: 'withCredentials', + }, + properties: { + size: 'small', + }, + rules: [], + }, +] +export const transferForm = [ + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '展示为单向样式', + name: 'oneWay', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '操作文案集合', + name: 'operations', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入操作文案集合,","分隔', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '使用分页样式', + name: 'pagination', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否显示搜索框', + name: 'showSearch', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '标题集合', + name: 'titles', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入标题集合,","分隔', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展示全选勾选框', + name: 'showSelectAll', + }, + properties: { + size: 'small', + }, + rules: [], + }, +] +export const treeSelectFrom = [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '大小', + name: 'size', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '大', + value: 'large', + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '显示清除按钮', + name: 'allowClear', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉菜单的 className 属性', + name: 'dropdownClassName', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入下拉菜单的 className 属性', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉菜单和选择器同宽', + name: 'dropdownMatchSelectWidth', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否把每个选项的 label 包装到 value 中', + name: 'labelInValue', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '弹窗滚动高度', + name: 'listHeight', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入弹窗滚动高度', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '支持多选', + name: 'multiple', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '最多显示多少个 tag', + name: 'maxTagCount', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入最多显示多少个 tag', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉列表为空时显示的内容', + name: 'notFoundContent', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入下拉列表为空时显示的内容', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '选择框默认文字', + name: 'placeholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入选择框默认文字', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '搜索框默认文字', + name: 'searchPlaceholder', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入搜索框默认文字', + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '选中项回填的方式', + name: 'showCheckedStrategy', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: '所有', + value: 'SHOW_ALL', + }, + { + label: '父节点', + value: 'SHOW_PARENT', + }, + { + label: '子节点', + value: 'SHOW_CHILD', + }, + ], + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '下拉中显示搜索框', + name: 'showSearch', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '显示 checkbox', + name: 'treeCheckable', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: 'checkable 状态下节点选择完全受控', + name: 'treeCheckStrictly', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '默认展开所有树节点', + name: 'treeDefaultExpandAll', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展示 TreeNode title 前的图标', + name: 'treeIcon', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否展示线条样式', + name: 'treeLine', + }, + properties: { + size: 'small', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '输入项过滤对应的 treeNode 属性', + name: 'treeNodeFilterProp', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入输入项过滤对应的 treeNode 属性', + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: '显示的 prop 设置', + name: 'treeNodeLabelProp', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入显示的 prop 设置', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '虚拟滚动', + name: 'virtual', + }, + properties: { + size: 'small', + }, + rules: [], + }, +] +export default [ + { + type: 'input', + name: '输入框', // 组件名称,用于左侧显示 + icon: 'icon-input', // 组件图标 + formItem: { + group: 'form', + type: FormItemTypeEnum.INPUT, // 组件名 + config: { + label: '输入框', // 表单项名称 + name: 'input', // 表单字段名称 + }, + propertyConfigFormComponents: inputPropertiesForm, + properties: { + size: 'default', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + }, + rules: [], + }, + }, + { + type: 'input-password', + name: '密码框', + icon: 'icon-password', + formItem: { + group: 'form', + type: FormItemTypeEnum.INPUT_PASSWORD, + config: { + label: '密码框', + name: 'input-password', + }, + propertyConfigFormComponents: passwordForm(), + properties: { + size: 'default', + visibilityToggle: true, + allowClear: true, + bordered: true, + showCount: true, + }, + rules: [], + }, + }, + { + type: 'textarea', + name: '文本域', + icon: 'icon-textarea', + formItem: { + type: FormItemTypeEnum.TEXTAREA, + group: 'form', + config: { + label: '文本域', + name: 'textarea', + }, + propertyConfigFormComponents: textAreaForm(), + hiddenFieldsFun: (data: Record) => { + return data['autoSize'] ? [] : ['minRows', 'maxRows'] + }, + propertiesTransfer: (data: FormItemProperties) => { + if (data.autoSize) { + data.autoSize = { minRows: data.minRows, maxRows: data.maxRows } + } + return data + }, + properties: { + size: 'default', + visibilityToggle: true, + allowClear: true, + bordered: true, + showCount: true, + autoSize: true, + minRows: 2, + maxRows: 6, + }, + rules: [], + }, + }, + { + type: 'upload', + name: '上传', + icon: 'icon-upload', + formItem: { + type: FormItemTypeEnum.UPLOAD, + group: 'form', + config: { + label: '上传', + name: 'upload', + }, + propertyConfigFormComponents: uploadForm, + properties: { + action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76', + headers: { + authorization: 'authorization-text', + }, + listType: 'text', + }, + rules: [], + }, + }, + { + type: 'auto-complete', + name: '自动完成', + icon: 'icon-type-ahead', + formItem: { + type: FormItemTypeEnum.AUTO_COMPLETE, + group: 'form', + config: { + label: '自动完成', + name: 'auto-complete', + }, + propertyConfigFormComponents: autoCompleteForm, + properties: { + size: 'default', + options: [ + { label: '选项1', value: '1' }, + { label: '选项2', value: '2' }, + ], + }, + rules: [], + }, + }, + { + type: 'mentions', + name: '提及', + icon: 'icon-mention', + formItem: { + type: FormItemTypeEnum.MENTION, + group: 'form', + config: { + label: '提及', + name: 'mention', + }, + propertyConfigFormComponents: mentionsForm, + propertiesTransfer(value: FormItemProperties) { + if (value.prefix && XEUtils.isString(value.prefix)) { + value.prefix = value.prefix.split(',') + } + return value + }, + properties: { + size: 'default', + options: [ + { label: '选项1', value: '1' }, + { label: '选项2', value: '2' }, + ], + }, + rules: [], + }, + }, + { + type: 'input-number', + name: '数值框', + icon: 'icon-number', + formItem: { + type: FormItemTypeEnum.INPUT_NUMBER, + group: 'form', + config: { + label: '数值框', + name: 'number', + }, + propertyConfigFormComponents: inputNumberForm, + properties: { + size: 'default', + controls: true, + }, + rules: [], + }, + }, + { + type: 'switch', + name: '开关', + icon: 'icon-switch', + formItem: { + type: FormItemTypeEnum.SWITCH, + group: 'form', + config: { + label: '开关', + name: 'switch', + }, + propertyConfigFormComponents: switchForm, + properties: { + size: 'default', + }, + rules: [], + }, + }, + { + type: 'radio', + name: '单选框', + icon: 'icon-radio', + formItem: { + type: FormItemTypeEnum.RADIO, + group: 'form', + config: { + label: '单选框', + name: 'radio', + }, + propertyConfigFormComponents: radioForm, + hiddenFieldsFun: (data: Record) => { + return data['optionType'] === 'button' ? [] : ['buttonStyle'] + }, + properties: { + size: 'default', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { label: '选项1', value: '1' }, + { label: '选项2', value: '2' }, + ], + }, + rules: [], + }, + }, + { + type: 'checkbox', + name: '多选框', + icon: 'icon-checkbox', + formItem: { + type: FormItemTypeEnum.CHECKBOX, + group: 'form', + config: { + label: '多选框', + name: 'checkbox', + }, + propertyConfigFormComponents: checkboxForm, + properties: { + options: [ + { label: '选项1', value: '1' }, + { label: '选项2', value: '2' }, + ], + }, + rules: [], + }, + }, + { + type: 'select', + name: '下拉框', + icon: 'icon-select', + formItem: { + type: FormItemTypeEnum.SELECT, + group: 'form', + config: { + label: '下拉框', + name: 'select', + }, + propertyConfigFormComponents: selectForm, + propertiesTransfer(value: FormItemProperties) { + if (value.firstActiveValue && XEUtils.isString(value.firstActiveValue)) { + value.firstActiveValue = value.firstActiveValue.split(',') + } + if (value.tokenSeparators && XEUtils.isString(value.tokenSeparators)) { + value.tokenSeparators = value.tokenSeparators.split(',') + } + return value + }, + hiddenFieldsFun(value: Record) { + return [ + ...(value.showSearch ? [] : ['searchValue', 'optionFilterProp', 'autoClearSearchValue']), + ...(value.mode === 'tags' ? [] : ['maxTagCount', 'maxTagTextLength']), + ] + }, + properties: { + size: 'default', + allowClear: false, + autoClearSearchValue: true, + autofocus: false, + bordered: true, + defaultActiveFirstOption: true, + dropdownMatchSelectWidth: true, + labelInValue: false, + showSearch: false, + options: [ + { label: '选项1', value: '1' }, + { label: '选项2', value: '2' }, + ], + }, + rules: [], + }, + }, + { + type: 'cascader', + name: '级联', + icon: 'icon-cascader', + formItem: { + type: FormItemTypeEnum.CASCADER, + group: 'form', + config: { + label: '级联', + name: 'cascader', + }, + propertyConfigFormComponents: cascaderForm, + properties: { + size: 'default', + options: [ + { + label: '大', + value: 'large', + children: [ + { + label: '大1', + value: 'large1', + }, + { + label: '中1', + value: 'default1', + }, + { + label: '小1', + value: 'small1', + }, + ], + }, + { + label: '中', + value: 'default', + }, + { + label: '小', + value: 'small', + }, + ], + }, + rules: [], + }, + }, + { + type: 'transfer', + name: '穿梭框', + icon: 'icon-transfer', + formItem: { + type: FormItemTypeEnum.TRANSFER, + group: 'form', + config: { + label: '穿梭框', + name: 'transfer', + }, + propertyConfigFormComponents: transferForm, + properties: { + dataSource: [ + { + key: '1', + title: '选项1', + description: '选项1描述', + }, + ], + showSearch: true, + }, + rules: [], + }, + }, + { + type: 'tree-select', + name: '树选择', + icon: 'icon-tree', + formItem: { + type: FormItemTypeEnum.TREE_SELECT, + group: 'form', + config: { + label: '树选择', + name: 'tree', + }, + propertyConfigFormComponents: treeSelectFrom, + properties: { + size: 'default', + treeData: [ + { + label: 'parent 1', + value: 'parent 1', + key: '1', + children: [ + { + label: 'parent 1-0', + value: 'parent 1-0', + key: '1', + children: [ + { + label: 'my leaf', + value: 'leaf1', + key: '1', + }, + { + label: 'your leaf', + value: 'leaf2', + key: '3', + }, + ], + }, + { + label: 'parent 1-1', + value: 'parent 1-1', + key: '1', + }, + ], + }, + ], + }, + rules: [], + }, + }, + { + type: 'rate', + name: '评分', + icon: 'icon-star', + formItem: { + type: FormItemTypeEnum.RATE, + group: 'form', + config: { + label: '评分', + name: 'rate', + }, + propertyConfigFormComponents: rateForm, + propertiesTransfer(value: FormItemProperties) { + if (value.tooltips && XEUtils.isString(value.tooltips)) value.tooltips = value.tooltips.split(',') + return value + }, + properties: { + allowClear: true, + allowHalf: false, + autofocus: false, + count: 5, + }, + rules: [], + }, + }, + { + type: 'slider', + name: '滑动', + icon: 'icon-slider', + formItem: { + type: FormItemTypeEnum.SLIDER, + group: 'form', + config: { + label: '滑动', + name: 'slider', + }, + propertyConfigFormComponents: sliderForm, + properties: { dots: false }, + rules: [], + }, + }, + { + type: 'time-picker', + name: '时间', + icon: 'icon-clock', + formItem: { + type: FormItemTypeEnum.TIME_PICKER, + group: 'form', + config: { + label: '时间', + name: 'time', + }, + propertyConfigFormComponents: timePickerForm, + properties: { + size: 'default', + valueFormat: 'HH:mm:ss', + }, + rules: [], + }, + }, + { + type: 'time-range-picker', + name: '时间范围', + icon: 'icon-clock', + formItem: { + type: FormItemTypeEnum.TIME_RANGE_PICKER, + group: 'form', + config: { + label: '时间范围', + name: 'time-range', + }, + propertyConfigFormComponents: timeRangePickerForm(), + properties: { + size: 'default', + valueFormat: 'HH:mm:ss', + }, + rules: [], + }, + }, + { + type: 'date-picker', + name: '日期', + icon: 'icon-calendar', + formItem: { + type: FormItemTypeEnum.DATE_PICKER, + group: 'form', + config: { + label: '日期', + name: 'calendar', + }, + propertyConfigFormComponents: datePickerForm(), + properties: { + size: 'middle', + picker: 'date', + valueFormat: 'YYYY-MM-DD', + }, + rules: [], + }, + }, + { + type: 'range-picker', + name: '日期范围', + icon: 'icon-date_range', + formItem: { + type: FormItemTypeEnum.RANGE_PICKER, + group: 'form', + config: { + label: '日期范围', + name: 'range-picker', + }, + propertyConfigFormComponents: dateRangePickerForm(), + properties: { size: 'middle', picker: 'date', valueFormat: 'YYYY-MM-DD' }, + rules: [], + }, + }, + { + type: 'alert', + name: '警告提示', + icon: 'icon-info', + formItem: { + type: FormItemTypeEnum.ALERT, + group: 'auxiliary', + propertyConfigFormComponents: alterForm, + properties: { + type: 'info', + showIcon: true, + message: '提示', + description: '提示内容', + }, + }, + }, + { + type: 'typography', + name: '文字', + icon: 'icon-text', + formItem: { + type: FormItemTypeEnum.TYPOGRAPHY_TEXT, + group: 'auxiliary', + propertyConfigFormComponents: typographyFrom, + properties: { + content: '文本内容', + }, + }, + }, + { + type: 'divider', + name: '分割线', + icon: 'icon-divider', + formItem: { + type: FormItemTypeEnum.DIVIDER, + group: 'auxiliary', + propertyConfigFormComponents: dividerForm, + hiddenFieldsFun(value: Record) { + return value.showText ? [] : ['text', 'plain', 'orientation', 'orientationMargin'] + }, + properties: { + showText: true, + type: 'horizontal', + orientation: 'left', + }, + }, + }, + { + type: 'space', + name: '空白', + icon: 'icon-space', + formItem: { + type: FormItemTypeEnum.SPACE, + group: 'auxiliary', + propertyConfigFormComponents: spaceForm, + hiddenFieldsFun(value: Record) { + return value.size === 'number' ? [] : ['sizeInPx'] + }, + propertiesTransfer(value: FormItemProperties) { + if (value.size === 'number') value.size = Number(value.sizeInPx) + return value + }, + properties: { + size: 'small', + direction: 'horizontal', + }, + }, + }, + { + type: 'row', + name: '行', + icon: 'icon-rows', + formItem: { + type: FormItemTypeEnum.ROW, + group: 'layout', + propertyConfigFormComponents: [ + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '垂直对齐', + name: 'align', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: 'top', + value: 'top', + }, + { + label: 'middle', + value: 'middle', + }, + { + value: 'bottom', + label: 'bottom', + }, + { + value: 'stretch', + label: 'stretch', + }, + ], + }, + rules: [], + }, + { + type: 'radio', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '水平排列', + name: 'justify', + }, + properties: { + size: 'small', + optionType: 'button', + buttonStyle: 'solid', + options: [ + { + label: 'start', + value: 'start', + }, + { + label: 'end', + value: 'end', + }, + { + value: 'center', + label: 'center', + }, + { + value: 'space-around', + label: 'space-around', + }, + { + value: 'space-between', + label: 'space-between', + }, + { + label: 'space-evenly', + value: 'space-evenly', + }, + ], + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '栅格间隔', + name: 'gutter', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入栅格间隔', + }, + rules: [], + }, + { + type: 'switch', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '是否自动换行', + name: 'wrap', + }, + properties: { + size: 'small', + }, + rules: [], + }, + ], + properties: { + align: 'top', + gutter: 0, + justify: 'start', + wrap: true, + }, + }, + children: [], + }, + { + type: 'col', + name: '列', + icon: 'icon-columns', + formItem: { + type: FormItemTypeEnum.COL, + group: 'layout', + propertyConfigFormComponents: [ + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '栅格占位格数', + name: 'span', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入栅格占位格数', + max: 24, + min: 1, + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '栅格向右移动格数', + name: 'push', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入栅格向右移动格数', + max: 24, + min: 0, + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '栅格向左移动格数', + name: 'pull', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入栅格向左移动格数', + max: 24, + min: 0, + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '栅格左侧的间隔格数', + name: 'offset', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入栅格左侧的间隔格数', + max: 24, + min: 0, + }, + rules: [], + }, + { + group: 'form', + type: 'input', + config: { + autoLink: true, + hasFeedback: false, + label: 'flex 布局填充', + name: 'flex', + }, + properties: { + size: 'small', + type: 'text', + allowClear: true, + bordered: true, + showCount: true, + placeholder: '请输入flex 布局填充', + }, + rules: [], + }, + { + type: 'input-number', + group: 'form', + config: { + autoLink: true, + hasFeedback: false, + label: '栅格顺序', + name: 'order', + }, + properties: { + size: 'small', + controls: true, + placeholder: '请输入栅格顺序', + }, + rules: [], + }, + ], + properties: { + offset: 0, + order: 0, + pull: 0, + push: 0, + span: 12, + }, + }, + children: [], + }, +].map((item) => XEUtils.assign(item, { uuid: XEUtils.uniqueId() } as FormDesignerItem)) as FormDesignerItem[] diff --git a/src/components/form-designer/component-panel/input-item.vue b/src/components/form-designer/component-panel/input-item.vue new file mode 100644 index 0000000..4a72dd4 --- /dev/null +++ b/src/components/form-designer/component-panel/input-item.vue @@ -0,0 +1,23 @@ + + diff --git a/src/components/form-designer/config-panel/config-panel.vue b/src/components/form-designer/config-panel/config-panel.vue new file mode 100644 index 0000000..97e7c91 --- /dev/null +++ b/src/components/form-designer/config-panel/config-panel.vue @@ -0,0 +1,107 @@ + + diff --git a/src/components/form-designer/config-panel/data-source-table.vue b/src/components/form-designer/config-panel/data-source-table.vue new file mode 100644 index 0000000..ee0d911 --- /dev/null +++ b/src/components/form-designer/config-panel/data-source-table.vue @@ -0,0 +1,187 @@ + + diff --git a/src/components/form-designer/config-panel/form-config-panel.vue b/src/components/form-designer/config-panel/form-config-panel.vue new file mode 100644 index 0000000..c67e892 --- /dev/null +++ b/src/components/form-designer/config-panel/form-config-panel.vue @@ -0,0 +1,222 @@ + + diff --git a/src/components/form-designer/config-panel/form-item-config-panel.vue b/src/components/form-designer/config-panel/form-item-config-panel.vue new file mode 100644 index 0000000..cd4e3c7 --- /dev/null +++ b/src/components/form-designer/config-panel/form-item-config-panel.vue @@ -0,0 +1,379 @@ + + diff --git a/src/components/form-designer/config-panel/option-table.vue b/src/components/form-designer/config-panel/option-table.vue new file mode 100644 index 0000000..30e2bba --- /dev/null +++ b/src/components/form-designer/config-panel/option-table.vue @@ -0,0 +1,188 @@ + + diff --git a/src/components/form-designer/config-panel/property-config.vue b/src/components/form-designer/config-panel/property-config.vue new file mode 100644 index 0000000..b4b098f --- /dev/null +++ b/src/components/form-designer/config-panel/property-config.vue @@ -0,0 +1,108 @@ + + diff --git a/src/components/form-designer/config-panel/tree-data-table.vue b/src/components/form-designer/config-panel/tree-data-table.vue new file mode 100644 index 0000000..4ac2bfb --- /dev/null +++ b/src/components/form-designer/config-panel/tree-data-table.vue @@ -0,0 +1,194 @@ + + diff --git a/src/components/form-designer/config-panel/validate-rule-config.vue b/src/components/form-designer/config-panel/validate-rule-config.vue new file mode 100644 index 0000000..7e61845 --- /dev/null +++ b/src/components/form-designer/config-panel/validate-rule-config.vue @@ -0,0 +1,413 @@ + + diff --git a/src/components/form-designer/form-designer-types.ts b/src/components/form-designer/form-designer-types.ts new file mode 100644 index 0000000..7bcd4f9 --- /dev/null +++ b/src/components/form-designer/form-designer-types.ts @@ -0,0 +1,10 @@ +import { FormItem } from '../form-render/form-render-types' + +export type FormDesignerItem = { + uuid?: string + type: string + name: string + icon: string + formItem: FormItem + children?: FormDesignerItem[] +} diff --git a/src/components/form-designer/form-designer.vue b/src/components/form-designer/form-designer.vue new file mode 100644 index 0000000..1427349 --- /dev/null +++ b/src/components/form-designer/form-designer.vue @@ -0,0 +1,57 @@ + + diff --git a/src/components/form-render/auxiliary-item-render.vue b/src/components/form-render/auxiliary-item-render.vue new file mode 100644 index 0000000..a921c1f --- /dev/null +++ b/src/components/form-render/auxiliary-item-render.vue @@ -0,0 +1,52 @@ + + + + + + diff --git a/src/components/form-render/form-drawer.vue b/src/components/form-render/form-drawer.vue new file mode 100644 index 0000000..ae0d7b5 --- /dev/null +++ b/src/components/form-render/form-drawer.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/components/form-render/form-item-render.vue b/src/components/form-render/form-item-render.vue new file mode 100644 index 0000000..b102374 --- /dev/null +++ b/src/components/form-render/form-item-render.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/components/form-render/form-modal.vue b/src/components/form-render/form-modal.vue new file mode 100644 index 0000000..ad578a6 --- /dev/null +++ b/src/components/form-render/form-modal.vue @@ -0,0 +1,221 @@ + + + diff --git a/src/components/form-render/form-render-types.ts b/src/components/form-render/form-render-types.ts new file mode 100644 index 0000000..7650126 --- /dev/null +++ b/src/components/form-render/form-render-types.ts @@ -0,0 +1,232 @@ +import { Rule } from 'ant-design-vue/es/form' +import { AutocompleteAPI } from './types/form-render-auto-complete' +import { CascaderAPI } from './types/form-render-cascader' +import { CheckboxAPI } from './types/form-render-checkbox' +import { DataApiMode, DateAPI } from './types/form-render-date' +import { DatePickerAPI } from './types/form-render-date-picker' +import { InputAPI } from './types/form-render-input' +import { InputNumberAPI } from './types/form-render-input-number' +import { InputPasswordAPI } from './types/form-render-input-password' +import { InputTextareaAPI } from './types/form-render-input-textarea' +import { MentionsAPI } from './types/form-render-mentions' +import { RadioGroupAPI } from './types/form-render-radio' +import { RangePickerAPI } from './types/form-render-range-picker' +import { RateAPI } from './types/form-render-rate' +import { SelectAPI } from './types/form-render-select' +import { SliderApi } from './types/form-render-slider' +import { SwitchAPI } from './types/form-render-switch' +import { TransferAPI } from './types/form-render-transfer' +import { TreeSelectAPI } from './types/form-render-tree-select' +import { UploadAPI } from './types/form-render-upload' +import type { Dayjs } from 'dayjs' +import { TreeDataNode } from 'ant-design-vue/es/vc-tree-select/interface' +export type FormValueType = string | number | boolean | Array | symbol | object | undefined + +// 有些情况的类型问题暂未解决,因此改用 unknown +export type FormDataType = Record + +export enum FormItemTypeEnum { + INPUT = 'input', + INPUT_PASSWORD = 'input-password', + TEXTAREA = 'textarea', + AUTO_COMPLETE = 'auto-complete', + MENTION = 'mentions', + INPUT_NUMBER = 'input-number', + EDITOR = 'editor', + RADIO = 'radio', + CHECKBOX = 'checkbox', + SELECT = 'select', + SWITCH = 'switch', + TIME_PICKER = 'time-picker', + TIME_RANGE_PICKER = 'time-range-picker', + DATE_PICKER = 'date-picker', + RANGE_PICKER = 'range-picker', + CASCADER = 'cascader', + TRANSFER = 'transfer', + TREE_SELECT = 'tree-select', + RATE = 'rate', + SLIDER = 'slider', + UPLOAD = 'upload', + CUSTOM = 'custom', + DIVIDER = 'divider', + TYPOGRAPHY_TEXT = 'typography-text', + ALERT = 'alert', + SPACE = 'space', + ROW = 'row', + COL = 'col', +} + +export type LabelCol = { + style?: { width: string } + span?: number + offset?: number +} + +/** + * 用于form-item渲染的属性 + */ +export type FormItemConfig = { + colon?: boolean + extra?: string // 额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 + hasFeedback?: boolean + help?: string // 提示信息,如不设置,则会根据校验规则自动生成 + htmlFor?: string + label: string + autoLink?: boolean + name: string + labelAlign?: 'left' | 'right' + labelCol?: LabelCol + labelType?: 'fixed' | 'responsive' + required?: boolean + dropdownMatchSelectWidth?: boolean | number + validateFirst?: boolean + dropdownMenuStyle?: object + dropdownStyle?: object + fieldNames?: object + validateStatus?: 'success' | 'warning' | 'error' | 'validating' + validateTrigger?: 'blur' | 'change' | ['change', 'blur'] + labelColFixedWidthInPx?: number + labelColSpanWidth?: number + useFormConfig?: boolean +} + +export type DataSource = { + key: string + title: string + description?: string + disabled?: boolean +} + +export type TreeData = { + value: unknown + label: string + children?: Array + disabled?: boolean + disableCheckbox?: boolean + selectable?: boolean +} + +export type Option = { + [field: string]: unknown +} + +export type FormItemProperties = RadioGroupAPI & + InputAPI & + InputPasswordAPI & + AutocompleteAPI & + SwitchAPI & + SelectAPI & + MentionsAPI & + InputTextareaAPI & + InputNumberAPI & + TransferAPI & + CascaderAPI & + UploadAPI & + CheckboxAPI & + SliderApi & + RateAPI & + DateAPI & + DatePickerAPI & + TreeSelectAPI & + RangePickerAPI & { + maxlength?: number + bordered?: boolean + disabled?: boolean + allowClear?: boolean + showCount?: boolean + dataSource?: Array + render?: (item: DataSource) => string + treeData?: Array + treeDefaultExpandAll?: boolean + options?: Array