@n8n/task-runner 1.10.1 → 1.12.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.
Files changed (36) hide show
  1. package/LICENSE.md +5 -3
  2. package/dist/build.tsbuildinfo +1 -1
  3. package/dist/config/base-runner-config.js +2 -2
  4. package/dist/config/base-runner-config.js.map +1 -1
  5. package/dist/js-task-runner/built-ins-parser/built-ins-parser.js.map +1 -1
  6. package/dist/js-task-runner/errors/execution-error.d.ts +0 -1
  7. package/dist/js-task-runner/errors/execution-error.js +5 -3
  8. package/dist/js-task-runner/errors/execution-error.js.map +1 -1
  9. package/dist/js-task-runner/errors/unsupported-function.error.d.ts +4 -0
  10. package/dist/js-task-runner/errors/unsupported-function.error.js +13 -0
  11. package/dist/js-task-runner/errors/unsupported-function.error.js.map +1 -0
  12. package/dist/js-task-runner/js-task-runner.d.ts +9 -2
  13. package/dist/js-task-runner/js-task-runner.js +56 -35
  14. package/dist/js-task-runner/js-task-runner.js.map +1 -1
  15. package/dist/js-task-runner/result-validation.js +7 -1
  16. package/dist/js-task-runner/result-validation.js.map +1 -1
  17. package/dist/message-types.d.ts +3 -3
  18. package/dist/polyfills.d.ts +0 -0
  19. package/dist/polyfills.js +5 -0
  20. package/dist/polyfills.js.map +1 -0
  21. package/dist/runner-types.d.ts +3 -1
  22. package/dist/runner-types.js +20 -10
  23. package/dist/runner-types.js.map +1 -1
  24. package/dist/start.d.ts +1 -1
  25. package/dist/start.js +7 -9
  26. package/dist/start.js.map +1 -1
  27. package/dist/task-runner.d.ts +16 -18
  28. package/dist/task-runner.js +147 -105
  29. package/dist/task-runner.js.map +1 -1
  30. package/dist/task-state.d.ts +17 -0
  31. package/dist/task-state.js +63 -0
  32. package/dist/task-state.js.map +1 -0
  33. package/package.json +8 -6
  34. package/dist/error-reporter.d.ts +0 -12
  35. package/dist/error-reporter.js +0 -111
  36. package/dist/error-reporter.js.map +0 -1
@@ -1,16 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TaskRunner = void 0;
3
+ exports.TaskRunner = exports.noOp = void 0;
4
+ const n8n_core_1 = require("n8n-core");
4
5
  const n8n_workflow_1 = require("n8n-workflow");
5
6
  const nanoid_1 = require("nanoid");
6
7
  const node_events_1 = require("node:events");
7
8
  const ws_1 = require("ws");
9
+ const timeout_error_1 = require("./js-task-runner/errors/timeout-error");
8
10
  const node_types_1 = require("./node-types");
9
- const runner_types_1 = require("./runner-types");
11
+ const task_state_1 = require("./task-state");
10
12
  const task_cancelled_error_1 = require("./js-task-runner/errors/task-cancelled-error");
11
13
  const OFFER_VALID_TIME_MS = 5000;
12
14
  const OFFER_VALID_EXTRA_MS = 100;
13
15
  const msToNs = (ms) => BigInt(ms * 1_000_000);
16
+ const noOp = () => { };
17
+ exports.noOp = noOp;
14
18
  class TaskRunner extends node_events_1.EventEmitter {
15
19
  constructor(opts) {
16
20
  super();
@@ -22,7 +26,6 @@ class TaskRunner extends node_events_1.EventEmitter {
22
26
  this.nodeTypesRequests = new Map();
23
27
  this.rpcCalls = new Map();
24
28
  this.nodeTypes = new node_types_1.TaskRunnerNodeTypes([]);
25
- this.taskCancellations = new Map();
26
29
  this.receiveMessage = (message) => {
27
30
  const data = JSON.parse(message.data);
28
31
  void this.onMessage(data);
@@ -89,8 +92,10 @@ class TaskRunner extends node_events_1.EventEmitter {
89
92
  }
90
93
  sendOffers() {
91
94
  this.deleteStaleOffers();
92
- const offersToSend = this.maxConcurrency -
93
- (Object.values(this.openOffers).length + Object.values(this.runningTasks).length);
95
+ if (!this.canSendOffers) {
96
+ return;
97
+ }
98
+ const offersToSend = this.maxConcurrency - (this.openOffers.size + this.runningTasks.size);
94
99
  for (let i = 0; i < offersToSend; i++) {
95
100
  const validForInMs = OFFER_VALID_TIME_MS + (0, n8n_workflow_1.randomInt)(500);
96
101
  const validUntil = process.hrtime.bigint() + msToNs(validForInMs + OFFER_VALID_EXTRA_MS);
@@ -126,7 +131,7 @@ class TaskRunner extends node_events_1.EventEmitter {
126
131
  this.offerAccepted(message.offerId, message.taskId);
127
132
  break;
128
133
  case 'broker:taskcancel':
129
- this.taskCancelled(message.taskId, message.reason);
134
+ void this.taskCancelled(message.taskId, message.reason);
130
135
  break;
131
136
  case 'broker:tasksettings':
132
137
  void this.receivedSettings(message.taskId, message.settings);
@@ -156,10 +161,11 @@ class TaskRunner extends node_events_1.EventEmitter {
156
161
  request.resolve(nodeTypes);
157
162
  }
158
163
  hasOpenTasks() {
159
- return Object.values(this.runningTasks).length < this.maxConcurrency;
164
+ return this.runningTasks.size < this.maxConcurrency;
160
165
  }
161
166
  offerAccepted(offerId, taskId) {
162
167
  if (!this.hasOpenTasks()) {
168
+ this.openOffers.delete(offerId);
163
169
  this.send({
164
170
  type: 'runner:taskrejected',
165
171
  taskId,
@@ -180,95 +186,83 @@ class TaskRunner extends node_events_1.EventEmitter {
180
186
  this.openOffers.delete(offerId);
181
187
  }
182
188
  this.resetIdleTimer();
183
- this.runningTasks.set(taskId, {
189
+ const taskState = new task_state_1.TaskState({
184
190
  taskId,
185
- active: false,
186
- cancelled: false,
191
+ timeoutInS: this.taskTimeout,
192
+ onTimeout: () => {
193
+ void this.taskTimedOut(taskId);
194
+ },
187
195
  });
196
+ this.runningTasks.set(taskId, taskState);
188
197
  this.send({
189
198
  type: 'runner:taskaccepted',
190
199
  taskId,
191
200
  });
192
201
  }
193
- taskCancelled(taskId, reason) {
194
- const task = this.runningTasks.get(taskId);
195
- if (!task) {
202
+ async taskCancelled(taskId, reason) {
203
+ const taskState = this.runningTasks.get(taskId);
204
+ if (!taskState) {
196
205
  return;
197
206
  }
198
- task.cancelled = true;
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
- }
204
- }
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);
215
- }
216
- if (!task.active)
217
- this.runningTasks.delete(taskId);
218
- this.sendOffers();
219
- }
220
- taskErrored(taskId, error) {
221
- this.send({
222
- type: 'runner:taskerror',
223
- taskId,
224
- error,
207
+ await taskState.caseOf({
208
+ waitingForSettings: () => this.finishTask(taskState),
209
+ 'aborting:timeout': exports.noOp,
210
+ 'aborting:cancelled': exports.noOp,
211
+ running: () => {
212
+ taskState.status = 'aborting:cancelled';
213
+ taskState.abortController.abort('cancelled');
214
+ this.cancelTaskRequests(taskId, reason);
215
+ },
225
216
  });
226
- this.runningTasks.delete(taskId);
227
- this.sendOffers();
228
217
  }
229
- taskDone(taskId, data) {
230
- this.send({
231
- type: 'runner:taskdone',
232
- taskId,
233
- data,
218
+ async taskTimedOut(taskId) {
219
+ const taskState = this.runningTasks.get(taskId);
220
+ if (!taskState) {
221
+ return;
222
+ }
223
+ await taskState.caseOf({
224
+ waitingForSettings: () => {
225
+ try {
226
+ this.send({
227
+ type: 'runner:taskerror',
228
+ taskId,
229
+ error: new timeout_error_1.TimeoutError(this.taskTimeout),
230
+ });
231
+ }
232
+ finally {
233
+ this.finishTask(taskState);
234
+ }
235
+ },
236
+ 'aborting:timeout': task_state_1.TaskState.throwUnexpectedTaskStatus,
237
+ running: () => {
238
+ taskState.status = 'aborting:timeout';
239
+ taskState.abortController.abort('timeout');
240
+ this.cancelTaskRequests(taskId, 'timeout');
241
+ },
242
+ 'aborting:cancelled': exports.noOp,
234
243
  });
235
- this.runningTasks.delete(taskId);
236
- this.sendOffers();
237
244
  }
238
245
  async receivedSettings(taskId, settings) {
239
- const task = this.runningTasks.get(taskId);
240
- if (!task) {
241
- return;
242
- }
243
- if (task.cancelled) {
244
- this.runningTasks.delete(taskId);
246
+ const taskState = this.runningTasks.get(taskId);
247
+ if (!taskState) {
245
248
  return;
246
249
  }
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);
255
- task.settings = settings;
256
- task.active = true;
257
- try {
258
- const data = await this.executeTask(task, controller.signal);
259
- this.taskDone(taskId, data);
260
- }
261
- catch (error) {
262
- if (!task.cancelled)
263
- this.taskErrored(taskId, error);
264
- }
265
- finally {
266
- clearTimeout(taskTimeout);
267
- this.taskCancellations.delete(taskId);
268
- this.resetIdleTimer();
269
- }
250
+ await taskState.caseOf({
251
+ 'aborting:cancelled': task_state_1.TaskState.throwUnexpectedTaskStatus,
252
+ 'aborting:timeout': task_state_1.TaskState.throwUnexpectedTaskStatus,
253
+ running: task_state_1.TaskState.throwUnexpectedTaskStatus,
254
+ waitingForSettings: async () => {
255
+ taskState.status = 'running';
256
+ await this.executeTask({
257
+ taskId,
258
+ settings,
259
+ }, taskState.abortController.signal)
260
+ .then(async (data) => await this.taskExecutionSucceeded(taskState, data))
261
+ .catch(async (error) => await this.taskExecutionFailed(taskState, error));
262
+ },
263
+ });
270
264
  }
271
- async executeTask(_task, _signal) {
265
+ async executeTask(_taskParams, _signal) {
272
266
  throw new n8n_workflow_1.ApplicationError('Unimplemented');
273
267
  }
274
268
  async requestNodeTypes(taskId, requestParams) {
@@ -296,7 +290,7 @@ class TaskRunner extends node_events_1.EventEmitter {
296
290
  }
297
291
  async requestData(taskId, requestParams) {
298
292
  const requestId = (0, nanoid_1.nanoid)();
299
- const p = new Promise((resolve, reject) => {
293
+ const dataRequestPromise = new Promise((resolve, reject) => {
300
294
  this.dataRequests.set(requestId, {
301
295
  requestId,
302
296
  taskId,
@@ -311,7 +305,7 @@ class TaskRunner extends node_events_1.EventEmitter {
311
305
  requestParams,
312
306
  });
313
307
  try {
314
- return await p;
308
+ return await dataRequestPromise;
315
309
  }
316
310
  finally {
317
311
  this.dataRequests.delete(requestId);
@@ -326,15 +320,16 @@ class TaskRunner extends node_events_1.EventEmitter {
326
320
  reject,
327
321
  });
328
322
  });
329
- this.send({
330
- type: 'runner:rpc',
331
- callId,
332
- taskId,
333
- name,
334
- params,
335
- });
336
323
  try {
337
- return await dataPromise;
324
+ this.send({
325
+ type: 'runner:rpc',
326
+ callId,
327
+ taskId,
328
+ name,
329
+ params,
330
+ });
331
+ const returnValue = await dataPromise;
332
+ return (0, n8n_core_1.isSerializedBuffer)(returnValue) ? (0, n8n_core_1.toBuffer)(returnValue) : returnValue;
338
333
  }
339
334
  finally {
340
335
  this.rpcCalls.delete(callId);
@@ -352,22 +347,6 @@ class TaskRunner extends node_events_1.EventEmitter {
352
347
  call.reject(typeof data === 'string' ? new Error(data) : data);
353
348
  }
354
349
  }
355
- buildRpcCallObject(taskId) {
356
- const rpcObject = {};
357
- for (const r of runner_types_1.RPC_ALLOW_LIST) {
358
- const splitPath = r.split('.');
359
- let obj = rpcObject;
360
- splitPath.forEach((s, index) => {
361
- if (index !== splitPath.length - 1) {
362
- obj[s] = {};
363
- obj = obj[s];
364
- return;
365
- }
366
- obj[s] = async (...args) => await this.makeRpcCall(taskId, r, args);
367
- });
368
- }
369
- return rpcObject;
370
- }
371
350
  async stop() {
372
351
  this.clearIdleTimer();
373
352
  this.stopTaskOffers();
@@ -394,6 +373,69 @@ class TaskRunner extends node_events_1.EventEmitter {
394
373
  await new Promise((resolve) => setTimeout(resolve, 100));
395
374
  }
396
375
  }
376
+ async taskExecutionSucceeded(taskState, data) {
377
+ try {
378
+ const sendData = () => {
379
+ this.send({
380
+ type: 'runner:taskdone',
381
+ taskId: taskState.taskId,
382
+ data,
383
+ });
384
+ };
385
+ await taskState.caseOf({
386
+ waitingForSettings: task_state_1.TaskState.throwUnexpectedTaskStatus,
387
+ 'aborting:cancelled': exports.noOp,
388
+ 'aborting:timeout': sendData,
389
+ running: sendData,
390
+ });
391
+ }
392
+ finally {
393
+ this.finishTask(taskState);
394
+ }
395
+ }
396
+ async taskExecutionFailed(taskState, error) {
397
+ try {
398
+ const sendError = () => {
399
+ this.send({
400
+ type: 'runner:taskerror',
401
+ taskId: taskState.taskId,
402
+ error,
403
+ });
404
+ };
405
+ await taskState.caseOf({
406
+ waitingForSettings: task_state_1.TaskState.throwUnexpectedTaskStatus,
407
+ 'aborting:cancelled': exports.noOp,
408
+ 'aborting:timeout': () => {
409
+ console.warn(`Task ${taskState.taskId} timed out`);
410
+ sendError();
411
+ },
412
+ running: sendError,
413
+ });
414
+ }
415
+ finally {
416
+ this.finishTask(taskState);
417
+ }
418
+ }
419
+ cancelTaskRequests(taskId, reason) {
420
+ for (const [requestId, request] of this.dataRequests.entries()) {
421
+ if (request.taskId === taskId) {
422
+ request.reject(new task_cancelled_error_1.TaskCancelledError(reason));
423
+ this.dataRequests.delete(requestId);
424
+ }
425
+ }
426
+ for (const [requestId, request] of this.nodeTypesRequests.entries()) {
427
+ if (request.taskId === taskId) {
428
+ request.reject(new task_cancelled_error_1.TaskCancelledError(reason));
429
+ this.nodeTypesRequests.delete(requestId);
430
+ }
431
+ }
432
+ }
433
+ finishTask(taskState) {
434
+ taskState.cleanup();
435
+ this.runningTasks.delete(taskState.taskId);
436
+ this.sendOffers();
437
+ this.resetIdleTimer();
438
+ }
397
439
  }
398
440
  exports.TaskRunner = TaskRunner;
399
441
  //# 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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"}
@@ -0,0 +1,17 @@
1
+ export type TaskStatus = 'waitingForSettings' | 'running' | 'aborting:cancelled' | 'aborting:timeout';
2
+ export type TaskStateOpts = {
3
+ taskId: string;
4
+ timeoutInS: number;
5
+ onTimeout: () => void;
6
+ };
7
+ export declare class TaskState {
8
+ status: TaskStatus;
9
+ readonly taskId: string;
10
+ readonly abortController: AbortController;
11
+ private timeoutTimer;
12
+ constructor(opts: TaskStateOpts);
13
+ cleanup(): void;
14
+ toJSON(): string;
15
+ caseOf(conditions: Record<TaskStatus, (taskState: TaskState) => void | Promise<void> | never>): Promise<void>;
16
+ static throwUnexpectedTaskStatus: (taskState: TaskState) => never;
17
+ }
@@ -0,0 +1,63 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.TaskState = void 0;
37
+ const a = __importStar(require("node:assert"));
38
+ class TaskState {
39
+ constructor(opts) {
40
+ this.status = 'waitingForSettings';
41
+ this.abortController = new AbortController();
42
+ this.taskId = opts.taskId;
43
+ this.timeoutTimer = setTimeout(opts.onTimeout, opts.timeoutInS * 1000);
44
+ }
45
+ cleanup() {
46
+ clearTimeout(this.timeoutTimer);
47
+ this.timeoutTimer = undefined;
48
+ }
49
+ toJSON() {
50
+ return `[Task ${this.taskId} (${this.status})]`;
51
+ }
52
+ async caseOf(conditions) {
53
+ if (!conditions[this.status]) {
54
+ TaskState.throwUnexpectedTaskStatus(this);
55
+ }
56
+ return await conditions[this.status](this);
57
+ }
58
+ }
59
+ exports.TaskState = TaskState;
60
+ TaskState.throwUnexpectedTaskStatus = (taskState) => {
61
+ a.fail(`Unexpected task status: ${JSON.stringify(taskState)}`);
62
+ };
63
+ //# sourceMappingURL=task-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-state.js","sourceRoot":"","sources":["../src/task-state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AA+DjC,MAAa,SAAS;IAWrB,YAAY,IAAmB;QAV/B,WAAM,GAAe,oBAAoB,CAAC;QAKjC,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAMhD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACxE,CAAC;IAGD,OAAO;QACN,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAC/B,CAAC;IAGD,MAAM;QACL,OAAO,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC;IACjD,CAAC;IAeD,KAAK,CAAC,MAAM,CACX,UAAsF;QAEtF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAhDF,8BAsDC;AAHO,mCAAyB,GAAG,CAAC,SAAoB,EAAE,EAAE;IAC3D,CAAC,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC,AAF+B,CAE9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/task-runner",
3
- "version": "1.10.1",
3
+ "version": "1.12.0",
4
4
  "main": "dist/start.js",
5
5
  "module": "src/start.ts",
6
6
  "types": "dist/index.d.ts",
@@ -25,14 +25,16 @@
25
25
  "@sentry/node": "8.42.0",
26
26
  "acorn": "8.14.0",
27
27
  "acorn-walk": "8.3.4",
28
- "nanoid": "^3.3.6",
29
- "typedi": "0.10.0",
28
+ "lodash": "4.17.21",
29
+ "nanoid": "3.3.8",
30
30
  "ws": "^8.18.0",
31
- "@n8n/config": "1.22.0",
32
- "n8n-workflow": "1.71.1",
33
- "n8n-core": "1.72.1"
31
+ "@n8n/config": "1.24.0",
32
+ "n8n-workflow": "1.73.0",
33
+ "@n8n/di": "0.2.0",
34
+ "n8n-core": "1.74.0"
34
35
  },
35
36
  "devDependencies": {
37
+ "@types/lodash": "^4.14.195",
36
38
  "luxon": "3.4.4"
37
39
  },
38
40
  "license": "SEE LICENSE IN LICENSE.md",
@@ -1,12 +0,0 @@
1
- import { type EventHint, type ErrorEvent } from '@sentry/node';
2
- import type { SentryConfig } from './config/sentry-config';
3
- export declare class ErrorReporter {
4
- private readonly sentryConfig;
5
- private isInitialized;
6
- private readonly seenErrors;
7
- private get dsn();
8
- constructor(sentryConfig: SentryConfig);
9
- start(): Promise<void>;
10
- stop(): Promise<void>;
11
- beforeSend(event: ErrorEvent, { originalException }: EventHint): Promise<ErrorEvent | null>;
12
- }
@@ -1,111 +0,0 @@
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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ErrorReporter = void 0;
37
- const node_1 = require("@sentry/node");
38
- const a = __importStar(require("assert/strict"));
39
- const crypto_1 = require("crypto");
40
- const n8n_workflow_1 = require("n8n-workflow");
41
- class ErrorReporter {
42
- get dsn() {
43
- return this.sentryConfig.sentryDsn;
44
- }
45
- constructor(sentryConfig) {
46
- this.sentryConfig = sentryConfig;
47
- this.isInitialized = false;
48
- this.seenErrors = new Set();
49
- a.ok(this.dsn, 'Sentry DSN is required to initialize Sentry');
50
- }
51
- async start() {
52
- if (this.isInitialized)
53
- return;
54
- Error.stackTraceLimit = 50;
55
- process.on('uncaughtException', node_1.captureException);
56
- const ENABLED_INTEGRATIONS = [
57
- 'InboundFilters',
58
- 'FunctionToString',
59
- 'LinkedErrors',
60
- 'OnUnhandledRejection',
61
- 'ContextLines',
62
- ];
63
- (0, node_1.setTag)('server_type', 'task_runner');
64
- (0, node_1.init)({
65
- dsn: this.dsn,
66
- release: this.sentryConfig.n8nVersion,
67
- environment: this.sentryConfig.environment,
68
- enableTracing: false,
69
- serverName: this.sentryConfig.deploymentName,
70
- beforeBreadcrumb: () => null,
71
- beforeSend: async (event, hint) => await this.beforeSend(event, hint),
72
- integrations: (integrations) => [
73
- ...integrations.filter(({ name }) => ENABLED_INTEGRATIONS.includes(name)),
74
- (0, node_1.rewriteFramesIntegration)({ root: process.cwd() }),
75
- ],
76
- });
77
- this.isInitialized = true;
78
- }
79
- async stop() {
80
- if (!this.isInitialized) {
81
- return;
82
- }
83
- await (0, node_1.close)(1000);
84
- }
85
- async beforeSend(event, { originalException }) {
86
- if (!originalException)
87
- return null;
88
- if (originalException instanceof Promise) {
89
- originalException = await originalException.catch((error) => error);
90
- }
91
- if (originalException instanceof n8n_workflow_1.ApplicationError) {
92
- const { level, extra, tags } = originalException;
93
- if (level === 'warning')
94
- return null;
95
- event.level = level;
96
- if (extra)
97
- event.extra = { ...event.extra, ...extra };
98
- if (tags)
99
- event.tags = { ...event.tags, ...tags };
100
- }
101
- if (originalException instanceof Error && originalException.stack) {
102
- const eventHash = (0, crypto_1.createHash)('sha1').update(originalException.stack).digest('base64');
103
- if (this.seenErrors.has(eventHash))
104
- return null;
105
- this.seenErrors.add(eventHash);
106
- }
107
- return event;
108
- }
109
- }
110
- exports.ErrorReporter = ErrorReporter;
111
- //# sourceMappingURL=error-reporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../src/error-reporter.ts"],"names":[],"mappings":"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"}