mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-21 02:56:40 -08:00
feat: add n8n front end module system
This commit is contained in:
parent
663dfb48de
commit
d94aea4372
|
@ -18,6 +18,8 @@
|
|||
"test:dev": "vitest --silent=false"
|
||||
},
|
||||
"dependencies": {
|
||||
"@n8n/module-common": "workspace:*",
|
||||
"@n8n/module-example": "workspace:*",
|
||||
"@codemirror/autocomplete": "^6.16.0",
|
||||
"@codemirror/commands": "^6.5.0",
|
||||
"@codemirror/lang-javascript": "^6.2.2",
|
||||
|
|
|
@ -30,6 +30,8 @@ import { createPinia, PiniaVuePlugin } from 'pinia';
|
|||
import { JsPlumbPlugin } from '@/plugins/jsplumb';
|
||||
import { ChartJSPlugin } from '@/plugins/chartjs';
|
||||
import { SentryPlugin } from '@/plugins/sentry';
|
||||
import { registerModule } from '@/modules';
|
||||
import { FrontEndModuleContext } from '@n8n/module-common';
|
||||
|
||||
const pinia = createPinia();
|
||||
|
||||
|
@ -47,6 +49,19 @@ app.use(router);
|
|||
app.use(i18nInstance);
|
||||
app.use(ChartJSPlugin);
|
||||
|
||||
const defaultModules = [import('@n8n/module-example')];
|
||||
|
||||
const moduleContext: FrontEndModuleContext = {
|
||||
app,
|
||||
registerRoute: () => {},
|
||||
};
|
||||
|
||||
for (const module of defaultModules) {
|
||||
await module.then(({ frontEndModule }) => {
|
||||
registerModule(frontEndModule, moduleContext);
|
||||
});
|
||||
}
|
||||
|
||||
app.mount('#app');
|
||||
|
||||
if (!import.meta.env.PROD) {
|
||||
|
|
8
packages/editor-ui/src/modules.ts
Normal file
8
packages/editor-ui/src/modules.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
import type { FrontEndModule, FrontEndModuleContext } from '@n8n/module-common/frontend/types';
|
||||
|
||||
export const modules: FrontEndModule[] = [];
|
||||
|
||||
export function registerModule(module: FrontEndModule, context: FrontEndModuleContext) {
|
||||
modules.push(module);
|
||||
module.setup(context);
|
||||
}
|
|
@ -21,7 +21,9 @@
|
|||
"n8n-design-system": ["../design-system/src/main.ts"],
|
||||
"n8n-design-system/*": ["../design-system/src/*"],
|
||||
"@n8n/chat/*": ["../@n8n/chat/src/*"],
|
||||
"@n8n/api-types*": ["../@n8n/api-types/src*"]
|
||||
"@n8n/api-types*": ["../@n8n/api-types/src*"],
|
||||
"@n8n/module-common*": ["../modules/common/src*"],
|
||||
"@n8n/module-example*": ["../modules/example/src*"]
|
||||
},
|
||||
"lib": ["esnext", "dom", "dom.iterable", "scripthost"],
|
||||
// TODO: remove all options below this line
|
||||
|
|
|
@ -36,6 +36,14 @@ const alias = [
|
|||
find: /^@n8n\/chat\//,
|
||||
replacement: resolve(__dirname, '..', '@n8n', 'chat', 'src') + '/',
|
||||
},
|
||||
{
|
||||
find: /^@n8n\/module-common$/,
|
||||
replacement: resolve(__dirname, '..', 'modules', 'common', 'src', 'index.ts'),
|
||||
},
|
||||
{
|
||||
find: /^@n8n\/module-example$/,
|
||||
replacement: resolve(__dirname, '..', 'modules', 'example', 'src', 'index.ts'),
|
||||
},
|
||||
...['orderBy', 'camelCase', 'cloneDeep', 'startCase'].map((name) => ({
|
||||
find: new RegExp(`^lodash.${name}$`, 'i'),
|
||||
replacement: `lodash-es/${name}`,
|
||||
|
|
24
packages/modules/common/.gitignore
vendored
Normal file
24
packages/modules/common/.gitignore
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
1
packages/modules/common/LICENSE
Normal file
1
packages/modules/common/LICENSE
Normal file
|
@ -0,0 +1 @@
|
|||
See LICENSE.md in the root of this repository for more information.
|
3
packages/modules/common/README.md
Normal file
3
packages/modules/common/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# @n8n/module-front-end
|
||||
|
||||
@TODO: Write a description here
|
13
packages/modules/common/index.html
Normal file
13
packages/modules/common/index.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite + Vue + TS</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
39
packages/modules/common/package.json
Normal file
39
packages/modules/common/package.json
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"name": "@n8n/module-common",
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"files": [
|
||||
"dist",
|
||||
"LICENSE",
|
||||
"README.md"
|
||||
],
|
||||
"types": "./dist/n8n-module-common.d.ts",
|
||||
"main": "./dist/n8n-module-common.umd.cjs",
|
||||
"module": "./dist/n8n-module-common.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/n8n-module-common.d.ts",
|
||||
"import": "./dist/n8n-module-common.js",
|
||||
"require": "./dist/n8n-module-common.umd.cjs"
|
||||
},
|
||||
"./*": "./*"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vue-tsc -b && vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "catalog:frontend",
|
||||
"vue-router": "catalog:frontend"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "catalog:frontend",
|
||||
"@vue/tsconfig": "catalog:frontend",
|
||||
"typescript": "~5.6.2",
|
||||
"vite": "catalog:frontend",
|
||||
"vue": "catalog:frontend",
|
||||
"vue-router": "catalog:frontend",
|
||||
"vue-tsc": "catalog:frontend"
|
||||
}
|
||||
}
|
0
packages/modules/common/src/backend/index.ts
Normal file
0
packages/modules/common/src/backend/index.ts
Normal file
5
packages/modules/common/src/frontend/define.ts
Normal file
5
packages/modules/common/src/frontend/define.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
import type { FrontEndModule } from './types.ts';
|
||||
|
||||
export function defineFrontEndModule(module: FrontEndModule): FrontEndModule {
|
||||
return module;
|
||||
}
|
2
packages/modules/common/src/frontend/index.ts
Normal file
2
packages/modules/common/src/frontend/index.ts
Normal file
|
@ -0,0 +1,2 @@
|
|||
export * from './define';
|
||||
export * from './types';
|
14
packages/modules/common/src/frontend/types.ts
Normal file
14
packages/modules/common/src/frontend/types.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
import type { RouteRecordRaw } from 'vue-router';
|
||||
import type { App } from 'vue';
|
||||
|
||||
export type FrontEndModuleContext = {
|
||||
app: App;
|
||||
defineRoutes: (routes: RouteRecordRaw[]) => void;
|
||||
};
|
||||
|
||||
export type FrontEndModuleSetupFn = (context: FrontEndModuleContext) => void;
|
||||
|
||||
export type FrontEndModule = {
|
||||
name: string;
|
||||
setup: FrontEndModuleSetupFn;
|
||||
};
|
1
packages/modules/common/src/frontend/vite-env.d.ts
vendored
Normal file
1
packages/modules/common/src/frontend/vite-env.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/// <reference types="vite/client" />
|
2
packages/modules/common/src/index.ts
Normal file
2
packages/modules/common/src/index.ts
Normal file
|
@ -0,0 +1,2 @@
|
|||
export * from './backend';
|
||||
export * from './frontend';
|
12
packages/modules/common/tsconfig.backend.json
Normal file
12
packages/modules/common/tsconfig.backend.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["src/backend/**/*.ts", "src/backend/**/*.tsx", "src/backend/**/*.vue"]
|
||||
}
|
12
packages/modules/common/tsconfig.frontend.json
Normal file
12
packages/modules/common/tsconfig.frontend.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["src/frontend/**/*.ts", "src/frontend/**/*.tsx", "src/frontend/**/*.vue"]
|
||||
}
|
8
packages/modules/common/tsconfig.json
Normal file
8
packages/modules/common/tsconfig.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"files": ["./src/index.ts"],
|
||||
"references": [
|
||||
{ "path": "./tsconfig.backend.json" },
|
||||
{ "path": "./tsconfig.frontend.json" },
|
||||
{ "path": "./tsconfig.vite.json" }
|
||||
]
|
||||
}
|
20
packages/modules/common/tsconfig.vite.json
Normal file
20
packages/modules/common/tsconfig.vite.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
||||
"target": "ES2022",
|
||||
"lib": ["ES2023"],
|
||||
"module": "ESNext",
|
||||
"skipLibCheck": true,
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"isolatedModules": true,
|
||||
"moduleDetection": "force",
|
||||
"noEmit": true,
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
}
|
33
packages/modules/common/vite.config.ts
Normal file
33
packages/modules/common/vite.config.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import { resolve } from 'path';
|
||||
import { defineConfig } from 'vite';
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
import dts from 'vite-plugin-dts';
|
||||
import { configDefaults as vitestConfig } from 'vitest/config';
|
||||
|
||||
const cwd = process.cwd();
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue(), dts({ rollupTypes: true })],
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(cwd, 'src', 'index.ts'),
|
||||
name: 'n8nModuleCommon',
|
||||
fileName: 'n8n-module-common',
|
||||
},
|
||||
rollupOptions: {
|
||||
external: ['vue'],
|
||||
output: {
|
||||
globals: {
|
||||
vue: 'Vue',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
test: {
|
||||
globals: true,
|
||||
environment: 'jsdom',
|
||||
setupFiles: ['src/__tests__/setup.ts'],
|
||||
include: ['src/**/*.spec.{ts,tsx}'],
|
||||
exclude: vitestConfig.exclude,
|
||||
},
|
||||
});
|
24
packages/modules/example/.gitignore
vendored
Normal file
24
packages/modules/example/.gitignore
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
1
packages/modules/example/LICENSE
Normal file
1
packages/modules/example/LICENSE
Normal file
|
@ -0,0 +1 @@
|
|||
See LICENSE.md in the root of this repository for more information.
|
3
packages/modules/example/README.md
Normal file
3
packages/modules/example/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# @n8n/module-front-end
|
||||
|
||||
@TODO: Write a description here
|
13
packages/modules/example/index.html
Normal file
13
packages/modules/example/index.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite + Vue + TS</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
40
packages/modules/example/package.json
Normal file
40
packages/modules/example/package.json
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"name": "@n8n/module-example",
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"files": [
|
||||
"dist",
|
||||
"LICENSE",
|
||||
"README.md"
|
||||
],
|
||||
"types": "./dist/n8n-module-example.d.ts",
|
||||
"main": "./dist/n8n-module-example.umd.cjs",
|
||||
"module": "./dist/n8n-module-example.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/n8n-module-example.d.ts",
|
||||
"import": "./dist/n8n-module-example.js",
|
||||
"require": "./dist/n8n-module-example.umd.cjs"
|
||||
},
|
||||
"./*": "./*"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vue-tsc -b && vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "catalog:frontend"
|
||||
},
|
||||
"dependencies": {
|
||||
"@n8n/module-common": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "catalog:frontend",
|
||||
"@vue/tsconfig": "catalog:frontend",
|
||||
"typescript": "~5.6.2",
|
||||
"vite": "catalog:frontend",
|
||||
"vue": "catalog:frontend",
|
||||
"vue-tsc": "catalog:frontend"
|
||||
}
|
||||
}
|
9
packages/modules/example/src/frontend/index.ts
Normal file
9
packages/modules/example/src/frontend/index.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { defineFrontEndModule } from '@n8n/module-common';
|
||||
|
||||
export const frontEndModule = defineFrontEndModule({
|
||||
name: 'example',
|
||||
setup: (context) => {
|
||||
console.log('registered example', context);
|
||||
// defineRoutes([]);
|
||||
},
|
||||
});
|
1
packages/modules/example/src/frontend/vite-env.d.ts
vendored
Normal file
1
packages/modules/example/src/frontend/vite-env.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/// <reference types="vite/client" />
|
1
packages/modules/example/src/index.ts
Normal file
1
packages/modules/example/src/index.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export * from './frontend';
|
15
packages/modules/example/tsconfig.frontend.json
Normal file
15
packages/modules/example/tsconfig.frontend.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||
"paths": {
|
||||
"@n8n/module-common*": ["../common/src*"]
|
||||
},
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["src/frontend/**/*.ts", "src/frontend/**/*.tsx", "src/frontend/**/*.vue"]
|
||||
}
|
4
packages/modules/example/tsconfig.json
Normal file
4
packages/modules/example/tsconfig.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"files": ["./src/index.ts"],
|
||||
"references": [{ "path": "./tsconfig.frontend.json" }, { "path": "./tsconfig.vite.json" }]
|
||||
}
|
20
packages/modules/example/tsconfig.vite.json
Normal file
20
packages/modules/example/tsconfig.vite.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
||||
"target": "ES2022",
|
||||
"lib": ["ES2023"],
|
||||
"module": "ESNext",
|
||||
"skipLibCheck": true,
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"isolatedModules": true,
|
||||
"moduleDetection": "force",
|
||||
"noEmit": true,
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
}
|
33
packages/modules/example/vite.config.ts
Normal file
33
packages/modules/example/vite.config.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import { resolve } from 'path';
|
||||
import { defineConfig } from 'vite';
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
import dts from 'vite-plugin-dts';
|
||||
import { configDefaults as vitestConfig } from 'vitest/config';
|
||||
|
||||
const cwd = process.cwd();
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue(), dts({ rollupTypes: true })],
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(cwd, 'src', 'index.ts'),
|
||||
name: 'n8nModuleExample',
|
||||
fileName: 'n8n-module-example',
|
||||
},
|
||||
rollupOptions: {
|
||||
external: ['vue'],
|
||||
output: {
|
||||
globals: {
|
||||
vue: 'Vue',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
test: {
|
||||
globals: true,
|
||||
environment: 'jsdom',
|
||||
setupFiles: ['src/__tests__/setup.ts'],
|
||||
include: ['src/**/*.spec.{ts,tsx}'],
|
||||
exclude: vitestConfig.exclude,
|
||||
},
|
||||
});
|
149
pnpm-lock.yaml
149
pnpm-lock.yaml
|
@ -85,6 +85,9 @@ catalogs:
|
|||
'@vitest/coverage-v8':
|
||||
specifier: ^3.0.2
|
||||
version: 3.0.2
|
||||
'@vue/tsconfig':
|
||||
specifier: ^0.7.0
|
||||
version: 0.7.0
|
||||
highlight.js:
|
||||
specifier: ^11.8.0
|
||||
version: 11.9.0
|
||||
|
@ -1429,6 +1432,12 @@ importers:
|
|||
'@n8n/codemirror-lang-sql':
|
||||
specifier: ^1.0.2
|
||||
version: 1.0.2(@codemirror/view@6.26.3)(@lezer/common@1.1.0)
|
||||
'@n8n/module-common':
|
||||
specifier: workspace:*
|
||||
version: link:../modules/common
|
||||
'@n8n/module-example':
|
||||
specifier: workspace:*
|
||||
version: link:../modules/example
|
||||
'@n8n/permissions':
|
||||
specifier: workspace:*
|
||||
version: link:../@n8n/permissions
|
||||
|
@ -1647,6 +1656,55 @@ importers:
|
|||
specifier: ^2.1.10
|
||||
version: 2.1.10(patch_hash=z2iuqlt7ype4qnrwd5eymeecl4)(typescript@5.7.2)
|
||||
|
||||
packages/modules/common:
|
||||
devDependencies:
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: catalog:frontend
|
||||
version: 5.2.1(vite@6.0.2(@types/node@18.16.16)(jiti@1.21.0)(sass@1.64.1)(terser@5.16.1))(vue@3.5.13(typescript@5.7.2))
|
||||
'@vue/tsconfig':
|
||||
specifier: catalog:frontend
|
||||
version: 0.7.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))
|
||||
typescript:
|
||||
specifier: ^5.7.2
|
||||
version: 5.7.2
|
||||
vite:
|
||||
specifier: catalog:frontend
|
||||
version: 6.0.2(@types/node@18.16.16)(jiti@1.21.0)(sass@1.64.1)(terser@5.16.1)
|
||||
vue:
|
||||
specifier: catalog:frontend
|
||||
version: 3.5.13(typescript@5.7.2)
|
||||
vue-router:
|
||||
specifier: catalog:frontend
|
||||
version: 4.5.0(vue@3.5.13(typescript@5.7.2))
|
||||
vue-tsc:
|
||||
specifier: ^2.1.10
|
||||
version: 2.1.10(patch_hash=z2iuqlt7ype4qnrwd5eymeecl4)(typescript@5.7.2)
|
||||
|
||||
packages/modules/example:
|
||||
dependencies:
|
||||
'@n8n/module-common':
|
||||
specifier: workspace:*
|
||||
version: link:../common
|
||||
devDependencies:
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: catalog:frontend
|
||||
version: 5.2.1(vite@6.0.2(@types/node@18.16.16)(jiti@1.21.0)(sass@1.64.1)(terser@5.16.1))(vue@3.5.13(typescript@5.7.2))
|
||||
'@vue/tsconfig':
|
||||
specifier: catalog:frontend
|
||||
version: 0.7.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))
|
||||
typescript:
|
||||
specifier: ^5.7.2
|
||||
version: 5.7.2
|
||||
vite:
|
||||
specifier: catalog:frontend
|
||||
version: 6.0.2(@types/node@18.16.16)(jiti@1.21.0)(sass@1.64.1)(terser@5.16.1)
|
||||
vue:
|
||||
specifier: catalog:frontend
|
||||
version: 3.5.13(typescript@5.7.2)
|
||||
vue-tsc:
|
||||
specifier: ^2.1.10
|
||||
version: 2.1.10(patch_hash=z2iuqlt7ype4qnrwd5eymeecl4)(typescript@5.7.2)
|
||||
|
||||
packages/node-dev:
|
||||
dependencies:
|
||||
'@n8n/di':
|
||||
|
@ -2534,10 +2592,6 @@ packages:
|
|||
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
|
||||
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-string-parser@7.25.9':
|
||||
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
@ -2546,10 +2600,6 @@ packages:
|
|||
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
|
||||
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-identifier@7.25.9':
|
||||
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
@ -2578,16 +2628,6 @@ packages:
|
|||
resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/parser@7.25.6':
|
||||
resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/parser@7.26.2':
|
||||
resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/parser@7.26.3':
|
||||
resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
@ -3051,14 +3091,6 @@ packages:
|
|||
resolution: {integrity: sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/types@7.25.6':
|
||||
resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/types@7.26.0':
|
||||
resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/types@7.26.3':
|
||||
resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
@ -6371,6 +6403,17 @@ packages:
|
|||
'@vue/test-utils@2.4.6':
|
||||
resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==}
|
||||
|
||||
'@vue/tsconfig@0.7.0':
|
||||
resolution: {integrity: sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==}
|
||||
peerDependencies:
|
||||
typescript: ^5.7.2
|
||||
vue: ^3.4.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
vue:
|
||||
optional: true
|
||||
|
||||
'@vueuse/components@10.11.0':
|
||||
resolution: {integrity: sha512-ZvLZI23d5ZAtva5fGyYh/jQtZO8l+zJ5tAXyYNqHJZkq1o5yWyqZhENvSv5mfDmN5IuAOp4tq02mRmX/ipFGcg==}
|
||||
|
||||
|
@ -12603,10 +12646,6 @@ packages:
|
|||
tmpl@1.0.5:
|
||||
resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
|
||||
|
||||
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'}
|
||||
|
@ -14793,10 +14832,10 @@ snapshots:
|
|||
'@babel/helper-compilation-targets': 7.25.9
|
||||
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
|
||||
'@babel/helpers': 7.26.0
|
||||
'@babel/parser': 7.26.2
|
||||
'@babel/parser': 7.26.3
|
||||
'@babel/template': 7.25.9
|
||||
'@babel/traverse': 7.26.3
|
||||
'@babel/types': 7.26.0
|
||||
'@babel/types': 7.26.3
|
||||
convert-source-map: 2.0.0
|
||||
debug: 4.3.7
|
||||
gensync: 1.0.0-beta.2
|
||||
|
@ -14829,7 +14868,7 @@ snapshots:
|
|||
|
||||
'@babel/helper-annotate-as-pure@7.25.9':
|
||||
dependencies:
|
||||
'@babel/types': 7.26.0
|
||||
'@babel/types': 7.26.3
|
||||
|
||||
'@babel/helper-compilation-targets@7.23.6':
|
||||
dependencies:
|
||||
|
@ -14903,7 +14942,7 @@ snapshots:
|
|||
'@babel/helper-module-imports@7.25.9':
|
||||
dependencies:
|
||||
'@babel/traverse': 7.26.3
|
||||
'@babel/types': 7.26.0
|
||||
'@babel/types': 7.26.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -14958,7 +14997,7 @@ snapshots:
|
|||
'@babel/helper-skip-transparent-expression-wrappers@7.25.9':
|
||||
dependencies:
|
||||
'@babel/traverse': 7.26.3
|
||||
'@babel/types': 7.26.0
|
||||
'@babel/types': 7.26.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -14966,14 +15005,10 @@ snapshots:
|
|||
dependencies:
|
||||
'@babel/types': 7.26.3
|
||||
|
||||
'@babel/helper-string-parser@7.24.8': {}
|
||||
|
||||
'@babel/helper-string-parser@7.25.9': {}
|
||||
|
||||
'@babel/helper-validator-identifier@7.22.20': {}
|
||||
|
||||
'@babel/helper-validator-identifier@7.24.7': {}
|
||||
|
||||
'@babel/helper-validator-identifier@7.25.9': {}
|
||||
|
||||
'@babel/helper-validator-option@7.23.5': {}
|
||||
|
@ -15003,19 +15038,11 @@ snapshots:
|
|||
|
||||
'@babel/highlight@7.24.6':
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.24.7
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
chalk: 2.4.2
|
||||
js-tokens: 4.0.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
'@babel/parser@7.25.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.25.6
|
||||
|
||||
'@babel/parser@7.26.2':
|
||||
dependencies:
|
||||
'@babel/types': 7.26.3
|
||||
|
||||
'@babel/parser@7.26.3':
|
||||
dependencies:
|
||||
'@babel/types': 7.26.3
|
||||
|
@ -15543,7 +15570,7 @@ snapshots:
|
|||
dependencies:
|
||||
'@babel/core': 7.26.0
|
||||
'@babel/helper-plugin-utils': 7.25.9
|
||||
'@babel/types': 7.26.0
|
||||
'@babel/types': 7.26.3
|
||||
esutils: 2.0.3
|
||||
|
||||
'@babel/runtime@7.24.7':
|
||||
|
@ -15589,17 +15616,6 @@ snapshots:
|
|||
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
|
||||
|
||||
'@babel/types@7.26.0':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
|
||||
'@babel/types@7.26.3':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.25.9
|
||||
|
@ -19384,7 +19400,7 @@ snapshots:
|
|||
|
||||
'@vue/compiler-core@3.5.13':
|
||||
dependencies:
|
||||
'@babel/parser': 7.25.6
|
||||
'@babel/parser': 7.26.3
|
||||
'@vue/shared': 3.5.13
|
||||
entities: 4.5.0
|
||||
estree-walker: 2.0.2
|
||||
|
@ -19403,7 +19419,7 @@ snapshots:
|
|||
'@vue/compiler-ssr': 3.5.13
|
||||
'@vue/shared': 3.5.13
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.14
|
||||
magic-string: 0.30.17
|
||||
postcss: 8.4.49
|
||||
source-map-js: 1.2.1
|
||||
|
||||
|
@ -19488,6 +19504,11 @@ snapshots:
|
|||
js-beautify: 1.14.9
|
||||
vue-component-type-helpers: 2.2.0
|
||||
|
||||
'@vue/tsconfig@0.7.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))':
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
vue: 3.5.13(typescript@5.7.2)
|
||||
|
||||
'@vueuse/components@10.11.0(vue@3.5.13(typescript@5.7.2))':
|
||||
dependencies:
|
||||
'@vueuse/core': 10.11.0(vue@3.5.13(typescript@5.7.2))
|
||||
|
@ -23486,7 +23507,7 @@ snapshots:
|
|||
'@babel/generator': 7.22.9
|
||||
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.24.0)
|
||||
'@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.24.0)
|
||||
'@babel/types': 7.25.6
|
||||
'@babel/types': 7.26.3
|
||||
'@jest/expect-utils': 29.6.2
|
||||
'@jest/transform': 29.6.2
|
||||
'@jest/types': 29.6.1
|
||||
|
@ -27257,8 +27278,6 @@ snapshots:
|
|||
|
||||
tmpl@1.0.5: {}
|
||||
|
||||
to-fast-properties@2.0.0: {}
|
||||
|
||||
to-regex-range@5.0.1:
|
||||
dependencies:
|
||||
is-number: 7.0.0
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
packages:
|
||||
- packages/*
|
||||
- packages/modules/**/*
|
||||
- packages/@n8n/*
|
||||
- packages/@n8n_io/*
|
||||
- cypress
|
||||
|
@ -34,6 +35,7 @@ catalogs:
|
|||
frontend:
|
||||
'@vitest/coverage-v8': ^3.0.2
|
||||
'@vitejs/plugin-vue': ^5.2.1
|
||||
'@vue/tsconfig': ^0.7.0
|
||||
'@sentry/vue': ^8.33.1
|
||||
vite: ^6.0.2
|
||||
vitest: ^3.0.2
|
||||
|
|
Loading…
Reference in a new issue