mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
feat(editor): Add vue-scan for frontend performance tracking (no-changelog) (#16995)
This commit is contained in:
@@ -115,7 +115,8 @@
|
|||||||
"@types/uuencode@0.0.3": "patches/@types__uuencode@0.0.3.patch",
|
"@types/uuencode@0.0.3": "patches/@types__uuencode@0.0.3.patch",
|
||||||
"vue-tsc@2.2.8": "patches/vue-tsc@2.2.8.patch",
|
"vue-tsc@2.2.8": "patches/vue-tsc@2.2.8.patch",
|
||||||
"element-plus@2.4.3": "patches/element-plus@2.4.3.patch",
|
"element-plus@2.4.3": "patches/element-plus@2.4.3.patch",
|
||||||
"js-base64": "patches/js-base64.patch"
|
"js-base64": "patches/js-base64.patch",
|
||||||
|
"z-vue-scan": "patches/z-vue-scan.patch"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,7 +99,8 @@
|
|||||||
"vue3-touch-events": "^4.1.3",
|
"vue3-touch-events": "^4.1.3",
|
||||||
"vuedraggable": "4.1.0",
|
"vuedraggable": "4.1.0",
|
||||||
"web-tree-sitter": "0.24.3",
|
"web-tree-sitter": "0.24.3",
|
||||||
"xss": "catalog:"
|
"xss": "catalog:",
|
||||||
|
"z-vue-scan": "^0.0.35"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@faker-js/faker": "^8.0.2",
|
"@faker-js/faker": "^8.0.2",
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import { createPinia, PiniaVuePlugin } from 'pinia';
|
|||||||
import { ChartJSPlugin } from '@/plugins/chartjs';
|
import { ChartJSPlugin } from '@/plugins/chartjs';
|
||||||
import { SentryPlugin } from '@/plugins/sentry';
|
import { SentryPlugin } from '@/plugins/sentry';
|
||||||
|
|
||||||
|
import type { VueScanOptions } from 'z-vue-scan';
|
||||||
|
|
||||||
const pinia = createPinia();
|
const pinia = createPinia();
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
@@ -40,6 +42,13 @@ app.use(router);
|
|||||||
app.use(i18nInstance);
|
app.use(i18nInstance);
|
||||||
app.use(ChartJSPlugin);
|
app.use(ChartJSPlugin);
|
||||||
|
|
||||||
|
if (import.meta.env.VUE_SCAN) {
|
||||||
|
const { default: VueScan } = await import('z-vue-scan');
|
||||||
|
app.use<VueScanOptions>(VueScan, {
|
||||||
|
enable: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
app.mount('#app');
|
app.mount('#app');
|
||||||
|
|
||||||
if (!import.meta.env.PROD) {
|
if (!import.meta.env.PROD) {
|
||||||
|
|||||||
1
packages/frontend/editor-ui/src/shims.d.ts
vendored
1
packages/frontend/editor-ui/src/shims.d.ts
vendored
@@ -14,6 +14,7 @@ declare global {
|
|||||||
PROD: boolean;
|
PROD: boolean;
|
||||||
NODE_ENV: 'development' | 'production';
|
NODE_ENV: 'development' | 'production';
|
||||||
VUE_APP_URL_BASE_API: string;
|
VUE_APP_URL_BASE_API: string;
|
||||||
|
VUE_SCAN: boolean;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ export default mergeConfig(
|
|||||||
plugins,
|
plugins,
|
||||||
resolve: { alias },
|
resolve: { alias },
|
||||||
base: publicPath,
|
base: publicPath,
|
||||||
envPrefix: 'VUE_APP',
|
envPrefix: 'VUE',
|
||||||
css: {
|
css: {
|
||||||
preprocessorOptions: {
|
preprocessorOptions: {
|
||||||
scss: {
|
scss: {
|
||||||
|
|||||||
44
patches/z-vue-scan.patch
Normal file
44
patches/z-vue-scan.patch
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
diff --git a/dist/shared/z-vue-scan.3fa3a39a.mjs b/dist/shared/z-vue-scan.3fa3a39a.mjs
|
||||||
|
index 90c64048960e7e55d0d6798b5bc11fe9099c79b0..c6af398931a3f5efaf6e507a201e65515daf6c58 100644
|
||||||
|
--- a/dist/shared/z-vue-scan.3fa3a39a.mjs
|
||||||
|
+++ b/dist/shared/z-vue-scan.3fa3a39a.mjs
|
||||||
|
@@ -1020,7 +1020,7 @@ class HighlightCanvas {
|
||||||
|
render() {
|
||||||
|
const now = Date.now();
|
||||||
|
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
||||||
|
- this.ctx.font = "12px sans-serif";
|
||||||
|
+ this.ctx.font = "10px sans-serif";
|
||||||
|
this.ctx.textBaseline = "middle";
|
||||||
|
for (const [uuid, item] of this.highlights.entries()) {
|
||||||
|
if (!isInViewport(item.bounds))
|
||||||
|
@@ -1065,7 +1065,7 @@ class HighlightCanvas {
|
||||||
|
drawBorder(item) {
|
||||||
|
const { bounds, flashCount, opacity } = item;
|
||||||
|
this.ctx.strokeStyle = `rgba(${Math.min(255, flashCount * 6)}, ${Math.max(0, 255 - flashCount * 6)}, 0, ${opacity})`;
|
||||||
|
- this.ctx.lineWidth = 2;
|
||||||
|
+ this.ctx.lineWidth = 1;
|
||||||
|
this.ctx.strokeRect(
|
||||||
|
bounds.left,
|
||||||
|
bounds.top,
|
||||||
|
diff --git a/dist/shared/z-vue-scan.e44c49f3.cjs b/dist/shared/z-vue-scan.e44c49f3.cjs
|
||||||
|
index 25100c556b300d60f86b81f46e3ae4168a203c14..c8d3ca42cb41d21f2726716d2aa8d8f63e6a85e8 100644
|
||||||
|
--- a/dist/shared/z-vue-scan.e44c49f3.cjs
|
||||||
|
+++ b/dist/shared/z-vue-scan.e44c49f3.cjs
|
||||||
|
@@ -1022,7 +1022,7 @@ class HighlightCanvas {
|
||||||
|
render() {
|
||||||
|
const now = Date.now();
|
||||||
|
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
||||||
|
- this.ctx.font = "12px sans-serif";
|
||||||
|
+ this.ctx.font = "10px sans-serif";
|
||||||
|
this.ctx.textBaseline = "middle";
|
||||||
|
for (const [uuid, item] of this.highlights.entries()) {
|
||||||
|
if (!isInViewport(item.bounds))
|
||||||
|
@@ -1067,7 +1067,7 @@ class HighlightCanvas {
|
||||||
|
drawBorder(item) {
|
||||||
|
const { bounds, flashCount, opacity } = item;
|
||||||
|
this.ctx.strokeStyle = `rgba(${Math.min(255, flashCount * 6)}, ${Math.max(0, 255 - flashCount * 6)}, 0, ${opacity})`;
|
||||||
|
- this.ctx.lineWidth = 2;
|
||||||
|
+ this.ctx.lineWidth = 1;
|
||||||
|
this.ctx.strokeRect(
|
||||||
|
bounds.left,
|
||||||
|
bounds.top,
|
||||||
20
pnpm-lock.yaml
generated
20
pnpm-lock.yaml
generated
@@ -231,6 +231,9 @@ patchedDependencies:
|
|||||||
vue-tsc@2.2.8:
|
vue-tsc@2.2.8:
|
||||||
hash: e2aee939ccac8a57fe449bfd92bedd8117841579526217bc39aca26c6b8c317f
|
hash: e2aee939ccac8a57fe449bfd92bedd8117841579526217bc39aca26c6b8c317f
|
||||||
path: patches/vue-tsc@2.2.8.patch
|
path: patches/vue-tsc@2.2.8.patch
|
||||||
|
z-vue-scan:
|
||||||
|
hash: bbd573be7e456224f369aafb4d66374523c4847964a4655a6a1654fd40e8b0f8
|
||||||
|
path: patches/z-vue-scan.patch
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
@@ -2460,6 +2463,9 @@ importers:
|
|||||||
xss:
|
xss:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 1.0.15
|
version: 1.0.15
|
||||||
|
z-vue-scan:
|
||||||
|
specifier: ^0.0.35
|
||||||
|
version: 0.0.35(patch_hash=bbd573be7e456224f369aafb4d66374523c4847964a4655a6a1654fd40e8b0f8)(vue@3.5.13(typescript@5.8.3))
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@faker-js/faker':
|
'@faker-js/faker':
|
||||||
specifier: ^8.0.2
|
specifier: ^8.0.2
|
||||||
@@ -15610,6 +15616,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==}
|
resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
z-vue-scan@0.0.35:
|
||||||
|
resolution: {integrity: sha512-isWALsDyRFhvGJrWCKbZ8ORYXmrWp+ewvoaBxBQe0WWvilzyuoTLW8IG5gL2kORLdTWmyj2j1NvehaJpKavJcw==}
|
||||||
|
peerDependencies:
|
||||||
|
'@vue/composition-api': ^1.0.0-rc.1
|
||||||
|
vue: ^2.0.0 || >=3.0.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@vue/composition-api':
|
||||||
|
optional: true
|
||||||
|
|
||||||
zip-stream@6.0.1:
|
zip-stream@6.0.1:
|
||||||
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
|
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
@@ -31488,6 +31503,11 @@ snapshots:
|
|||||||
property-expr: 2.0.5
|
property-expr: 2.0.5
|
||||||
toposort: 2.0.2
|
toposort: 2.0.2
|
||||||
|
|
||||||
|
z-vue-scan@0.0.35(patch_hash=bbd573be7e456224f369aafb4d66374523c4847964a4655a6a1654fd40e8b0f8)(vue@3.5.13(typescript@5.8.3)):
|
||||||
|
dependencies:
|
||||||
|
vue: 3.5.13(typescript@5.8.3)
|
||||||
|
vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3))
|
||||||
|
|
||||||
zip-stream@6.0.1:
|
zip-stream@6.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
archiver-utils: 5.0.2
|
archiver-utils: 5.0.2
|
||||||
|
|||||||
Reference in New Issue
Block a user