n8n-core 1.17.1 → 1.18.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-core",
3
- "version": "1.17.1",
3
+ "version": "1.18.0",
4
4
  "description": "Core functionality of n8n",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://n8n.io",
@@ -34,7 +34,7 @@
34
34
  "@types/xml2js": "^0.4.11"
35
35
  },
36
36
  "peerDependencies": {
37
- "n8n-nodes-base": "1.17.1"
37
+ "n8n-nodes-base": "1.18.0"
38
38
  },
39
39
  "dependencies": {
40
40
  "aws4": "1.11.0",
@@ -54,8 +54,8 @@
54
54
  "typedi": "0.10.0",
55
55
  "uuid": "8.3.2",
56
56
  "xml2js": "0.5.0",
57
- "n8n-workflow": "1.17.1",
58
- "@n8n/client-oauth2": "0.8.1"
57
+ "@n8n/client-oauth2": "0.9.0",
58
+ "n8n-workflow": "1.18.0"
59
59
  },
60
60
  "scripts": {
61
61
  "clean": "rimraf dist .turbo",
@@ -1,5 +0,0 @@
1
- import type { IWorkflowExecuteAdditionalData, ResourceMapperFields } from 'n8n-workflow';
2
- import { LoadNodeDetails } from './LoadNodeDetails';
3
- export declare class LoadMappingOptions extends LoadNodeDetails {
4
- getOptionsViaMethodName(methodName: string, additionalData: IWorkflowExecuteAdditionalData): Promise<ResourceMapperFields>;
5
- }
@@ -1,43 +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 (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.LoadMappingOptions = void 0;
27
- const NodeExecuteFunctions = __importStar(require("./NodeExecuteFunctions"));
28
- const LoadNodeDetails_1 = require("./LoadNodeDetails");
29
- class LoadMappingOptions extends LoadNodeDetails_1.LoadNodeDetails {
30
- async getOptionsViaMethodName(methodName, additionalData) {
31
- var _a, _b;
32
- const node = this.getTempNode();
33
- const nodeType = this.workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
34
- const method = (_b = (_a = nodeType === null || nodeType === void 0 ? void 0 : nodeType.methods) === null || _a === void 0 ? void 0 : _a.resourceMapping) === null || _b === void 0 ? void 0 : _b[methodName];
35
- if (typeof method !== 'function') {
36
- throw new Error(`The node-type "${node.type}" does not have the method "${methodName}" defined!`);
37
- }
38
- const thisArgs = NodeExecuteFunctions.getLoadOptionsFunctions(this.workflow, node, this.path, additionalData);
39
- return method.call(thisArgs);
40
- }
41
- }
42
- exports.LoadMappingOptions = LoadMappingOptions;
43
- //# sourceMappingURL=LoadMappingOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadMappingOptions.js","sourceRoot":"","sources":["../src/LoadMappingOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6EAA+D;AAC/D,uDAAoD;AAEpD,MAAa,kBAAmB,SAAQ,iCAAe;IAItD,KAAK,CAAC,uBAAuB,CAC5B,UAAkB,EAClB,cAA8C;;QAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,eAAe,0CAAG,UAAU,CAAC,CAAC;QAEhE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,KAAK,CACd,kBAAkB,IAAI,CAAC,IAAI,+BAA+B,UAAU,YAAY,CAChF,CAAC;SACF;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,uBAAuB,CAC5D,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,cAAc,CACd,CAAC;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;CACD;AA5BD,gDA4BC"}
@@ -1,16 +0,0 @@
1
- import type { INode } from 'n8n-workflow';
2
- import { Workflow, INodeCredentials, INodeParameters, INodeTypeNameVersion, INodeTypes } from 'n8n-workflow';
3
- export declare abstract class LoadNodeDetails {
4
- path: string;
5
- workflow: Workflow;
6
- constructor(nodeTypeNameAndVersion: INodeTypeNameVersion, nodeTypes: INodeTypes, path: string, currentNodeParameters: INodeParameters, credentials?: INodeCredentials);
7
- getWorkflowData(): {
8
- name: string;
9
- active: boolean;
10
- connections: {};
11
- nodes: INode[];
12
- createdAt: Date;
13
- updatedAt: Date;
14
- };
15
- protected getTempNode(): INode;
16
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LoadNodeDetails = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const TEMP_NODE_NAME = 'Temp-Node';
6
- const TEMP_WORKFLOW_NAME = 'Temp-Workflow';
7
- class LoadNodeDetails {
8
- constructor(nodeTypeNameAndVersion, nodeTypes, path, currentNodeParameters, credentials) {
9
- const nodeType = nodeTypes.getByNameAndVersion(nodeTypeNameAndVersion.name, nodeTypeNameAndVersion.version);
10
- this.path = path;
11
- if (nodeType === undefined) {
12
- throw new Error(`The node-type "${nodeTypeNameAndVersion.name} v${nodeTypeNameAndVersion.version}" is not known!`);
13
- }
14
- const nodeData = {
15
- parameters: currentNodeParameters,
16
- id: 'uuid-1234',
17
- name: TEMP_NODE_NAME,
18
- type: nodeTypeNameAndVersion.name,
19
- typeVersion: nodeTypeNameAndVersion.version,
20
- position: [0, 0],
21
- };
22
- if (credentials) {
23
- nodeData.credentials = credentials;
24
- }
25
- const workflowData = {
26
- nodes: [nodeData],
27
- connections: {},
28
- };
29
- this.workflow = new n8n_workflow_1.Workflow({
30
- nodes: workflowData.nodes,
31
- connections: workflowData.connections,
32
- active: false,
33
- nodeTypes,
34
- });
35
- }
36
- getWorkflowData() {
37
- return {
38
- name: TEMP_WORKFLOW_NAME,
39
- active: false,
40
- connections: {},
41
- nodes: Object.values(this.workflow.nodes),
42
- createdAt: new Date(),
43
- updatedAt: new Date(),
44
- };
45
- }
46
- getTempNode() {
47
- return this.workflow.getNode(TEMP_NODE_NAME);
48
- }
49
- }
50
- exports.LoadNodeDetails = LoadNodeDetails;
51
- //# sourceMappingURL=LoadNodeDetails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadNodeDetails.js","sourceRoot":"","sources":["../src/LoadNodeDetails.ts"],"names":[],"mappings":";;;AACA,+CAMsB;AAEtB,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C,MAAsB,eAAe;IAKpC,YACC,sBAA4C,EAC5C,SAAqB,EACrB,IAAY,EACZ,qBAAsC,EACtC,WAA8B;QAE9B,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAC7C,sBAAsB,CAAC,IAAI,EAC3B,sBAAsB,CAAC,OAAO,CAC9B,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CACd,kBAAkB,sBAAsB,CAAC,IAAI,KAAK,sBAAsB,CAAC,OAAO,kBAAkB,CAClG,CAAC;SACF;QAED,MAAM,QAAQ,GAAU;YACvB,UAAU,EAAE,qBAAqB;YACjC,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,sBAAsB,CAAC,IAAI;YACjC,WAAW,EAAE,sBAAsB,CAAC,OAAO;YAC3C,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAChB,CAAC;QAEF,IAAI,WAAW,EAAE;YAChB,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;SACnC;QAED,MAAM,YAAY,GAAG;YACpB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,WAAW,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAQ,CAAC;YAC5B,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,MAAM,EAAE,KAAK;YACb,SAAS;SACT,CAAC,CAAC;IACJ,CAAC;IAKD,eAAe;QACd,OAAO;YACN,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACrB,CAAC;IACH,CAAC;IAES,WAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAE,CAAC;IAC/C,CAAC;CACD;AApED,0CAoEC"}
@@ -1,5 +0,0 @@
1
- import type { INodeListSearchResult, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
2
- import { LoadNodeDetails } from './LoadNodeDetails';
3
- export declare class LoadNodeListSearch extends LoadNodeDetails {
4
- getOptionsViaMethodName(methodName: string, additionalData: IWorkflowExecuteAdditionalData, filter?: string, paginationToken?: string): Promise<INodeListSearchResult>;
5
- }
@@ -1,43 +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 (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.LoadNodeListSearch = void 0;
27
- const NodeExecuteFunctions = __importStar(require("./NodeExecuteFunctions"));
28
- const LoadNodeDetails_1 = require("./LoadNodeDetails");
29
- class LoadNodeListSearch extends LoadNodeDetails_1.LoadNodeDetails {
30
- async getOptionsViaMethodName(methodName, additionalData, filter, paginationToken) {
31
- var _a, _b;
32
- const node = this.getTempNode();
33
- const nodeType = this.workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
34
- const method = (_b = (_a = nodeType === null || nodeType === void 0 ? void 0 : nodeType.methods) === null || _a === void 0 ? void 0 : _a.listSearch) === null || _b === void 0 ? void 0 : _b[methodName];
35
- if (typeof method !== 'function') {
36
- throw new Error(`The node-type "${node.type}" does not have the method "${methodName}" defined!`);
37
- }
38
- const thisArgs = NodeExecuteFunctions.getLoadOptionsFunctions(this.workflow, node, this.path, additionalData);
39
- return method.call(thisArgs, filter, paginationToken);
40
- }
41
- }
42
- exports.LoadNodeListSearch = LoadNodeListSearch;
43
- //# sourceMappingURL=LoadNodeListSearch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadNodeListSearch.js","sourceRoot":"","sources":["../src/LoadNodeListSearch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6EAA+D;AAC/D,uDAAoD;AAEpD,MAAa,kBAAmB,SAAQ,iCAAe;IAItD,KAAK,CAAC,uBAAuB,CAC5B,UAAkB,EAClB,cAA8C,EAC9C,MAAe,EACf,eAAwB;;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,UAAU,0CAAG,UAAU,CAAC,CAAC;QAE3D,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,KAAK,CACd,kBAAkB,IAAI,CAAC,IAAI,+BAA+B,UAAU,YAAY,CAChF,CAAC;SACF;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,uBAAuB,CAC5D,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,cAAc,CACd,CAAC;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC;CACD;AA9BD,gDA8BC"}
@@ -1,6 +0,0 @@
1
- import type { ILoadOptions, INodePropertyOptions, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
2
- import { LoadNodeDetails } from './LoadNodeDetails';
3
- export declare class LoadNodeParameterOptions extends LoadNodeDetails {
4
- getOptionsViaMethodName(methodName: string, additionalData: IWorkflowExecuteAdditionalData): Promise<INodePropertyOptions[]>;
5
- getOptionsViaRequestProperty(loadOptions: ILoadOptions, additionalData: IWorkflowExecuteAdditionalData): Promise<INodePropertyOptions[]>;
6
- }
@@ -1,85 +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 (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.LoadNodeParameterOptions = void 0;
27
- const n8n_workflow_1 = require("n8n-workflow");
28
- const NodeExecuteFunctions = __importStar(require("./NodeExecuteFunctions"));
29
- const LoadNodeDetails_1 = require("./LoadNodeDetails");
30
- class LoadNodeParameterOptions extends LoadNodeDetails_1.LoadNodeDetails {
31
- async getOptionsViaMethodName(methodName, additionalData) {
32
- var _a, _b;
33
- const node = this.getTempNode();
34
- const nodeType = this.workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
35
- const method = (_b = (_a = nodeType === null || nodeType === void 0 ? void 0 : nodeType.methods) === null || _a === void 0 ? void 0 : _a.loadOptions) === null || _b === void 0 ? void 0 : _b[methodName];
36
- if (typeof method !== 'function') {
37
- throw new Error(`The node-type "${node.type}" does not have the method "${methodName}" defined!`);
38
- }
39
- const thisArgs = NodeExecuteFunctions.getLoadOptionsFunctions(this.workflow, node, this.path, additionalData);
40
- return method.call(thisArgs);
41
- }
42
- async getOptionsViaRequestProperty(loadOptions, additionalData) {
43
- var _a, _b;
44
- const node = this.getTempNode();
45
- const nodeType = this.workflow.nodeTypes.getByNameAndVersion(node.type, node === null || node === void 0 ? void 0 : node.typeVersion);
46
- if (!((_b = (_a = nodeType === null || nodeType === void 0 ? void 0 : nodeType.description) === null || _a === void 0 ? void 0 : _a.requestDefaults) === null || _b === void 0 ? void 0 : _b.baseURL)) {
47
- throw new Error(`The node-type "${node.type}" does not exist or does not have "requestDefaults.baseURL" defined!`);
48
- }
49
- const mode = 'internal';
50
- const runIndex = 0;
51
- const connectionInputData = [];
52
- const runExecutionData = { resultData: { runData: {} } };
53
- const routingNode = new n8n_workflow_1.RoutingNode(this.workflow, node, connectionInputData, runExecutionData !== null && runExecutionData !== void 0 ? runExecutionData : null, additionalData, mode);
54
- const tempNode = {
55
- ...nodeType,
56
- ...{
57
- description: {
58
- ...nodeType.description,
59
- properties: [
60
- {
61
- displayName: '',
62
- type: 'string',
63
- name: '',
64
- default: '',
65
- routing: loadOptions.routing,
66
- },
67
- ],
68
- },
69
- },
70
- };
71
- const inputData = {
72
- main: [[{ json: {} }]],
73
- };
74
- const optionsData = await routingNode.runNode(inputData, runIndex, tempNode, { node, source: null, data: {} }, NodeExecuteFunctions);
75
- if ((optionsData === null || optionsData === void 0 ? void 0 : optionsData.length) === 0) {
76
- return [];
77
- }
78
- if (!Array.isArray(optionsData)) {
79
- throw new Error('The returned data is not an array!');
80
- }
81
- return optionsData[0].map((item) => item.json);
82
- }
83
- }
84
- exports.LoadNodeParameterOptions = LoadNodeParameterOptions;
85
- //# sourceMappingURL=LoadNodeParameterOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadNodeParameterOptions.js","sourceRoot":"","sources":["../src/LoadNodeParameterOptions.ts"],"names":[],"mappings":"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"}