mirror of
https://github.com/n8n-io/n8n.git
synced 2026-08-28 17:22:01 +08:00
chore: Migrate the rest of packages/@n8n to typescript 7 (#34332)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -251,8 +251,15 @@ runs:
|
||||
shell: bash
|
||||
run: echo "running=${TURBOGHA_PORT:+true}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Skipped on Windows: the turbogha server binds IPv4 while `localhost`
|
||||
# resolves to IPv6 first there, so turbo can never reach it (the build
|
||||
# logs `failed to contact remote cache` for every artifact and falls back
|
||||
# to a local cache). The remote cache is inert, but the action's post-run
|
||||
# still fetches the unreachable server to save it and dies with a bare
|
||||
# `fetch failed`, turning the whole job red. Skip it so the one Windows
|
||||
# build job stays green; Linux/Blacksmith jobs keep remote caching.
|
||||
- name: Configure Turborepo Cache
|
||||
if: steps.turbo-server.outputs.running != 'true'
|
||||
if: steps.turbo-server.outputs.running != 'true' && runner.os != 'Windows'
|
||||
uses: rharkor/caching-for-turbo@5d14fba18e450c09393333cfd4242e8b3cb455a6 # v2.4.2
|
||||
with:
|
||||
server-port: 0
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
"n8n-playwright",
|
||||
"n8n-workflow",
|
||||
"typescript",
|
||||
"@typescript/*"
|
||||
"@typescript/*",
|
||||
"tsdown",
|
||||
"rolldown-plugin-dts"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
"@types/qs": "catalog:",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"nock": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals"],
|
||||
"tsBuildInfoFile": "dist/typecheck.tsbuildinfo",
|
||||
|
||||
@@ -60,7 +60,8 @@
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"express": "catalog:",
|
||||
"testcontainers": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"@typescript/native": "catalog:typescript-tooling",
|
||||
"typescript": "catalog:typescript-tooling",
|
||||
"vite": "catalog:",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals", "vite/client"],
|
||||
"experimentalDecorators": true,
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"@n8n/vitest-config": "workspace:*",
|
||||
"@types/express": "catalog:",
|
||||
"@types/lodash": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vitest": "catalog:",
|
||||
"zod": "catalog:"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals"],
|
||||
"experimentalDecorators": true,
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"devDependencies": {
|
||||
"@n8n/vitest-config": "workspace:*",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:",
|
||||
"@n8n/typescript-config": "workspace:*"
|
||||
|
||||
@@ -31,7 +31,7 @@ const instances = new Map<ServiceIdentifier, Metadata>();
|
||||
* @returns A class decorator to be applied to the target class
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-restricted-types
|
||||
export function Service<T = unknown>(): Function;
|
||||
export function Service(): Function;
|
||||
// eslint-disable-next-line @typescript-eslint/no-restricted-types
|
||||
export function Service<T = unknown>(options: Options<T>): Function;
|
||||
export function Service<T>({ factory }: Options<T> = {}) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals"],
|
||||
"experimentalDecorators": true,
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
"@types/eslint": "^9.6.1",
|
||||
"@types/node": "catalog:",
|
||||
"@typescript-eslint/eslint-plugin": "^8.35.0",
|
||||
"@typescript-eslint/parser": "^8.35.0",
|
||||
"@typescript-eslint/rule-tester": "^8.35.0",
|
||||
"@typescript-eslint/utils": "^8.35.0",
|
||||
"@typescript/native": "catalog:typescript-tooling",
|
||||
|
||||
@@ -42,6 +42,15 @@ export const baseConfig = tseslint.config(
|
||||
},
|
||||
settings: {
|
||||
'import-x/resolver-next': [createTypeScriptImportResolver()],
|
||||
// Neutralize the string-based parser mapping added by import-x's TS preset.
|
||||
// A string parser path makes import-x re-`require('@typescript-eslint/parser')`
|
||||
// when parsing imported modules, which resolves a parser copy peered to the
|
||||
// leaf package's tsgo `typescript` (no programmatic API in TS7) and crashes
|
||||
// reading `ts.Extension.Cjs`. ESLint deep-merges settings, so we can't drop
|
||||
// the key — instead empty its extension list so import-x matches nothing here
|
||||
// and falls back to the already-loaded parser object from languageOptions
|
||||
// (backed by TS6).
|
||||
'import-x/parsers': { '@typescript-eslint/parser': [] },
|
||||
},
|
||||
rules: {
|
||||
// ******************************************************************
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
"@vue/tsconfig": "catalog:frontend",
|
||||
"prettier": "catalog:",
|
||||
"tsdown": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"@typescript/native": "catalog:typescript-tooling",
|
||||
"typescript": "catalog:typescript-tooling",
|
||||
"rimraf": "catalog:",
|
||||
"vite": "catalog:",
|
||||
"vue": "catalog:frontend",
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { extensionManifestSchema } from '../src/schema';
|
||||
import { zodToJsonSchema } from 'zod-to-json-schema';
|
||||
import { writeFile } from 'fs/promises';
|
||||
import { dirname, resolve } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { format, resolveConfig } from 'prettier';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { zodToJsonSchema } from 'zod-to-json-schema';
|
||||
|
||||
import { extensionManifestSchema } from '../src/schema.js';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const rootDir = resolve(__dirname, '..');
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
export * from './define';
|
||||
export type * from './types';
|
||||
export * from './define.js';
|
||||
export type * from './types.ts';
|
||||
|
||||
@@ -1 +1 @@
|
||||
export * from './schema';
|
||||
export * from './schema.js';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"declaration": true,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"declaration": true,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.backend.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.backend.go.json",
|
||||
"compilerOptions": {
|
||||
"noEmit": true
|
||||
},
|
||||
|
||||
@@ -55,7 +55,8 @@
|
||||
"@vue/test-utils": "catalog:frontend",
|
||||
"rimraf": "catalog:",
|
||||
"semver": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"@typescript/native": "catalog:typescript-tooling",
|
||||
"typescript": "catalog:typescript-tooling",
|
||||
"unplugin-icons": "catalog:frontend",
|
||||
"vite": "catalog:",
|
||||
"vite-plugin-singlefile": "catalog:",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"module": "CommonJS",
|
||||
"moduleResolution": "node",
|
||||
"moduleResolution": "bundler",
|
||||
"noEmit": false,
|
||||
"rootDir": "src",
|
||||
"outDir": "dist"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"noEmit": true,
|
||||
"module": "ESNext",
|
||||
@@ -15,9 +15,8 @@
|
||||
"../../frontend/@n8n/design-system/src/shims-modules.d.ts"
|
||||
],
|
||||
"skipLibCheck": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@mcp-apps/*": ["src/*"],
|
||||
"@mcp-apps/*": ["./src/*"],
|
||||
"@n8n/design-system*": ["../../frontend/@n8n/design-system/src*"]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
"@vitejs/plugin-vue": "catalog:frontend",
|
||||
"@vue/test-utils": "catalog:frontend",
|
||||
"unplugin-icons": "catalog:frontend",
|
||||
"typescript": "catalog:",
|
||||
"@typescript/native": "catalog:typescript-tooling",
|
||||
"typescript": "catalog:typescript-tooling",
|
||||
"vite": "catalog:",
|
||||
"vite-svg-loader": "catalog:frontend",
|
||||
"vitest": "catalog:"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"rootDir": "src",
|
||||
"outDir": "dist",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@n8n/typescript-config": "workspace:*",
|
||||
"@n8n/vitest-config": "workspace:*",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vite": "catalog:",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals", "vite/client"],
|
||||
"paths": {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@typescript-eslint/parser": "^8.35.0",
|
||||
"eslint-plugin-n8n-nodes-base": "catalog:",
|
||||
"semver": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"tmp": "0.2.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"@types/luxon": "catalog:",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"fast-check": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals"],
|
||||
"paths": {
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@n8n/typescript-config": "workspace:*",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"rimraf": "catalog:",
|
||||
"@n8n/vitest-config": "workspace:*",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"ignoreDeprecations": "6.0",
|
||||
"target": "ES2015",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "node",
|
||||
"moduleResolution": "bundler",
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": false,
|
||||
@@ -11,7 +10,6 @@
|
||||
"rootDir": "src",
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"downlevelIteration": true,
|
||||
"skipLibCheck": true,
|
||||
"types": ["node", "vitest/globals"]
|
||||
},
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
"@types/luxon": "catalog:",
|
||||
"@types/ws": "catalog:",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vite": "catalog:",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:"
|
||||
|
||||
@@ -95,7 +95,7 @@ void (async function start() {
|
||||
const { enabled, host, port } = config.baseRunnerConfig.healthcheckServer;
|
||||
|
||||
if (enabled) {
|
||||
const { HealthCheckServer } = await import('./health-check-server');
|
||||
const { HealthCheckServer } = await import('./health-check-server.js');
|
||||
healthCheckServer = new HealthCheckServer();
|
||||
await healthCheckServer.start(host, port);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"extends": [
|
||||
"@n8n/typescript-config/tsconfig.common.json",
|
||||
"@n8n/typescript-config/tsconfig.backend.json"
|
||||
"@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"@n8n/typescript-config/tsconfig.backend.go.json"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"emitDecoratorMetadata": true,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"vite": "catalog:",
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:",
|
||||
"typescript": "catalog:"
|
||||
"typescript": "catalog:typescript"
|
||||
},
|
||||
"dependencies": {
|
||||
"ast-types": "^0.16.1",
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"ignoreDeprecations": "6.0",
|
||||
"strict": true,
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"target": "es2019",
|
||||
"lib": ["es2019", "es2020", "es2022.error"],
|
||||
"removeComments": true,
|
||||
@@ -21,7 +20,10 @@
|
||||
"sourceMap": true,
|
||||
"skipLibCheck": true,
|
||||
"tsBuildInfoFile": "dist/typecheck.tsbuildinfo",
|
||||
"types": ["node", "vitest/globals", "vite/client"]
|
||||
"types": ["node", "vitest/globals", "vite/client"],
|
||||
"paths": {
|
||||
"esprima-next": ["./node_modules/esprima-next/dist/esm/esprima.d.ts"]
|
||||
}
|
||||
},
|
||||
"include": ["src/**/*.ts", "test/**/*.ts"],
|
||||
"exclude": ["**/dist/**/*", "**/node_modules/**/*"]
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"@n8n/vitest-config": "workspace:*",
|
||||
"@testing-library/jest-dom": "catalog:frontend",
|
||||
"@testing-library/user-event": "catalog:frontend",
|
||||
"tsdown": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
"tsdown": "catalog:typescript",
|
||||
"typescript": "catalog:typescript",
|
||||
"vite": "catalog:",
|
||||
"vitest": "catalog:"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.frontend.json",
|
||||
"compilerOptions": {
|
||||
"moduleResolution": "bundler",
|
||||
"outDir": "dist",
|
||||
"types": ["vite/client", "vitest/globals"],
|
||||
"isolatedModules": true
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@n8n/typescript-config": "workspace:*",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vite": "catalog:",
|
||||
"vitest": "catalog:"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": ".",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node"],
|
||||
"module": "ESNext",
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
"@types/lodash": "catalog:",
|
||||
"@vitest/coverage-v8": "catalog:",
|
||||
"adm-zip": "^0.5.16",
|
||||
"typescript": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vitest": "catalog:"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -362,7 +362,7 @@ describe('generate-types', () => {
|
||||
beforeAll(async () => {
|
||||
// Dynamic import to handle module not existing yet
|
||||
try {
|
||||
generateTypes = await import('../generate-types/generate-types');
|
||||
generateTypes = await import('../generate-types/generate-types.js');
|
||||
} catch {
|
||||
// Module doesn't export functions yet - tests will fail as expected in TDD
|
||||
}
|
||||
@@ -5376,7 +5376,7 @@ describe('orchestrateGeneration', () => {
|
||||
let mod: typeof GenerateTypesModule;
|
||||
|
||||
beforeAll(async () => {
|
||||
mod = await import('../generate-types/generate-types');
|
||||
mod = await import('../generate-types/generate-types.js');
|
||||
// Cold module compilation can exceed the default 10s hook timeout on a
|
||||
// loaded CI runner, so give the import ample headroom.
|
||||
}, 30_000);
|
||||
|
||||
@@ -350,7 +350,7 @@ describe('workflowToMermaid', () => {
|
||||
|
||||
describe('ai-root shapes', () => {
|
||||
it('classifies the extractor/classifier/sentiment chains as AI roots', async () => {
|
||||
const { isAiRootNodeType, describeAiRootShape } = await import('./ai-root-shapes');
|
||||
const { isAiRootNodeType, describeAiRootShape } = await import('./ai-root-shapes.js');
|
||||
|
||||
for (const type of [
|
||||
'@n8n/n8n-nodes-langchain.informationExtractor',
|
||||
@@ -369,7 +369,7 @@ describe('ai-root shapes', () => {
|
||||
});
|
||||
|
||||
it('derives the structured envelope key from a with-parser schema', async () => {
|
||||
const { findEnvelopeKey } = await import('./ai-root-shapes');
|
||||
const { findEnvelopeKey } = await import('./ai-root-shapes.js');
|
||||
|
||||
const agentVariant = {
|
||||
type: 'object',
|
||||
@@ -455,7 +455,7 @@ describe('ai-root shapes', () => {
|
||||
});
|
||||
|
||||
it('classifies the assistant and vendor LLM nodes as AI roots', async () => {
|
||||
const { isAiRootNodeType, describeAiRootShape } = await import('./ai-root-shapes');
|
||||
const { isAiRootNodeType, describeAiRootShape } = await import('./ai-root-shapes.js');
|
||||
|
||||
// Mirrors the editor's canonical AI_ROOT_NODE_TYPES list
|
||||
// (evaluation.ee/evaluation.constants.ts).
|
||||
|
||||
+8
-8
@@ -20,7 +20,7 @@ describe('subnode factories', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
try {
|
||||
subnodeBuilders = await import('./subnode-builders');
|
||||
subnodeBuilders = await import('./subnode-builders.js');
|
||||
} catch {
|
||||
// Module doesn't exist yet - tests will fail as expected in TDD
|
||||
}
|
||||
@@ -224,7 +224,7 @@ describe('SubnodeConfig type safety', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
try {
|
||||
subnodeBuilders = await import('./subnode-builders');
|
||||
subnodeBuilders = await import('./subnode-builders.js');
|
||||
} catch {
|
||||
// Module doesn't exist yet
|
||||
}
|
||||
@@ -287,8 +287,8 @@ describe('subnode integration with node builder', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
try {
|
||||
subnodeBuilders = await import('./subnode-builders');
|
||||
nodeBuilders = await import('./node-builder');
|
||||
subnodeBuilders = await import('./subnode-builders.js');
|
||||
nodeBuilders = await import('./node-builder.js');
|
||||
} catch {
|
||||
// Modules don't exist yet
|
||||
}
|
||||
@@ -355,7 +355,7 @@ describe('tool() with fromAi() support', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
try {
|
||||
subnodeBuilders = await import('./subnode-builders');
|
||||
subnodeBuilders = await import('./subnode-builders.js');
|
||||
} catch {
|
||||
// Module doesn't exist yet
|
||||
}
|
||||
@@ -527,9 +527,9 @@ describe('subnode reuse across multiple parents', () => {
|
||||
let workflowBuilders: typeof WorkflowBuilderModule;
|
||||
|
||||
beforeAll(async () => {
|
||||
subnodeBuilders = await import('./subnode-builders');
|
||||
nodeBuilders = await import('./node-builder');
|
||||
workflowBuilders = await import('../../workflow-builder');
|
||||
subnodeBuilders = await import('./subnode-builders.js');
|
||||
nodeBuilders = await import('./node-builder.js');
|
||||
workflowBuilders = await import('../../workflow-builder.js');
|
||||
});
|
||||
|
||||
it('should connect same embedding to multiple parent nodes', () => {
|
||||
|
||||
@@ -220,7 +220,7 @@ describe('pluginRegistry singleton', () => {
|
||||
|
||||
it('returns the same instance on multiple imports', async () => {
|
||||
// Import again to verify the module-level singleton is shared across imports
|
||||
const { pluginRegistry: anotherRegistry } = await import('./registry');
|
||||
const { pluginRegistry: anotherRegistry } = await import('./registry.js');
|
||||
expect(anotherRegistry).toBe(pluginRegistry);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
|
||||
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"rootDir": "src",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.json",
|
||||
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "vitest/globals"]
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ApplicationError as ErrorsApplicationError } from '@n8n/errors';
|
||||
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
|
||||
// This file is the compatibility boundary, exempt from the `no-application-error` lint rule.
|
||||
|
||||
Generated
+931
-82
File diff suppressed because it is too large
Load Diff
@@ -217,6 +217,7 @@ catalogMode: strict
|
||||
catalogs:
|
||||
typescript:
|
||||
typescript: 7.0.2
|
||||
tsdown: ^0.22.8
|
||||
# Side-by-side TS7: tsgo `tsc` for typecheck/build, plus the real TS6 JS API
|
||||
# (as `typescript`) for tooling that needs the programmatic compiler API —
|
||||
# e.g. @typescript-eslint/typescript-estree, which TS7 does not yet provide.
|
||||
@@ -279,3 +280,5 @@ minimumReleaseAgeExclude:
|
||||
- '@n8n_io/*'
|
||||
- 'typescript'
|
||||
- '@typescript/*'
|
||||
- 'tsdown'
|
||||
- 'rolldown-plugin-dts'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# TypeScript 6 → 7 migration benchmarks
|
||||
|
||||
Generated 2026-07-16T08:25:04.413Z from `scripts/typescript-migration/results/`.
|
||||
Generated 2026-07-16T10:36:32.332Z from `scripts/typescript-migration/results/`.
|
||||
|
||||
| Package | typecheck Δ | build Δ |
|
||||
| --- | --- | --- |
|
||||
@@ -10,7 +10,7 @@ Generated 2026-07-16T08:25:04.413Z from `scripts/typescript-migration/results/`.
|
||||
| `@n8n/ai-workflow-builder` | -69.3% | -33.1% |
|
||||
| `@n8n/api-types` | -64.6% | -66.6% |
|
||||
| `@n8n/backend-common` | -57.0% | -54.5% |
|
||||
| `@n8n/backend-network` | -57.0% | -54.9% |
|
||||
| `@n8n/backend-network` | -59.8% | -55.9% |
|
||||
| `@n8n/backend-test-utils` | -51.4% | -53.1% |
|
||||
| `@n8n/chat-hub` | -50.4% | -50.5% |
|
||||
| `@n8n/cli` | -45.7% | -45.7% |
|
||||
@@ -22,20 +22,34 @@ Generated 2026-07-16T08:25:04.413Z from `scripts/typescript-migration/results/`.
|
||||
| `@n8n/config` | -48.2% | -37.9% |
|
||||
| `@n8n/constants` | -35.8% | -36.6% |
|
||||
| `@n8n/crdt` | -40.8% | -41.0% |
|
||||
| `@n8n/db` | -61.6% | -34.0% |
|
||||
| `@n8n/decorators` | -56.6% | -53.5% |
|
||||
| `@n8n/di` | -34.0% | -31.0% |
|
||||
| `@n8n/engine` | -37.2% | -40.8% |
|
||||
| `@n8n/errors` | -39.0% | -40.6% |
|
||||
| `@n8n/eslint-config` | -71.1% | -61.5% |
|
||||
| `@n8n/eslint-plugin-community-nodes` | -50.6% | -47.1% |
|
||||
| `@n8n/expression-runtime` | -57.1% | -42.4% |
|
||||
| `@n8n/extension-sdk` | — | -5.2% |
|
||||
| `@n8n/imap` | -48.6% | -36.7% |
|
||||
| `@n8n/instance-ai` | -70.0% | -40.3% |
|
||||
| `@n8n/json-schema-to-zod` | -43.9% | -34.7% |
|
||||
| `@n8n/local-gateway` | -46.1% | -42.1% |
|
||||
| `@n8n/mcp-apps` | -12.4% | -20.2% |
|
||||
| `@n8n/mcp-browser` | -57.6% | -55.6% |
|
||||
| `@n8n/mcp-browser-extension` | -46.3% | +3.0% |
|
||||
| `@n8n/n8n-benchmark` | -49.2% | -39.0% |
|
||||
| `@n8n/n8n-nodes-langchain` | -74.2% | -21.6% |
|
||||
| `@n8n/node-cli` | -55.3% | -48.3% |
|
||||
| `@n8n/permissions` | -34.1% | -28.5% |
|
||||
| `@n8n/scheduler` | -56.6% | -51.7% |
|
||||
| `@n8n/stylelint-config` | -39.9% | -40.8% |
|
||||
| `@n8n/task-runner` | -54.3% | -44.6% |
|
||||
| `@n8n/tournament` | -32.0% | -34.8% |
|
||||
| `@n8n/typeorm` | -37.9% | -68.7% |
|
||||
| `@n8n/utils` | -49.8% | -19.6% |
|
||||
| `@n8n/vitest-config` | -48.1% | -43.5% |
|
||||
| `@n8n/workflow-sdk` | -67.1% | -63.3% |
|
||||
| `n8n` | -75.5% | -71.3% |
|
||||
|
||||
```
|
||||
@@ -114,12 +128,12 @@ build:
|
||||
=== @n8n/backend-network — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 1.52s
|
||||
after 656ms -868ms (-57.0%)
|
||||
before 1.64s
|
||||
after 659ms -980ms (-59.8%)
|
||||
|
||||
build:
|
||||
before 1.28s
|
||||
after 576ms -701ms (-54.9%)
|
||||
before 1.39s
|
||||
after 611ms -776ms (-55.9%)
|
||||
```
|
||||
|
||||
```
|
||||
@@ -250,6 +264,42 @@ build:
|
||||
after 477ms -331ms (-41.0%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/db — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 2.76s
|
||||
after 1.06s -1701ms (-61.6%)
|
||||
|
||||
build:
|
||||
before 3.05s
|
||||
after 2.02s -1038ms (-34.0%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/decorators — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 1.40s
|
||||
after 606ms -790ms (-56.6%)
|
||||
|
||||
build:
|
||||
before 1.26s
|
||||
after 588ms -677ms (-53.5%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/di — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 780ms
|
||||
after 515ms -265ms (-34.0%)
|
||||
|
||||
build:
|
||||
before 713ms
|
||||
after 492ms -221ms (-31.0%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/engine — median times (Δ vs "before") ===
|
||||
|
||||
@@ -310,6 +360,14 @@ build:
|
||||
after 1.66s -1225ms (-42.4%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/extension-sdk — median times (Δ vs "before") ===
|
||||
|
||||
build:
|
||||
before 2.65s
|
||||
after 2.51s -139ms (-5.2%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/imap — median times (Δ vs "before") ===
|
||||
|
||||
@@ -358,6 +416,18 @@ build:
|
||||
after 1.16s -844ms (-42.1%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/mcp-apps — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 8.15s
|
||||
after 7.14s -1011ms (-12.4%)
|
||||
|
||||
build:
|
||||
before 3.62s
|
||||
after 2.88s -731ms (-20.2%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/mcp-browser — median times (Δ vs "before") ===
|
||||
|
||||
@@ -370,6 +440,18 @@ build:
|
||||
after 597ms -749ms (-55.6%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/mcp-browser-extension — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 984ms
|
||||
after 528ms -456ms (-46.3%)
|
||||
|
||||
build:
|
||||
before 2.80s
|
||||
after 2.89s +84ms (+3.0%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/n8n-benchmark — median times (Δ vs "before") ===
|
||||
|
||||
@@ -406,6 +488,66 @@ build:
|
||||
after 911ms -851ms (-48.3%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/permissions — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 965ms
|
||||
after 636ms -329ms (-34.1%)
|
||||
|
||||
build:
|
||||
before 918ms
|
||||
after 656ms -262ms (-28.5%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/scheduler — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 1.36s
|
||||
after 590ms -771ms (-56.6%)
|
||||
|
||||
build:
|
||||
before 1.14s
|
||||
after 552ms -590ms (-51.7%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/stylelint-config — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 781ms
|
||||
after 469ms -312ms (-39.9%)
|
||||
|
||||
build:
|
||||
before 790ms
|
||||
after 468ms -322ms (-40.8%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/task-runner — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 1.64s
|
||||
after 749ms -890ms (-54.3%)
|
||||
|
||||
build:
|
||||
before 1.55s
|
||||
after 862ms -693ms (-44.6%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/tournament — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 724ms
|
||||
after 492ms -232ms (-32.0%)
|
||||
|
||||
build:
|
||||
before 759ms
|
||||
after 495ms -264ms (-34.8%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/typeorm — median times (Δ vs "before") ===
|
||||
|
||||
@@ -418,6 +560,42 @@ build:
|
||||
after 890ms -1949ms (-68.7%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/utils — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 1.12s
|
||||
after 562ms -558ms (-49.8%)
|
||||
|
||||
build:
|
||||
before 911ms
|
||||
after 732ms -179ms (-19.6%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/vitest-config — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 950ms
|
||||
after 493ms -457ms (-48.1%)
|
||||
|
||||
build:
|
||||
before 898ms
|
||||
after 507ms -391ms (-43.5%)
|
||||
```
|
||||
|
||||
```
|
||||
=== @n8n/workflow-sdk — median times (Δ vs "before") ===
|
||||
|
||||
typecheck:
|
||||
before 2.42s
|
||||
after 798ms -1625ms (-67.1%)
|
||||
|
||||
build:
|
||||
before 1.91s
|
||||
after 699ms -1207ms (-63.3%)
|
||||
```
|
||||
|
||||
```
|
||||
=== n8n — median times (Δ vs "before") ===
|
||||
|
||||
|
||||
@@ -5,27 +5,27 @@
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-14T08:17:32.701Z",
|
||||
"timestamp": "2026-07-16T10:06:30.845Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1598,
|
||||
1524,
|
||||
1514
|
||||
1779,
|
||||
1577,
|
||||
1639
|
||||
],
|
||||
"min": 1514,
|
||||
"median": 1524,
|
||||
"mean": 1545
|
||||
"min": 1577,
|
||||
"median": 1639,
|
||||
"mean": 1665
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1302,
|
||||
1262,
|
||||
1277
|
||||
1387,
|
||||
1445,
|
||||
1376
|
||||
],
|
||||
"min": 1262,
|
||||
"median": 1277,
|
||||
"mean": 1281
|
||||
"min": 1376,
|
||||
"median": 1387,
|
||||
"mean": 1403
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -33,27 +33,27 @@
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-14T08:42:01.850Z",
|
||||
"timestamp": "2026-07-16T10:08:15.231Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
656,
|
||||
688,
|
||||
625,
|
||||
659
|
||||
],
|
||||
"min": 625,
|
||||
"median": 656,
|
||||
"mean": 646
|
||||
"median": 659,
|
||||
"mean": 657
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
582,
|
||||
576,
|
||||
575
|
||||
611,
|
||||
616,
|
||||
605
|
||||
],
|
||||
"min": 575,
|
||||
"median": 576,
|
||||
"mean": 578
|
||||
"min": 605,
|
||||
"median": 611,
|
||||
"mean": 611
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/db",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:09:01.003Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
2761,
|
||||
2678,
|
||||
2849
|
||||
],
|
||||
"min": 2678,
|
||||
"median": 2761,
|
||||
"mean": 2763
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
3053,
|
||||
3707,
|
||||
2791
|
||||
],
|
||||
"min": 2791,
|
||||
"median": 3053,
|
||||
"mean": 3184
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:11:40.914Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1146,
|
||||
1043,
|
||||
1060
|
||||
],
|
||||
"min": 1043,
|
||||
"median": 1060,
|
||||
"mean": 1083
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1064,
|
||||
2015,
|
||||
2380
|
||||
],
|
||||
"min": 1064,
|
||||
"median": 2015,
|
||||
"mean": 1820
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/decorators",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:12:09.541Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1444,
|
||||
1396,
|
||||
1373
|
||||
],
|
||||
"min": 1373,
|
||||
"median": 1396,
|
||||
"mean": 1404
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1278,
|
||||
1252,
|
||||
1265
|
||||
],
|
||||
"min": 1252,
|
||||
"median": 1265,
|
||||
"mean": 1265
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:13:02.187Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
655,
|
||||
606,
|
||||
602
|
||||
],
|
||||
"min": 602,
|
||||
"median": 606,
|
||||
"mean": 621
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
588,
|
||||
631,
|
||||
572
|
||||
],
|
||||
"min": 572,
|
||||
"median": 588,
|
||||
"mean": 597
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/di",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:13:31.136Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
780,
|
||||
780,
|
||||
780
|
||||
],
|
||||
"min": 780,
|
||||
"median": 780,
|
||||
"mean": 780
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
713,
|
||||
716,
|
||||
710
|
||||
],
|
||||
"min": 710,
|
||||
"median": 713,
|
||||
"mean": 713
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:15:01.891Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
542,
|
||||
515,
|
||||
485
|
||||
],
|
||||
"min": 485,
|
||||
"median": 515,
|
||||
"mean": 514
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
492,
|
||||
491,
|
||||
500
|
||||
],
|
||||
"min": 491,
|
||||
"median": 492,
|
||||
"mean": 494
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"package": "@n8n/extension-sdk",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:24:45.207Z",
|
||||
"tasks": {
|
||||
"build": {
|
||||
"runsMs": [
|
||||
4397,
|
||||
2652,
|
||||
2648
|
||||
],
|
||||
"min": 2648,
|
||||
"median": 2652,
|
||||
"mean": 3232
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:26:40.515Z",
|
||||
"tasks": {
|
||||
"build": {
|
||||
"runsMs": [
|
||||
3258,
|
||||
2513,
|
||||
2479
|
||||
],
|
||||
"min": 2479,
|
||||
"median": 2513,
|
||||
"mean": 2750
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/mcp-apps",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:27:47.067Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
8405,
|
||||
7543,
|
||||
8147
|
||||
],
|
||||
"min": 7543,
|
||||
"median": 8147,
|
||||
"mean": 8032
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
3889,
|
||||
3235,
|
||||
3615
|
||||
],
|
||||
"min": 3235,
|
||||
"median": 3615,
|
||||
"mean": 3580
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:30:54.963Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
7398,
|
||||
7136,
|
||||
7054
|
||||
],
|
||||
"min": 7054,
|
||||
"median": 7136,
|
||||
"mean": 7196
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
3397,
|
||||
2884,
|
||||
2883
|
||||
],
|
||||
"min": 2883,
|
||||
"median": 2884,
|
||||
"mean": 3054
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/mcp-browser-extension",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:16:01.941Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
918,
|
||||
984,
|
||||
1162
|
||||
],
|
||||
"min": 918,
|
||||
"median": 984,
|
||||
"mean": 1022
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
3623,
|
||||
2804,
|
||||
2781
|
||||
],
|
||||
"min": 2781,
|
||||
"median": 2804,
|
||||
"mean": 3070
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T10:17:59.341Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
528,
|
||||
501,
|
||||
556
|
||||
],
|
||||
"min": 501,
|
||||
"median": 528,
|
||||
"mean": 529
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
3636,
|
||||
2888,
|
||||
2877
|
||||
],
|
||||
"min": 2877,
|
||||
"median": 2888,
|
||||
"mean": 3133
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/permissions",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:51:01.528Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1016,
|
||||
956,
|
||||
965
|
||||
],
|
||||
"min": 956,
|
||||
"median": 965,
|
||||
"mean": 979
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
993,
|
||||
918,
|
||||
879
|
||||
],
|
||||
"min": 879,
|
||||
"median": 918,
|
||||
"mean": 930
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:51:37.138Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
639,
|
||||
636,
|
||||
607
|
||||
],
|
||||
"min": 607,
|
||||
"median": 636,
|
||||
"mean": 627
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
656,
|
||||
687,
|
||||
596
|
||||
],
|
||||
"min": 596,
|
||||
"median": 656,
|
||||
"mean": 646
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/scheduler",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:53:01.463Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1572,
|
||||
1361,
|
||||
1360
|
||||
],
|
||||
"min": 1360,
|
||||
"median": 1361,
|
||||
"mean": 1431
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1158,
|
||||
1142,
|
||||
1141
|
||||
],
|
||||
"min": 1141,
|
||||
"median": 1142,
|
||||
"mean": 1147
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:53:43.684Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
639,
|
||||
583,
|
||||
590
|
||||
],
|
||||
"min": 583,
|
||||
"median": 590,
|
||||
"mean": 604
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
612,
|
||||
545,
|
||||
552
|
||||
],
|
||||
"min": 545,
|
||||
"median": 552,
|
||||
"mean": 570
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/stylelint-config",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:54:39.332Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
781,
|
||||
793,
|
||||
753
|
||||
],
|
||||
"min": 753,
|
||||
"median": 781,
|
||||
"mean": 776
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
817,
|
||||
778,
|
||||
790
|
||||
],
|
||||
"min": 778,
|
||||
"median": 790,
|
||||
"mean": 795
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:55:38.571Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
469,
|
||||
467,
|
||||
480
|
||||
],
|
||||
"min": 467,
|
||||
"median": 469,
|
||||
"mean": 472
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
457,
|
||||
482,
|
||||
468
|
||||
],
|
||||
"min": 457,
|
||||
"median": 468,
|
||||
"mean": 469
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/task-runner",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:56:23.946Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1657,
|
||||
1627,
|
||||
1639
|
||||
],
|
||||
"min": 1627,
|
||||
"median": 1639,
|
||||
"mean": 1641
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1555,
|
||||
1566,
|
||||
1554
|
||||
],
|
||||
"min": 1554,
|
||||
"median": 1555,
|
||||
"mean": 1558
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:57:37.671Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
799,
|
||||
749,
|
||||
739
|
||||
],
|
||||
"min": 739,
|
||||
"median": 749,
|
||||
"mean": 762
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
950,
|
||||
862,
|
||||
840
|
||||
],
|
||||
"min": 840,
|
||||
"median": 862,
|
||||
"mean": 884
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/tournament",
|
||||
"runs": {
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:28:57.670Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
505,
|
||||
492,
|
||||
475
|
||||
],
|
||||
"min": 475,
|
||||
"median": 492,
|
||||
"mean": 491
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
495,
|
||||
504,
|
||||
491
|
||||
],
|
||||
"min": 491,
|
||||
"median": 495,
|
||||
"mean": 496
|
||||
}
|
||||
}
|
||||
},
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T08:59:29.660Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
724,
|
||||
709,
|
||||
728
|
||||
],
|
||||
"min": 709,
|
||||
"median": 724,
|
||||
"mean": 720
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
764,
|
||||
723,
|
||||
759
|
||||
],
|
||||
"min": 723,
|
||||
"median": 759,
|
||||
"mean": 749
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/utils",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:33:42.675Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1265,
|
||||
1120,
|
||||
1116
|
||||
],
|
||||
"min": 1116,
|
||||
"median": 1120,
|
||||
"mean": 1167
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1298,
|
||||
911,
|
||||
911
|
||||
],
|
||||
"min": 911,
|
||||
"median": 911,
|
||||
"mean": 1040
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:39:45.263Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
568,
|
||||
562,
|
||||
554
|
||||
],
|
||||
"min": 554,
|
||||
"median": 562,
|
||||
"mean": 561
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1758,
|
||||
714,
|
||||
732
|
||||
],
|
||||
"min": 714,
|
||||
"median": 732,
|
||||
"mean": 1068
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/vitest-config",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:46:09.399Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
1087,
|
||||
891,
|
||||
950
|
||||
],
|
||||
"min": 891,
|
||||
"median": 950,
|
||||
"mean": 976
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
898,
|
||||
895,
|
||||
898
|
||||
],
|
||||
"min": 895,
|
||||
"median": 898,
|
||||
"mean": 897
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:46:55.861Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
498,
|
||||
492,
|
||||
493
|
||||
],
|
||||
"min": 492,
|
||||
"median": 493,
|
||||
"mean": 494
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
509,
|
||||
495,
|
||||
507
|
||||
],
|
||||
"min": 495,
|
||||
"median": 507,
|
||||
"mean": 503
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"package": "@n8n/workflow-sdk",
|
||||
"runs": {
|
||||
"before": {
|
||||
"label": "before",
|
||||
"tsVersion": "6.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:47:39.891Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
2825,
|
||||
2423,
|
||||
2384
|
||||
],
|
||||
"min": 2384,
|
||||
"median": 2423,
|
||||
"mean": 2544
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
1847,
|
||||
2391,
|
||||
1906
|
||||
],
|
||||
"min": 1847,
|
||||
"median": 1906,
|
||||
"mean": 2048
|
||||
}
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"label": "after",
|
||||
"tsVersion": "7.0.2",
|
||||
"node": "v24.13.0",
|
||||
"timestamp": "2026-07-16T09:50:01.066Z",
|
||||
"tasks": {
|
||||
"typecheck": {
|
||||
"runsMs": [
|
||||
798,
|
||||
823,
|
||||
763
|
||||
],
|
||||
"min": 763,
|
||||
"median": 798,
|
||||
"mean": 795
|
||||
},
|
||||
"build": {
|
||||
"runsMs": [
|
||||
699,
|
||||
698,
|
||||
751
|
||||
],
|
||||
"min": 698,
|
||||
"median": 699,
|
||||
"mean": 716
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user