@n8n/engine 0.13.0 → 0.14.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 (57) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/common/errors.d.ts +3 -0
  3. package/dist/common/errors.js +11 -0
  4. package/dist/common/errors.js.map +1 -0
  5. package/dist/common/index.d.ts +1 -0
  6. package/dist/common/index.js +3 -0
  7. package/dist/common/index.js.map +1 -1
  8. package/dist/database/entities/workflow-step-execution.entity.d.ts +4 -0
  9. package/dist/database/entities/workflow-step-execution.entity.js +11 -1
  10. package/dist/database/entities/workflow-step-execution.entity.js.map +1 -1
  11. package/dist/database/migrations/1784890100000-CreateWorkflowStepExecution.js +16 -1
  12. package/dist/database/migrations/1784890100000-CreateWorkflowStepExecution.js.map +1 -1
  13. package/dist/database/typeorm-execution-store.d.ts +4 -1
  14. package/dist/database/typeorm-execution-store.js +12 -1
  15. package/dist/database/typeorm-execution-store.js.map +1 -1
  16. package/dist/database/typeorm-step-store.d.ts +11 -4
  17. package/dist/database/typeorm-step-store.js +39 -4
  18. package/dist/database/typeorm-step-store.js.map +1 -1
  19. package/dist/execution/execution-start-handler.d.ts +10 -0
  20. package/dist/execution/execution-start-handler.js +43 -0
  21. package/dist/execution/execution-start-handler.js.map +1 -0
  22. package/dist/execution/execution-store.d.ts +14 -0
  23. package/dist/execution/execution-store.js +10 -0
  24. package/dist/execution/execution-store.js.map +1 -1
  25. package/dist/execution/index.d.ts +6 -2
  26. package/dist/execution/index.js +9 -1
  27. package/dist/execution/index.js.map +1 -1
  28. package/dist/execution/orchestration-worker.d.ts +9 -0
  29. package/dist/execution/orchestration-worker.js +28 -0
  30. package/dist/execution/orchestration-worker.js.map +1 -0
  31. package/dist/execution/start-execution.service.d.ts +2 -2
  32. package/dist/execution/start-execution.service.js.map +1 -1
  33. package/dist/execution/step-store.d.ts +26 -2
  34. package/dist/execution/step-store.js +10 -0
  35. package/dist/execution/step-store.js.map +1 -1
  36. package/dist/graph/index.d.ts +1 -0
  37. package/dist/graph/index.js +4 -0
  38. package/dist/graph/index.js.map +1 -1
  39. package/dist/graph/workflow-graph-queries.d.ts +3 -0
  40. package/dist/graph/workflow-graph-queries.js +17 -0
  41. package/dist/graph/workflow-graph-queries.js.map +1 -0
  42. package/dist/graph/workflow-graph.d.ts +2 -2
  43. package/dist/index.d.ts +3 -2
  44. package/dist/index.js +6 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/queue/in-memory-work-queue.d.ts +11 -4
  47. package/dist/queue/in-memory-work-queue.js +44 -2
  48. package/dist/queue/in-memory-work-queue.js.map +1 -1
  49. package/dist/queue/index.d.ts +1 -1
  50. package/dist/queue/index.js.map +1 -1
  51. package/dist/queue/work-queue.types.d.ts +11 -3
  52. package/dist/serve.js +13 -5
  53. package/dist/serve.js.map +1 -1
  54. package/dist/server/create-engine-server.d.ts +2 -2
  55. package/dist/server/routes/workflow-executions.js +2 -2
  56. package/dist/server/routes/workflow-executions.js.map +1 -1
  57. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeOrmStepStore = exports.TypeOrmExecutionStore = exports.createDataSource = exports.InMemoryWorkQueue = exports.AdmittanceRejectedError = exports.AllowAllAdmittance = exports.createEngineServer = void 0;
3
+ exports.TypeOrmStepStore = exports.TypeOrmExecutionStore = exports.createDataSource = exports.StepNotFoundError = exports.OrchestrationWorker = exports.ExecutionStartHandler = exports.ExecutionNotFoundError = exports.InMemoryWorkQueue = exports.AdmittanceRejectedError = exports.AllowAllAdmittance = exports.createEngineServer = void 0;
4
4
  var server_1 = require("./server");
5
5
  Object.defineProperty(exports, "createEngineServer", { enumerable: true, get: function () { return server_1.createEngineServer; } });
6
6
  var admittance_1 = require("./admittance");
@@ -8,6 +8,11 @@ Object.defineProperty(exports, "AllowAllAdmittance", { enumerable: true, get: fu
8
8
  Object.defineProperty(exports, "AdmittanceRejectedError", { enumerable: true, get: function () { return admittance_1.AdmittanceRejectedError; } });
9
9
  var queue_1 = require("./queue");
10
10
  Object.defineProperty(exports, "InMemoryWorkQueue", { enumerable: true, get: function () { return queue_1.InMemoryWorkQueue; } });
11
+ var execution_1 = require("./execution");
12
+ Object.defineProperty(exports, "ExecutionNotFoundError", { enumerable: true, get: function () { return execution_1.ExecutionNotFoundError; } });
13
+ Object.defineProperty(exports, "ExecutionStartHandler", { enumerable: true, get: function () { return execution_1.ExecutionStartHandler; } });
14
+ Object.defineProperty(exports, "OrchestrationWorker", { enumerable: true, get: function () { return execution_1.OrchestrationWorker; } });
15
+ Object.defineProperty(exports, "StepNotFoundError", { enumerable: true, get: function () { return execution_1.StepNotFoundError; } });
11
16
  var database_1 = require("./database");
12
17
  Object.defineProperty(exports, "createDataSource", { enumerable: true, get: function () { return database_1.createDataSource; } });
13
18
  Object.defineProperty(exports, "TypeOrmExecutionStore", { enumerable: true, get: function () { return database_1.TypeOrmExecutionStore; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAqB3B,2CAA2E;AAAlE,gHAAA,kBAAkB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAOpD,iCAA4C;AAAnC,0GAAA,iBAAiB,OAAA;AAiB1B,uCAAuF;AAA9E,4GAAA,gBAAgB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAAE,4GAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAqB3B,2CAA2E;AAAlE,gHAAA,kBAAkB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAOpD,iCAA4C;AAAnC,0GAAA,iBAAiB,OAAA;AAS1B,yCAKqB;AAJpB,mHAAA,sBAAsB,OAAA;AACtB,kHAAA,qBAAqB,OAAA;AACrB,gHAAA,mBAAmB,OAAA;AACnB,8GAAA,iBAAiB,OAAA;AAelB,uCAAuF;AAA9E,4GAAA,gBAAgB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAAE,4GAAA,gBAAgB,OAAA"}
@@ -1,5 +1,12 @@
1
- import type { WorkQueue, WorkQueueMessage } from './work-queue.types';
2
- export declare class InMemoryWorkQueue implements WorkQueue {
3
- readonly messages: WorkQueueMessage[];
4
- publish(message: WorkQueueMessage): Promise<void>;
1
+ import type { WorkQueue } from './work-queue.types';
2
+ export declare class InMemoryWorkQueue<TMessage> implements WorkQueue<TMessage> {
3
+ private pending;
4
+ private handler;
5
+ private dispatching;
6
+ private idleWaiters;
7
+ publish(message: TMessage): Promise<void>;
8
+ start(handler: (message: TMessage) => Promise<void>): void;
9
+ stop(): Promise<void>;
10
+ private startDispatchLoop;
11
+ private dispatchPending;
5
12
  }
@@ -2,9 +2,51 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryWorkQueue = void 0;
4
4
  class InMemoryWorkQueue {
5
- messages = [];
5
+ pending = [];
6
+ handler;
7
+ dispatching = false;
8
+ idleWaiters = [];
6
9
  async publish(message) {
7
- this.messages.push(message);
10
+ this.pending.push(message);
11
+ this.startDispatchLoop();
12
+ }
13
+ start(handler) {
14
+ this.handler = handler;
15
+ this.startDispatchLoop();
16
+ }
17
+ async stop() {
18
+ this.handler = undefined;
19
+ if (!this.dispatching)
20
+ return;
21
+ await new Promise((resolve) => this.idleWaiters.push(resolve));
22
+ }
23
+ startDispatchLoop() {
24
+ if (this.dispatching || !this.handler || this.pending.length === 0)
25
+ return;
26
+ this.dispatching = true;
27
+ this.dispatchPending().catch((error) => {
28
+ console.error('engine: work queue dispatch failed', error);
29
+ });
30
+ }
31
+ async dispatchPending() {
32
+ try {
33
+ while (this.handler && this.pending.length > 0) {
34
+ const [message] = this.pending.splice(0, 1);
35
+ try {
36
+ await this.handler(message);
37
+ }
38
+ catch (error) {
39
+ console.error('engine: work queue handler failed', error);
40
+ }
41
+ }
42
+ }
43
+ finally {
44
+ this.dispatching = false;
45
+ const waiters = this.idleWaiters;
46
+ this.idleWaiters = [];
47
+ for (const resolve of waiters)
48
+ resolve();
49
+ }
8
50
  }
9
51
  }
10
52
  exports.InMemoryWorkQueue = InMemoryWorkQueue;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-work-queue.js","sourceRoot":"","sources":["../../src/queue/in-memory-work-queue.ts"],"names":[],"mappings":";;;AASA;IACU,QAAQ,GAAuB,EAAE,CAAC;IAG3C,KAAK,CAAC,OAAO,CAAC,OAAyB;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACD"}
1
+ {"version":3,"file":"in-memory-work-queue.js","sourceRoot":"","sources":["../../src/queue/in-memory-work-queue.ts"],"names":[],"mappings":";;;AAMA;IACS,OAAO,GAAe,EAAE,CAAC;IAEzB,OAAO,CAAqD;IAE5D,WAAW,GAAG,KAAK,CAAC;IAEpB,WAAW,GAAsB,EAAE,CAAC;IAG5C,KAAK,CAAC,OAAO,CAAC,OAAiB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAA6C;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAGzB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAMO,iBAAiB;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC/C,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAEhB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC;YACF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,OAAO,IAAI,OAAO;gBAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;IACF,CAAC;CACD"}
@@ -1,2 +1,2 @@
1
- export type { ExecutionEnqueuedEvent, WorkQueue, WorkQueueMessage, } from './work-queue.types';
1
+ export type { ExecutionEnqueuedEvent, OrchestrationMessage, StepMessage, StepReadyEvent, WorkQueue, } from './work-queue.types';
2
2
  export { InMemoryWorkQueue } from './in-memory-work-queue';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;AAKA,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;AAOA,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
@@ -2,7 +2,15 @@ export interface ExecutionEnqueuedEvent {
2
2
  type: 'execution:enqueued';
3
3
  executionId: string;
4
4
  }
5
- export type WorkQueueMessage = ExecutionEnqueuedEvent;
6
- export interface WorkQueue {
7
- publish(message: WorkQueueMessage): Promise<void>;
5
+ export type OrchestrationMessage = ExecutionEnqueuedEvent;
6
+ export interface StepReadyEvent {
7
+ type: 'step:ready';
8
+ executionId: string;
9
+ stepId: string;
10
+ }
11
+ export type StepMessage = StepReadyEvent;
12
+ export interface WorkQueue<TMessage> {
13
+ publish(message: TMessage): Promise<void>;
14
+ start(handler: (message: TMessage) => Promise<void>): void;
15
+ stop(): Promise<void>;
8
16
  }
package/dist/serve.js CHANGED
@@ -4,6 +4,7 @@ const config_1 = require("@n8n/config");
4
4
  const di_1 = require("@n8n/di");
5
5
  const admittance_1 = require("./admittance");
6
6
  const database_1 = require("./database");
7
+ const execution_1 = require("./execution");
7
8
  const queue_1 = require("./queue");
8
9
  const server_1 = require("./server");
9
10
  async function main() {
@@ -17,12 +18,17 @@ async function main() {
17
18
  else {
18
19
  console.warn('engine: N8N_ENGINE_DATABASE_URL not set; running in healthcheck-only mode (workflow execution endpoints disabled)');
19
20
  }
21
+ const orchestrationQueue = new queue_1.InMemoryWorkQueue();
22
+ const stepQueue = new queue_1.InMemoryWorkQueue();
23
+ let worker;
24
+ if (dataSource) {
25
+ const executionStore = new database_1.TypeOrmExecutionStore(dataSource.getRepository(database_1.WorkflowExecution));
26
+ const stepStore = new database_1.TypeOrmStepStore(dataSource.getRepository(database_1.WorkflowStepExecution));
27
+ worker = new execution_1.OrchestrationWorker(orchestrationQueue, new execution_1.ExecutionStartHandler(executionStore, stepStore, stepQueue));
28
+ worker.start();
29
+ }
20
30
  const { app } = (0, server_1.createEngineServer)(dataSource
21
- ? {
22
- dataSource,
23
- admittance: new admittance_1.AllowAllAdmittance(),
24
- workQueue: new queue_1.InMemoryWorkQueue(),
25
- }
31
+ ? { dataSource, admittance: new admittance_1.AllowAllAdmittance(), workQueue: orchestrationQueue }
26
32
  : undefined);
27
33
  const server = app.listen(config.port, config.host, () => {
28
34
  console.log(`engine: listening on http://${config.host}:${config.port}`);
@@ -36,6 +42,8 @@ async function main() {
36
42
  await new Promise((resolve, reject) => {
37
43
  server.close((error) => (error ? reject(error) : resolve()));
38
44
  });
45
+ if (worker)
46
+ await worker.stop();
39
47
  if (dataSource?.isInitialized)
40
48
  await dataSource.destroy();
41
49
  process.exit(0);
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":";;AAAA,wCAA2C;AAC3C,gCAAoC;AAGpC,6CAAkD;AAClD,yCAA8C;AAC9C,mCAA4C;AAC5C,qCAA8C;AAE9C,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,cAAS,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;IAE3C,IAAI,UAAkC,CAAC;IACvC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,UAAU,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACX,mHAAmH,CACnH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,IAAA,2BAAkB,EACjC,UAAU;QACT,CAAC,CAAC;YACA,UAAU;YACV,UAAU,EAAE,IAAI,+BAAkB,EAAE;YACpC,SAAS,EAAE,IAAI,yBAAiB,EAAE;SAClC;QACF,CAAC,CAAC,SAAS,CACZ,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACxD,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,iBAAiB,CAAC,CAAC;QACzD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,aAAa;YAAE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAQ,EAAE;QACzC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACzC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import type { DataSource } from '@n8n/typeorm';
2
2
  import { type Application } from 'express';
3
3
  import type { AdmittanceService } from '../admittance';
4
- import type { WorkQueue } from '../queue';
4
+ import type { OrchestrationMessage, WorkQueue } from '../queue';
5
5
  export interface EngineServerDeps {
6
6
  dataSource: DataSource;
7
7
  admittance: AdmittanceService;
8
- workQueue: WorkQueue;
8
+ workQueue: WorkQueue<OrchestrationMessage>;
9
9
  }
10
10
  export declare function createEngineServer(deps?: EngineServerDeps): {
11
11
  app: Application;
@@ -23,8 +23,8 @@ const GraphNodeSchema = zod_1.z.object({
23
23
  const GraphEdgeSchema = zod_1.z.object({
24
24
  from: zod_1.z.string(),
25
25
  to: zod_1.z.string(),
26
- outputIndex: zod_1.z.number().int().nonnegative().optional(),
27
- inputIndex: zod_1.z.number().int().nonnegative().optional(),
26
+ outputIndex: zod_1.z.number().int().nonnegative().default(0),
27
+ inputIndex: zod_1.z.number().int().nonnegative().default(0),
28
28
  isBackEdge: zod_1.z.boolean().optional(),
29
29
  });
30
30
  const WorkflowGraphSchema = zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-executions.js","sourceRoot":"","sources":["../../../src/server/routes/workflow-executions.ts"],"names":[],"mappings":";;;AAAA,qCAA4D;AAC5D,6BAAwB;AAExB,iDAA2D;AAI3D,MAAM,eAAe,GAAyB,OAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,OAAC,CAAC,KAAK,CAAC;IACP,OAAC,CAAC,MAAM,EAAE;IACV,OAAC,CAAC,MAAM,EAAE;IACV,OAAC,CAAC,OAAO,EAAE;IACX,OAAC,CAAC,IAAI,EAAE;IACR,OAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACxB,OAAC,CAAC,MAAM,CAAC,eAAe,CAAC;CACzB,CAAC,CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAEnD,MAAM,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtF,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACtD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC/B,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,eAAe,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,mBAAmB;IAC1B,cAAc,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtD,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAEH,wCAA+C,cAAqC;IACnF,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;aAC/B,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,oCAAuB,EAAE,CAAC;gBAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7E,OAAO;YACR,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"workflow-executions.js","sourceRoot":"","sources":["../../../src/server/routes/workflow-executions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@n8n/engine",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "n8n workflow execution engine (v2)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/**/*",
9
- "LICENSE_EE.md",
10
- "LICENSE.md"
9
+ "LICENSE.md",
10
+ "LICENSE_EE.md"
11
11
  ],
12
12
  "dependencies": {
13
13
  "express": "5.1.0",
14
14
  "pg": "8.21.0",
15
15
  "reflect-metadata": "0.2.2",
16
16
  "uuid": "11.1.1",
17
- "zod": "3.25.67",
18
- "@n8n/config": "2.31.0",
17
+ "zod": "3.25.76",
19
18
  "@n8n/di": "0.16.0",
20
- "@n8n/typeorm": "0.7.0"
19
+ "@n8n/typeorm": "0.7.0",
20
+ "@n8n/config": "2.32.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@testcontainers/postgresql": "^11.13.0",