chore: Migrate more packages to Typescript 7 (#34216)

This commit is contained in:
Matsu 2026-07-15 12:42:14 +03:00 committed by GitHub
parent 307773dd1b
commit 487be601bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
40 changed files with 662 additions and 67 deletions

View File

@ -45,7 +45,7 @@
"@n8n/typescript-config": "workspace:*",
"@types/convict": "^6.1.1",
"@types/k6": "^0.52.0",
"typescript": "catalog:"
"typescript": "catalog:typescript"
},
"bin": {
"n8n-benchmark": "./bin/n8n-benchmark"

View File

@ -6,6 +6,8 @@ import { $, which, tmpfile } from 'zx';
import { AppMetricsPoller } from '@/test-execution/app-metrics-poller';
import { buildTestReport, type K6Tag } from '@/test-execution/test-report';
import type { Scenario } from '@/types/scenario';
import type { K6EndOfTestSummary } from './k6-summary';
export type { K6Tag };
export type K6ExecutorOpts = {

View File

@ -160,10 +160,9 @@ Example JSON:
*/
type TrendStat = 'avg' | 'min' | 'med' | 'max' | 'p(90)' | 'p(95)';
type MetricType = 'trend' | 'rate' | 'counter';
type MetricContains = 'time' | 'default' | 'data';
interface TrendValues {
export interface TrendValues {
avg: number;
min: number;
med: number;
@ -172,48 +171,48 @@ interface TrendValues {
'p(95)': number;
}
interface RateValues {
export interface RateValues {
rate: number;
passes: number;
fails: number;
}
interface CounterValues {
export interface CounterValues {
count: number;
rate: number;
}
interface K6TrendMetric {
export interface K6TrendMetric {
type: 'trend';
contains: 'time';
values: TrendValues;
}
interface RateMetric {
export interface RateMetric {
type: 'rate';
contains: 'default';
values: RateValues;
}
interface K6CounterMetric {
export interface K6CounterMetric {
type: 'counter';
contains: MetricContains;
values: CounterValues;
}
interface Options {
export interface Options {
summaryTrendStats: TrendStat[];
summaryTimeUnit: string;
noColor: boolean;
}
interface State {
export interface State {
isStdOutTTY: boolean;
isStdErrTTY: boolean;
testRunDurationMs: number;
}
interface Metrics {
export interface Metrics {
http_req_tls_handshaking: K6TrendMetric;
checks: RateMetric;
http_req_sending: K6TrendMetric;
@ -231,7 +230,7 @@ interface Metrics {
data_sent: K6CounterMetric;
}
interface K6Check {
export interface K6Check {
name: string;
path: string;
id: string;
@ -239,7 +238,7 @@ interface K6Check {
fails: number;
}
interface RootGroup {
export interface RootGroup {
name: string;
path: string;
id: string;
@ -247,7 +246,7 @@ interface RootGroup {
checks: K6Check[];
}
interface K6EndOfTestSummary {
export interface K6EndOfTestSummary {
options: Options;
state: State;
metrics: Metrics;

View File

@ -3,6 +3,8 @@ import { nanoid } from 'nanoid';
import { PrometheusMetricsParser } from '@/test-execution/prometheus-metrics-parser';
import type { Scenario } from '@/types/scenario';
import type { K6Check, K6CounterMetric, K6EndOfTestSummary, K6TrendMetric } from './k6-summary';
export type K6Tag = {
name: string;
value: string;

View File

@ -1,5 +1,5 @@
{
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"],
"extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.go.json"],
"compilerOptions": {
"rootDir": "src",
"outDir": "dist"

View File

@ -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": {
"paths": {

View File

@ -26,7 +26,7 @@
"@n8n/typescript-config": "workspace:*",
"@n8n/vitest-config": "workspace:*",
"@vitest/coverage-v8": "catalog:",
"typescript": "catalog:",
"typescript": "catalog:typescript",
"vitest": "catalog:"
},
"dependencies": {

View File

@ -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",

View File

@ -1,5 +1,5 @@
{
"extends": "@n8n/typescript-config/tsconfig.common.json",
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
"compilerOptions": {
"types": ["node", "vitest/globals"]
},

View File

@ -81,7 +81,7 @@
"@n8n/typescript-config": "workspace:*",
"@n8n/vitest-config": "workspace:*",
"@types/node": "catalog:",
"typescript": "catalog:",
"typescript": "catalog:typescript",
"vitest": "catalog:"
}
}

View File

@ -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",

View File

@ -1,5 +1,5 @@
{
"extends": ["@n8n/typescript-config/tsconfig.common.json"],
"extends": ["@n8n/typescript-config/tsconfig.common.go.json"],
"compilerOptions": {
"rootDir": "src",
"outDir": "dist",

View File

@ -30,7 +30,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:",

View File

@ -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",

View File

@ -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": {

View File

@ -61,7 +61,7 @@
"@types/node": "catalog:",
"@types/yargs-parser": "21.0.0",
"@vitest/coverage-v8": "catalog:",
"typescript": "catalog:",
"typescript": "catalog:typescript",
"vite": "catalog:",
"vitest": "catalog:"
},

View File

@ -307,7 +307,7 @@ describe('MouseKeyboardModule.activate', () => {
},
}));
const { MouseKeyboardModule: IsolatedModule } = await import('./index');
const { MouseKeyboardModule: IsolatedModule } = await import('./index.js');
const result = await IsolatedModule.activate(MODULE_CTX);
vi.doUnmock('@jitsi/robotjs');

View File

@ -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",

View File

@ -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"]
},

View File

@ -32,7 +32,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:"

View File

@ -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",

View File

@ -1,5 +1,5 @@
{
"extends": "@n8n/typescript-config/tsconfig.common.json",
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,

View File

@ -22,7 +22,7 @@
],
"devDependencies": {
"@n8n/typescript-config": "workspace:*",
"typescript": "catalog:"
"typescript": "catalog:typescript"
},
"license": "LicenseRef-n8n-sustainable-use"
}

View File

@ -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",

View File

@ -1,5 +1,5 @@
{
"extends": "@n8n/typescript-config/tsconfig.common.json",
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
"compilerOptions": {
"types": ["node"],
"experimentalDecorators": true,

View File

@ -37,7 +37,7 @@
"devDependencies": {
"@n8n/typescript-config": "workspace:*",
"@n8n/vitest-config": "workspace:*",
"typescript": "catalog:",
"typescript": "catalog:typescript",
"vitest": "catalog:",
"vitest-websocket-mock": "^0.5.0"
},

View File

@ -11,7 +11,7 @@ import { WebSocketTransport } from './websocket';
*/
describe('onUpdate behavior verification', () => {
it('should fire onUpdate for local changes', async () => {
const { createCRDTProvider, CRDTEngine } = await import('../index');
const { createCRDTProvider, CRDTEngine } = await import('../index.js');
const provider = createCRDTProvider({ engine: CRDTEngine.yjs });
const doc = provider.createDoc('doc1');
@ -28,7 +28,7 @@ describe('onUpdate behavior verification', () => {
});
it('should fire onUpdate when applyUpdate is called', async () => {
const { createCRDTProvider, CRDTEngine } = await import('../index');
const { createCRDTProvider, CRDTEngine } = await import('../index.js');
const provider = createCRDTProvider({ engine: CRDTEngine.yjs });
const doc1 = provider.createDoc('doc1');
@ -55,9 +55,9 @@ describe('onUpdate behavior verification', () => {
});
it('should forward updates via onUpdate to another transport', async () => {
const { createCRDTProvider, CRDTEngine } = await import('../index');
const { MockTransport } = await import('../transports');
const { createSyncProvider } = await import('../sync/base-sync-provider');
const { createCRDTProvider, CRDTEngine } = await import('../index.js');
const { MockTransport } = await import('../transports/index.js');
const { createSyncProvider } = await import('../sync/base-sync-provider.js');
const provider = createCRDTProvider({ engine: CRDTEngine.yjs });

View File

@ -628,7 +628,7 @@ describe('UndoManager - provider-specific tests', () => {
});
it('should emit undoRedo origin when undo/redo is triggered', async () => {
const { ChangeOrigin } = await import('../types');
const { ChangeOrigin } = await import('../types.js');
const provider = new YjsProvider();
const doc = provider.createDoc('test');
const nodesMap = doc.getMap('nodes');
@ -664,7 +664,7 @@ describe('UndoManager - provider-specific tests', () => {
});
it('should emit position changes on undo via onTransactionBatch', async () => {
const { ChangeOrigin, isMapChange } = await import('../types');
const { ChangeOrigin, isMapChange } = await import('../types.js');
const provider = new YjsProvider();
const doc = provider.createDoc('test');
const nodesMap = doc.getMap('nodes');
@ -729,7 +729,7 @@ describe('UndoManager - provider-specific tests', () => {
});
it('should emit position changes with correct path structure', async () => {
const { isMapChange } = await import('../types');
const { isMapChange } = await import('../types.js');
const provider = new YjsProvider();
const doc = provider.createDoc('test');
const nodesMap = doc.getMap('nodes');
@ -786,7 +786,7 @@ describe('UndoManager - provider-specific tests', () => {
});
it('should receive nested changes via observeDeep on the root map', async () => {
const { isMapChange } = await import('../types');
const { isMapChange } = await import('../types.js');
const provider = new YjsProvider();
const doc = provider.createDoc('test');
const nodesMap = doc.getMap('nodes');

View File

@ -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",

View File

@ -1,5 +1,5 @@
{
"extends": "@n8n/typescript-config/tsconfig.common.json",
"extends": "@n8n/typescript-config/tsconfig.common.go.json",
"compilerOptions": {
"types": ["node", "vitest/globals"]
},

View File

@ -1576,8 +1576,8 @@ importers:
specifier: ^0.52.0
version: 0.52.0
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
packages/@n8n/chat-hub:
dependencies:
@ -1595,8 +1595,8 @@ importers:
specifier: 'catalog:'
version: 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9)
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
vitest:
specifier: 'catalog:'
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@20.19.41)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@23.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(vite@8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3))
@ -1617,8 +1617,8 @@ importers:
specifier: ^20.17.50
version: 20.19.41
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
vitest:
specifier: 'catalog:'
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@20.19.41)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@23.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(vite@8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3))
@ -1645,8 +1645,8 @@ importers:
specifier: 'catalog:'
version: 14.0.14
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
vite:
specifier: 'catalog:'
version: 8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)
@ -1655,7 +1655,7 @@ importers:
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@20.19.41)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@23.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(vite@8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3))
vitest-mock-extended:
specifier: 'catalog:'
version: 3.1.0(typescript@6.0.2)(vitest@4.1.9)
version: 3.1.0(typescript@7.0.2)(vitest@4.1.9)
packages/@n8n/codemirror-lang:
dependencies:
@ -1853,8 +1853,8 @@ importers:
specifier: 'catalog:'
version: 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9)
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
vite:
specifier: 'catalog:'
version: 8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)
@ -1887,8 +1887,8 @@ importers:
specifier: 'catalog:'
version: 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9)
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
vite:
specifier: 'catalog:'
version: 8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)
@ -1897,7 +1897,7 @@ importers:
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@20.19.41)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@23.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(vite@8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3))
vitest-mock-extended:
specifier: 'catalog:'
version: 3.1.0(typescript@6.0.2)(vitest@4.1.9)
version: 3.1.0(typescript@7.0.2)(vitest@4.1.9)
packages/@n8n/constants:
devDependencies:
@ -1905,8 +1905,8 @@ importers:
specifier: workspace:*
version: link:../typescript-config
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
packages/@n8n/crdt:
dependencies:
@ -1924,8 +1924,8 @@ importers:
specifier: workspace:*
version: link:../vitest-config
typescript:
specifier: 'catalog:'
version: 6.0.2
specifier: catalog:typescript
version: 7.0.2
vitest:
specifier: 'catalog:'
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@20.19.41)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@23.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(vite@8.0.2(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3))

View File

@ -1,6 +1,6 @@
# TypeScript 6 → 7 migration benchmarks
Generated 2026-07-14T09:31:26.831Z from `scripts/typescript-migration/results/`.
Generated 2026-07-15T09:07:07.705Z from `scripts/typescript-migration/results/`.
| Package | typecheck Δ | build Δ |
| --- | --- | --- |
@ -12,10 +12,18 @@ Generated 2026-07-14T09:31:26.831Z from `scripts/typescript-migration/results/`.
| `@n8n/backend-common` | -57.0% | -54.5% |
| `@n8n/backend-network` | -57.0% | -54.9% |
| `@n8n/backend-test-utils` | -51.4% | -53.1% |
| `@n8n/chat-hub` | -50.4% | -50.5% |
| `@n8n/cli` | -45.7% | -45.7% |
| `@n8n/client-oauth2` | -45.6% | -39.7% |
| `@n8n/codemirror-lang` | -36.3% | -31.4% |
| `@n8n/codemirror-lang-html` | — | -17.0% |
| `@n8n/codemirror-lang-sql` | -42.7% | -39.2% |
| `@n8n/computer-use` | -52.8% | -53.4% |
| `@n8n/config` | -48.2% | -37.9% |
| `@n8n/constants` | -35.8% | -36.6% |
| `@n8n/crdt` | -40.8% | -41.0% |
| `@n8n/instance-ai` | -70.0% | -40.3% |
| `@n8n/n8n-benchmark` | -49.2% | -39.0% |
| `@n8n/typeorm` | -37.9% | -68.7% |
```
@ -114,6 +122,42 @@ build:
after 751ms -850ms (-53.1%)
```
```
=== @n8n/chat-hub — median times (Δ vs "before") ===
typecheck:
before 1.14s
after 564ms -574ms (-50.4%)
build:
before 1.07s
after 529ms -540ms (-50.5%)
```
```
=== @n8n/cli — median times (Δ vs "before") ===
typecheck:
before 943ms
after 512ms -431ms (-45.7%)
build:
before 982ms
after 533ms -449ms (-45.7%)
```
```
=== @n8n/client-oauth2 — median times (Δ vs "before") ===
typecheck:
before 872ms
after 474ms -398ms (-45.6%)
build:
before 763ms
after 460ms -303ms (-39.7%)
```
```
=== @n8n/codemirror-lang — median times (Δ vs "before") ===
@ -146,6 +190,54 @@ build:
after 438ms -282ms (-39.2%)
```
```
=== @n8n/computer-use — median times (Δ vs "before") ===
typecheck:
before 1.27s
after 599ms -670ms (-52.8%)
build:
before 1.15s
after 535ms -614ms (-53.4%)
```
```
=== @n8n/config — median times (Δ vs "before") ===
typecheck:
before 1.02s
after 529ms -493ms (-48.2%)
build:
before 952ms
after 591ms -361ms (-37.9%)
```
```
=== @n8n/constants — median times (Δ vs "before") ===
typecheck:
before 670ms
after 430ms -240ms (-35.8%)
build:
before 691ms
after 438ms -253ms (-36.6%)
```
```
=== @n8n/crdt — median times (Δ vs "before") ===
typecheck:
before 921ms
after 545ms -376ms (-40.8%)
build:
before 808ms
after 477ms -331ms (-41.0%)
```
```
=== @n8n/instance-ai — median times (Δ vs "before") ===
@ -158,6 +250,18 @@ build:
after 1.91s -1293ms (-40.3%)
```
```
=== @n8n/n8n-benchmark — median times (Δ vs "before") ===
typecheck:
before 942ms
after 479ms -463ms (-49.2%)
build:
before 948ms
after 578ms -370ms (-39.0%)
```
```
=== @n8n/typeorm — median times (Δ vs "before") ===

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/chat-hub",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:38:17.186Z",
"tasks": {
"typecheck": {
"runsMs": [
1138,
1135,
1148
],
"min": 1135,
"median": 1138,
"mean": 1140
},
"build": {
"runsMs": [
1076,
1067,
1069
],
"min": 1067,
"median": 1069,
"mean": 1071
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:39:48.468Z",
"tasks": {
"typecheck": {
"runsMs": [
599,
564,
539
],
"min": 539,
"median": 564,
"mean": 567
},
"build": {
"runsMs": [
529,
514,
548
],
"min": 514,
"median": 529,
"mean": 530
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/cli",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:40:37.362Z",
"tasks": {
"typecheck": {
"runsMs": [
990,
943,
902
],
"min": 902,
"median": 943,
"mean": 945
},
"build": {
"runsMs": [
999,
970,
982
],
"min": 970,
"median": 982,
"mean": 984
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:41:16.905Z",
"tasks": {
"typecheck": {
"runsMs": [
512,
508,
614
],
"min": 508,
"median": 512,
"mean": 544
},
"build": {
"runsMs": [
605,
533,
495
],
"min": 495,
"median": 533,
"mean": 544
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/client-oauth2",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:43:33.459Z",
"tasks": {
"typecheck": {
"runsMs": [
872,
899,
824
],
"min": 824,
"median": 872,
"mean": 865
},
"build": {
"runsMs": [
759,
763,
811
],
"min": 759,
"median": 763,
"mean": 778
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:46:15.468Z",
"tasks": {
"typecheck": {
"runsMs": [
494,
459,
474
],
"min": 459,
"median": 474,
"mean": 476
},
"build": {
"runsMs": [
472,
460,
436
],
"min": 436,
"median": 460,
"mean": 456
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/computer-use",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:47:01.753Z",
"tasks": {
"typecheck": {
"runsMs": [
1367,
1269,
1255
],
"min": 1255,
"median": 1269,
"mean": 1297
},
"build": {
"runsMs": [
1149,
1214,
1133
],
"min": 1133,
"median": 1149,
"mean": 1165
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:51:49.540Z",
"tasks": {
"typecheck": {
"runsMs": [
792,
599,
588
],
"min": 588,
"median": 599,
"mean": 660
},
"build": {
"runsMs": [
535,
549,
530
],
"min": 530,
"median": 535,
"mean": 538
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/config",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:53:06.135Z",
"tasks": {
"typecheck": {
"runsMs": [
1022,
1083,
969
],
"min": 969,
"median": 1022,
"mean": 1024
},
"build": {
"runsMs": [
940,
979,
952
],
"min": 940,
"median": 952,
"mean": 957
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:54:38.495Z",
"tasks": {
"typecheck": {
"runsMs": [
507,
529,
584
],
"min": 507,
"median": 529,
"mean": 540
},
"build": {
"runsMs": [
596,
591,
525
],
"min": 525,
"median": 591,
"mean": 571
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/constants",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:55:20.856Z",
"tasks": {
"typecheck": {
"runsMs": [
687,
670,
664
],
"min": 664,
"median": 670,
"mean": 673
},
"build": {
"runsMs": [
691,
685,
692
],
"min": 685,
"median": 691,
"mean": 689
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:55:50.952Z",
"tasks": {
"typecheck": {
"runsMs": [
430,
448,
427
],
"min": 427,
"median": 430,
"mean": 435
},
"build": {
"runsMs": [
438,
434,
452
],
"min": 434,
"median": 438,
"mean": 442
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/crdt",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:56:21.223Z",
"tasks": {
"typecheck": {
"runsMs": [
981,
915,
921
],
"min": 915,
"median": 921,
"mean": 939
},
"build": {
"runsMs": [
808,
814,
806
],
"min": 806,
"median": 808,
"mean": 809
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T09:00:06.086Z",
"tasks": {
"typecheck": {
"runsMs": [
545,
561,
499
],
"min": 499,
"median": 545,
"mean": 535
},
"build": {
"runsMs": [
477,
472,
484
],
"min": 472,
"median": 477,
"mean": 478
}
}
}
}
}

View File

@ -0,0 +1,61 @@
{
"package": "@n8n/n8n-benchmark",
"runs": {
"before": {
"label": "before",
"tsVersion": "6.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:32:42.617Z",
"tasks": {
"typecheck": {
"runsMs": [
995,
942,
782
],
"min": 782,
"median": 942,
"mean": 906
},
"build": {
"runsMs": [
1013,
948,
913
],
"min": 913,
"median": 948,
"mean": 958
}
}
},
"after": {
"label": "after",
"tsVersion": "7.0.2",
"node": "v24.13.0",
"timestamp": "2026-07-15T08:37:20.138Z",
"tasks": {
"typecheck": {
"runsMs": [
479,
476,
507
],
"min": 476,
"median": 479,
"mean": 487
},
"build": {
"runsMs": [
926,
578,
577
],
"min": 577,
"median": 578,
"mean": 694
}
}
}
}
}