@n8n/node-engine-compatibility 0.5.1 → 0.6.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.
@@ -1,4 +1,6 @@
1
1
  export declare const MANUAL_TRIGGER_TYPE = "n8n-nodes-base.manualTrigger";
2
2
  export declare const MERGE_TYPE = "n8n-nodes-base.merge";
3
3
  export declare const SPLIT_IN_BATCHES_TYPE = "n8n-nodes-base.splitInBatches";
4
+ export declare const SPLIT_IN_BATCHES_TYPE_VERSION = 3;
5
+ export declare const DEFAULT_BATCH_SIZE = 1;
4
6
  export declare const MAIN_CONNECTION_TYPE = "main";
package/dist/constants.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAIN_CONNECTION_TYPE = exports.SPLIT_IN_BATCHES_TYPE = exports.MERGE_TYPE = exports.MANUAL_TRIGGER_TYPE = void 0;
3
+ exports.MAIN_CONNECTION_TYPE = exports.DEFAULT_BATCH_SIZE = exports.SPLIT_IN_BATCHES_TYPE_VERSION = exports.SPLIT_IN_BATCHES_TYPE = exports.MERGE_TYPE = exports.MANUAL_TRIGGER_TYPE = void 0;
4
4
  exports.MANUAL_TRIGGER_TYPE = 'n8n-nodes-base.manualTrigger';
5
5
  exports.MERGE_TYPE = 'n8n-nodes-base.merge';
6
6
  exports.SPLIT_IN_BATCHES_TYPE = 'n8n-nodes-base.splitInBatches';
7
+ exports.SPLIT_IN_BATCHES_TYPE_VERSION = 3;
8
+ exports.DEFAULT_BATCH_SIZE = 1;
7
9
  exports.MAIN_CONNECTION_TYPE = 'main';
8
10
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,8BAA8B,CAAC;AACrD,QAAA,UAAU,GAAG,sBAAsB,CAAC;AACpC,QAAA,qBAAqB,GAAG,+BAA+B,CAAC;AACxD,QAAA,oBAAoB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,8BAA8B,CAAC;AACrD,QAAA,UAAU,GAAG,sBAAsB,CAAC;AACpC,QAAA,qBAAqB,GAAG,+BAA+B,CAAC;AAGxD,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAGlC,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,oBAAoB,GAAG,MAAM,CAAC"}
@@ -4,14 +4,19 @@ exports.createEngineStepDataLoader = createEngineStepDataLoader;
4
4
  function createEngineStepDataLoader(executionStore, stepStore) {
5
5
  return async (context) => {
6
6
  const execution = await executionStore.loadExecution(context.executionId);
7
- const keys = execution.graph.nodes.map((node) => ({ nodeId: node.id, iteration: 0 }));
8
- const stored = await stepStore.loadStepsByKeys(context.executionId, keys);
9
- const outputsByNodeId = {};
10
- for (const row of Object.values(stored)) {
11
- if (row.status === 'completed' && row.outputs !== null)
12
- outputsByNodeId[row.nodeId] = row.outputs;
7
+ const steps = await stepStore.loadAllSteps(context.executionId);
8
+ const byNode = new Map();
9
+ for (const step of steps) {
10
+ if (step.status !== 'completed' || step.outputs === null)
11
+ continue;
12
+ let byIteration = byNode.get(step.nodeId);
13
+ if (byIteration === undefined) {
14
+ byIteration = {};
15
+ byNode.set(step.nodeId, byIteration);
16
+ }
17
+ byIteration[step.iteration] = step.outputs;
13
18
  }
14
- return { graph: execution.graph, outputsByNodeId };
19
+ return { graph: execution.graph, outputsByNode: Object.fromEntries(byNode) };
15
20
  };
16
21
  }
17
22
  //# sourceMappingURL=engine-step-data-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-step-data-loader.js","sourceRoot":"","sources":["../src/engine-step-data-loader.ts"],"names":[],"mappings":";;;AAcA,oCACC,cAA8B,EAC9B,SAAoB;IAEpB,OAAO,KAAK,EAAE,OAAO,EAAqB,EAAE;QAC3C,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAI1E,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE1E,MAAM,eAAe,GAA8B,EAAE,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBACrD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC;IACpD,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"engine-step-data-loader.js","sourceRoot":"","sources":["../src/engine-step-data-loader.ts"],"names":[],"mappings":";;;AAcA,oCACC,cAA8B,EAC9B,SAAoB;IAEpB,OAAO,KAAK,EAAE,OAAO,EAAqB,EAAE;QAC3C,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;gBAAE,SAAS;YACnE,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC/B,WAAW,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9E,CAAC,CAAC;AACH,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  import { UnexpectedError, UserError } from 'n8n-workflow';
2
2
  export declare class UnsupportedWorkflowError extends UserError {
3
3
  }
4
- export declare class UnsupportedTriggerError extends UserError {
4
+ export declare class AmbiguousTriggerError extends UserError {
5
+ constructor(nodeNames: string[]);
6
+ }
7
+ export declare class NotATriggerError extends UserError {
5
8
  constructor(nodeName: string, nodeType: string);
6
9
  }
10
+ export declare class UnknownTriggerError extends UserError {
11
+ constructor(nodeName: string);
12
+ }
7
13
  export declare class UnsupportedConnectionTypeError extends UserError {
8
14
  constructor(nodeName: string, connectionType: string);
9
15
  }
package/dist/errors.js CHANGED
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EngineRequestNotSupportedError = exports.VmExpressionEngineRequiredError = exports.UnsupportedNodeTypeError = exports.MalformedStepConfigError = exports.UnsupportedStepTypeError = exports.UnsupportedLoopEntryError = exports.UnsupportedCycleError = exports.UnsupportedConnectionTypeError = exports.UnsupportedTriggerError = exports.UnsupportedWorkflowError = void 0;
3
+ exports.EngineRequestNotSupportedError = exports.VmExpressionEngineRequiredError = exports.UnsupportedNodeTypeError = exports.MalformedStepConfigError = exports.UnsupportedStepTypeError = exports.UnsupportedLoopEntryError = exports.UnsupportedCycleError = exports.UnsupportedConnectionTypeError = exports.UnknownTriggerError = exports.NotATriggerError = exports.AmbiguousTriggerError = exports.UnsupportedWorkflowError = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const quote = (names) => names.map((name) => `"${name}"`).join(', ');
6
6
  class UnsupportedWorkflowError extends n8n_workflow_1.UserError {
7
7
  }
8
8
  exports.UnsupportedWorkflowError = UnsupportedWorkflowError;
9
- class UnsupportedTriggerError extends n8n_workflow_1.UserError {
9
+ class AmbiguousTriggerError extends n8n_workflow_1.UserError {
10
+ constructor(nodeNames) {
11
+ super(`This workflow has ${nodeNames.length} triggers (${quote(nodeNames)}), so the trigger that fired must be named.`);
12
+ }
13
+ }
14
+ exports.AmbiguousTriggerError = AmbiguousTriggerError;
15
+ class NotATriggerError extends n8n_workflow_1.UserError {
10
16
  constructor(nodeName, nodeType) {
11
- super(`Trigger node "${nodeName}" (${nodeType}) is not supported yet; only the Manual Trigger is currently supported.`);
17
+ super(`Node "${nodeName}" (${nodeType}) is not a trigger, so nothing can start from it.`);
18
+ }
19
+ }
20
+ exports.NotATriggerError = NotATriggerError;
21
+ class UnknownTriggerError extends n8n_workflow_1.UserError {
22
+ constructor(nodeName) {
23
+ super(`This workflow has no enabled node named "${nodeName}" to start from.`);
12
24
  }
13
25
  }
14
- exports.UnsupportedTriggerError = UnsupportedTriggerError;
26
+ exports.UnknownTriggerError = UnknownTriggerError;
15
27
  class UnsupportedConnectionTypeError extends n8n_workflow_1.UserError {
16
28
  constructor(nodeName, connectionType) {
17
29
  super(`Node "${nodeName}" has a "${connectionType}" connection, which is not supported yet. Only "main" connections are currently supported.`);
@@ -50,7 +62,7 @@ class UnsupportedNodeTypeError extends n8n_workflow_1.UserError {
50
62
  exports.UnsupportedNodeTypeError = UnsupportedNodeTypeError;
51
63
  class VmExpressionEngineRequiredError extends n8n_workflow_1.UnexpectedError {
52
64
  constructor() {
53
- super('V1StepExecutor requires the VM expression engine. Initialize it via `Expression.initExpressionEngine()` before executing steps.');
65
+ super('V1StepExecutor requires an isolated expression engine (vm or quickjs). Initialize it via `Expression.initExpressionEngine()` before executing steps.');
54
66
  }
55
67
  }
56
68
  exports.VmExpressionEngineRequiredError = VmExpressionEngineRequiredError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,+CAA0D;AAE1D,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAM/E,8BAAsC,SAAQ,wBAAS;CAAG;;AAE1D,6BAAqC,SAAQ,wBAAS;IACrD,YAAY,QAAgB,EAAE,QAAgB;QAC7C,KAAK,CACJ,iBAAiB,QAAQ,MAAM,QAAQ,yEAAyE,CAChH,CAAC;IACH,CAAC;CACD;;AAED,oCAA4C,SAAQ,wBAAS;IAC5D,YAAY,QAAgB,EAAE,cAAsB;QACnD,KAAK,CACJ,SAAS,QAAQ,YAAY,cAAc,4FAA4F,CACvI,CAAC;IACH,CAAC;CACD;;AAED,2BAAmC,SAAQ,wBAAS;IACnD,YAAY,SAAmB;QAC9B,KAAK,CACJ,uBAAuB,KAAK,CAAC,SAAS,CAAC,6EAA6E,CACpH,CAAC;IACH,CAAC;CACD;;AAED,+BAAuC,SAAQ,wBAAS;IACvD,YAAY,WAAqB,EAAE,UAAoB;QACtD,KAAK,CACJ,sBAAsB,KAAK,CAAC,WAAW,CAAC,sFAAsF,KAAK,CAAC,UAAU,CAAC,GAAG,CAClJ,CAAC;IACH,CAAC;CACD;;AAED,8BAAsC,SAAQ,wBAAS;IACtD,YAAY,QAAgB;QAC3B,KAAK,CAAC,qDAAqD,QAAQ,GAAG,CAAC,CAAC;IACzE,CAAC;CACD;;AAED,8BAAsC,SAAQ,wBAAS;IACtD,YAAY,QAAgB;QAC3B,KAAK,CAAC,SAAS,QAAQ,6CAA6C,CAAC,CAAC;IACvE,CAAC;CACD;;AAED,8BAAsC,SAAQ,wBAAS;IACtD,YAAY,QAAgB;QAC3B,KAAK,CAAC,cAAc,QAAQ,kDAAkD,CAAC,CAAC;IACjF,CAAC;CACD;;AAED,qCAA6C,SAAQ,8BAAe;IACnE;QACC,KAAK,CACJ,iIAAiI,CACjI,CAAC;IACH,CAAC;CACD;;AAED,oCAA4C,SAAQ,wBAAS;IAC5D,YAAY,QAAgB;QAC3B,KAAK,CACJ,cAAc,QAAQ,uEAAuE,CAC7F,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,+CAA0D;AAE1D,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAM/E,8BAAsC,SAAQ,wBAAS;CAAG;;AAG1D,2BAAmC,SAAQ,wBAAS;IACnD,YAAY,SAAmB;QAC9B,KAAK,CACJ,qBAAqB,SAAS,CAAC,MAAM,cAAc,KAAK,CAAC,SAAS,CAAC,6CAA6C,CAChH,CAAC;IACH,CAAC;CACD;;AAED,sBAA8B,SAAQ,wBAAS;IAC9C,YAAY,QAAgB,EAAE,QAAgB;QAC7C,KAAK,CAAC,SAAS,QAAQ,MAAM,QAAQ,mDAAmD,CAAC,CAAC;IAC3F,CAAC;CACD;;AAED,yBAAiC,SAAQ,wBAAS;IACjD,YAAY,QAAgB;QAC3B,KAAK,CAAC,4CAA4C,QAAQ,kBAAkB,CAAC,CAAC;IAC/E,CAAC;CACD;;AAED,oCAA4C,SAAQ,wBAAS;IAC5D,YAAY,QAAgB,EAAE,cAAsB;QACnD,KAAK,CACJ,SAAS,QAAQ,YAAY,cAAc,4FAA4F,CACvI,CAAC;IACH,CAAC;CACD;;AAED,2BAAmC,SAAQ,wBAAS;IACnD,YAAY,SAAmB;QAC9B,KAAK,CACJ,uBAAuB,KAAK,CAAC,SAAS,CAAC,6EAA6E,CACpH,CAAC;IACH,CAAC;CACD;;AAED,+BAAuC,SAAQ,wBAAS;IACvD,YAAY,WAAqB,EAAE,UAAoB;QACtD,KAAK,CACJ,sBAAsB,KAAK,CAAC,WAAW,CAAC,sFAAsF,KAAK,CAAC,UAAU,CAAC,GAAG,CAClJ,CAAC;IACH,CAAC;CACD;;AAED,8BAAsC,SAAQ,wBAAS;IACtD,YAAY,QAAgB;QAC3B,KAAK,CAAC,qDAAqD,QAAQ,GAAG,CAAC,CAAC;IACzE,CAAC;CACD;;AAED,8BAAsC,SAAQ,wBAAS;IACtD,YAAY,QAAgB;QAC3B,KAAK,CAAC,SAAS,QAAQ,6CAA6C,CAAC,CAAC;IACvE,CAAC;CACD;;AAED,8BAAsC,SAAQ,wBAAS;IACtD,YAAY,QAAgB;QAC3B,KAAK,CAAC,cAAc,QAAQ,kDAAkD,CAAC,CAAC;IACjF,CAAC;CACD;;AAED,qCAA6C,SAAQ,8BAAe;IACnE;QACC,KAAK,CACJ,sJAAsJ,CACtJ,CAAC;IACH,CAAC;CACD;;AAED,oCAA4C,SAAQ,wBAAS;IAC5D,YAAY,QAAgB;QAC3B,KAAK,CACJ,cAAc,QAAQ,uEAAuE,CAC7F,CAAC;IACH,CAAC;CACD"}
package/dist/guards.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import type { V1NodeStepConfig } from './types';
1
+ import type { TriggerStepConfig, V1NodeStepConfig } from './types';
2
2
  export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
3
+ export declare function isTriggerStepConfig(config: unknown): config is TriggerStepConfig;
3
4
  export declare function isV1NodeStepConfig(config: unknown): config is V1NodeStepConfig;
package/dist/guards.js CHANGED
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isRecord = void 0;
4
+ exports.isTriggerStepConfig = isTriggerStepConfig;
4
5
  exports.isV1NodeStepConfig = isV1NodeStepConfig;
5
6
  const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
6
7
  exports.isRecord = isRecord;
8
+ function isTriggerStepConfig(config) {
9
+ if (!(0, exports.isRecord)(config))
10
+ return false;
11
+ return (typeof config.nodeType === 'string' &&
12
+ config.nodeType.length > 0 &&
13
+ typeof config.typeVersion === 'number' &&
14
+ (0, exports.isRecord)(config.parameters));
15
+ }
7
16
  function isV1NodeStepConfig(config) {
8
17
  if (!(0, exports.isRecord)(config))
9
18
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":";;;;AAEO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC5E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AADzD,QAAA,QAAQ,GAAR,QAAQ,CACiD;AAEtE,4BAAmC,MAAe;IACjD,IAAI,CAAC,IAAA,QAAA,QAAQ,EAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,CACN,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1B,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,IAAA,QAAA,QAAQ,EAAC,MAAM,CAAC,UAAU,CAAC;QAC3B,OAAO,MAAM,CAAC,cAAc,KAAK,SAAS,CAC1C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":";;;;;AAEO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC5E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AADzD,QAAA,QAAQ,GAAR,QAAQ,CACiD;AAEtE,6BAAoC,MAAe;IAClD,IAAI,CAAC,IAAA,QAAA,QAAQ,EAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,CACN,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1B,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,IAAA,QAAA,QAAQ,EAAC,MAAM,CAAC,UAAU,CAAC,CAC3B,CAAC;AACH,CAAC;AAED,4BAAmC,MAAe;IACjD,IAAI,CAAC,IAAA,QAAA,QAAQ,EAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,CACN,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1B,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,IAAA,QAAA,QAAQ,EAAC,MAAM,CAAC,UAAU,CAAC;QAC3B,OAAO,MAAM,CAAC,cAAc,KAAK,SAAS,CAC1C,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { V1WorkflowConverter } from './v1-workflow-converter';
2
2
  export { V1StepExecutor } from './v1-step-executor';
3
3
  export { createEngineStepDataLoader } from './engine-step-data-loader';
4
- export { toStepOutputs } from './io';
5
- export { UnsupportedTriggerError, UnsupportedWorkflowError } from './errors';
4
+ export { fromStepInputs, toStepOutputs } from './io';
5
+ export { AmbiguousTriggerError, NotATriggerError, UnknownTriggerError, UnsupportedWorkflowError, } from './errors';
6
6
  export type { StepData, StepDataLoader, V1StepExecutorDeps } from './types';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnsupportedWorkflowError = exports.UnsupportedTriggerError = exports.toStepOutputs = exports.createEngineStepDataLoader = exports.V1StepExecutor = exports.V1WorkflowConverter = void 0;
3
+ exports.UnsupportedWorkflowError = exports.UnknownTriggerError = exports.NotATriggerError = exports.AmbiguousTriggerError = exports.toStepOutputs = exports.fromStepInputs = exports.createEngineStepDataLoader = exports.V1StepExecutor = exports.V1WorkflowConverter = void 0;
4
4
  var v1_workflow_converter_1 = require("./v1-workflow-converter");
5
5
  Object.defineProperty(exports, "V1WorkflowConverter", { enumerable: true, get: function () { return v1_workflow_converter_1.V1WorkflowConverter; } });
6
6
  var v1_step_executor_1 = require("./v1-step-executor");
@@ -8,8 +8,11 @@ Object.defineProperty(exports, "V1StepExecutor", { enumerable: true, get: functi
8
8
  var engine_step_data_loader_1 = require("./engine-step-data-loader");
9
9
  Object.defineProperty(exports, "createEngineStepDataLoader", { enumerable: true, get: function () { return engine_step_data_loader_1.createEngineStepDataLoader; } });
10
10
  var io_1 = require("./io");
11
+ Object.defineProperty(exports, "fromStepInputs", { enumerable: true, get: function () { return io_1.fromStepInputs; } });
11
12
  Object.defineProperty(exports, "toStepOutputs", { enumerable: true, get: function () { return io_1.toStepOutputs; } });
12
13
  var errors_1 = require("./errors");
13
- Object.defineProperty(exports, "UnsupportedTriggerError", { enumerable: true, get: function () { return errors_1.UnsupportedTriggerError; } });
14
+ Object.defineProperty(exports, "AmbiguousTriggerError", { enumerable: true, get: function () { return errors_1.AmbiguousTriggerError; } });
15
+ Object.defineProperty(exports, "NotATriggerError", { enumerable: true, get: function () { return errors_1.NotATriggerError; } });
16
+ Object.defineProperty(exports, "UnknownTriggerError", { enumerable: true, get: function () { return errors_1.UnknownTriggerError; } });
14
17
  Object.defineProperty(exports, "UnsupportedWorkflowError", { enumerable: true, get: function () { return errors_1.UnsupportedWorkflowError; } });
15
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AACnC,2BAAqC;AAA5B,mGAAA,aAAa,OAAA;AACtB,mCAA6E;AAApE,iHAAA,uBAAuB,OAAA;AAAE,kHAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AACnC,2BAAqD;AAA5C,oGAAA,cAAc,OAAA;AAAE,mGAAA,aAAa,OAAA;AACtC,mCAKkB;AAJjB,+GAAA,qBAAqB,OAAA;AACrB,0GAAA,gBAAgB,OAAA;AAChB,6GAAA,mBAAmB,OAAA;AACnB,kHAAA,wBAAwB,OAAA"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import type { StepExecutionContext, StepSlots, WorkflowGraph } from '@n8n/engine';
2
2
  import type { ExecuteContext } from 'n8n-core';
3
3
  import type { INode, INodeExecutionData, INodeParameters, INodeType, INodeTypes, IRunData, ISourceData, IWorkflowBase, IWorkflowExecuteAdditionalData, Workflow } from 'n8n-workflow';
4
+ export interface TriggerStepConfig {
5
+ nodeType: string;
6
+ typeVersion: number;
7
+ parameters: INodeParameters;
8
+ }
4
9
  export interface V1NodeStepConfig {
5
10
  nodeType: string;
6
11
  typeVersion: number;
@@ -12,7 +17,7 @@ export interface V1Execution extends Pick<IWorkflowBase, 'nodes' | 'connections'
12
17
  }
13
18
  export interface StepData {
14
19
  graph: WorkflowGraph;
15
- outputsByNodeId: Record<string, StepSlots>;
20
+ outputsByNode: Record<string, Record<number, StepSlots>>;
16
21
  }
17
22
  export type StepDataLoader = (context: StepExecutionContext) => Promise<StepData>;
18
23
  export interface V1StepExecutorDeps {
@@ -3,7 +3,7 @@ import { ExecuteContext } from 'n8n-core';
3
3
  import type { INode, INodeTypes, ISourceData } from 'n8n-workflow';
4
4
  import { Workflow } from 'n8n-workflow';
5
5
  import type { CreateExecuteContextParams, V1Execution, V1NodeStepConfig } from './types';
6
- export declare function toV1Execution(graph: WorkflowGraph, outputsByNodeId: Record<string, StepSlots>): V1Execution;
6
+ export declare function toV1Execution(graph: WorkflowGraph, outputsByNode: Record<string, Record<number, StepSlots>>, activeNodeId: string, activeIteration: number): V1Execution;
7
7
  export declare function toV1Sources(graph: WorkflowGraph): Map<string, Array<ISourceData | null>>;
8
8
  export declare function toV1Workflow(workflowId: string, node: INode, execution: V1Execution, nodeTypes: INodeTypes): Workflow;
9
9
  export declare function toV1Node(graphNode: GraphNode, config: V1NodeStepConfig): INode;
@@ -5,31 +5,26 @@ exports.toV1Sources = toV1Sources;
5
5
  exports.toV1Workflow = toV1Workflow;
6
6
  exports.toV1Node = toV1Node;
7
7
  exports.toV1ExecuteContext = toV1ExecuteContext;
8
+ const engine_1 = require("@n8n/engine");
8
9
  const n8n_core_1 = require("n8n-core");
9
10
  const n8n_workflow_1 = require("n8n-workflow");
10
11
  const constants_1 = require("./constants");
11
12
  const guards_1 = require("./guards");
12
13
  const io_1 = require("./io");
13
- function toV1Execution(graph, outputsByNodeId) {
14
+ function toV1Execution(graph, outputsByNode, activeNodeId, activeIteration) {
14
15
  return {
15
16
  nodes: toV1Nodes(graph),
16
17
  connections: toV1Connections(graph),
17
- runData: toV1RunData(graph, outputsByNodeId),
18
+ runData: toV1RunData(graph, outputsByNode, activeNodeId, activeIteration),
18
19
  };
19
20
  }
20
21
  function toV1Nodes(graph) {
21
22
  return graph.nodes.flatMap((graphNode) => {
22
23
  if (graphNode.type === 'trigger') {
23
- return [
24
- {
25
- id: graphNode.id,
26
- name: graphNode.name,
27
- type: constants_1.MANUAL_TRIGGER_TYPE,
28
- typeVersion: 1,
29
- position: [0, 0],
30
- parameters: {},
31
- },
32
- ];
24
+ return [toV1TriggerNode(graphNode)];
25
+ }
26
+ if (graphNode.type === 'batch') {
27
+ return [toV1BatchNode(graphNode)];
33
28
  }
34
29
  if (!(0, guards_1.isV1NodeStepConfig)(graphNode.config))
35
30
  return [];
@@ -56,23 +51,38 @@ function toV1Connections(graph) {
56
51
  }
57
52
  return connections;
58
53
  }
59
- function toV1RunData(graph, outputsByNodeId) {
54
+ function toV1RunData(graph, outputsByNode, activeNodeId, activeIteration) {
60
55
  const namesById = new Map(graph.nodes.map((node) => [node.id, node.name]));
61
56
  const sourcesByNodeId = toV1Sources(graph);
57
+ const activeLoop = (0, engine_1.deriveLoops)(graph).find((loop) => loop.memberIds.has(activeNodeId));
62
58
  const runData = {};
63
- for (const [completedNodeId, outputs] of Object.entries(outputsByNodeId)) {
59
+ for (const [completedNodeId, outputsByIteration] of Object.entries(outputsByNode)) {
64
60
  const nodeName = namesById.get(completedNodeId);
65
61
  if (nodeName === undefined)
66
62
  continue;
67
- runData[nodeName] = [
68
- {
69
- startTime: 0,
70
- executionTime: 0,
71
- executionIndex: 0,
72
- source: sourcesByNodeId.get(completedNodeId) ?? [],
73
- data: { [constants_1.MAIN_CONNECTION_TYPE]: (0, io_1.fromStepInputs)(outputs) },
63
+ const iterations = Object.keys(outputsByIteration).map(Number);
64
+ if (iterations.length === 0)
65
+ continue;
66
+ let lastShown;
67
+ if (!activeLoop) {
68
+ lastShown = Math.max(...iterations);
69
+ }
70
+ else if (activeLoop.memberIds.has(completedNodeId)) {
71
+ lastShown = activeIteration;
72
+ }
73
+ else {
74
+ lastShown = 0;
75
+ }
76
+ const source = sourcesByNodeId.get(completedNodeId) ?? [];
77
+ runData[nodeName] = Array.from({ length: lastShown + 1 }, (_, iteration) => ({
78
+ startTime: 0,
79
+ executionTime: 0,
80
+ executionIndex: iteration,
81
+ source,
82
+ data: {
83
+ [constants_1.MAIN_CONNECTION_TYPE]: (0, io_1.fromStepInputs)(outputsByIteration[iteration] ?? [[]]),
74
84
  },
75
- ];
85
+ }));
76
86
  }
77
87
  return runData;
78
88
  }
@@ -104,6 +114,28 @@ function toV1Workflow(workflowId, node, execution, nodeTypes) {
104
114
  nodeTypes: tolerantNodeTypes(nodeTypes),
105
115
  });
106
116
  }
117
+ function toV1TriggerNode(graphNode) {
118
+ const config = (0, guards_1.isTriggerStepConfig)(graphNode.config) ? graphNode.config : undefined;
119
+ return {
120
+ id: graphNode.id,
121
+ name: graphNode.name,
122
+ type: config?.nodeType ?? constants_1.MANUAL_TRIGGER_TYPE,
123
+ typeVersion: config?.typeVersion ?? 1,
124
+ position: [0, 0],
125
+ parameters: config?.parameters ?? {},
126
+ };
127
+ }
128
+ function toV1BatchNode(graphNode) {
129
+ const batchSize = (0, engine_1.isBatchStepConfig)(graphNode.config) ? graphNode.config.batchSize : undefined;
130
+ return {
131
+ id: graphNode.id,
132
+ name: graphNode.name,
133
+ type: constants_1.SPLIT_IN_BATCHES_TYPE,
134
+ typeVersion: constants_1.SPLIT_IN_BATCHES_TYPE_VERSION,
135
+ position: [0, 0],
136
+ parameters: batchSize === undefined ? {} : { batchSize },
137
+ };
138
+ }
107
139
  function toV1Node(graphNode, config) {
108
140
  return {
109
141
  id: graphNode.id,
@@ -154,6 +186,6 @@ function toV1ExecuteContext({ node, workflow, execution, source, additionalData,
154
186
  source: source.length > 0 ? { main: source } : null,
155
187
  };
156
188
  const mode = stepContext.mode === 'production' ? 'trigger' : 'manual';
157
- return new n8n_core_1.ExecuteContext(workflow, node, additionalData, mode, runExecutionData, 0, connectionInputData, inputData, executeData, []);
189
+ return new n8n_core_1.ExecuteContext(workflow, node, additionalData, mode, runExecutionData, stepContext.iteration, connectionInputData, inputData, executeData, []);
158
190
  }
159
191
  //# sourceMappingURL=v1-adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"v1-adapters.js","sourceRoot":"","sources":["../src/v1-adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v1-adapters.js","sourceRoot":"","sources":["../src/v1-adapters.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ class V1StepExecutor {
18
18
  const nodeType = this.resolveNodeType(stepConfig);
19
19
  const stepData = await this.deps.loadStepData(request.context);
20
20
  const node = (0, v1_adapters_1.toV1Node)(request.node, stepConfig);
21
- const execution = (0, v1_adapters_1.toV1Execution)(stepData.graph, stepData.outputsByNodeId);
21
+ const execution = (0, v1_adapters_1.toV1Execution)(stepData.graph, stepData.outputsByNode, request.node.id, request.context.iteration);
22
22
  const workflow = (0, v1_adapters_1.toV1Workflow)(request.context.workflowId, node, execution, this.deps.nodeTypes);
23
23
  const additionalData = await this.deps.additionalDataFactory(request.context.executionId);
24
24
  const context = (0, v1_adapters_1.toV1ExecuteContext)({
@@ -36,7 +36,7 @@ class V1StepExecutor {
36
36
  });
37
37
  }
38
38
  validateExpressionEngine() {
39
- if (n8n_workflow_1.Expression.getActiveImplementation() !== 'vm') {
39
+ if (n8n_workflow_1.Expression.getActiveImplementation() === 'legacy') {
40
40
  throw new errors_1.VmExpressionEngineRequiredError();
41
41
  }
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"v1-step-executor.js","sourceRoot":"","sources":["../src/v1-step-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v1-step-executor.js","sourceRoot":"","sources":["../src/v1-step-executor.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { WorkflowGraph } from '@n8n/engine';
2
2
  import type { IWorkflowBase } from 'n8n-workflow';
3
3
  export declare class V1WorkflowConverter {
4
- convert(workflow: IWorkflowBase): WorkflowGraph;
4
+ convert(workflow: IWorkflowBase, firedTriggerName?: string): WorkflowGraph;
5
+ private resolveFiredTrigger;
5
6
  private toGraphNode;
6
7
  private assertSupportedMergeMode;
7
- private isTriggerNode;
8
8
  private toEdges;
9
9
  private toEdgesForSource;
10
10
  private validateSupportedConnectionType;
@@ -1,42 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.V1WorkflowConverter = void 0;
4
+ const engine_1 = require("@n8n/engine");
5
+ const n8n_workflow_1 = require("n8n-workflow");
4
6
  const constants_1 = require("./constants");
5
7
  const errors_1 = require("./errors");
6
- const KNOWN_TRIGGER_TYPES = new Set(['n8n-nodes-base.webhook', 'n8n-nodes-base.cron']);
8
+ const guards_1 = require("./guards");
7
9
  class V1WorkflowConverter {
8
- convert(workflow) {
9
- const liveNodes = workflow.nodes.filter((node) => node.disabled !== true);
10
- const disabledNodeIds = workflow.nodes
10
+ convert(workflow, firedTriggerName) {
11
+ const trigger = this.resolveFiredTrigger(workflow, firedTriggerName);
12
+ const rooted = trigger === undefined ? workflow : rootAt(workflow, trigger);
13
+ const liveNodes = rooted.nodes.filter((node) => node.disabled !== true);
14
+ const disabledNodeIds = rooted.nodes
11
15
  .filter((node) => node.disabled === true)
12
16
  .map((node) => node.id);
13
- const nodes = liveNodes.map((node) => this.toGraphNode(node));
14
- let edges = this.toEdges(workflow);
17
+ const nodes = liveNodes.map((node) => this.toGraphNode(node, trigger?.id));
18
+ let edges = this.toEdges(rooted);
15
19
  edges = this.spliceOutDisabledNodes(edges, disabledNodeIds);
16
20
  edges = this.dedupeEdges(edges);
17
21
  this.markBackEdges(nodes, edges);
18
22
  return { nodes, edges };
19
23
  }
20
- toGraphNode(node) {
21
- if (node.type === constants_1.MANUAL_TRIGGER_TYPE) {
22
- return { id: node.id, name: node.name, type: 'trigger' };
24
+ resolveFiredTrigger(workflow, firedTriggerName) {
25
+ const liveNodes = workflow.nodes.filter((node) => node.disabled !== true);
26
+ if (firedTriggerName !== undefined) {
27
+ const fired = liveNodes.find((node) => node.name === firedTriggerName);
28
+ if (fired === undefined)
29
+ throw new errors_1.UnknownTriggerError(firedTriggerName);
30
+ if (!(0, n8n_workflow_1.isTriggerNodeType)(fired.type))
31
+ throw new errors_1.NotATriggerError(fired.name, fired.type);
32
+ return fired;
23
33
  }
24
- if (this.isTriggerNode(node)) {
25
- throw new errors_1.UnsupportedTriggerError(node.name, node.type);
34
+ const triggers = liveNodes.filter((node) => (0, n8n_workflow_1.isTriggerNodeType)(node.type));
35
+ if (triggers.length > 1) {
36
+ throw new errors_1.AmbiguousTriggerError(triggers.map((node) => node.name));
37
+ }
38
+ return triggers[0];
39
+ }
40
+ toGraphNode(node, firedTriggerId) {
41
+ if (node.id === firedTriggerId) {
42
+ const config = {
43
+ nodeType: node.type,
44
+ typeVersion: node.typeVersion,
45
+ parameters: node.parameters,
46
+ };
47
+ return { id: node.id, name: node.name, type: 'trigger', config };
26
48
  }
27
49
  if (node.onError === 'continueErrorOutput') {
28
50
  throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" uses onError=continueErrorOutput, which is not supported yet.`);
29
51
  }
30
52
  if (node.type === constants_1.MERGE_TYPE)
31
53
  this.assertSupportedMergeMode(node);
54
+ if (node.type === constants_1.SPLIT_IN_BATCHES_TYPE) {
55
+ return { id: node.id, name: node.name, type: 'batch', config: toBatchConfig(node) };
56
+ }
32
57
  const config = {
33
58
  nodeType: node.type,
34
59
  typeVersion: node.typeVersion,
35
60
  parameters: node.parameters,
36
61
  continueOnFail: node.continueOnFail === true || node.onError === 'continueRegularOutput',
37
62
  };
38
- const type = node.type === constants_1.SPLIT_IN_BATCHES_TYPE ? 'batch' : 'v1-node';
39
- return { id: node.id, name: node.name, type, config };
63
+ return { id: node.id, name: node.name, type: 'v1-node', config };
40
64
  }
41
65
  assertSupportedMergeMode(node) {
42
66
  const mode = node.parameters.mode;
@@ -47,11 +71,6 @@ class V1WorkflowConverter {
47
71
  throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" sets its Merge mode with an expression, which cannot be checked at conversion time. Use a literal mode.`);
48
72
  }
49
73
  }
50
- isTriggerNode(node) {
51
- return (node.type === constants_1.MANUAL_TRIGGER_TYPE ||
52
- KNOWN_TRIGGER_TYPES.has(node.type) ||
53
- node.type.toLowerCase().endsWith('trigger'));
54
- }
55
74
  toEdges(workflow) {
56
75
  const idsByName = new Map(workflow.nodes.map((node) => [node.name, node.id]));
57
76
  return Object.entries(workflow.connections).flatMap(([sourceName, connectionsByType]) => this.toEdgesForSource(sourceName, connectionsByType, idsByName));
@@ -190,4 +209,37 @@ class V1WorkflowConverter {
190
209
  }
191
210
  }
192
211
  exports.V1WorkflowConverter = V1WorkflowConverter;
212
+ function rootAt(workflow, trigger) {
213
+ const reachable = new Set([
214
+ trigger.name,
215
+ ...(0, n8n_workflow_1.getChildNodes)(workflow.connections, trigger.name, constants_1.MAIN_CONNECTION_TYPE, -1),
216
+ ]);
217
+ return {
218
+ ...workflow,
219
+ nodes: workflow.nodes.filter((node) => reachable.has(node.name)),
220
+ connections: Object.fromEntries(Object.entries(workflow.connections).filter(([sourceName]) => reachable.has(sourceName))),
221
+ };
222
+ }
223
+ function toBatchConfig(node) {
224
+ if (node.typeVersion !== constants_1.SPLIT_IN_BATCHES_TYPE_VERSION) {
225
+ throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" is a Split In Batches of version ${node.typeVersion}, and only version ${constants_1.SPLIT_IN_BATCHES_TYPE_VERSION} is supported.`);
226
+ }
227
+ const options = node.parameters?.options;
228
+ if (typeof options === 'string') {
229
+ throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" sets its options from an expression, which is not supported yet.`);
230
+ }
231
+ const reset = (0, guards_1.isRecord)(options) ? options.reset : undefined;
232
+ if (reset !== undefined && reset !== false) {
233
+ throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" uses the reset option, which is not supported yet.`);
234
+ }
235
+ const batchSize = node.parameters?.batchSize ?? constants_1.DEFAULT_BATCH_SIZE;
236
+ if (typeof batchSize === 'string') {
237
+ throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" sets its batch size from an expression, which is not supported yet.`);
238
+ }
239
+ const config = { batchSize };
240
+ if (!(0, engine_1.isBatchStepConfig)(config)) {
241
+ throw new errors_1.UnsupportedWorkflowError(`Node "${node.name}" has a batch size of ${String(batchSize)}, and it must be a whole number of at least 1.`);
242
+ }
243
+ return config;
244
+ }
193
245
  //# sourceMappingURL=v1-workflow-converter.js.map