@n8n/task-runner 0.1.0 → 1.1.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.
@@ -0,0 +1,16 @@
1
+ import { ApplicationError } from 'n8n-workflow';
2
+ export declare class ExecutionError extends ApplicationError {
3
+ description: string | null;
4
+ itemIndex: number | undefined;
5
+ context: {
6
+ itemIndex: number;
7
+ } | undefined;
8
+ stack: string;
9
+ lineNumber: number | undefined;
10
+ constructor(error: Error & {
11
+ stack?: string;
12
+ }, itemIndex?: number);
13
+ private populateFromStack;
14
+ private toLineNumberDisplay;
15
+ private toErrorDetailsAndType;
16
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutionError = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class ExecutionError extends n8n_workflow_1.ApplicationError {
6
+ constructor(error, itemIndex) {
7
+ super(error.message);
8
+ this.description = null;
9
+ this.itemIndex = undefined;
10
+ this.context = undefined;
11
+ this.stack = '';
12
+ this.lineNumber = undefined;
13
+ this.itemIndex = itemIndex;
14
+ if (this.itemIndex !== undefined) {
15
+ this.context = { itemIndex: this.itemIndex };
16
+ }
17
+ this.stack = error.stack ?? '';
18
+ this.populateFromStack();
19
+ }
20
+ populateFromStack() {
21
+ const stackRows = this.stack.split('\n');
22
+ if (stackRows.length === 0) {
23
+ this.message = 'Unknown error';
24
+ }
25
+ const messageRow = stackRows.find((line) => line.includes('Error:'));
26
+ const lineNumberRow = stackRows.find((line) => line.includes('Code:'));
27
+ const lineNumberDisplay = this.toLineNumberDisplay(lineNumberRow);
28
+ if (!messageRow) {
29
+ this.message = `Unknown error ${lineNumberDisplay}`;
30
+ return;
31
+ }
32
+ const [errorDetails, errorType] = this.toErrorDetailsAndType(messageRow);
33
+ if (errorType)
34
+ this.description = errorType;
35
+ if (!errorDetails) {
36
+ this.message = `Unknown error ${lineNumberDisplay}`;
37
+ return;
38
+ }
39
+ this.message = `${errorDetails} ${lineNumberDisplay}`;
40
+ }
41
+ toLineNumberDisplay(lineNumberRow) {
42
+ const errorLineNumberMatch = lineNumberRow?.match(/Code:(?<lineNumber>\d+)/);
43
+ if (!errorLineNumberMatch?.groups?.lineNumber)
44
+ return null;
45
+ const lineNumber = errorLineNumberMatch.groups.lineNumber;
46
+ this.lineNumber = Number(lineNumber);
47
+ if (!lineNumber)
48
+ return '';
49
+ return this.itemIndex === undefined
50
+ ? `[line ${lineNumber}]`
51
+ : `[line ${lineNumber}, for item ${this.itemIndex}]`;
52
+ }
53
+ toErrorDetailsAndType(messageRow) {
54
+ if (!messageRow)
55
+ return [null, null];
56
+ const [errorDetails, errorType] = messageRow
57
+ .split(':')
58
+ .reverse()
59
+ .map((i) => i.trim());
60
+ return [errorDetails, errorType === 'Error' ? null : errorType];
61
+ }
62
+ }
63
+ exports.ExecutionError = ExecutionError;
64
+ //# sourceMappingURL=execution-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-error.js","sourceRoot":"","sources":["../../../src/js-task-runner/errors/execution-error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ApplicationError } from 'n8n-workflow';
2
+ export declare class ValidationError extends ApplicationError {
3
+ description: string;
4
+ itemIndex: number | undefined;
5
+ context: {
6
+ itemIndex: number;
7
+ } | undefined;
8
+ lineNumber: number | undefined;
9
+ constructor({ message, description, itemIndex, lineNumber, }: {
10
+ message: string;
11
+ description: string;
12
+ itemIndex?: number;
13
+ lineNumber?: number;
14
+ });
15
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationError = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class ValidationError extends n8n_workflow_1.ApplicationError {
6
+ constructor({ message, description, itemIndex, lineNumber, }) {
7
+ super(message);
8
+ this.description = '';
9
+ this.itemIndex = undefined;
10
+ this.context = undefined;
11
+ this.lineNumber = undefined;
12
+ this.lineNumber = lineNumber;
13
+ this.itemIndex = itemIndex;
14
+ if (this.lineNumber !== undefined && this.itemIndex !== undefined) {
15
+ this.message = `${message} [line ${lineNumber}, for item ${itemIndex}]`;
16
+ }
17
+ else if (this.lineNumber !== undefined) {
18
+ this.message = `${message} [line ${lineNumber}]`;
19
+ }
20
+ else if (this.itemIndex !== undefined) {
21
+ this.message = `${message} [item ${itemIndex}]`;
22
+ }
23
+ else {
24
+ this.message = message;
25
+ }
26
+ this.description = description;
27
+ if (this.itemIndex !== undefined) {
28
+ this.context = { itemIndex: this.itemIndex };
29
+ }
30
+ }
31
+ }
32
+ exports.ValidationError = ValidationError;
33
+ //# sourceMappingURL=validation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../../src/js-task-runner/errors/validation-error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAa,eAAgB,SAAQ,+BAAgB;IASpD,YAAY,EACX,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,GAMV;QACA,KAAK,CAAC,OAAO,CAAC,CAAC;QAnBhB,gBAAW,GAAG,EAAE,CAAC;QAEjB,cAAS,GAAuB,SAAS,CAAC;QAE1C,YAAO,GAAsC,SAAS,CAAC;QAEvD,eAAU,GAAuB,SAAS,CAAC;QAe1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,GAAG,GAAG,OAAO,UAAU,UAAU,cAAc,SAAS,GAAG,CAAC;QACzE,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,GAAG,OAAO,UAAU,UAAU,GAAG,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,GAAG,GAAG,OAAO,UAAU,SAAS,GAAG,CAAC;QACjD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,CAAC;IACF,CAAC;CACD;AAzCD,0CAyCC"}
@@ -1,8 +1,11 @@
1
- import { type INode, type ITaskDataConnections, type WorkflowParameters, type IDataObject, type IExecuteData, type INodeExecutionData, type INodeParameters, type IRunExecutionData, type WorkflowExecuteMode } from 'n8n-workflow';
2
- import type { TaskResultData } from './runner-types';
3
- import { type Task, TaskRunner } from './task-runner';
4
- interface JSExecSettings {
1
+ import type { CodeExecutionMode, INode, ITaskDataConnections, WorkflowParameters, IDataObject, IExecuteData, INodeExecutionData, INodeParameters, IRunExecutionData, WorkflowExecuteMode, EnvProviderState } from 'n8n-workflow';
2
+ import type { TaskResultData } from '../runner-types';
3
+ import { type Task, TaskRunner } from '../task-runner';
4
+ export interface JSExecSettings {
5
5
  code: string;
6
+ nodeMode: CodeExecutionMode;
7
+ workflowMode: WorkflowExecuteMode;
8
+ continueOnFail: boolean;
6
9
  mode: WorkflowExecuteMode;
7
10
  }
8
11
  export interface PartialAdditionalData {
@@ -30,6 +33,7 @@ export interface AllCodeTaskData {
30
33
  connectionInputData: INodeExecutionData[];
31
34
  siblingParameters: INodeParameters;
32
35
  mode: WorkflowExecuteMode;
36
+ envProviderState?: EnvProviderState;
33
37
  executeData?: IExecuteData;
34
38
  defaultReturnRunIndex: number;
35
39
  selfData: IDataObject;
@@ -39,5 +43,8 @@ export interface AllCodeTaskData {
39
43
  export declare class JsTaskRunner extends TaskRunner {
40
44
  constructor(taskType: string, wsUrl: string, grantToken: string, maxConcurrency: number, name?: string);
41
45
  executeTask(task: Task<JSExecSettings>): Promise<TaskResultData>;
46
+ private runForAllItems;
47
+ private runForEachItem;
48
+ private createDataProxy;
49
+ private getErrorMessageFromVmError;
42
50
  }
43
- export {};
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.JsTaskRunner = void 0;
27
+ const n8n_core_1 = require("n8n-core");
28
+ const n8n_workflow_1 = require("n8n-workflow");
29
+ const a = __importStar(require("node:assert"));
30
+ const node_vm_1 = require("node:vm");
31
+ const task_runner_1 = require("../task-runner");
32
+ const result_validation_1 = require("./result-validation");
33
+ class JsTaskRunner extends task_runner_1.TaskRunner {
34
+ constructor(taskType, wsUrl, grantToken, maxConcurrency, name) {
35
+ super(taskType, wsUrl, grantToken, maxConcurrency, name ?? 'JS Task Runner');
36
+ }
37
+ async executeTask(task) {
38
+ const allData = await this.requestData(task.taskId, 'all');
39
+ const settings = task.settings;
40
+ a.ok(settings, 'JS Code not sent to runner');
41
+ const workflowParams = allData.workflow;
42
+ const workflow = new n8n_workflow_1.Workflow({
43
+ ...workflowParams,
44
+ nodeTypes: {
45
+ getByNameAndVersion() {
46
+ return undefined;
47
+ },
48
+ getByName() {
49
+ return undefined;
50
+ },
51
+ getKnownTypes() {
52
+ return {};
53
+ },
54
+ },
55
+ });
56
+ const customConsole = {
57
+ log: (...args) => {
58
+ const logOutput = args
59
+ .map((arg) => (typeof arg === 'object' && arg !== null ? JSON.stringify(arg) : arg))
60
+ .join(' ');
61
+ void this.makeRpcCall(task.taskId, 'logNodeOutput', [logOutput]);
62
+ },
63
+ };
64
+ const result = settings.nodeMode === 'runOnceForAllItems'
65
+ ? await this.runForAllItems(task.taskId, settings, allData, workflow, customConsole)
66
+ : await this.runForEachItem(task.taskId, settings, allData, workflow, customConsole);
67
+ return {
68
+ result,
69
+ customData: allData.runExecutionData.resultData.metadata,
70
+ };
71
+ }
72
+ async runForAllItems(taskId, settings, allData, workflow, customConsole) {
73
+ const dataProxy = this.createDataProxy(allData, workflow, allData.itemIndex);
74
+ const inputItems = allData.connectionInputData;
75
+ const context = {
76
+ require,
77
+ module: {},
78
+ console: customConsole,
79
+ items: inputItems,
80
+ ...dataProxy,
81
+ ...this.buildRpcCallObject(taskId),
82
+ };
83
+ try {
84
+ const result = (await (0, node_vm_1.runInNewContext)(`module.exports = async function() {${settings.code}\n}()`, context));
85
+ if (result === null) {
86
+ return [];
87
+ }
88
+ return (0, result_validation_1.validateRunForAllItemsOutput)(result);
89
+ }
90
+ catch (error) {
91
+ if (settings.continueOnFail) {
92
+ return [{ json: { error: this.getErrorMessageFromVmError(error) } }];
93
+ }
94
+ error.node = allData.node;
95
+ throw error;
96
+ }
97
+ }
98
+ async runForEachItem(taskId, settings, allData, workflow, customConsole) {
99
+ const inputItems = allData.connectionInputData;
100
+ const returnData = [];
101
+ for (let index = 0; index < inputItems.length; index++) {
102
+ const item = inputItems[index];
103
+ const dataProxy = this.createDataProxy(allData, workflow, index);
104
+ const context = {
105
+ require,
106
+ module: {},
107
+ console: customConsole,
108
+ item,
109
+ ...dataProxy,
110
+ ...this.buildRpcCallObject(taskId),
111
+ };
112
+ try {
113
+ let result = (await (0, node_vm_1.runInNewContext)(`module.exports = async function() {${settings.code}\n}()`, context));
114
+ if (result === null) {
115
+ continue;
116
+ }
117
+ result = (0, result_validation_1.validateRunForEachItemOutput)(result, index);
118
+ if (result) {
119
+ returnData.push(result.binary
120
+ ? {
121
+ json: result.json,
122
+ pairedItem: { item: index },
123
+ binary: result.binary,
124
+ }
125
+ : {
126
+ json: result.json,
127
+ pairedItem: { item: index },
128
+ });
129
+ }
130
+ }
131
+ catch (error) {
132
+ if (!settings.continueOnFail) {
133
+ error.node = allData.node;
134
+ throw error;
135
+ }
136
+ returnData.push({
137
+ json: { error: this.getErrorMessageFromVmError(error) },
138
+ pairedItem: {
139
+ item: index,
140
+ },
141
+ });
142
+ }
143
+ }
144
+ return returnData;
145
+ }
146
+ createDataProxy(allData, workflow, itemIndex) {
147
+ return new n8n_workflow_1.WorkflowDataProxy(workflow, allData.runExecutionData, allData.runIndex, itemIndex, allData.activeNodeName, allData.connectionInputData, allData.siblingParameters, allData.mode, (0, n8n_core_1.getAdditionalKeys)(allData.additionalData, allData.mode, allData.runExecutionData), allData.executeData, allData.defaultReturnRunIndex, allData.selfData, allData.contextNodeName, allData.envProviderState ?? {
148
+ env: {},
149
+ isEnvAccessBlocked: false,
150
+ isProcessAvailable: true,
151
+ }).getDataProxy();
152
+ }
153
+ getErrorMessageFromVmError(error) {
154
+ if (typeof error === 'object' && !!error && 'message' in error) {
155
+ return error.message;
156
+ }
157
+ return JSON.stringify(error);
158
+ }
159
+ }
160
+ exports.JsTaskRunner = JsTaskRunner;
161
+ //# sourceMappingURL=js-task-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-task-runner.js","sourceRoot":"","sources":["../../src/js-task-runner/js-task-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA6C;AAC7C,+CAIsB;AAgBtB,+CAAiC;AACjC,qCAAwD;AAGxD,+CAAsD;AAEtD,2DAAiG;AAmDjG,MAAa,YAAa,SAAQ,wBAAU;IAC3C,YACC,QAAgB,EAChB,KAAa,EACb,UAAkB,EAClB,cAAsB,EACtB,IAAa;QAEb,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,IAAI,gBAAgB,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAA0B;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAkB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAE7C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,uBAAQ,CAAC;YAC7B,GAAG,cAAc;YACjB,SAAS,EAAE;gBACV,mBAAmB;oBAClB,OAAO,SAAiC,CAAC;gBAC1C,CAAC;gBACD,SAAS;oBACR,OAAO,SAAiC,CAAC;gBAC1C,CAAC;gBACD,aAAa;oBACZ,OAAO,EAAE,CAAC;gBACX,CAAC;aACD;SACD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG;YAGrB,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI;qBACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBACnF,IAAI,CAAC,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAClE,CAAC;SACD,CAAC;QAEF,MAAM,MAAM,GACX,QAAQ,CAAC,QAAQ,KAAK,oBAAoB;YACzC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;YACpF,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEvF,OAAO;YACN,MAAM;YACN,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ;SACxD,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,cAAc,CAC3B,MAAc,EACd,QAAwB,EACxB,OAAwB,EACxB,QAAkB,EAClB,aAA4B;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAE/C,MAAM,OAAO,GAAY;YACxB,OAAO;YACP,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,aAAa;YAEtB,KAAK,EAAE,UAAU;YACjB,GAAG,SAAS;YACZ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;SAClC,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,CAAC,MAAM,IAAA,yBAAe,EACpC,sCAAsC,QAAQ,CAAC,IAAI,OAAO,EAC1D,OAAO,CACP,CAA6B,CAAC;YAE/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,EAAE,CAAC;YACX,CAAC;YAED,OAAO,IAAA,gDAA4B,EAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC7B,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;YAEA,KAAiC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAKO,KAAK,CAAC,cAAc,CAC3B,MAAc,EACd,QAAwB,EACxB,OAAwB,EACxB,QAAkB,EAClB,aAA4B;QAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAC/C,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjE,MAAM,OAAO,GAAY;gBACxB,OAAO;gBACP,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,aAAa;gBACtB,IAAI;gBAEJ,GAAG,SAAS;gBACZ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;aAClC,CAAC;YAEF,IAAI,CAAC;gBACJ,IAAI,MAAM,GAAG,CAAC,MAAM,IAAA,yBAAe,EAClC,sCAAsC,QAAQ,CAAC,IAAI,OAAO,EAC1D,OAAO,CACP,CAAmC,CAAC;gBAGrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACrB,SAAS;gBACV,CAAC;gBAED,MAAM,GAAG,IAAA,gDAA4B,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrD,IAAI,MAAM,EAAE,CAAC;oBACZ,UAAU,CAAC,IAAI,CACd,MAAM,CAAC,MAAM;wBACZ,CAAC,CAAC;4BACA,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;4BAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;yBACrB;wBACF,CAAC,CAAC;4BACA,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;yBAC3B,CACH,CAAC;gBACH,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAC7B,KAAiC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBACvD,MAAM,KAAK,CAAC;gBACb,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;oBACvD,UAAU,EAAE;wBACX,IAAI,EAAE,KAAK;qBACX;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,OAAwB,EAAE,QAAkB,EAAE,SAAiB;QACtF,OAAO,IAAI,gCAAiB,CAC3B,QAAQ,EACR,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,QAAQ,EAChB,SAAS,EACT,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,IAAI,EACZ,IAAA,4BAAiB,EAChB,OAAO,CAAC,cAAgD,EACxD,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,gBAAgB,CACxB,EACD,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,qBAAqB,EAC7B,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,eAAe,EAGvB,OAAO,CAAC,gBAAgB,IAAI;YAC3B,GAAG,EAAE,EAAE;YACP,kBAAkB,EAAE,KAAK;YACzB,kBAAkB,EAAE,IAAI;SACxB,CACD,CAAC,YAAY,EAAE,CAAC;IAClB,CAAC;IAEO,0BAA0B,CAAC,KAAc;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC,OAAiB,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD;AA7MD,oCA6MC"}
@@ -0,0 +1,3 @@
1
+ export declare function isObject(maybe: unknown): maybe is {
2
+ [key: string]: unknown;
3
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isObject = isObject;
4
+ function isObject(maybe) {
5
+ return (typeof maybe === 'object' && maybe !== null && !Array.isArray(maybe) && !(maybe instanceof Date));
6
+ }
7
+ //# sourceMappingURL=obj-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj-utils.js","sourceRoot":"","sources":["../../src/js-task-runner/obj-utils.ts"],"names":[],"mappings":";;AAAA,4BAIC;AAJD,SAAgB,QAAQ,CAAC,KAAc;IACtC,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CAChG,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { INodeExecutionData } from 'n8n-workflow';
2
+ export declare const REQUIRED_N8N_ITEM_KEYS: Set<string>;
3
+ export declare function validateRunForAllItemsOutput(executionResult: INodeExecutionData | INodeExecutionData[] | undefined): INodeExecutionData[];
4
+ export declare function validateRunForEachItemOutput(executionResult: INodeExecutionData | undefined, itemIndex: number): INodeExecutionData;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REQUIRED_N8N_ITEM_KEYS = void 0;
4
+ exports.validateRunForAllItemsOutput = validateRunForAllItemsOutput;
5
+ exports.validateRunForEachItemOutput = validateRunForEachItemOutput;
6
+ const n8n_core_1 = require("n8n-core");
7
+ const validation_error_1 = require("./errors/validation-error");
8
+ const obj_utils_1 = require("./obj-utils");
9
+ exports.REQUIRED_N8N_ITEM_KEYS = new Set(['json', 'binary', 'pairedItem', 'error']);
10
+ function validateTopLevelKeys(item, itemIndex) {
11
+ for (const key in item) {
12
+ if (Object.prototype.hasOwnProperty.call(item, key)) {
13
+ if (exports.REQUIRED_N8N_ITEM_KEYS.has(key))
14
+ return;
15
+ throw new validation_error_1.ValidationError({
16
+ message: `Unknown top-level item key: ${key}`,
17
+ description: 'Access the properties of an item under `.json`, e.g. `item.json`',
18
+ itemIndex,
19
+ });
20
+ }
21
+ }
22
+ }
23
+ function validateItem({ json, binary }, itemIndex) {
24
+ if (json === undefined || !(0, obj_utils_1.isObject)(json)) {
25
+ throw new validation_error_1.ValidationError({
26
+ message: "A 'json' property isn't an object",
27
+ description: "In the returned data, every key named 'json' must point to an object.",
28
+ itemIndex,
29
+ });
30
+ }
31
+ if (binary !== undefined && !(0, obj_utils_1.isObject)(binary)) {
32
+ throw new validation_error_1.ValidationError({
33
+ message: "A 'binary' property isn't an object",
34
+ description: "In the returned data, every key named 'binary' must point to an object.",
35
+ itemIndex,
36
+ });
37
+ }
38
+ }
39
+ function validateRunForAllItemsOutput(executionResult) {
40
+ if (typeof executionResult !== 'object') {
41
+ throw new validation_error_1.ValidationError({
42
+ message: "Code doesn't return items properly",
43
+ description: 'Please return an array of objects, one for each item you would like to output.',
44
+ });
45
+ }
46
+ if (Array.isArray(executionResult)) {
47
+ const mustHaveTopLevelN8nKey = executionResult.some((item) => Object.keys(item).find((key) => exports.REQUIRED_N8N_ITEM_KEYS.has(key)));
48
+ if (mustHaveTopLevelN8nKey) {
49
+ for (let index = 0; index < executionResult.length; index++) {
50
+ const item = executionResult[index];
51
+ validateTopLevelKeys(item, index);
52
+ }
53
+ }
54
+ }
55
+ const returnData = (0, n8n_core_1.normalizeItems)(executionResult);
56
+ returnData.forEach(validateItem);
57
+ return returnData;
58
+ }
59
+ function validateRunForEachItemOutput(executionResult, itemIndex) {
60
+ if (typeof executionResult !== 'object') {
61
+ throw new validation_error_1.ValidationError({
62
+ message: "Code doesn't return an object",
63
+ description: `Please return an object representing the output item. ('${executionResult}' was returned instead.)`,
64
+ itemIndex,
65
+ });
66
+ }
67
+ if (Array.isArray(executionResult)) {
68
+ const firstSentence = executionResult.length > 0
69
+ ? `An array of ${typeof executionResult[0]}s was returned.`
70
+ : 'An empty array was returned.';
71
+ throw new validation_error_1.ValidationError({
72
+ message: "Code doesn't return a single object",
73
+ description: `${firstSentence} If you need to output multiple items, please use the 'Run Once for All Items' mode instead.`,
74
+ itemIndex,
75
+ });
76
+ }
77
+ const [returnData] = (0, n8n_core_1.normalizeItems)([executionResult]);
78
+ validateItem(returnData, itemIndex);
79
+ validateTopLevelKeys(returnData, itemIndex);
80
+ return returnData;
81
+ }
82
+ //# sourceMappingURL=result-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-validation.js","sourceRoot":"","sources":["../../src/js-task-runner/result-validation.ts"],"names":[],"mappings":"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"}
package/dist/start.js CHANGED
@@ -26,7 +26,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const n8n_workflow_1 = require("n8n-workflow");
27
27
  const a = __importStar(require("node:assert/strict"));
28
28
  const authenticator_1 = require("./authenticator");
29
- const code_1 = require("./code");
29
+ const js_task_runner_1 = require("./js-task-runner/js-task-runner");
30
+ let runner;
31
+ let isShuttingDown = false;
30
32
  function readAndParseConfig() {
31
33
  const authToken = process.env.N8N_RUNNERS_AUTH_TOKEN;
32
34
  const grantToken = process.env.N8N_RUNNERS_GRANT_TOKEN;
@@ -34,11 +36,33 @@ function readAndParseConfig() {
34
36
  throw new n8n_workflow_1.ApplicationError('Missing task runner authentication. Use either N8N_RUNNERS_AUTH_TOKEN or N8N_RUNNERS_GRANT_TOKEN to configure it');
35
37
  }
36
38
  return {
37
- n8nUri: process.env.N8N_RUNNERS_N8N_URI ?? 'localhost:5678',
39
+ n8nUri: process.env.N8N_RUNNERS_N8N_URI ?? '127.0.0.1:5679',
38
40
  authToken,
39
41
  grantToken,
40
42
  };
41
43
  }
44
+ function createSignalHandler(signal) {
45
+ return async function onSignal() {
46
+ if (isShuttingDown) {
47
+ return;
48
+ }
49
+ console.log(`Received ${signal} signal, shutting down...`);
50
+ isShuttingDown = true;
51
+ try {
52
+ if (runner) {
53
+ await runner.stop();
54
+ runner = undefined;
55
+ }
56
+ }
57
+ catch (e) {
58
+ const error = (0, n8n_workflow_1.ensureError)(e);
59
+ console.error('Error stopping task runner', { error });
60
+ }
61
+ finally {
62
+ process.exit(0);
63
+ }
64
+ };
65
+ }
42
66
  void (async function start() {
43
67
  const config = readAndParseConfig();
44
68
  let grantToken = config.grantToken;
@@ -49,7 +73,13 @@ void (async function start() {
49
73
  n8nUri: config.n8nUri,
50
74
  });
51
75
  }
52
- const wsUrl = `ws://${config.n8nUri}/rest/runners/_ws`;
53
- new code_1.JsTaskRunner('javascript', wsUrl, grantToken, 5);
54
- })();
76
+ const wsUrl = `ws://${config.n8nUri}/runners/_ws`;
77
+ runner = new js_task_runner_1.JsTaskRunner('javascript', wsUrl, grantToken, 5);
78
+ process.on('SIGINT', createSignalHandler('SIGINT'));
79
+ process.on('SIGTERM', createSignalHandler('SIGTERM'));
80
+ })().catch((e) => {
81
+ const error = (0, n8n_workflow_1.ensureError)(e);
82
+ console.error('Task runner failed to start', { error });
83
+ process.exit(1);
84
+ });
55
85
  //# sourceMappingURL=start.js.map
package/dist/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgD;AAChD,sDAAwC;AAExC,mDAA+C;AAC/C,iCAAsC;AAQtC,SAAS,kBAAkB;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACvD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,+BAAgB,CAAC,kHAAkH,CAAC,CAAA;IAC/I,CAAC;IAED,OAAO;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,gBAAgB;QAC3D,SAAS;QACT,UAAU;KACV,CAAC;AACH,CAAC;AAED,KAAK,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvB,UAAU,GAAG,MAAM,IAAA,4BAAY,EAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,MAAM,CAAC,MAAM,mBAAmB,CAAC;IACvD,IAAI,mBAAY,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA6D;AAC7D,sDAAwC;AAExC,mDAA+C;AAC/C,oEAA+D;AAE/D,IAAI,MAAgC,CAAC;AACrC,IAAI,cAAc,GAAG,KAAK,CAAC;AAQ3B,SAAS,kBAAkB;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACvD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,+BAAgB,CACzB,kHAAkH,CAClH,CAAC;IACH,CAAC;IAED,OAAO;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,gBAAgB;QAC3D,SAAS;QACT,UAAU;KACV,CAAC;AACH,CAAC;AAED,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;YACpB,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,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED,KAAK,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvB,UAAU,GAAG,MAAM,IAAA,4BAAY,EAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,MAAM,CAAC,MAAM,cAAc,CAAC;IAClD,MAAM,GAAG,IAAI,6BAAY,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAE9D,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"}
@@ -55,5 +55,8 @@ export declare abstract class TaskRunner {
55
55
  makeRpcCall(taskId: string, name: RunnerMessage.ToN8n.RPC['name'], params: unknown[]): Promise<unknown>;
56
56
  handleRpcResponse(callId: string, status: N8nMessage.ToRunner.RPCResponse['status'], data: unknown): void;
57
57
  buildRpcCallObject(taskId: string): RPCCallObject;
58
+ stop(): Promise<void>;
59
+ private closeConnection;
60
+ private waitUntilAllTasksAreDone;
58
61
  }
59
62
  export {};
@@ -191,12 +191,8 @@ class TaskRunner {
191
191
  this.taskDone(taskId, data);
192
192
  }
193
193
  catch (e) {
194
- if ((0, n8n_workflow_1.ensureError)(e)) {
195
- this.taskErrored(taskId, e.message);
196
- }
197
- else {
198
- this.taskErrored(taskId, e);
199
- }
194
+ const error = (0, n8n_workflow_1.ensureError)(e);
195
+ this.taskErrored(taskId, error);
200
196
  }
201
197
  }
202
198
  async executeTask(_task) {
@@ -276,6 +272,26 @@ class TaskRunner {
276
272
  }
277
273
  return rpcObject;
278
274
  }
275
+ async stop() {
276
+ this.stopTaskOffers();
277
+ await this.waitUntilAllTasksAreDone();
278
+ await this.closeConnection();
279
+ }
280
+ async closeConnection() {
281
+ this.ws.close(1000, 'Shutting down');
282
+ await new Promise((resolve) => {
283
+ this.ws.once('close', resolve);
284
+ });
285
+ }
286
+ async waitUntilAllTasksAreDone(maxWaitTimeInMs = 30_000) {
287
+ const start = Date.now();
288
+ while (this.runningTasks.size > 0) {
289
+ if (Date.now() - start > maxWaitTimeInMs) {
290
+ throw new n8n_workflow_1.ApplicationError('Timeout while waiting for tasks to finish');
291
+ }
292
+ await new Promise((resolve) => setTimeout(resolve, 100));
293
+ }
294
+ }
279
295
  }
280
296
  exports.TaskRunner = TaskRunner;
281
297
  //# sourceMappingURL=task-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../src/task-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../src/task-runner.ts"],"names":[],"mappings":"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"}