feat: vue3渲染适配器

This commit is contained in:
wangxuefeng 2025-03-12 18:10:47 +08:00
parent bcdb4e8c95
commit 5f8609fc02
20 changed files with 398 additions and 150 deletions

View File

@ -2,7 +2,7 @@ import type { DefaultTheme } from 'vitepress';
import { defineConfig } from 'vitepress';
import { version } from '../../../package.json';
import { version } from '../../../../package.json';
export const en = defineConfig({
description: 'y-code-platform & Enterprise level management system framework',

View File

@ -2,7 +2,7 @@ import type { DefaultTheme } from 'vitepress';
import { defineConfig } from 'vitepress';
import { version } from '../../../package.json';
import { version } from '../../../../package.json';
export const zh = defineConfig({
description: '悦码 & 低代码管理系统',

View File

@ -19,6 +19,7 @@
},
"dependencies": {
"@sy/unified-login": "1.0.29",
"@sy/vue3-renderer-adapter": "workspace:*",
"@vben/access": "workspace:*",
"@vben/common-ui": "workspace:*",
"@vben/constants": "workspace:*",

View File

@ -1,5 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { h } from 'vue';
import RendererAdapter from '@sy/vue3-renderer-adapter';
import { VITE_RENDERER_URL } from '#/constants';
import {
LOW_CODE_APPLICATION_ID,
@ -25,18 +29,15 @@ const routes: Array<RouteRecordRaw> = [
title: '权限列表',
keepAlive: true,
icon: 'ant-design:list',
app: {
},
component: () =>
h(RendererAdapter, {
url: VITE_RENDERER_URL,
name: 'y-code-platform-project-list',
// sync: true,
// alive: true,
// degrade: true,
applicationId: LOW_CODE_APPLICATION_ID,
projectId: LOW_CODE_PROJECT_ID,
fileId: '1hsd0407hf',
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
}),
},
],
},

View File

@ -1,5 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { h } from 'vue';
import RendererAdapter from '@sy/vue3-renderer-adapter';
import { VITE_RENDERER_URL } from '#/constants';
// 微前端路由
@ -19,20 +23,17 @@ const routes: Array<RouteRecordRaw> = [
name: `${moduleName}-list`,
meta: {
title: '应用列表',
keepAlive: true,
keepAlive: false,
icon: 'ant-design:list',
app: {
},
component: () =>
h(RendererAdapter, {
url: VITE_RENDERER_URL,
name: 'y-code-platform-application-list',
// sync: true,
// alive: true,
// degrade: true,
applicationId: 0,
projectId: 4,
fileId: 'b91n1y9yr',
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
}),
},
],
},

View File

@ -1,5 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { h } from 'vue';
import RendererAdapter from '@sy/vue3-renderer-adapter';
import { VITE_DESIGNER_URL, VITE_V1_URL } from '#/constants';
const moduleName = 'micro';
@ -18,18 +22,15 @@ const routes: Array<RouteRecordRaw> = [
name: `${moduleName}-designer`,
meta: {
title: '低代码编辑器',
keepAlive: true,
keepAlive: false,
icon: 'ant-design:edit-outlined',
app: {
},
component: () =>
h(RendererAdapter, {
url: VITE_DESIGNER_URL,
name: 'y-code-designer',
projectId: 4,
sync: true,
alive: true,
degrade: true,
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
}),
},
{
path: 'y-code-v1',
@ -47,7 +48,14 @@ const routes: Array<RouteRecordRaw> = [
degrade: true,
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
component: () =>
h(RendererAdapter, {
url: VITE_V1_URL,
name: 'y-code-v1',
// sync: true,
// alive: true,
degrade: true,
}),
},
],
},

View File

@ -1,5 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { h } from 'vue';
import RendererAdapter from '@sy/vue3-renderer-adapter';
import { VITE_RENDERER_URL } from '#/constants';
import {
LOW_CODE_APPLICATION_ID,
@ -25,39 +29,32 @@ const routes: Array<RouteRecordRaw> = [
title: '项目列表',
keepAlive: true,
icon: 'ant-design:list',
app: {
},
component: () =>
h(RendererAdapter, {
url: VITE_RENDERER_URL,
name: 'y-code-platform-project-list',
// sync: true,
// alive: true,
// degrade: true,
applicationId: LOW_CODE_APPLICATION_ID,
projectId: LOW_CODE_PROJECT_ID,
fileId: '4g4mz6qi8u',
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
}),
},
{
path: 'file',
name: `${moduleName}-file`,
meta: {
title: 'dsl 文件列表',
keepAlive: true,
keepAlive: false,
icon: 'ant-design:file',
app: {
},
component: () =>
h(RendererAdapter, {
url: VITE_RENDERER_URL,
name: 'y-code-platform-project-file',
// sync: true,
// alive: true,
// degrade: true,
applicationId: LOW_CODE_APPLICATION_ID,
projectId: LOW_CODE_PROJECT_ID,
// cspell:disable-next-line
fileId: '7pftwojzu',
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
}),
},
],
},

View File

@ -1,5 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { h } from 'vue';
import RendererAdapter from '@sy/vue3-renderer-adapter';
import { VITE_RENDERER_URL } from '#/constants';
import {
LOW_CODE_APPLICATION_ID,
@ -25,15 +29,15 @@ const routes: Array<RouteRecordRaw> = [
title: '静态文件列表',
keepAlive: false,
icon: 'ant-design:file',
app: {
},
component: () =>
h(RendererAdapter, {
url: VITE_RENDERER_URL,
name: 'y-code-platform-application-list',
applicationId: LOW_CODE_APPLICATION_ID,
projectId: LOW_CODE_PROJECT_ID,
fileId: '7pfr394d6',
},
},
component: () => import('#/components/renderer-adapter/index.vue'),
}),
},
],
},

27
apps/platform/turbo.json Normal file
View File

@ -0,0 +1,27 @@
{
"$schema": "https://turbo.build/schema.json",
"ui": "tui",
"globalDependencies": ["pnpm-lock.yaml"],
"globalEnv": ["NODE_ENV"],
"tasks": {
"build": {
"dependsOn": ["@sy/vue3-renderer-adapter#build", "^build"],
"outputs": ["dist/**"]
},
"preview": {
"dependsOn": ["@sy/vue3-renderer-adapter#build", "^build"],
"outputs": ["dist/**"]
},
"build:analyze": {
"dependsOn": ["@sy/vue3-renderer-adapter#build", "^build"],
"outputs": ["dist/**"]
},
"dev": {
"dependsOn": ["@sy/vue3-renderer-adapter#build"],
"outputs": [],
"cache": false,
"persistent": true
}
},
"extends": ["//"]
}

View File

@ -47,6 +47,7 @@ const { data: file, isFetching } = useQuery({
req.headers.set('Authorization', `Bearer ${model.accessToken}`);
return req;
});
console.log('import.meta.env.NODE_ENV', import.meta.env.NODE_ENV);
const { provider, onReady } = createProvider({
nodeEnv: import.meta.env.NODE_ENV,
service: lowCodeService,

View File

@ -26,12 +26,11 @@
"pinia": "catalog:",
"vue": "catalog:",
"vue-grid-layout": "^3.0.0-beta1",
"vue-router": "catalog:",
"wujie-vue3": "^1.0.25"
"vue-router": "catalog:"
},
"devDependencies": {
"@farmfe/cli": "^1.0.4",
"@farmfe/core": "^1.6.7",
"@farmfe/cli": "catalog:",
"@farmfe/core": "catalog:",
"@rushstack/eslint-patch": "^1.10.5",
"@tsconfig/node20": "^20.1.4",
"@types/node": "^20.17.17",

View File

@ -52,7 +52,7 @@ const {
devDependencies = {},
// homepage,
// license,
// version,
version,
// vite inject-metadata
} = __VBEN_ADMIN_METADATA__ || {};

View File

@ -0,0 +1,39 @@
{
"name": "@sy/vue3-renderer-adapter",
"version": "1.0.0-alpha.1",
"description": "vue3 renderer adapter",
"private": true,
"type": "module",
"scripts": {
"build": "vite build"
},
"alias": {
"#": "./src"
},
"files": [
"dist"
],
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"unpkg": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/types/index.d.ts",
"import": "./dist/index.mjs",
"require": "./dist/index.cjs",
"default": "./dist/index.mjs"
}
},
"dependencies": {
"postmate": "catalog:",
"vue": "catalog:"
},
"devDependencies": {
"@farmfe/cli": "catalog:",
"@farmfe/core": "catalog:",
"@types/postmate": "catalog:",
"@vitejs/plugin-vue": "catalog:",
"vite-plugin-dts": "catalog:"
}
}

View File

@ -0,0 +1,55 @@
<script setup lang="ts">
import { onMounted } from 'vue';
import Postmate from 'postmate';
const props = defineProps<{
accessToken?: string;
applicationId: string;
fileId: string;
name: string;
projectId: string;
url: string;
}>();
Console.log('props', props);
const initPostmate = async () => {
const container = document.querySelector('#low-code-adapter');
if (!container) {
console.error('容器元素未找到');
return;
}
const connection = new Postmate({
container,
model: {
accessToken: props.accessToken,
applicationId: props.applicationId,
fileId: props.fileId,
name: props.name,
projectId: props.projectId,
url: props.url,
},
name: 'y-code-renderer',
url: props.url,
});
connection.then((child) => {
child.frame.style.height = '100%';
child.frame.style.width = '100%';
console.log(`${props.name} 连接成功`, child);
child.call('child-connected', {
name: props.name,
});
});
};
onMounted(() => {
initPostmate();
});
</script>
<template>
<div id="low-code-adapter" style="width: 100%; height: 100%"></div>
</template>

View File

@ -0,0 +1 @@
export { default } from './adapter.vue';

View File

@ -0,0 +1,29 @@
{
"compilerOptions": {
"target": "ESNext",
"jsx": "preserve",
"jsxFactory": "h",
"jsxFragmentFactory": "Fragment",
"lib": ["ESNext", "DOM", "DOM.Iterable"],
"baseUrl": ".",
"module": "ESNext",
"moduleResolution": "Node",
"paths": {
"@/*": ["src/*"]
},
"resolveJsonModule": true,
"types": ["vite/client"],
"strict": true,
"useUnknownInCatchVariables": false,
"declaration": true,
"declarationDir": "dist/types",
"outDir": "dist",
"sourceMap": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
"exclude": ["node_modules", "dist"]
}

View File

@ -0,0 +1,68 @@
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import vue from '@vitejs/plugin-vue';
import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
export default defineConfig({
build: {
cssCodeSplit: true,
lib: {
entry: path.resolve(__dirname, 'src/index.ts'),
fileName: (format) => {
switch (format) {
case 'cjs': {
return 'index.cjs';
}
case 'es': {
return 'index.mjs';
}
case 'umd': {
return 'index.js';
}
default: {
return `index.${format}.js`;
}
}
},
formats: ['es', 'cjs', 'umd'],
name: 'RendererAdapter',
},
outDir: 'dist',
rollupOptions: {
external: ['vue'],
output: {
assetFileNames: (assetInfo) => {
if (assetInfo.name === 'style.css') return 'assets/[name][extname]';
return 'assets/[name]-[hash][extname]';
},
globals: {
vue: 'Vue',
},
},
},
sourcemap: true,
},
css: {
extract: false,
modules: {
localsConvention: 'camelCaseOnly',
scopeBehaviour: 'local',
},
},
plugins: [
vue({
css: {
injectCss: true,
},
}),
dts({
insertTypesEntry: true,
outDir: 'dist/types',
staticImport: true,
}),
],
});

124
pnpm-lock.yaml generated
View File

@ -27,9 +27,15 @@ catalogs:
'@eslint/js':
specifier: ^9.22.0
version: 9.22.0
'@farmfe/cli':
specifier: ^1.0.4
version: 1.0.4
'@farmfe/core':
specifier: ^1.6.7
version: 1.6.7
'@iconify/json':
specifier: ^2.2.314
version: 2.2.315
version: 2.2.316
'@iconify/tailwind':
specifier: ^1.2.0
version: 1.2.0
@ -149,7 +155,7 @@ catalogs:
version: 10.4.21
axios:
specifier: ^1.8.2
version: 1.8.2
version: 1.8.3
axios-mock-adapter:
specifier: ^2.1.0
version: 2.1.0
@ -651,7 +657,7 @@ importers:
version: 0.10.12(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2))
axios:
specifier: ^1.8.1
version: 1.8.2(debug@4.4.0)
version: 1.8.3(debug@4.4.0)
element-plus:
specifier: ^2.9.4
version: 2.9.6(vue@3.5.13(typescript@5.8.2))
@ -728,7 +734,7 @@ importers:
devDependencies:
'@nolebase/vitepress-plugin-git-changelog':
specifier: 'catalog:'
version: 2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))
version: 2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))
'@vben/vite-config':
specifier: workspace:*
version: link:../../internal/vite-config
@ -737,7 +743,7 @@ importers:
version: 0.5.3(vite-plugin-pwa@0.21.1(vite@5.4.14(@types/node@22.13.10)(less@4.2.2)(sass@1.85.1)(terser@5.39.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))
vitepress:
specifier: 'catalog:'
version: 1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2)
version: 1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2)
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.8.2)
@ -747,6 +753,9 @@ importers:
'@sy/unified-login':
specifier: 1.0.29
version: 1.0.29(vue@3.5.13(typescript@5.8.2))
'@sy/vue3-renderer-adapter':
specifier: workspace:*
version: link:../../packages/renderer-adapter/vue3
'@vben/access':
specifier: workspace:*
version: link:../../packages/effects/access
@ -794,7 +803,7 @@ importers:
version: 12.8.2(typescript@5.8.2)
axios:
specifier: 'catalog:'
version: 1.8.2(debug@4.4.0)
version: 1.8.3(debug@4.4.0)
dayjs:
specifier: 'catalog:'
version: 1.11.13
@ -864,7 +873,7 @@ importers:
version: 0.10.12(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2))
axios:
specifier: 'catalog:'
version: 1.8.2(debug@4.4.0)
version: 1.8.3(debug@4.4.0)
core-js:
specifier: ^3.40.0
version: 3.41.0
@ -928,7 +937,7 @@ importers:
version: 4.2.6(vue@3.5.13(typescript@5.8.2))
axios:
specifier: 'catalog:'
version: 1.8.2(debug@4.4.0)
version: 1.8.3(debug@4.4.0)
core-js:
specifier: ^3.40.0
version: 3.41.0
@ -956,15 +965,12 @@ importers:
vue-router:
specifier: 'catalog:'
version: 4.5.0(vue@3.5.13(typescript@5.8.2))
wujie-vue3:
specifier: ^1.0.25
version: 1.0.25(vue@3.5.13(typescript@5.8.2))
devDependencies:
'@farmfe/cli':
specifier: ^1.0.4
specifier: 'catalog:'
version: 1.0.4
'@farmfe/core':
specifier: ^1.6.7
specifier: 'catalog:'
version: 1.6.7
'@rushstack/eslint-patch':
specifier: ^1.10.5
@ -1210,7 +1216,7 @@ importers:
dependencies:
'@iconify/json':
specifier: 'catalog:'
version: 2.2.315
version: 2.2.316
'@iconify/tailwind':
specifier: 'catalog:'
version: 1.2.0
@ -1679,7 +1685,7 @@ importers:
version: 12.8.2(typescript@5.8.2)
'@vueuse/integrations':
specifier: 'catalog:'
version: 12.8.2(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(focus-trap@7.6.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.8.2)
version: 12.8.2(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(focus-trap@7.6.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.8.2)
qrcode:
specifier: 'catalog:'
version: 1.5.4
@ -1851,11 +1857,11 @@ importers:
version: link:../../utils
axios:
specifier: 'catalog:'
version: 1.8.2(debug@4.4.0)
version: 1.8.3(debug@4.4.0)
devDependencies:
axios-mock-adapter:
specifier: 'catalog:'
version: 2.1.0(axios@1.8.2)
version: 2.1.0(axios@1.8.3)
packages/icons:
dependencies:
@ -1887,6 +1893,31 @@ importers:
specifier: workspace:*
version: link:../@core/base/typings
packages/renderer-adapter/vue3:
dependencies:
postmate:
specifier: 'catalog:'
version: 1.5.2
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.8.2)
devDependencies:
'@farmfe/cli':
specifier: 'catalog:'
version: 1.0.4
'@farmfe/core':
specifier: 'catalog:'
version: 1.6.7
'@types/postmate':
specifier: 'catalog:'
version: 1.5.4
'@vitejs/plugin-vue':
specifier: 'catalog:'
version: 5.2.1(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))
vite-plugin-dts:
specifier: 'catalog:'
version: 4.5.3(@types/node@22.13.10)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@2.7.0))
packages/stores:
dependencies:
'@vben-core/preferences':
@ -3948,8 +3979,8 @@ packages:
'@iconify-json/vscode-icons@1.2.16':
resolution: {integrity: sha512-hstc2yVq2UJ6v6FrgjftzXRvphGZBsKxvSeXoFLP1Hgx89TPZKrGE5SV6vqsoeIlLYaQ7OZbXmAoVGroTfGmVQ==}
'@iconify/json@2.2.315':
resolution: {integrity: sha512-ST+F6ZF+IpKm2eaABWftJ4stWbB8pcEd9Q5bshW8hcIW/kcvzwit3fI/5x3tFFscWUCxHGNU3JNVMtNlodHweQ==}
'@iconify/json@2.2.316':
resolution: {integrity: sha512-nVBinEhlXrX7ZDNNjiR6pN06SmB/SzqxgpR+DkuNSMglC+/awrBiuF3RUwoCkJ3cDTK9aa86JJoKnIPFXSqo6g==}
'@iconify/tailwind@1.2.0':
resolution: {integrity: sha512-KgpIHWOTcRYw1XcoUqyNSrmYyfLLqZYu3AmP8zdfLk0F5TqRO8YerhlvlQmGfn7rJXgPeZN569xPAJnJ53zZxA==}
@ -5911,8 +5942,8 @@ packages:
peerDependencies:
axios: '>= 0.17.0'
axios@1.8.2:
resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==}
axios@1.8.3:
resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==}
b4a@1.6.7:
resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==}
@ -12833,14 +12864,6 @@ packages:
utf-8-validate:
optional: true
wujie-vue3@1.0.25:
resolution: {integrity: sha512-4yOdI+SluU/+eAh/KXvECdUUG/3bHRbBp1Hooq1/rl4HvlotO2QyPY8UyUlBz3Q0byDQcARaSbItHdnmIf1CIA==}
peerDependencies:
vue: ^3.5.13
wujie@1.0.25:
resolution: {integrity: sha512-V9UtKYqs5Dop8ZgxYAySkavwC9Sc15EvzlbSD8N96VFwOD0vct0N1j0S1SLXkzruhooYEeAzlPNyt8gCBPcMKA==}
xdg-basedir@5.1.0:
resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
engines: {node: '>=12'}
@ -15398,7 +15421,7 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
'@iconify/json@2.2.315':
'@iconify/json@2.2.316':
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.2
@ -15798,19 +15821,19 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
'@nolebase/ui@2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))':
'@nolebase/ui@2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))':
dependencies:
'@iconify-json/octicon': 1.2.5
less: 4.2.2
vitepress: 1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2)
vitepress: 1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2)
vue: 3.5.13(typescript@5.8.2)
transitivePeerDependencies:
- typescript
'@nolebase/vitepress-plugin-git-changelog@2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))':
'@nolebase/vitepress-plugin-git-changelog@2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))':
dependencies:
'@iconify-json/octicon': 1.2.5
'@nolebase/ui': 2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))
'@nolebase/ui': 2.15.1(typescript@5.8.2)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2))
colorette: 2.0.20
date-fns: 4.1.0
defu: 6.1.4
@ -15820,7 +15843,7 @@ snapshots:
gray-matter: 4.0.3
less: 4.2.2
uncrypto: 0.1.3
vitepress: 1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2)
vitepress: 1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2)
transitivePeerDependencies:
- typescript
@ -17348,7 +17371,7 @@ snapshots:
dependencies:
'@types/fs-extra': 11.0.4
'@vtj/base': 0.10.1
axios: 1.8.2(debug@4.4.0)
axios: 1.8.3(debug@4.4.0)
fs-extra: 11.3.0
transitivePeerDependencies:
- debug
@ -17647,14 +17670,14 @@ snapshots:
- '@vue/composition-api'
- vue
'@vueuse/integrations@12.8.2(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(focus-trap@7.6.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.8.2)':
'@vueuse/integrations@12.8.2(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(focus-trap@7.6.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.8.2)':
dependencies:
'@vueuse/core': 12.8.2(typescript@5.8.2)
'@vueuse/shared': 12.8.2(typescript@5.8.2)
vue: 3.5.13(typescript@5.8.2)
optionalDependencies:
async-validator: 4.2.5
axios: 1.8.2(debug@4.4.0)
axios: 1.8.3(debug@4.4.0)
change-case: 5.4.4
focus-trap: 7.6.4
nprogress: 0.2.0
@ -18015,13 +18038,13 @@ snapshots:
dependencies:
possible-typed-array-names: 1.1.0
axios-mock-adapter@2.1.0(axios@1.8.2):
axios-mock-adapter@2.1.0(axios@1.8.3):
dependencies:
axios: 1.8.2(debug@4.4.0)
axios: 1.8.3(debug@4.4.0)
fast-deep-equal: 3.1.3
is-buffer: 2.0.5
axios@1.8.2(debug@4.4.0):
axios@1.8.3(debug@4.4.0):
dependencies:
follow-redirects: 1.15.9(debug@4.4.0)
form-data: 4.0.2
@ -19118,7 +19141,7 @@ snapshots:
dependencies:
is-arguments: 1.2.0
is-date-object: 1.1.0
is-regex: 1.1.4
is-regex: 1.2.1
object-is: 1.1.6
object-keys: 1.1.1
regexp.prototype.flags: 1.5.4
@ -25309,7 +25332,7 @@ snapshots:
vite-plugin-mkcert@1.17.7(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@2.7.0)):
dependencies:
axios: 1.8.2(debug@4.4.0)
axios: 1.8.3(debug@4.4.0)
debug: 4.4.0(supports-color@9.4.0)
picocolors: 1.1.1
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@2.7.0)
@ -25318,7 +25341,7 @@ snapshots:
vite-plugin-mkcert@1.17.7(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@2.7.0)):
dependencies:
axios: 1.8.2(debug@4.4.0)
axios: 1.8.3(debug@4.4.0)
debug: 4.4.0(supports-color@9.4.0)
picocolors: 1.1.1
vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@2.7.0)
@ -25475,7 +25498,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2):
vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@22.13.10)(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(less@4.2.2)(nprogress@0.2.0)(postcss@8.5.3)(qrcode@1.5.4)(sass@1.85.1)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.39.0)(typescript@5.8.2):
dependencies:
'@docsearch/css': 3.8.2
'@docsearch/js': 3.8.2(@algolia/client-search@5.21.0)(search-insights@2.17.3)
@ -25488,7 +25511,7 @@ snapshots:
'@vue/devtools-api': 7.7.2
'@vue/shared': 3.5.13
'@vueuse/core': 12.8.2(typescript@5.8.2)
'@vueuse/integrations': 12.8.2(async-validator@4.2.5)(axios@1.8.2)(change-case@5.4.4)(focus-trap@7.6.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.8.2)
'@vueuse/integrations': 12.8.2(async-validator@4.2.5)(axios@1.8.3)(change-case@5.4.4)(focus-trap@7.6.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.8.2)
focus-trap: 7.6.4
mark.js: 8.11.1
minisearch: 7.1.2
@ -25986,15 +26009,6 @@ snapshots:
ws@8.18.1: {}
wujie-vue3@1.0.25(vue@3.5.13(typescript@5.8.2)):
dependencies:
vue: 3.5.13(typescript@5.8.2)
wujie: 1.0.25
wujie@1.0.25:
dependencies:
'@babel/runtime': 7.26.10
xdg-basedir@5.1.0: {}
xe-utils@3.7.4: {}

View File

@ -2,6 +2,7 @@ packages:
- internal/*
- internal/lint-configs/*
- packages/*
- packages/renderer-adapter/*
- packages/@core/base/*
- packages/@core/ui-kit/*
- packages/@core/forward/*
@ -62,6 +63,8 @@ catalog:
'@vueuse/core': ^12.8.2
'@vueuse/motion': ^2.2.6
'@vueuse/integrations': ^12.8.2
'@farmfe/cli': ^1.0.4
'@farmfe/core': ^1.6.7
ant-design-vue: ^4.2.6
archiver: ^7.0.1
autoprefixer: ^10.4.20

View File

@ -2,171 +2,171 @@
"folders": [
{
"name": "@sy/y-code-designer",
"path": "apps/designer",
"path": "apps/designer"
},
{
"name": "@sy/y-code-platform",
"path": "apps/platform",
"path": "apps/platform"
},
{
"name": "@sy/y-code-renderer",
"path": "apps/renderer",
"path": "apps/renderer"
},
{
"name": "@sy/low-code-y-code-v1",
"path": "apps/y-code-v1",
"path": "apps/y-code-v1"
},
{
"name": "@sy/y-code-docs",
"path": "docs",
"path": "apps/docs"
},
{
"name": "@vben/commitlint-config",
"path": "internal/lint-configs/commitlint-config",
"path": "internal/lint-configs/commitlint-config"
},
{
"name": "@vben/eslint-config",
"path": "internal/lint-configs/eslint-config",
"path": "internal/lint-configs/eslint-config"
},
{
"name": "@vben/prettier-config",
"path": "internal/lint-configs/prettier-config",
"path": "internal/lint-configs/prettier-config"
},
{
"name": "@vben/stylelint-config",
"path": "internal/lint-configs/stylelint-config",
"path": "internal/lint-configs/stylelint-config"
},
{
"name": "@vben/node-utils",
"path": "internal/node-utils",
"path": "internal/node-utils"
},
{
"name": "@vben/tailwind-config",
"path": "internal/tailwind-config",
"path": "internal/tailwind-config"
},
{
"name": "@vben/tsconfig",
"path": "internal/tsconfig",
"path": "internal/tsconfig"
},
{
"name": "@vben/vite-config",
"path": "internal/vite-config",
"path": "internal/vite-config"
},
{
"name": "@vben-core/design",
"path": "packages/@core/base/design",
"path": "packages/@core/base/design"
},
{
"name": "@vben-core/icons",
"path": "packages/@core/base/icons",
"path": "packages/@core/base/icons"
},
{
"name": "@vben-core/shared",
"path": "packages/@core/base/shared",
"path": "packages/@core/base/shared"
},
{
"name": "@vben-core/typings",
"path": "packages/@core/base/typings",
"path": "packages/@core/base/typings"
},
{
"name": "@vben-core/composables",
"path": "packages/@core/composables",
"path": "packages/@core/composables"
},
{
"name": "@vben-core/preferences",
"path": "packages/@core/preferences",
"path": "packages/@core/preferences"
},
{
"name": "@vben-core/form-ui",
"path": "packages/@core/ui-kit/form-ui",
"path": "packages/@core/ui-kit/form-ui"
},
{
"name": "@vben-core/layout-ui",
"path": "packages/@core/ui-kit/layout-ui",
"path": "packages/@core/ui-kit/layout-ui"
},
{
"name": "@vben-core/menu-ui",
"path": "packages/@core/ui-kit/menu-ui",
"path": "packages/@core/ui-kit/menu-ui"
},
{
"name": "@vben-core/popup-ui",
"path": "packages/@core/ui-kit/popup-ui",
"path": "packages/@core/ui-kit/popup-ui"
},
{
"name": "@vben-core/shadcn-ui",
"path": "packages/@core/ui-kit/shadcn-ui",
"path": "packages/@core/ui-kit/shadcn-ui"
},
{
"name": "@vben-core/tabs-ui",
"path": "packages/@core/ui-kit/tabs-ui",
"path": "packages/@core/ui-kit/tabs-ui"
},
{
"name": "@vben/constants",
"path": "packages/constants",
"path": "packages/constants"
},
{
"name": "@vben/access",
"path": "packages/effects/access",
"path": "packages/effects/access"
},
{
"name": "@vben/common-ui",
"path": "packages/effects/common-ui",
"path": "packages/effects/common-ui"
},
{
"name": "@vben/hooks",
"path": "packages/effects/hooks",
"path": "packages/effects/hooks"
},
{
"name": "@vben/layouts",
"path": "packages/effects/layouts",
"path": "packages/effects/layouts"
},
{
"name": "@vben/plugins",
"path": "packages/effects/plugins",
"path": "packages/effects/plugins"
},
{
"name": "@vben/request",
"path": "packages/effects/request",
"path": "packages/effects/request"
},
{
"name": "@vben/icons",
"path": "packages/icons",
"path": "packages/icons"
},
{
"name": "@vben/locales",
"path": "packages/locales",
"path": "packages/locales"
},
{
"name": "@vben/preferences",
"path": "packages/preferences",
"path": "packages/preferences"
},
{
"name": "@vben/stores",
"path": "packages/stores",
"path": "packages/stores"
},
{
"name": "@vben/styles",
"path": "packages/styles",
"path": "packages/styles"
},
{
"name": "@vben/types",
"path": "packages/types",
"path": "packages/types"
},
{
"name": "@vben/utils",
"path": "packages/utils",
"path": "packages/utils"
},
{
"name": "@sy/web-vitals",
"path": "packages/web-vitals",
"path": "packages/web-vitals"
},
{
"name": "@vben/turbo-run",
"path": "scripts/turbo-run",
"path": "scripts/turbo-run"
},
{
"name": "@vben/vsh",
"path": "scripts/vsh",
},
],
"path": "scripts/vsh"
}
]
}