diff --git a/apps/antd-view/package.json b/apps/antd-view/package.json
index eea84b63..1f984a6d 100644
--- a/apps/antd-view/package.json
+++ b/apps/antd-view/package.json
@@ -26,17 +26,18 @@
"dependencies": {
"@vben-core/design": "workspace:*",
"@vben-core/design-tokens": "workspace:*",
- "@vben-core/toolkit": "workspace:*",
"@vben-core/typings": "workspace:*",
"@vben/common-ui": "workspace:*",
+ "@vben/constants": "workspace:*",
"@vben/hooks": "workspace:*",
"@vben/icons": "workspace:*",
"@vben/layouts": "workspace:*",
"@vben/locales": "workspace:*",
"@vben/preference": "workspace:*",
"@vben/stores": "workspace:*",
+ "@vben/utils": "workspace:*",
"ant-design-vue": "^4.2.1",
- "axios": "^1.6.8",
+ "axios": "^1.7.1",
"dayjs": "^1.11.11",
"vue": "^3.4.27",
"vue-router": "^4.3.2"
diff --git a/apps/antd-view/src/layout.vue b/apps/antd-view/src/layout.vue
index fb43f43b..c3482ea5 100644
--- a/apps/antd-view/src/layout.vue
+++ b/apps/antd-view/src/layout.vue
@@ -1,8 +1,6 @@
@@ -154,7 +166,7 @@ const {
:rounded="isMenuRounded"
mode="horizontal"
:theme="headerMenuTheme"
- :menus="headerMenus"
+ :menus="wrapperMenus(headerMenus)"
:default-active="headerActive"
@select="handleMenuSelect"
/>
@@ -175,7 +187,7 @@ const {
:collapse-show-title="preference.sideCollapseShowTitle"
:collapse="preference.sideCollapse"
:theme="theme"
- :menus="sideMenus"
+ :menus="wrapperMenus(sideMenus)"
:default-active="sideActive"
@select="handleMenuSelect"
/>
@@ -195,7 +207,7 @@ const {
diff --git a/packages/business/layouts/src/basic/menu/extra-menu.vue b/packages/business/layouts/src/basic/menu/extra-menu.vue
index 26eac252..dd6027a8 100644
--- a/packages/business/layouts/src/basic/menu/extra-menu.vue
+++ b/packages/business/layouts/src/basic/menu/extra-menu.vue
@@ -3,7 +3,9 @@ import type { MenuRecordRaw } from '@vben-core/typings';
import { Menu, MenuProps } from '@vben-core/menu-ui';
-import { useRoute, useRouter } from 'vue-router';
+import { useRoute } from 'vue-router';
+
+import { useNavigation } from './use-navigation';
interface Props extends MenuProps {
collspae?: boolean;
@@ -13,10 +15,10 @@ interface Props extends MenuProps {
defineProps();
const route = useRoute();
-const router = useRouter();
+const { navigation } = useNavigation();
-function handleSelect(key: string) {
- router.push(key);
+async function handleSelect(key: string) {
+ await navigation(key);
}
diff --git a/packages/business/layouts/src/basic/menu/use-extra-menu.ts b/packages/business/layouts/src/basic/menu/use-extra-menu.ts
index 900b316c..f147cb1d 100644
--- a/packages/business/layouts/src/basic/menu/use-extra-menu.ts
+++ b/packages/business/layouts/src/basic/menu/use-extra-menu.ts
@@ -3,17 +3,18 @@ import type { MenuRecordRaw } from '@vben-core/typings';
import { preference } from '@vben/preference';
import { useAccessStore } from '@vben/stores';
import { computed, ref } from 'vue';
-import { useRoute, useRouter } from 'vue-router';
+import { useRoute } from 'vue-router';
import { findRootMenuByPath } from './helper';
+import { useNavigation } from './use-navigation';
function useExtraMenu() {
const accessStore = useAccessStore();
+ const { navigation } = useNavigation();
const menus = computed(() => accessStore.getAccessMenus);
const route = useRoute();
- const router = useRouter();
const extraMenus = ref([]);
const extraVisible = ref(false);
const extraActiveMenu = ref('');
@@ -22,14 +23,14 @@ function useExtraMenu() {
* 选择混合菜单事件
* @param menu
*/
- const handleMixedMenuSelect = (menu: MenuRecordRaw) => {
+ const handleMixedMenuSelect = async (menu: MenuRecordRaw) => {
extraMenus.value = menu?.children ?? [];
extraActiveMenu.value = menu.parents?.[0] ?? menu.path;
const hasChildren = extraMenus.value.length > 0;
extraVisible.value = hasChildren;
if (!hasChildren) {
- router.push(menu.path);
+ await navigation(menu.path);
}
};
diff --git a/packages/business/layouts/src/basic/menu/use-mixed-menu.ts b/packages/business/layouts/src/basic/menu/use-mixed-menu.ts
index 2b03de69..ca68b10a 100644
--- a/packages/business/layouts/src/basic/menu/use-mixed-menu.ts
+++ b/packages/business/layouts/src/basic/menu/use-mixed-menu.ts
@@ -3,15 +3,15 @@ import type { MenuRecordRaw } from '@vben-core/typings';
import { preference, usePreference } from '@vben/preference';
import { useAccessStore } from '@vben/stores';
import { computed, onBeforeMount, ref } from 'vue';
-import { useRoute, useRouter } from 'vue-router';
+import { useRoute } from 'vue-router';
import { findRootMenuByPath } from './helper';
+import { useNavigation } from './use-navigation';
function useMixedMenu() {
const accessStore = useAccessStore();
-
+ const { navigation } = useNavigation();
const route = useRoute();
- const router = useRouter();
const splitSideMenus = ref([]);
const rootMenuPath = ref('');
@@ -75,7 +75,7 @@ function useMixedMenu() {
*/
const handleMenuSelect = (key: string, mode?: string) => {
if (!isMixedNav.value || mode === 'vertical') {
- router.push(key);
+ navigation(key);
return;
}
@@ -83,7 +83,7 @@ function useMixedMenu() {
rootMenuPath.value = rootMenu?.path ?? '';
splitSideMenus.value = rootMenu?.children ?? [];
if (splitSideMenus.value.length === 0) {
- router.push(key);
+ navigation(key);
}
};
diff --git a/packages/business/layouts/src/basic/menu/use-navigation.ts b/packages/business/layouts/src/basic/menu/use-navigation.ts
new file mode 100644
index 00000000..d58ea4ba
--- /dev/null
+++ b/packages/business/layouts/src/basic/menu/use-navigation.ts
@@ -0,0 +1,19 @@
+import { isHttpUrl, openWindow } from '@vben-core/toolkit';
+
+import { useRouter } from 'vue-router';
+
+function useNavigation() {
+ const router = useRouter();
+
+ const navigation = async (path: string) => {
+ if (isHttpUrl(path)) {
+ openWindow(path, { target: '_blank' });
+ } else {
+ await router.push(path);
+ }
+ };
+
+ return { navigation };
+}
+
+export { useNavigation };
diff --git a/packages/business/layouts/src/basic/tabs/use-tabs.ts b/packages/business/layouts/src/basic/tabs/use-tabs.ts
index a81e2ff8..5531a1e0 100644
--- a/packages/business/layouts/src/basic/tabs/use-tabs.ts
+++ b/packages/business/layouts/src/basic/tabs/use-tabs.ts
@@ -12,7 +12,12 @@ import {
MdiPinOff,
} from '@vben-core/iconify';
import { filterTree } from '@vben-core/toolkit';
+import type {
+ RouteLocationNormalized,
+ RouteRecordNormalized,
+} from 'vue-router';
+import { $t } from '@vben/locales';
import { storeToRefs, useAccessStore, useTabsStore } from '@vben/stores';
import { computed, watch } from 'vue';
import { useRoute, useRouter } from 'vue-router';
@@ -39,6 +44,9 @@ function useTabs() {
const affixTabs = filterTree(router.getRoutes(), (route) => {
return !!route.meta?.affixTab;
});
+ affixTabs.forEach((tab) => {
+ Object.assign(tab, wrapperTabLocale(tab));
+ });
tabsStore.setAffixTabs(affixTabs);
};
@@ -52,6 +60,18 @@ function useTabs() {
await tabsStore.closeTabByKey(key, router);
};
+ function wrapperTabLocale(
+ tab: RouteLocationNormalized | RouteRecordNormalized,
+ ) {
+ return {
+ ...tab,
+ meta: {
+ ...tab.meta,
+ title: $t(tab.meta.title as string),
+ },
+ };
+ }
+
watch(
() => accessMenus.value,
() => {
@@ -63,7 +83,7 @@ function useTabs() {
watch(
() => route.path,
() => {
- tabsStore.addTab(route);
+ tabsStore.addTab(wrapperTabLocale(route) as RouteLocationNormalized);
},
{ immediate: true },
);
diff --git a/packages/business/layouts/src/basic/widgets/breadcrumb.vue b/packages/business/layouts/src/basic/widgets/breadcrumb.vue
index d31ca34b..e5a604a0 100644
--- a/packages/business/layouts/src/basic/widgets/breadcrumb.vue
+++ b/packages/business/layouts/src/basic/widgets/breadcrumb.vue
@@ -4,6 +4,7 @@ import type { IBreadcrumb } from '@vben-core/shadcn-ui';
import { VbenBackgroundBreadcrumb, VbenBreadcrumb } from '@vben-core/shadcn-ui';
import { BreadcrumbStyle } from '@vben-core/typings';
+import { $t } from '@vben/locales';
import { computed } from 'vue';
import { useRoute, useRouter } from 'vue-router';
@@ -43,7 +44,7 @@ const breadcrumbs = computed((): IBreadcrumb[] => {
resultBreadcrumb.push({
icon: icon as string,
path: path || route.path,
- title: (title || name) as string,
+ title: $t((title || name) as string),
// items: children.map((child) => {
// return {
// icon: child?.meta?.icon as string,
diff --git a/packages/constants/build.config.ts b/packages/constants/build.config.ts
new file mode 100644
index 00000000..97e572c5
--- /dev/null
+++ b/packages/constants/build.config.ts
@@ -0,0 +1,7 @@
+import { defineBuildConfig } from 'unbuild';
+
+export default defineBuildConfig({
+ clean: true,
+ declaration: true,
+ entries: ['src/index'],
+});
diff --git a/packages/constants/package.json b/packages/constants/package.json
new file mode 100644
index 00000000..1c1a24ea
--- /dev/null
+++ b/packages/constants/package.json
@@ -0,0 +1,45 @@
+{
+ "name": "@vben/constants",
+ "version": "1.0.0",
+ "type": "module",
+ "license": "MIT",
+ "homepage": "https://github.com/vbenjs/vue-vben-admin",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/vbenjs/vue-vben-admin.git",
+ "directory": "packages/constants"
+ },
+ "bugs": {
+ "url": "https://github.com/vbenjs/vue-vben-admin/issues"
+ },
+ "scripts": {
+ "build": "pnpm unbuild",
+ "stub": "pnpm unbuild --stub"
+ },
+ "files": [
+ "dist"
+ ],
+ "sideEffects": [
+ "**/*.css"
+ ],
+ "main": "./dist/index.mjs",
+ "module": "./dist/index.mjs",
+ "imports": {
+ "#*": "./src/*"
+ },
+ "exports": {
+ ".": {
+ "development": "./src/index.ts",
+ "types": "./src/index.ts",
+ "default": "./dist/index.mjs"
+ }
+ },
+ "publishConfig": {
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.mjs"
+ }
+ }
+ }
+}
diff --git a/packages/constants/src/index.ts b/packages/constants/src/index.ts
new file mode 100644
index 00000000..3e5d30ee
--- /dev/null
+++ b/packages/constants/src/index.ts
@@ -0,0 +1 @@
+export * from './vben';
diff --git a/packages/constants/src/vben.ts b/packages/constants/src/vben.ts
new file mode 100644
index 00000000..755231f7
--- /dev/null
+++ b/packages/constants/src/vben.ts
@@ -0,0 +1 @@
+export const VBEN_GITHUB_URL = 'https://github.com/vbenjs/vue-vben-admin';
diff --git a/packages/constants/tsconfig.json b/packages/constants/tsconfig.json
new file mode 100644
index 00000000..03b23c68
--- /dev/null
+++ b/packages/constants/tsconfig.json
@@ -0,0 +1,5 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@vben/tsconfig/library.json",
+ "include": ["src"]
+}
diff --git a/packages/locales/build.config.ts b/packages/locales/build.config.ts
index 956a5437..ebe71ecd 100644
--- a/packages/locales/build.config.ts
+++ b/packages/locales/build.config.ts
@@ -5,6 +5,7 @@ export default defineBuildConfig({
declaration: true,
entries: [
'src/index',
+ 'src/helper',
{
builder: 'mkdist',
input: './src/langs',
diff --git a/packages/locales/package.json b/packages/locales/package.json
index cc37a544..6482fcd0 100644
--- a/packages/locales/package.json
+++ b/packages/locales/package.json
@@ -35,6 +35,11 @@
},
"./langs/*": {
"default": "./dist/langs/*"
+ },
+ "./helper": {
+ "development": "./src/helper.ts",
+ "types": "./src/helper.ts",
+ "default": "./dist/helper.mjs"
}
},
"publishConfig": {
diff --git a/packages/locales/src/helper.ts b/packages/locales/src/helper.ts
new file mode 100644
index 00000000..cb8e1e7a
--- /dev/null
+++ b/packages/locales/src/helper.ts
@@ -0,0 +1,8 @@
+/**
+ * 没有任何实际作用,只用于 IDE 对I18的提示
+ */
+function $t(key: string) {
+ return key;
+}
+
+export { $t };
diff --git a/packages/locales/src/langs/en-US.yaml b/packages/locales/src/langs/en-US.yaml
index f56579a3..033b89ef 100644
--- a/packages/locales/src/langs/en-US.yaml
+++ b/packages/locales/src/langs/en-US.yaml
@@ -149,3 +149,7 @@ authentication:
send-code: Get Security code
send-text: "Reacquire in {0}s"
third-party-login: Or continue with
+
+page:
+ about: About
+ document: Document
diff --git a/packages/locales/src/langs/zh-CN.yaml b/packages/locales/src/langs/zh-CN.yaml
index 0189a958..f90493c1 100644
--- a/packages/locales/src/langs/zh-CN.yaml
+++ b/packages/locales/src/langs/zh-CN.yaml
@@ -148,3 +148,7 @@ authentication:
send-code: 获取验证码
send-text: "{0}秒后重新获取"
third-party-login: 其他登录方式
+
+page:
+ about: 关于
+ document: 文档
diff --git a/packages/utils/build.config.ts b/packages/utils/build.config.ts
new file mode 100644
index 00000000..97e572c5
--- /dev/null
+++ b/packages/utils/build.config.ts
@@ -0,0 +1,7 @@
+import { defineBuildConfig } from 'unbuild';
+
+export default defineBuildConfig({
+ clean: true,
+ declaration: true,
+ entries: ['src/index'],
+});
diff --git a/packages/utils/package.json b/packages/utils/package.json
new file mode 100644
index 00000000..b4e36826
--- /dev/null
+++ b/packages/utils/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "@vben/utils",
+ "version": "1.0.0",
+ "type": "module",
+ "license": "MIT",
+ "homepage": "https://github.com/vbenjs/vue-vben-admin",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/vbenjs/vue-vben-admin.git",
+ "directory": "packages/utils"
+ },
+ "bugs": {
+ "url": "https://github.com/vbenjs/vue-vben-admin/issues"
+ },
+ "scripts": {
+ "build": "pnpm unbuild",
+ "stub": "pnpm unbuild --stub"
+ },
+ "files": [
+ "dist"
+ ],
+ "sideEffects": [
+ "**/*.css"
+ ],
+ "main": "./dist/index.mjs",
+ "module": "./dist/index.mjs",
+ "imports": {
+ "#*": "./src/*"
+ },
+ "exports": {
+ ".": {
+ "development": "./src/index.ts",
+ "types": "./src/index.ts",
+ "default": "./dist/index.mjs"
+ }
+ },
+ "publishConfig": {
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.mjs"
+ }
+ }
+ },
+ "dependencies": {
+ "@vben-core/toolkit": "workspace:*"
+ }
+}
diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts
new file mode 100644
index 00000000..24d8f58e
--- /dev/null
+++ b/packages/utils/src/index.ts
@@ -0,0 +1 @@
+export * from '@vben-core/toolkit';
diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json
new file mode 100644
index 00000000..03b23c68
--- /dev/null
+++ b/packages/utils/tsconfig.json
@@ -0,0 +1,5 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@vben/tsconfig/library.json",
+ "include": ["src"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 08254f5f..8aea52df 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,8 +13,8 @@ importers:
.:
devDependencies:
'@changesets/cli':
- specifier: ^2.27.2
- version: 2.27.2
+ specifier: ^2.27.3
+ version: 2.27.3
'@ls-lint/ls-lint':
specifier: ^2.2.3
version: 2.2.3
@@ -99,15 +99,15 @@ importers:
'@vben-core/design-tokens':
specifier: workspace:*
version: link:../../packages/@vben-core/shared/design-tokens
- '@vben-core/toolkit':
- specifier: workspace:*
- version: link:../../packages/@vben-core/shared/toolkit
'@vben-core/typings':
specifier: workspace:*
version: link:../../packages/@vben-core/shared/typings
'@vben/common-ui':
specifier: workspace:*
version: link:../../packages/business/common-ui
+ '@vben/constants':
+ specifier: workspace:*
+ version: link:../../packages/constants
'@vben/hooks':
specifier: workspace:*
version: link:../../packages/hooks
@@ -126,12 +126,15 @@ importers:
'@vben/stores':
specifier: workspace:*
version: link:../../packages/stores
+ '@vben/utils':
+ specifier: workspace:*
+ version: link:../../packages/utils
ant-design-vue:
specifier: ^4.2.1
version: 4.2.1(vue@3.4.27(typescript@5.4.5))
axios:
- specifier: ^1.6.8
- version: 1.6.8
+ specifier: ^1.7.1
+ version: 1.7.1
dayjs:
specifier: ^1.11.11
version: 1.11.11
@@ -167,8 +170,8 @@ importers:
internal/lint-configs/eslint-config:
dependencies:
eslint-plugin-command:
- specifier: ^0.2.2
- version: 0.2.2(eslint@8.57.0)
+ specifier: ^0.2.3
+ version: 0.2.3(eslint@8.57.0)
devDependencies:
'@eslint/js':
specifier: ^9.3.0
@@ -177,11 +180,11 @@ importers:
specifier: ^8.56.10
version: 8.56.10
'@typescript-eslint/eslint-plugin':
- specifier: ^7.9.0
- version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ specifier: ^7.10.0
+ version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/parser':
- specifier: ^7.9.0
- version: 7.9.0(eslint@8.57.0)(typescript@5.4.5)
+ specifier: ^7.10.0
+ version: 7.10.0(eslint@8.57.0)(typescript@5.4.5)
eslint:
specifier: ^8.57.0
version: 8.57.0
@@ -193,7 +196,7 @@ importers:
version: 3.2.0(eslint@8.57.0)
eslint-plugin-i:
specifier: ^2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
eslint-plugin-jsdoc:
specifier: ^48.2.5
version: 48.2.5(eslint@8.57.0)
@@ -220,16 +223,16 @@ importers:
version: 53.0.0(eslint@8.57.0)
eslint-plugin-unused-imports:
specifier: ^3.2.0
- version: 3.2.0(@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
+ version: 3.2.0(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
eslint-plugin-vitest:
specifier: ^0.5.4
- version: 0.5.4(@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(jsdom@24.0.0)(sass@1.77.2)(terser@5.31.0))
+ version: 0.5.4(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(jsdom@24.0.0)(sass@1.77.2)(terser@5.31.0))
eslint-plugin-vue:
specifier: ^9.26.0
version: 9.26.0(eslint@8.57.0)
globals:
- specifier: ^15.2.0
- version: 15.2.0
+ specifier: ^15.3.0
+ version: 15.3.0
jsonc-eslint-parser:
specifier: ^2.4.0
version: 2.4.0
@@ -328,8 +331,8 @@ importers:
internal/tailwind-config:
dependencies:
'@iconify/json':
- specifier: ^2.2.211
- version: 2.2.211
+ specifier: ^2.2.212
+ version: 2.2.212
'@iconify/tailwind':
specifier: ^1.1.1
version: 1.1.1
@@ -392,8 +395,8 @@ importers:
specifier: ^2.1.1
version: 2.1.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
vite-plugin-vue-devtools:
- specifier: ^7.2.0
- version: 7.2.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+ specifier: ^7.2.1
+ version: 7.2.1(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
devDependencies:
'@types/html-minifier-terser':
specifier: ^7.0.2
@@ -616,7 +619,7 @@ importers:
version: 10.9.0(vue@3.4.27(typescript@5.4.5))
'@vueuse/integrations':
specifier: ^10.9.0
- version: 10.9.0(async-validator@4.2.5)(axios@1.6.8)(nprogress@0.2.0)(qrcode@1.5.3)(vue@3.4.27(typescript@5.4.5))
+ version: 10.9.0(async-validator@4.2.5)(axios@1.7.1)(nprogress@0.2.0)(qrcode@1.5.3)(vue@3.4.27(typescript@5.4.5))
qrcode:
specifier: ^1.5.3
version: 1.5.3
@@ -677,6 +680,8 @@ importers:
specifier: workspace:*
version: link:../../@vben-core/shared/typings
+ packages/constants: {}
+
packages/hooks:
dependencies:
vue:
@@ -746,6 +751,12 @@ importers:
specifier: ^4.3.2
version: 4.3.2(vue@3.4.27(typescript@5.4.5))
+ packages/utils:
+ dependencies:
+ '@vben-core/toolkit':
+ specifier: workspace:*
+ version: link:../@vben-core/shared/toolkit
+
scripts/vsh:
dependencies:
'@vben/node-utils':
@@ -761,8 +772,8 @@ importers:
specifier: ^1.4.7
version: 1.4.7
publint:
- specifier: ^0.2.7
- version: 0.2.7
+ specifier: ^0.2.8
+ version: 0.2.8
packages:
@@ -1089,8 +1100,8 @@ packages:
'@changesets/changelog-git@0.2.0':
resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==}
- '@changesets/cli@2.27.2':
- resolution: {integrity: sha512-6/kADjKMOrlLwNr/Y5HAq7T9oGOA2Lq5A59AGtwQCCiXuSGp4EgszzdJFeBiF8pdz7Wn1HaLzSUBhAaNToEJqg==}
+ '@changesets/cli@2.27.3':
+ resolution: {integrity: sha512-ve/VpWApILlSs8cr0okNx5C2LKRawI9XZgvfmf58S8sar2nhx5DPJREFXYZBahs0FeTfvH0rdVl+nGe8QF45Ig==}
hasBin: true
'@changesets/config@3.0.0':
@@ -1786,8 +1797,8 @@ packages:
'@humanwhocodes/object-schema@2.0.3':
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
- '@iconify/json@2.2.211':
- resolution: {integrity: sha512-bg/rNpMYwjXJrOR8R56AuMuuNxcSgf/lw/EqtRUyPP1bbiXytF5VJModXohysnsN46M/gr+ydRUjIXRa/vuotA==}
+ '@iconify/json@2.2.212':
+ resolution: {integrity: sha512-d1IXjpbSwk8V3C9D+mruRTJRPqZZpCnOWh9zyG/Zc5zJmPDLBEHNTKz+ZmeiJQ6LdzgjwLJai1WgFvt1HWVIPw==}
'@iconify/tailwind@1.1.1':
resolution: {integrity: sha512-4mmA//qjZigv7D4KlqcVSYTqfRIJzyts2/lSCAJfCL0rVMIE76+ifJnaE5jxCo1+nYGBF8FsFo0qFOs+sX4EnA==}
@@ -1886,7 +1897,6 @@ packages:
'@ls-lint/ls-lint@2.2.3':
resolution: {integrity: sha512-ekM12jNm/7O2I/hsRv9HvYkRdfrHpiV1epVuI2NP+eTIcEgdIdKkKCs9KgQydu/8R5YXTov9aHdOgplmCHLupw==}
- cpu: [x64, arm64, s390x]
os: [darwin, linux, win32]
hasBin: true
@@ -2264,8 +2274,8 @@ packages:
'@types/which@3.0.3':
resolution: {integrity: sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==}
- '@typescript-eslint/eslint-plugin@7.9.0':
- resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==}
+ '@typescript-eslint/eslint-plugin@7.10.0':
+ resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/parser': ^7.0.0
@@ -2275,8 +2285,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@7.9.0':
- resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==}
+ '@typescript-eslint/parser@7.10.0':
+ resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -2285,16 +2295,16 @@ packages:
typescript:
optional: true
+ '@typescript-eslint/scope-manager@7.10.0':
+ resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
'@typescript-eslint/scope-manager@7.8.0':
resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/scope-manager@7.9.0':
- resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
- '@typescript-eslint/type-utils@7.9.0':
- resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==}
+ '@typescript-eslint/type-utils@7.10.0':
+ resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -2303,6 +2313,10 @@ packages:
typescript:
optional: true
+ '@typescript-eslint/types@7.10.0':
+ resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
'@typescript-eslint/types@7.8.0':
resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -2311,6 +2325,15 @@ packages:
resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==}
engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/typescript-estree@7.10.0':
+ resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
'@typescript-eslint/typescript-estree@7.8.0':
resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -2320,14 +2343,11 @@ packages:
typescript:
optional: true
- '@typescript-eslint/typescript-estree@7.9.0':
- resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==}
+ '@typescript-eslint/utils@7.10.0':
+ resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ eslint: ^8.56.0
'@typescript-eslint/utils@7.8.0':
resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==}
@@ -2335,20 +2355,14 @@ packages:
peerDependencies:
eslint: ^8.56.0
- '@typescript-eslint/utils@7.9.0':
- resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==}
+ '@typescript-eslint/visitor-keys@7.10.0':
+ resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==}
engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- eslint: ^8.56.0
'@typescript-eslint/visitor-keys@7.8.0':
resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/visitor-keys@7.9.0':
- resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
@@ -2430,16 +2444,16 @@ packages:
'@vue/devtools-api@6.6.1':
resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==}
- '@vue/devtools-core@7.2.0':
- resolution: {integrity: sha512-cHSeu70rTtubt2DYia+VDGNTC1m84Xyuk5eNTjmOpMLECaJnWnzCv6kR84EZp7rG+MVZalJG+4ecX2GaTbU3cQ==}
+ '@vue/devtools-core@7.2.1':
+ resolution: {integrity: sha512-OyWl455UnJIVgZ6lo5WQ79WbDMoXtSRwyNKp9WzCZ0HhuQywIk4qv59KtLRe75uVmtGBde4hXNaSyRm+x9bY6g==}
- '@vue/devtools-kit@7.2.0':
- resolution: {integrity: sha512-Kx+U0QiQg/g714euYKfnCdhTcOycSlH1oyTE57D0sAmisdsRCNLfXcnnIwcFY2jdCpuz9DNbuE0VWQuYF5zAZQ==}
+ '@vue/devtools-kit@7.2.1':
+ resolution: {integrity: sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==}
peerDependencies:
vue: ^3.0.0
- '@vue/devtools-shared@7.2.0':
- resolution: {integrity: sha512-gVr3IjKjU7axNvclRgICgy1gq/TDnF1hhBAEox+l5mMXZiTIFVIm1zpcIPssc0HxMDgzy+lXqOVsY4DGyZ+ZeA==}
+ '@vue/devtools-shared@7.2.1':
+ resolution: {integrity: sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==}
'@vue/language-core@1.8.27':
resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
@@ -2705,8 +2719,8 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axios@1.6.8:
- resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==}
+ axios@1.7.1:
+ resolution: {integrity: sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -3588,8 +3602,8 @@ packages:
eslint-import-resolver-webpack:
optional: true
- eslint-plugin-command@0.2.2:
- resolution: {integrity: sha512-St9OM9w9/vjltIze9yhXPHKyc+wRHw3M/ql9Kvw+9BYE5BTsFz0f7nlI7xFIkOBEHs2MyZQCQLP1bV/qAT3q2w==}
+ eslint-plugin-command@0.2.3:
+ resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==}
peerDependencies:
eslint: '*'
@@ -4049,8 +4063,8 @@ packages:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
- globals@15.2.0:
- resolution: {integrity: sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==}
+ globals@15.3.0:
+ resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==}
engines: {node: '>=18'}
globalthis@1.0.4:
@@ -5238,6 +5252,9 @@ packages:
picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ picocolors@1.0.1:
+ resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
+
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
@@ -5807,8 +5824,8 @@ packages:
psl@1.9.0:
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
- publint@0.2.7:
- resolution: {integrity: sha512-tLU4ee3110BxWfAmCZggJmCUnYWgPTr0QLnx08sqpLYa8JHRiOudd+CgzdpfU5x5eOaW2WMkpmOrFshRFYK7Mw==}
+ publint@0.2.8:
+ resolution: {integrity: sha512-C5MjGJ7gpanqaDpgBN+6QhjvXcoj0/YpbucoW29oO5729CGTMzfr3wZTIYcpzB1xl9ZfEqj4KL86P2Z50pt/JA==}
engines: {node: '>=16'}
hasBin: true
@@ -6856,8 +6873,8 @@ packages:
mockjs: '>=1.1.0'
vite: '>=4.0.0'
- vite-plugin-vue-devtools@7.2.0:
- resolution: {integrity: sha512-bFWwx/YF9M+aXTjDo0/6DrC7+WCzLg7wAmFoQA3Gd7cv5WV4u65hHSZN8bq0zhgHqtYQZdWnp0L2z6JNCwcIGg==}
+ vite-plugin-vue-devtools@7.2.1:
+ resolution: {integrity: sha512-4k7QNZz0nSojoePQoxnE5fIzi8RU1QJHc0TEg4golv2phZxhBGfjScZD2B8X6bcrRbUQ9CaRKN0dzBs1xtzzNg==}
engines: {node: '>=v14.21.3'}
peerDependencies:
vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0
@@ -7553,7 +7570,7 @@ snapshots:
dependencies:
'@changesets/types': 6.0.0
- '@changesets/cli@2.27.2':
+ '@changesets/cli@2.27.3':
dependencies:
'@babel/runtime': 7.24.5
'@changesets/apply-release-plan': 7.0.1
@@ -8245,7 +8262,7 @@ snapshots:
'@humanwhocodes/object-schema@2.0.3': {}
- '@iconify/json@2.2.211':
+ '@iconify/json@2.2.212':
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.2
@@ -8758,14 +8775,14 @@ snapshots:
'@types/which@3.0.3': {}
- '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/scope-manager': 7.9.0
- '@typescript-eslint/type-utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.9.0
+ '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/scope-manager': 7.10.0
+ '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.10.0
eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
@@ -8776,12 +8793,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/scope-manager': 7.9.0
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.9.0
+ '@typescript-eslint/scope-manager': 7.10.0
+ '@typescript-eslint/types': 7.10.0
+ '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.10.0
debug: 4.3.4
eslint: 8.57.0
optionalDependencies:
@@ -8789,20 +8806,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/scope-manager@7.10.0':
+ dependencies:
+ '@typescript-eslint/types': 7.10.0
+ '@typescript-eslint/visitor-keys': 7.10.0
+
'@typescript-eslint/scope-manager@7.8.0':
dependencies:
'@typescript-eslint/types': 7.8.0
'@typescript-eslint/visitor-keys': 7.8.0
- '@typescript-eslint/scope-manager@7.9.0':
+ '@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/visitor-keys': 7.9.0
-
- '@typescript-eslint/type-utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)':
- dependencies:
- '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
- '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5)
debug: 4.3.4
eslint: 8.57.0
ts-api-utils: 1.3.0(typescript@5.4.5)
@@ -8811,10 +8828,27 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/types@7.10.0': {}
+
'@typescript-eslint/types@7.8.0': {}
'@typescript-eslint/types@7.9.0': {}
+ '@typescript-eslint/typescript-estree@7.10.0(typescript@5.4.5)':
+ dependencies:
+ '@typescript-eslint/types': 7.10.0
+ '@typescript-eslint/visitor-keys': 7.10.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.4
+ semver: 7.6.2
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ optionalDependencies:
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)':
dependencies:
'@typescript-eslint/types': 7.8.0
@@ -8830,20 +8864,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)':
+ '@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/visitor-keys': 7.9.0
- debug: 4.3.4
- globby: 11.1.0
- is-glob: 4.0.3
- minimatch: 9.0.4
- semver: 7.6.2
- ts-api-utils: 1.3.0(typescript@5.4.5)
- optionalDependencies:
- typescript: 5.4.5
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@typescript-eslint/scope-manager': 7.10.0
+ '@typescript-eslint/types': 7.10.0
+ '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5)
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
+ - typescript
'@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
@@ -8859,27 +8889,16 @@ snapshots:
- supports-color
- typescript
- '@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/visitor-keys@7.10.0':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@typescript-eslint/scope-manager': 7.9.0
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
- eslint: 8.57.0
- transitivePeerDependencies:
- - supports-color
- - typescript
+ '@typescript-eslint/types': 7.10.0
+ eslint-visitor-keys: 3.4.3
'@typescript-eslint/visitor-keys@7.8.0':
dependencies:
'@typescript-eslint/types': 7.8.0
eslint-visitor-keys: 3.4.3
- '@typescript-eslint/visitor-keys@7.9.0':
- dependencies:
- '@typescript-eslint/types': 7.9.0
- eslint-visitor-keys: 3.4.3
-
'@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
@@ -9013,10 +9032,10 @@ snapshots:
'@vue/devtools-api@6.6.1': {}
- '@vue/devtools-core@7.2.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
+ '@vue/devtools-core@7.2.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
dependencies:
- '@vue/devtools-kit': 7.2.0(vue@3.4.27(typescript@5.4.5))
- '@vue/devtools-shared': 7.2.0
+ '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.4.5))
+ '@vue/devtools-shared': 7.2.1
mitt: 3.0.1
nanoid: 3.3.7
pathe: 1.1.2
@@ -9025,16 +9044,16 @@ snapshots:
- vite
- vue
- '@vue/devtools-kit@7.2.0(vue@3.4.27(typescript@5.4.5))':
+ '@vue/devtools-kit@7.2.1(vue@3.4.27(typescript@5.4.5))':
dependencies:
- '@vue/devtools-shared': 7.2.0
+ '@vue/devtools-shared': 7.2.1
hookable: 5.5.3
mitt: 3.0.1
perfect-debounce: 1.0.0
speakingurl: 14.0.1
vue: 3.4.27(typescript@5.4.5)
- '@vue/devtools-shared@7.2.0':
+ '@vue/devtools-shared@7.2.1':
dependencies:
rfdc: 1.3.1
@@ -9102,14 +9121,14 @@ snapshots:
- '@vue/composition-api'
- vue
- '@vueuse/integrations@10.9.0(async-validator@4.2.5)(axios@1.6.8)(nprogress@0.2.0)(qrcode@1.5.3)(vue@3.4.27(typescript@5.4.5))':
+ '@vueuse/integrations@10.9.0(async-validator@4.2.5)(axios@1.7.1)(nprogress@0.2.0)(qrcode@1.5.3)(vue@3.4.27(typescript@5.4.5))':
dependencies:
'@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5))
'@vueuse/shared': 10.9.0(vue@3.4.27(typescript@5.4.5))
vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5))
optionalDependencies:
async-validator: 4.2.5
- axios: 1.6.8
+ axios: 1.7.1
nprogress: 0.2.0
qrcode: 1.5.3
transitivePeerDependencies:
@@ -9314,7 +9333,7 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
- axios@1.6.8:
+ axios@1.7.1:
dependencies:
follow-redirects: 1.15.6
form-data: 4.0.0
@@ -10308,17 +10327,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
+ eslint-module-utils@2.8.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-command@0.2.2(eslint@8.57.0):
+ eslint-plugin-command@0.2.3(eslint@8.57.0):
dependencies:
'@es-joy/jsdoccomment': 0.43.0
eslint: 8.57.0
@@ -10336,13 +10355,13 @@ snapshots:
eslint: 8.57.0
ignore: 5.3.1
- eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0):
+ eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0):
dependencies:
debug: 4.3.4
doctrine: 3.0.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
get-tsconfig: 4.7.4
is-glob: 4.0.3
minimatch: 3.1.2
@@ -10386,7 +10405,7 @@ snapshots:
eslint: 8.57.0
eslint-plugin-es-x: 7.6.0(eslint@8.57.0)
get-tsconfig: 4.7.4
- globals: 15.2.0
+ globals: 15.3.0
ignore: 5.3.1
minimatch: 9.0.4
semver: 7.6.2
@@ -10448,19 +10467,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0):
+ eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0):
dependencies:
eslint: 8.57.0
eslint-rule-composer: 0.3.0
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
- eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(jsdom@24.0.0)(sass@1.77.2)(terser@5.31.0)):
+ eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)(jsdom@24.0.0)(sass@1.77.2)(terser@5.31.0)):
dependencies:
'@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
eslint: 8.57.0
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
vitest: 1.6.0(@types/node@20.12.12)(jsdom@24.0.0)(sass@1.77.2)(terser@5.31.0)
transitivePeerDependencies:
- supports-color
@@ -10895,7 +10914,7 @@ snapshots:
globals@14.0.0: {}
- globals@15.2.0: {}
+ globals@15.3.0: {}
globalthis@1.0.4:
dependencies:
@@ -12055,6 +12074,8 @@ snapshots:
picocolors@1.0.0: {}
+ picocolors@1.0.1: {}
+
picomatch@2.3.1: {}
pidtree@0.6.0: {}
@@ -12574,10 +12595,10 @@ snapshots:
psl@1.9.0: {}
- publint@0.2.7:
+ publint@0.2.8:
dependencies:
npm-packlist: 5.1.3
- picocolors: 1.0.0
+ picocolors: 1.0.1
sade: 1.8.1
punycode@2.3.1: {}
@@ -13781,11 +13802,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vite-plugin-vue-devtools@7.2.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)):
+ vite-plugin-vue-devtools@7.2.1(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)):
dependencies:
- '@vue/devtools-core': 7.2.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
- '@vue/devtools-kit': 7.2.0(vue@3.4.27(typescript@5.4.5))
- '@vue/devtools-shared': 7.2.0
+ '@vue/devtools-core': 7.2.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+ '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.4.5))
+ '@vue/devtools-shared': 7.2.1
execa: 8.0.1
sirv: 2.0.4
vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
diff --git a/vben-admin.code-workspace b/vben-admin.code-workspace
index 3569d0da..7fc44785 100644
--- a/vben-admin.code-workspace
+++ b/vben-admin.code-workspace
@@ -84,6 +84,10 @@
"name": "@vben/layouts",
"path": "packages/business/layouts",
},
+ {
+ "name": "@vben/constants",
+ "path": "packages/constants",
+ },
{
"name": "@vben/hooks",
"path": "packages/hooks",
@@ -104,6 +108,10 @@
"name": "@vben/stores",
"path": "packages/stores",
},
+ {
+ "name": "@vben/utils",
+ "path": "packages/utils",
+ },
{
"name": "@vben/vsh",
"path": "scripts/vsh",