@n8n/task-runner 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,12 +4,13 @@ declare class HealthcheckServerConfig {
4
4
  port: number;
5
5
  }
6
6
  export declare class BaseRunnerConfig {
7
- n8nUri: string;
7
+ taskBrokerUri: string;
8
8
  grantToken: string;
9
9
  maxPayloadSize: number;
10
10
  maxConcurrency: number;
11
11
  idleTimeout: number;
12
12
  timezone: string;
13
+ taskTimeout: number;
13
14
  healthcheckServer: HealthcheckServerConfig;
14
15
  }
15
16
  export {};
@@ -19,15 +19,15 @@ let HealthcheckServerConfig = class HealthcheckServerConfig {
19
19
  }
20
20
  };
21
21
  __decorate([
22
- (0, config_1.Env)('N8N_RUNNERS_SERVER_ENABLED'),
22
+ (0, config_1.Env)('N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED'),
23
23
  __metadata("design:type", Boolean)
24
24
  ], HealthcheckServerConfig.prototype, "enabled", void 0);
25
25
  __decorate([
26
- (0, config_1.Env)('N8N_RUNNERS_SERVER_HOST'),
26
+ (0, config_1.Env)('N8N_RUNNERS_HEALTH_CHECK_SERVER_HOST'),
27
27
  __metadata("design:type", String)
28
28
  ], HealthcheckServerConfig.prototype, "host", void 0);
29
29
  __decorate([
30
- (0, config_1.Env)('N8N_RUNNERS_SERVER_PORT'),
30
+ (0, config_1.Env)('N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT'),
31
31
  __metadata("design:type", Number)
32
32
  ], HealthcheckServerConfig.prototype, "port", void 0);
33
33
  HealthcheckServerConfig = __decorate([
@@ -35,19 +35,20 @@ HealthcheckServerConfig = __decorate([
35
35
  ], HealthcheckServerConfig);
36
36
  let BaseRunnerConfig = class BaseRunnerConfig {
37
37
  constructor() {
38
- this.n8nUri = '127.0.0.1:5679';
38
+ this.taskBrokerUri = 'http://127.0.0.1:5679';
39
39
  this.grantToken = '';
40
40
  this.maxPayloadSize = 1024 * 1024 * 1024;
41
41
  this.maxConcurrency = 5;
42
42
  this.idleTimeout = 0;
43
43
  this.timezone = 'America/New_York';
44
+ this.taskTimeout = 60;
44
45
  }
45
46
  };
46
47
  exports.BaseRunnerConfig = BaseRunnerConfig;
47
48
  __decorate([
48
- (0, config_1.Env)('N8N_RUNNERS_N8N_URI'),
49
+ (0, config_1.Env)('N8N_RUNNERS_TASK_BROKER_URI'),
49
50
  __metadata("design:type", String)
50
- ], BaseRunnerConfig.prototype, "n8nUri", void 0);
51
+ ], BaseRunnerConfig.prototype, "taskBrokerUri", void 0);
51
52
  __decorate([
52
53
  (0, config_1.Env)('N8N_RUNNERS_GRANT_TOKEN'),
53
54
  __metadata("design:type", String)
@@ -68,6 +69,10 @@ __decorate([
68
69
  (0, config_1.Env)('GENERIC_TIMEZONE'),
69
70
  __metadata("design:type", String)
70
71
  ], BaseRunnerConfig.prototype, "timezone", void 0);
72
+ __decorate([
73
+ (0, config_1.Env)('N8N_RUNNERS_TASK_TIMEOUT'),
74
+ __metadata("design:type", Number)
75
+ ], BaseRunnerConfig.prototype, "taskTimeout", void 0);
71
76
  __decorate([
72
77
  config_1.Nested,
73
78
  __metadata("design:type", HealthcheckServerConfig)
@@ -1 +1 @@
1
- {"version":3,"file":"base-runner-config.js","sourceRoot":"","sources":["../../src/config/base-runner-config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAkD;AAGlD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QAEC,YAAO,GAAY,KAAK,CAAC;QAGzB,SAAI,GAAW,WAAW,CAAC;QAG3B,SAAI,GAAW,IAAI,CAAC;IACrB,CAAC;CAAA,CAAA;AAPA;IADC,IAAA,YAAG,EAAC,4BAA4B,CAAC;;wDACT;AAGzB;IADC,IAAA,YAAG,EAAC,yBAAyB,CAAC;;qDACJ;AAG3B;IADC,IAAA,YAAG,EAAC,yBAAyB,CAAC;;qDACX;AARf,uBAAuB;IAD5B,eAAM;GACD,uBAAuB,CAS5B;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QAEN,WAAM,GAAW,gBAAgB,CAAC;QAGlC,eAAU,GAAW,EAAE,CAAC;QAGxB,mBAAc,GAAW,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAG5C,mBAAc,GAAW,CAAC,CAAC;QAQ3B,gBAAW,GAAW,CAAC,CAAC;QAGxB,aAAQ,GAAW,kBAAkB,CAAC;IAIvC,CAAC;CAAA,CAAA;AA1BY,4CAAgB;AAE5B;IADC,IAAA,YAAG,EAAC,qBAAqB,CAAC;;gDACO;AAGlC;IADC,IAAA,YAAG,EAAC,yBAAyB,CAAC;;oDACP;AAGxB;IADC,IAAA,YAAG,EAAC,yBAAyB,CAAC;;wDACa;AAG5C;IADC,IAAA,YAAG,EAAC,6BAA6B,CAAC;;wDACR;AAQ3B;IADC,IAAA,YAAG,EAAC,mCAAmC,CAAC;;qDACjB;AAGxB;IADC,IAAA,YAAG,EAAC,kBAAkB,CAAC;;kDACc;AAGtC;IADC,eAAM;8BACa,uBAAuB;2DAAC;2BAzBhC,gBAAgB;IAD5B,eAAM;GACM,gBAAgB,CA0B5B"}
1
+ {"version":3,"file":"base-runner-config.js","sourceRoot":"","sources":["../../src/config/base-runner-config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAkD;AAGlD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QAEC,YAAO,GAAY,KAAK,CAAC;QAGzB,SAAI,GAAW,WAAW,CAAC;QAG3B,SAAI,GAAW,IAAI,CAAC;IACrB,CAAC;CAAA,CAAA;AAPA;IADC,IAAA,YAAG,EAAC,yCAAyC,CAAC;;wDACtB;AAGzB;IADC,IAAA,YAAG,EAAC,sCAAsC,CAAC;;qDACjB;AAG3B;IADC,IAAA,YAAG,EAAC,sCAAsC,CAAC;;qDACxB;AARf,uBAAuB;IAD5B,eAAM;GACD,uBAAuB,CAS5B;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QAEN,kBAAa,GAAW,uBAAuB,CAAC;QAGhD,eAAU,GAAW,EAAE,CAAC;QAGxB,mBAAc,GAAW,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAG5C,mBAAc,GAAW,CAAC,CAAC;QAQ3B,gBAAW,GAAW,CAAC,CAAC;QAGxB,aAAQ,GAAW,kBAAkB,CAAC;QAGtC,gBAAW,GAAW,EAAE,CAAC;IAI1B,CAAC;CAAA,CAAA;AA7BY,4CAAgB;AAE5B;IADC,IAAA,YAAG,EAAC,6BAA6B,CAAC;;uDACa;AAGhD;IADC,IAAA,YAAG,EAAC,yBAAyB,CAAC;;oDACP;AAGxB;IADC,IAAA,YAAG,EAAC,yBAAyB,CAAC;;wDACa;AAG5C;IADC,IAAA,YAAG,EAAC,6BAA6B,CAAC;;wDACR;AAQ3B;IADC,IAAA,YAAG,EAAC,mCAAmC,CAAC;;qDACjB;AAGxB;IADC,IAAA,YAAG,EAAC,kBAAkB,CAAC;;kDACc;AAGtC;IADC,IAAA,YAAG,EAAC,0BAA0B,CAAC;;qDACP;AAGzB;IADC,eAAM;8BACa,uBAAuB;2DAAC;2BA5BhC,gBAAgB;IAD5B,eAAM;GACM,gBAAgB,CA6B5B"}
@@ -1,4 +1,4 @@
1
- import type { ErrorEvent, EventHint } from '@sentry/types';
1
+ import { type EventHint, type ErrorEvent } from '@sentry/node';
2
2
  import type { SentryConfig } from './config/sentry-config';
3
3
  export declare class ErrorReporter {
4
4
  private readonly sentryConfig;
@@ -34,7 +34,6 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ErrorReporter = void 0;
37
- const integrations_1 = require("@sentry/integrations");
38
37
  const node_1 = require("@sentry/node");
39
38
  const a = __importStar(require("assert/strict"));
40
39
  const crypto_1 = require("crypto");
@@ -72,7 +71,7 @@ class ErrorReporter {
72
71
  beforeSend: async (event, hint) => await this.beforeSend(event, hint),
73
72
  integrations: (integrations) => [
74
73
  ...integrations.filter(({ name }) => ENABLED_INTEGRATIONS.includes(name)),
75
- new integrations_1.RewriteFrames({ root: process.cwd() }),
74
+ (0, node_1.rewriteFramesIntegration)({ root: process.cwd() }),
76
75
  ],
77
76
  });
78
77
  this.isInitialized = true;
@@ -1 +1 @@
1
- {"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../src/error-reporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAqD;AACrD,uCAAqE;AAErE,iDAAmC;AACnC,mCAAoC;AACpC,+CAAgD;AAOhD,MAAa,aAAa;IAMzB,IAAY,GAAG;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QAT/C,kBAAa,GAAG,KAAK,CAAC;QAGb,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAO/C,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAG/B,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;QAE3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,uBAAgB,CAAC,CAAC;QAElD,MAAM,oBAAoB,GAAG;YAC5B,gBAAgB;YAChB,kBAAkB;YAClB,cAAc;YACd,sBAAsB;YACtB,cAAc;SACd,CAAC;QAEF,IAAA,aAAM,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAErC,IAAA,WAAI,EAAC;YACJ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;YACrC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;YAC1C,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc;YAC5C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;YAC5B,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;YACrE,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC/B,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACzE,IAAI,4BAAa,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;aAC1C;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,MAAM,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAiB,EAAE,EAAE,iBAAiB,EAAa;QACnE,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QAEpC,IAAI,iBAAiB,YAAY,OAAO,EAAE,CAAC;YAC1C,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAc,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,iBAAiB,YAAY,+BAAgB,EAAE,CAAC;YACnD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,IAAI,KAAK;gBAAE,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;YACtD,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,iBAAiB,YAAY,KAAK,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAhFD,sCAgFC"}
1
+ {"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../src/error-reporter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare class HealthcheckServer {
1
+ export declare class HealthCheckServer {
2
2
  private server;
3
3
  start(host: string, port: number): Promise<void>;
4
4
  stop(): Promise<void>;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HealthcheckServer = void 0;
3
+ exports.HealthCheckServer = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const node_http_1 = require("node:http");
6
- class HealthcheckServer {
6
+ class HealthCheckServer {
7
7
  constructor() {
8
8
  this.server = (0, node_http_1.createServer)((_, res) => {
9
9
  res.writeHead(200);
@@ -23,7 +23,7 @@ class HealthcheckServer {
23
23
  this.server.on('error', portInUseErrorHandler);
24
24
  this.server.listen(port, host, () => {
25
25
  this.server.removeListener('error', portInUseErrorHandler);
26
- console.log(`Healthcheck server listening on ${host}, port ${port}`);
26
+ console.log(`Health check server listening on ${host}, port ${port}`);
27
27
  resolve();
28
28
  });
29
29
  });
@@ -39,5 +39,5 @@ class HealthcheckServer {
39
39
  });
40
40
  }
41
41
  }
42
- exports.HealthcheckServer = HealthcheckServer;
43
- //# sourceMappingURL=healthcheck-server.js.map
42
+ exports.HealthCheckServer = HealthCheckServer;
43
+ //# sourceMappingURL=health-check-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-check-server.js","sourceRoot":"","sources":["../src/health-check-server.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAChD,yCAAyC;AAEzC,MAAa,iBAAiB;IAA9B;QACS,WAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACxC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IA8BJ,CAAC;IA5BA,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAAY;QACrC,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,qBAAqB,GAAG,CAAC,KAA4B,EAAE,EAAE;gBAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,+BAAgB,CAAC,QAAQ,IAAI,oBAAoB,CAAC,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,KAAK,CAAC,CAAC;gBACf,CAAC;YACF,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC;gBACtE,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACT,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,IAAI,KAAK;oBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;oBACpB,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAlCD,8CAkCC"}
@@ -0,0 +1,4 @@
1
+ import { ApplicationError } from 'n8n-workflow';
2
+ export declare class TaskCancelledError extends ApplicationError {
3
+ constructor(reason: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskCancelledError = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TaskCancelledError extends n8n_workflow_1.ApplicationError {
6
+ constructor(reason) {
7
+ super(`Task cancelled: ${reason}`, { level: 'warning' });
8
+ }
9
+ }
10
+ exports.TaskCancelledError = TaskCancelledError;
11
+ //# sourceMappingURL=task-cancelled-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-cancelled-error.js","sourceRoot":"","sources":["../../../src/js-task-runner/errors/task-cancelled-error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAa,kBAAmB,SAAQ,+BAAgB;IACvD,YAAY,MAAc;QACzB,KAAK,CAAC,mBAAmB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;CACD;AAJD,gDAIC"}
@@ -0,0 +1,5 @@
1
+ import { ApplicationError } from 'n8n-workflow';
2
+ export declare class TimeoutError extends ApplicationError {
3
+ description: string;
4
+ constructor(taskTimeout: number);
5
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimeoutError = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TimeoutError extends n8n_workflow_1.ApplicationError {
6
+ constructor(taskTimeout) {
7
+ super(`Task execution timed out after ${taskTimeout} ${taskTimeout === 1 ? 'second' : 'seconds'}`);
8
+ const subtitle = 'The task runner was taking too long on this task, so the task was aborted.';
9
+ const fixes = {
10
+ optimizeScript: 'Optimize your script to prevent long-running tasks, e.g. by processing data in smaller batches.',
11
+ ensureTermination: 'Ensure that all paths in your script are able to terminate, i.e. no infinite loops.',
12
+ };
13
+ const suggestions = [fixes.optimizeScript, fixes.ensureTermination];
14
+ const suggestionsText = suggestions
15
+ .map((suggestion, index) => `${index + 1}. ${suggestion}`)
16
+ .join('<br/>');
17
+ const description = `${subtitle} You can try the following:<br/><br/>${suggestionsText}`;
18
+ this.description = description;
19
+ }
20
+ }
21
+ exports.TimeoutError = TimeoutError;
22
+ //# sourceMappingURL=timeout-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout-error.js","sourceRoot":"","sources":["../../../src/js-task-runner/errors/timeout-error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAa,YAAa,SAAQ,+BAAgB;IAGjD,YAAY,WAAmB;QAC9B,KAAK,CACJ,kCAAkC,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAC3F,CAAC;QAEF,MAAM,QAAQ,GAAG,4EAA4E,CAAC;QAE9F,MAAM,KAAK,GAAG;YACb,cAAc,EACb,iGAAiG;YAClG,iBAAiB,EAChB,qFAAqF;SACtF,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEpE,MAAM,eAAe,GAAG,WAAW;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;aACzD,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,WAAW,GAAG,GAAG,QAAQ,wCAAwC,eAAe,EAAE,CAAC;QAEzF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AA3BD,oCA2BC"}
@@ -32,7 +32,7 @@ export declare class JsTaskRunner extends TaskRunner {
32
32
  private readonly builtInsParser;
33
33
  private readonly taskDataReconstruct;
34
34
  constructor(config: MainConfig, name?: string);
35
- executeTask(task: Task<JSExecSettings>): Promise<TaskResultData>;
35
+ executeTask(task: Task<JSExecSettings>, signal: AbortSignal): Promise<TaskResultData>;
36
36
  private validateTaskSettings;
37
37
  private getNativeVariables;
38
38
  private runForAllItems;
@@ -44,6 +44,7 @@ const built_ins_parser_state_1 = require("./built-ins-parser/built-ins-parser-st
44
44
  const error_like_1 = require("./errors/error-like");
45
45
  const execution_error_1 = require("./errors/execution-error");
46
46
  const serializable_error_1 = require("./errors/serializable-error");
47
+ const timeout_error_1 = require("./errors/timeout-error");
47
48
  const require_resolver_1 = require("./require-resolver");
48
49
  const result_validation_1 = require("./result-validation");
49
50
  const data_request_response_reconstruct_1 = require("../data-request/data-request-response-reconstruct");
@@ -63,7 +64,7 @@ class JsTaskRunner extends task_runner_1.TaskRunner {
63
64
  allowedExternalModules: parseModuleAllowList(jsRunnerConfig.allowedExternalModules ?? ''),
64
65
  });
65
66
  }
66
- async executeTask(task) {
67
+ async executeTask(task, signal) {
67
68
  const settings = task.settings;
68
69
  a.ok(settings, 'JS Code not sent to runner');
69
70
  this.validateTaskSettings(settings);
@@ -88,8 +89,8 @@ class JsTaskRunner extends task_runner_1.TaskRunner {
88
89
  },
89
90
  };
90
91
  const result = settings.nodeMode === 'runOnceForAllItems'
91
- ? await this.runForAllItems(task.taskId, settings, data, workflow, customConsole)
92
- : await this.runForEachItem(task.taskId, settings, data, workflow, customConsole);
92
+ ? await this.runForAllItems(task.taskId, settings, data, workflow, customConsole, signal)
93
+ : await this.runForEachItem(task.taskId, settings, data, workflow, customConsole, signal);
93
94
  return {
94
95
  result,
95
96
  customData: data.runExecutionData.resultData.metadata,
@@ -121,7 +122,7 @@ class JsTaskRunner extends task_runner_1.TaskRunner {
121
122
  FormData,
122
123
  };
123
124
  }
124
- async runForAllItems(taskId, settings, data, workflow, customConsole) {
125
+ async runForAllItems(taskId, settings, data, workflow, customConsole, signal) {
125
126
  const dataProxy = this.createDataProxy(data, workflow, data.itemIndex);
126
127
  const inputItems = data.connectionInputData;
127
128
  const context = {
@@ -134,7 +135,19 @@ class JsTaskRunner extends task_runner_1.TaskRunner {
134
135
  ...this.buildRpcCallObject(taskId),
135
136
  };
136
137
  try {
137
- const result = (await (0, node_vm_1.runInNewContext)(`globalThis.global = globalThis; module.exports = async function VmCodeWrapper() {${settings.code}\n}()`, context));
138
+ const result = await new Promise((resolve, reject) => {
139
+ const abortHandler = () => {
140
+ reject(new timeout_error_1.TimeoutError(this.taskTimeout));
141
+ };
142
+ signal.addEventListener('abort', abortHandler, { once: true });
143
+ const taskResult = (0, node_vm_1.runInNewContext)(`globalThis.global = globalThis; module.exports = async function VmCodeWrapper() {${settings.code}\n}()`, context, { timeout: this.taskTimeout * 1000 });
144
+ void taskResult
145
+ .then(resolve)
146
+ .catch(reject)
147
+ .finally(() => {
148
+ signal.removeEventListener('abort', abortHandler);
149
+ });
150
+ });
138
151
  if (result === null) {
139
152
  return [];
140
153
  }
@@ -148,7 +161,7 @@ class JsTaskRunner extends task_runner_1.TaskRunner {
148
161
  throw error;
149
162
  }
150
163
  }
151
- async runForEachItem(taskId, settings, data, workflow, customConsole) {
164
+ async runForEachItem(taskId, settings, data, workflow, customConsole, signal) {
152
165
  const inputItems = data.connectionInputData;
153
166
  const returnData = [];
154
167
  const chunkStartIdx = settings.chunk ? settings.chunk.startIndex : 0;
@@ -168,7 +181,19 @@ class JsTaskRunner extends task_runner_1.TaskRunner {
168
181
  ...this.buildRpcCallObject(taskId),
169
182
  };
170
183
  try {
171
- let result = (await (0, node_vm_1.runInNewContext)(`module.exports = async function VmCodeWrapper() {${settings.code}\n}()`, context));
184
+ let result = await new Promise((resolve, reject) => {
185
+ const abortHandler = () => {
186
+ reject(new timeout_error_1.TimeoutError(this.taskTimeout));
187
+ };
188
+ signal.addEventListener('abort', abortHandler);
189
+ const taskResult = (0, node_vm_1.runInNewContext)(`module.exports = async function VmCodeWrapper() {${settings.code}\n}()`, context, { timeout: this.taskTimeout * 1000 });
190
+ void taskResult
191
+ .then(resolve)
192
+ .catch(reject)
193
+ .finally(() => {
194
+ signal.removeEventListener('abort', abortHandler);
195
+ });
196
+ });
172
197
  if (result === null) {
173
198
  continue;
174
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"js-task-runner.js","sourceRoot":"","sources":["../../src/js-task-runner/js-task-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-task-runner.js","sourceRoot":"","sources":["../../src/js-task-runner/js-task-runner.ts"],"names":[],"mappings":"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"}
package/dist/start.js CHANGED
@@ -40,22 +40,26 @@ const n8n_workflow_1 = require("n8n-workflow");
40
40
  const typedi_1 = __importDefault(require("typedi"));
41
41
  const main_config_1 = require("./config/main-config");
42
42
  const js_task_runner_1 = require("./js-task-runner/js-task-runner");
43
- let healthcheckServer;
43
+ let healthCheckServer;
44
44
  let runner;
45
45
  let isShuttingDown = false;
46
46
  let errorReporter;
47
- function createSignalHandler(signal) {
47
+ function createSignalHandler(signal, timeoutInS = 10) {
48
48
  return async function onSignal() {
49
49
  if (isShuttingDown) {
50
50
  return;
51
51
  }
52
52
  console.log(`Received ${signal} signal, shutting down...`);
53
+ setTimeout(() => {
54
+ console.error('Shutdown timeout reached, forcing shutdown...');
55
+ process.exit(1);
56
+ }, timeoutInS * 1000).unref();
53
57
  isShuttingDown = true;
54
58
  try {
55
59
  if (runner) {
56
60
  await runner.stop();
57
61
  runner = undefined;
58
- void healthcheckServer?.stop();
62
+ void healthCheckServer?.stop();
59
63
  }
60
64
  if (errorReporter) {
61
65
  await errorReporter.stop();
@@ -84,13 +88,13 @@ void (async function start() {
84
88
  }
85
89
  runner = new js_task_runner_1.JsTaskRunner(config);
86
90
  runner.on('runner:reached-idle-timeout', () => {
87
- void createSignalHandler('IDLE_TIMEOUT')();
91
+ void createSignalHandler('IDLE_TIMEOUT', 1)();
88
92
  });
89
93
  const { enabled, host, port } = config.baseRunnerConfig.healthcheckServer;
90
94
  if (enabled) {
91
- const { HealthcheckServer } = await Promise.resolve().then(() => __importStar(require('./healthcheck-server')));
92
- healthcheckServer = new HealthcheckServer();
93
- await healthcheckServer.start(host, port);
95
+ const { HealthCheckServer } = await Promise.resolve().then(() => __importStar(require('./health-check-server')));
96
+ healthCheckServer = new HealthCheckServer();
97
+ await healthCheckServer.start(host, port);
94
98
  }
95
99
  process.on('SIGINT', createSignalHandler('SIGINT'));
96
100
  process.on('SIGTERM', createSignalHandler('SIGTERM'));
package/dist/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,oDAA+B;AAE/B,sDAAkD;AAGlD,oEAA+D;AAE/D,IAAI,iBAAgD,CAAC;AACrD,IAAI,MAAgC,CAAC;AACrC,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,aAAwC,CAAC;AAE7C,SAAS,mBAAmB,CAAC,MAAc;IAC1C,OAAO,KAAK,UAAU,QAAQ;QAC7B,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,2BAA2B,CAAC,CAAC;QAE3D,cAAc,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACJ,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,MAAM,GAAG,SAAS,CAAC;gBACnB,KAAK,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAChC,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC3B,aAAa,GAAG,SAAS,CAAC;YAC3B,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,IAAA,0BAAW,EAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED,KAAK,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,MAAM,GAAG,gBAAS,CAAC,GAAG,CAAC,wBAAU,CAAC,CAAC;IAEzC,IAAA,6BAAc,EAAC;QACd,eAAe,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ;KACjD,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,kBAAkB,GAAC,CAAC;QAC3D,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,GAAG,IAAI,6BAAY,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC7C,KAAK,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;IAE1E,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QACnE,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC5C,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IAChB,MAAM,KAAK,GAAG,IAAA,0BAAW,EAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,13 @@ export interface TaskOffer {
15
15
  validUntil: bigint;
16
16
  }
17
17
  interface DataRequest {
18
+ taskId: string;
18
19
  requestId: string;
19
20
  resolve: (data: unknown) => void;
20
21
  reject: (error: unknown) => void;
21
22
  }
22
23
  interface NodeTypesRequest {
24
+ taskId: string;
23
25
  requestId: string;
24
26
  resolve: (data: unknown) => void;
25
27
  reject: (error: unknown) => void;
@@ -51,7 +53,9 @@ export declare abstract class TaskRunner extends EventEmitter {
51
53
  maxConcurrency: number;
52
54
  name: string;
53
55
  private idleTimer;
56
+ protected readonly taskTimeout: number;
54
57
  private readonly idleTimeout;
58
+ protected taskCancellations: Map<string, AbortController>;
55
59
  constructor(opts: TaskRunnerOpts);
56
60
  private resetIdleTimer;
57
61
  private receiveMessage;
@@ -65,11 +69,11 @@ export declare abstract class TaskRunner extends EventEmitter {
65
69
  processNodeTypesResponse(requestId: string, nodeTypes: unknown): void;
66
70
  hasOpenTasks(): boolean;
67
71
  offerAccepted(offerId: string, taskId: string): void;
68
- taskCancelled(taskId: string): void;
72
+ taskCancelled(taskId: string, reason: string): void;
69
73
  taskErrored(taskId: string, error: unknown): void;
70
74
  taskDone(taskId: string, data: RunnerMessage.ToBroker.TaskDone['data']): void;
71
75
  receivedSettings(taskId: string, settings: unknown): Promise<void>;
72
- executeTask(_task: Task): Promise<TaskResultData>;
76
+ executeTask(_task: Task, _signal: AbortSignal): Promise<TaskResultData>;
73
77
  requestNodeTypes<T = unknown>(taskId: Task['taskId'], requestParams: RunnerMessage.ToBroker.NodeTypesRequest['requestParams']): Promise<T>;
74
78
  requestData<T = unknown>(taskId: Task['taskId'], requestParams: RunnerMessage.ToBroker.TaskDataRequest['requestParams']): Promise<T>;
75
79
  makeRpcCall(taskId: string, name: RunnerMessage.ToBroker.RPC['name'], params: unknown[]): Promise<unknown>;
@@ -7,6 +7,7 @@ const node_events_1 = require("node:events");
7
7
  const ws_1 = require("ws");
8
8
  const node_types_1 = require("./node-types");
9
9
  const runner_types_1 = require("./runner-types");
10
+ const task_cancelled_error_1 = require("./js-task-runner/errors/task-cancelled-error");
10
11
  const OFFER_VALID_TIME_MS = 5000;
11
12
  const OFFER_VALID_EXTRA_MS = 100;
12
13
  const msToNs = (ms) => BigInt(ms * 1_000_000);
@@ -21,6 +22,7 @@ class TaskRunner extends node_events_1.EventEmitter {
21
22
  this.nodeTypesRequests = new Map();
22
23
  this.rpcCalls = new Map();
23
24
  this.nodeTypes = new node_types_1.TaskRunnerNodeTypes([]);
25
+ this.taskCancellations = new Map();
24
26
  this.receiveMessage = (message) => {
25
27
  const data = JSON.parse(message.data);
26
28
  void this.onMessage(data);
@@ -35,8 +37,10 @@ class TaskRunner extends node_events_1.EventEmitter {
35
37
  this.taskType = opts.taskType;
36
38
  this.name = opts.name ?? 'Node.js Task Runner SDK';
37
39
  this.maxConcurrency = opts.maxConcurrency;
40
+ this.taskTimeout = opts.taskTimeout;
38
41
  this.idleTimeout = opts.idleTimeout;
39
- const wsUrl = `ws://${opts.n8nUri}/runners/_ws?id=${this.id}`;
42
+ const { host: taskBrokerHost } = new URL(opts.taskBrokerUri);
43
+ const wsUrl = `ws://${taskBrokerHost}/runners/_ws?id=${this.id}`;
40
44
  this.ws = new ws_1.WebSocket(wsUrl, {
41
45
  headers: {
42
46
  authorization: `Bearer ${opts.grantToken}`,
@@ -48,11 +52,11 @@ class TaskRunner extends node_events_1.EventEmitter {
48
52
  if ('code' in error &&
49
53
  typeof error.code === 'string' &&
50
54
  ['ECONNREFUSED', 'ENOTFOUND'].some((code) => code === error.code)) {
51
- console.error(`Error: Failed to connect to n8n. Please ensure n8n is reachable at: ${opts.n8nUri}`);
55
+ console.error(`Error: Failed to connect to n8n task broker. Please ensure n8n task broker is reachable at: ${taskBrokerHost}`);
52
56
  process.exit(1);
53
57
  }
54
58
  else {
55
- console.error(`Error: Failed to connect to n8n at ${opts.n8nUri}`);
59
+ console.error(`Error: Failed to connect to n8n task broker at ${taskBrokerHost}`);
56
60
  console.error('Details:', event.message || 'Unknown error');
57
61
  }
58
62
  });
@@ -122,7 +126,7 @@ class TaskRunner extends node_events_1.EventEmitter {
122
126
  this.offerAccepted(message.offerId, message.taskId);
123
127
  break;
124
128
  case 'broker:taskcancel':
125
- this.taskCancelled(message.taskId);
129
+ this.taskCancelled(message.taskId, message.reason);
126
130
  break;
127
131
  case 'broker:tasksettings':
128
132
  void this.receivedSettings(message.taskId, message.settings);
@@ -186,17 +190,31 @@ class TaskRunner extends node_events_1.EventEmitter {
186
190
  taskId,
187
191
  });
188
192
  }
189
- taskCancelled(taskId) {
193
+ taskCancelled(taskId, reason) {
190
194
  const task = this.runningTasks.get(taskId);
191
195
  if (!task) {
192
196
  return;
193
197
  }
194
198
  task.cancelled = true;
195
- if (task.active) {
199
+ for (const [requestId, request] of this.dataRequests.entries()) {
200
+ if (request.taskId === taskId) {
201
+ request.reject(new task_cancelled_error_1.TaskCancelledError(reason));
202
+ this.dataRequests.delete(requestId);
203
+ }
196
204
  }
197
- else {
198
- this.runningTasks.delete(taskId);
205
+ for (const [requestId, request] of this.nodeTypesRequests.entries()) {
206
+ if (request.taskId === taskId) {
207
+ request.reject(new task_cancelled_error_1.TaskCancelledError(reason));
208
+ this.nodeTypesRequests.delete(requestId);
209
+ }
210
+ }
211
+ const controller = this.taskCancellations.get(taskId);
212
+ if (controller) {
213
+ controller.abort();
214
+ this.taskCancellations.delete(taskId);
199
215
  }
216
+ if (!task.active)
217
+ this.runningTasks.delete(taskId);
200
218
  this.sendOffers();
201
219
  }
202
220
  taskErrored(taskId, error) {
@@ -226,20 +244,31 @@ class TaskRunner extends node_events_1.EventEmitter {
226
244
  this.runningTasks.delete(taskId);
227
245
  return;
228
246
  }
247
+ const controller = new AbortController();
248
+ this.taskCancellations.set(taskId, controller);
249
+ const taskTimeout = setTimeout(() => {
250
+ if (!task.cancelled) {
251
+ controller.abort();
252
+ this.taskCancellations.delete(taskId);
253
+ }
254
+ }, this.taskTimeout * 1_000);
229
255
  task.settings = settings;
230
256
  task.active = true;
231
257
  try {
232
- const data = await this.executeTask(task);
258
+ const data = await this.executeTask(task, controller.signal);
233
259
  this.taskDone(taskId, data);
234
260
  }
235
261
  catch (error) {
236
- this.taskErrored(taskId, error);
262
+ if (!task.cancelled)
263
+ this.taskErrored(taskId, error);
237
264
  }
238
265
  finally {
266
+ clearTimeout(taskTimeout);
267
+ this.taskCancellations.delete(taskId);
239
268
  this.resetIdleTimer();
240
269
  }
241
270
  }
242
- async executeTask(_task) {
271
+ async executeTask(_task, _signal) {
243
272
  throw new n8n_workflow_1.ApplicationError('Unimplemented');
244
273
  }
245
274
  async requestNodeTypes(taskId, requestParams) {
@@ -247,6 +276,7 @@ class TaskRunner extends node_events_1.EventEmitter {
247
276
  const nodeTypesPromise = new Promise((resolve, reject) => {
248
277
  this.nodeTypesRequests.set(requestId, {
249
278
  requestId,
279
+ taskId,
250
280
  resolve: resolve,
251
281
  reject,
252
282
  });
@@ -269,6 +299,7 @@ class TaskRunner extends node_events_1.EventEmitter {
269
299
  const p = new Promise((resolve, reject) => {
270
300
  this.dataRequests.set(requestId, {
271
301
  requestId,
302
+ taskId,
272
303
  resolve: resolve,
273
304
  reject,
274
305
  });