n8n-core 1.78.0 → 1.79.1

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 (88) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/credentials.d.ts +1 -0
  3. package/dist/credentials.js +7 -0
  4. package/dist/credentials.js.map +1 -1
  5. package/dist/execution-engine/active-workflows.d.ts +2 -1
  6. package/dist/execution-engine/active-workflows.js.map +1 -1
  7. package/dist/execution-engine/execution-lifecycle-hooks.d.ts +24 -0
  8. package/dist/execution-engine/execution-lifecycle-hooks.js +30 -0
  9. package/dist/execution-engine/execution-lifecycle-hooks.js.map +1 -0
  10. package/dist/execution-engine/index.d.ts +2 -0
  11. package/dist/execution-engine/index.js +4 -0
  12. package/dist/execution-engine/index.js.map +1 -1
  13. package/dist/execution-engine/interfaces.d.ts +7 -0
  14. package/dist/execution-engine/interfaces.js +3 -0
  15. package/dist/execution-engine/interfaces.js.map +1 -0
  16. package/dist/execution-engine/node-execution-context/credentials-test-context.js +4 -3
  17. package/dist/execution-engine/node-execution-context/credentials-test-context.js.map +1 -1
  18. package/dist/execution-engine/node-execution-context/execute-context.d.ts +3 -1
  19. package/dist/execution-engine/node-execution-context/execute-context.js +27 -15
  20. package/dist/execution-engine/node-execution-context/execute-context.js.map +1 -1
  21. package/dist/execution-engine/node-execution-context/execute-single-context.d.ts +1 -1
  22. package/dist/execution-engine/node-execution-context/execute-single-context.js +9 -7
  23. package/dist/execution-engine/node-execution-context/execute-single-context.js.map +1 -1
  24. package/dist/execution-engine/node-execution-context/hook-context.js +5 -4
  25. package/dist/execution-engine/node-execution-context/hook-context.js.map +1 -1
  26. package/dist/execution-engine/node-execution-context/index.d.ts +6 -0
  27. package/dist/execution-engine/node-execution-context/index.js +26 -1
  28. package/dist/execution-engine/node-execution-context/index.js.map +1 -1
  29. package/dist/execution-engine/node-execution-context/load-options-context.js +4 -3
  30. package/dist/execution-engine/node-execution-context/load-options-context.js.map +1 -1
  31. package/dist/execution-engine/node-execution-context/node-execution-context.d.ts +1 -1
  32. package/dist/execution-engine/node-execution-context/poll-context.js +8 -5
  33. package/dist/execution-engine/node-execution-context/poll-context.js.map +1 -1
  34. package/dist/execution-engine/node-execution-context/supply-data-context.js +23 -15
  35. package/dist/execution-engine/node-execution-context/supply-data-context.js.map +1 -1
  36. package/dist/execution-engine/node-execution-context/trigger-context.js +10 -6
  37. package/dist/execution-engine/node-execution-context/trigger-context.js.map +1 -1
  38. package/dist/execution-engine/node-execution-context/utils/binary-helper-functions.d.ts +10 -0
  39. package/dist/execution-engine/node-execution-context/utils/binary-helper-functions.js +183 -0
  40. package/dist/execution-engine/node-execution-context/utils/binary-helper-functions.js.map +1 -0
  41. package/dist/execution-engine/node-execution-context/utils/construct-execution-metadata.d.ts +4 -0
  42. package/dist/execution-engine/node-execution-context/utils/construct-execution-metadata.js +11 -0
  43. package/dist/execution-engine/node-execution-context/utils/construct-execution-metadata.js.map +1 -0
  44. package/dist/execution-engine/node-execution-context/utils/copy-input-items.d.ts +2 -0
  45. package/dist/execution-engine/node-execution-context/utils/copy-input-items.js +19 -0
  46. package/dist/execution-engine/node-execution-context/utils/copy-input-items.js.map +1 -0
  47. package/dist/execution-engine/node-execution-context/utils/deduplication-helper-functions.d.ts +2 -0
  48. package/dist/execution-engine/node-execution-context/utils/deduplication-helper-functions.js +38 -0
  49. package/dist/execution-engine/node-execution-context/utils/deduplication-helper-functions.js.map +1 -0
  50. package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.d.ts +3 -0
  51. package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js +98 -0
  52. package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js.map +1 -0
  53. package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.d.ts +1 -1
  54. package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.js +2 -2
  55. package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.js.map +1 -1
  56. package/dist/execution-engine/node-execution-context/utils/normalize-items.d.ts +2 -0
  57. package/dist/execution-engine/node-execution-context/utils/normalize-items.js +36 -0
  58. package/dist/execution-engine/node-execution-context/utils/normalize-items.js.map +1 -0
  59. package/dist/execution-engine/node-execution-context/utils/parse-incoming-message.d.ts +16 -0
  60. package/dist/execution-engine/node-execution-context/utils/parse-incoming-message.js +57 -0
  61. package/dist/execution-engine/node-execution-context/utils/parse-incoming-message.js.map +1 -0
  62. package/dist/execution-engine/node-execution-context/utils/request-helper-functions.d.ts +16 -0
  63. package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js +1158 -0
  64. package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js.map +1 -0
  65. package/dist/execution-engine/node-execution-context/utils/return-json-array.d.ts +2 -0
  66. package/dist/execution-engine/node-execution-context/utils/return-json-array.js +19 -0
  67. package/dist/execution-engine/node-execution-context/utils/return-json-array.js.map +1 -0
  68. package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.d.ts +2 -0
  69. package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.js +13 -0
  70. package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.js.map +1 -0
  71. package/dist/execution-engine/node-execution-context/utils/ssh-tunnel-helper-functions.d.ts +2 -0
  72. package/dist/execution-engine/node-execution-context/utils/ssh-tunnel-helper-functions.js +13 -0
  73. package/dist/execution-engine/node-execution-context/utils/ssh-tunnel-helper-functions.js.map +1 -0
  74. package/dist/execution-engine/node-execution-context/utils/webhook-helper-functions.d.ts +3 -0
  75. package/dist/execution-engine/node-execution-context/utils/webhook-helper-functions.js +31 -0
  76. package/dist/execution-engine/node-execution-context/utils/webhook-helper-functions.js.map +1 -0
  77. package/dist/execution-engine/node-execution-context/webhook-context.js +9 -6
  78. package/dist/execution-engine/node-execution-context/webhook-context.js.map +1 -1
  79. package/dist/execution-engine/triggers-and-pollers.d.ts +2 -1
  80. package/dist/execution-engine/triggers-and-pollers.js +19 -23
  81. package/dist/execution-engine/triggers-and-pollers.js.map +1 -1
  82. package/dist/execution-engine/workflow-execute.d.ts +0 -1
  83. package/dist/execution-engine/workflow-execute.js +21 -23
  84. package/dist/execution-engine/workflow-execute.js.map +1 -1
  85. package/dist/node-execute-functions.d.ts +1 -62
  86. package/dist/node-execute-functions.js +0 -1626
  87. package/dist/node-execute-functions.js.map +1 -1
  88. package/package.json +4 -4
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeItems = normalizeItems;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ function normalizeItems(executionData) {
6
+ if (typeof executionData === 'object' && !Array.isArray(executionData)) {
7
+ executionData = executionData.json ? [executionData] : [{ json: executionData }];
8
+ }
9
+ if (executionData.every((item) => typeof item === 'object' && 'json' in item))
10
+ return executionData;
11
+ if (executionData.some((item) => typeof item === 'object' && 'json' in item)) {
12
+ throw new n8n_workflow_1.ApplicationError('Inconsistent item format');
13
+ }
14
+ if (executionData.every((item) => typeof item === 'object' && 'binary' in item)) {
15
+ const normalizedItems = [];
16
+ executionData.forEach((item) => {
17
+ const json = Object.keys(item).reduce((acc, key) => {
18
+ if (key === 'binary')
19
+ return acc;
20
+ return { ...acc, [key]: item[key] };
21
+ }, {});
22
+ normalizedItems.push({
23
+ json,
24
+ binary: item.binary,
25
+ });
26
+ });
27
+ return normalizedItems;
28
+ }
29
+ if (executionData.some((item) => typeof item === 'object' && 'binary' in item)) {
30
+ throw new n8n_workflow_1.ApplicationError('Inconsistent item format');
31
+ }
32
+ return executionData.map((item) => {
33
+ return { json: item };
34
+ });
35
+ }
36
+ //# sourceMappingURL=normalize-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-items.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/normalize-items.ts"],"names":[],"mappings":";;AASA,wCAqCC;AA7CD,+CAAgD;AAQhD,SAAgB,cAAc,CAC7B,aAAwD;IAExD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACxE,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAA4B,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC;QAC5E,OAAO,aAAa,CAAC;IAEtB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,+BAAgB,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,GAAG,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC;gBACjC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,eAAe,CAAC,IAAI,CAAC;gBACpB,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,+BAAgB,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { IncomingMessage } from 'http';
2
+ interface IContentType {
3
+ type: string;
4
+ parameters: {
5
+ charset: string;
6
+ [key: string]: string;
7
+ };
8
+ }
9
+ export declare const parseContentType: (contentType?: string) => IContentType | null;
10
+ interface IContentDisposition {
11
+ type: string;
12
+ filename?: string;
13
+ }
14
+ export declare const parseContentDisposition: (contentDisposition?: string) => IContentDisposition | null;
15
+ export declare function parseIncomingMessage(message: IncomingMessage): void;
16
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseContentDisposition = exports.parseContentType = void 0;
4
+ exports.parseIncomingMessage = parseIncomingMessage;
5
+ function parseHeaderParameters(parameters) {
6
+ return parameters.reduce((acc, param) => {
7
+ const [key, value] = param.split('=');
8
+ let decodedValue = decodeURIComponent(value).trim();
9
+ if (decodedValue.startsWith('"') && decodedValue.endsWith('"')) {
10
+ decodedValue = decodedValue.slice(1, -1);
11
+ }
12
+ acc[key.toLowerCase().trim()] = decodedValue;
13
+ return acc;
14
+ }, {});
15
+ }
16
+ const parseContentType = (contentType) => {
17
+ if (!contentType) {
18
+ return null;
19
+ }
20
+ const [type, ...parameters] = contentType.split(';');
21
+ return {
22
+ type: type.toLowerCase(),
23
+ parameters: { charset: 'utf-8', ...parseHeaderParameters(parameters) },
24
+ };
25
+ };
26
+ exports.parseContentType = parseContentType;
27
+ const parseContentDisposition = (contentDisposition) => {
28
+ if (!contentDisposition) {
29
+ return null;
30
+ }
31
+ if (!contentDisposition.startsWith('attachment') && !contentDisposition.startsWith('inline')) {
32
+ contentDisposition = `attachment; ${contentDisposition}`;
33
+ }
34
+ const [type, ...parameters] = contentDisposition.split(';');
35
+ const parsedParameters = parseHeaderParameters(parameters);
36
+ let { filename } = parsedParameters;
37
+ const wildcard = parsedParameters['filename*'];
38
+ if (wildcard) {
39
+ const [_encoding, _locale, content] = wildcard?.split("'") ?? [];
40
+ filename = content;
41
+ }
42
+ return { type, filename };
43
+ };
44
+ exports.parseContentDisposition = parseContentDisposition;
45
+ function parseIncomingMessage(message) {
46
+ const contentType = (0, exports.parseContentType)(message.headers['content-type']);
47
+ if (contentType) {
48
+ const { type, parameters } = contentType;
49
+ message.contentType = type;
50
+ message.encoding = parameters.charset.toLowerCase();
51
+ }
52
+ const contentDisposition = (0, exports.parseContentDisposition)(message.headers['content-disposition']);
53
+ if (contentDisposition) {
54
+ message.contentDisposition = contentDisposition;
55
+ }
56
+ }
57
+ //# sourceMappingURL=parse-incoming-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-incoming-message.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/parse-incoming-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ import FormData from 'form-data';
3
+ import type { IAdditionalCredentialOptions, IAllExecuteFunctions, IHttpRequestOptions, IN8nHttpFullResponse, IN8nHttpResponse, INode, INodeExecutionData, IOAuth2Options, IRequestOptions, IRunExecutionData, IWorkflowExecuteAdditionalData, PaginationOptions, RequestHelperFunctions, Workflow } from 'n8n-workflow';
4
+ export declare function invokeAxios(axiosConfig: AxiosRequestConfig, authOptions?: IRequestOptions['auth']): Promise<AxiosResponse<any, any>>;
5
+ export declare const createFormDataObject: (data: Record<string, unknown>) => FormData;
6
+ export declare function parseRequestObject(requestObject: IRequestOptions): Promise<AxiosRequestConfig<any>>;
7
+ export declare function proxyRequestToAxios(workflow: Workflow | undefined, additionalData: IWorkflowExecuteAdditionalData | undefined, node: INode | undefined, uriOrObject: string | IRequestOptions, options?: IRequestOptions): Promise<any>;
8
+ export declare function convertN8nRequestToAxios(n8nRequest: IHttpRequestOptions): AxiosRequestConfig;
9
+ export declare const removeEmptyBody: (requestOptions: IHttpRequestOptions | IRequestOptions) => void;
10
+ export declare function httpRequest(requestOptions: IHttpRequestOptions): Promise<IN8nHttpFullResponse | IN8nHttpResponse>;
11
+ export declare function applyPaginationRequestData(requestData: IRequestOptions, paginationRequestData: PaginationOptions['request']): IRequestOptions;
12
+ export declare function requestOAuth2(this: IAllExecuteFunctions, credentialsType: string, requestOptions: IHttpRequestOptions | IRequestOptions, node: INode, additionalData: IWorkflowExecuteAdditionalData, oAuth2Options?: IOAuth2Options, isN8nRequest?: boolean): Promise<any>;
13
+ export declare function requestOAuth1(this: IAllExecuteFunctions, credentialsType: string, requestOptions: IHttpRequestOptions | IRequestOptions, isN8nRequest?: boolean): Promise<any>;
14
+ export declare function httpRequestWithAuthentication(this: IAllExecuteFunctions, credentialsType: string, requestOptions: IHttpRequestOptions, workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, additionalCredentialOptions?: IAdditionalCredentialOptions): Promise<any>;
15
+ export declare function requestWithAuthentication(this: IAllExecuteFunctions, credentialsType: string, requestOptions: IRequestOptions, workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, additionalCredentialOptions?: IAdditionalCredentialOptions, itemIndex?: number): Promise<any>;
16
+ export declare const getRequestHelperFunctions: (workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, runExecutionData?: IRunExecutionData | null, connectionInputData?: INodeExecutionData[]) => RequestHelperFunctions;