n8n 1.72.0 → 1.73.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 (153) hide show
  1. package/dist/active-workflow-manager.d.ts +6 -4
  2. package/dist/active-workflow-manager.js +38 -13
  3. package/dist/active-workflow-manager.js.map +1 -1
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/collaboration/collaboration.service.d.ts +3 -1
  6. package/dist/collaboration/collaboration.service.js +6 -3
  7. package/dist/collaboration/collaboration.service.js.map +1 -1
  8. package/dist/commands/base-command.d.ts +2 -1
  9. package/dist/commands/base-command.js +3 -3
  10. package/dist/commands/base-command.js.map +1 -1
  11. package/dist/commands/execute-batch.js +1 -1
  12. package/dist/commands/execute-batch.js.map +1 -1
  13. package/dist/commands/start.js +3 -2
  14. package/dist/commands/start.js.map +1 -1
  15. package/dist/config/index.d.ts +0 -1
  16. package/dist/config/schema.d.ts +0 -6
  17. package/dist/config/schema.js +0 -6
  18. package/dist/config/schema.js.map +1 -1
  19. package/dist/databases/entities/workflow-entity.d.ts +1 -1
  20. package/dist/databases/entities/workflow-entity.js.map +1 -1
  21. package/dist/databases/repositories/execution.repository.d.ts +3 -2
  22. package/dist/databases/repositories/execution.repository.js +4 -2
  23. package/dist/databases/repositories/execution.repository.js.map +1 -1
  24. package/dist/databases/repositories/settings.repository.d.ts +3 -1
  25. package/dist/databases/repositories/settings.repository.js +6 -4
  26. package/dist/databases/repositories/settings.repository.js.map +1 -1
  27. package/dist/databases/repositories/shared-workflow.repository.d.ts +1 -1
  28. package/dist/databases/subscribers/user-subscriber.d.ts +1 -0
  29. package/dist/databases/subscribers/user-subscriber.js +6 -2
  30. package/dist/databases/subscribers/user-subscriber.js.map +1 -1
  31. package/dist/db.js +2 -1
  32. package/dist/db.js.map +1 -1
  33. package/dist/environments/source-control/source-control-import.service.ee.d.ts +3 -2
  34. package/dist/environments/source-control/source-control-import.service.ee.js +4 -2
  35. package/dist/environments/source-control/source-control-import.service.ee.js.map +1 -1
  36. package/dist/evaluation/test-runner/test-runner.service.ee.d.ts +4 -1
  37. package/dist/evaluation/test-runner/test-runner.service.ee.js +36 -11
  38. package/dist/evaluation/test-runner/test-runner.service.ee.js.map +1 -1
  39. package/dist/evaluation/test-runner/utils.ee.d.ts +2 -1
  40. package/dist/evaluation/test-runner/utils.ee.js +8 -6
  41. package/dist/evaluation/test-runner/utils.ee.js.map +1 -1
  42. package/dist/events/relays/telemetry.event-relay.d.ts +3 -1
  43. package/dist/events/relays/telemetry.event-relay.js +5 -1
  44. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  45. package/dist/execution-lifecycle-hooks/save-execution-progress.js +2 -2
  46. package/dist/execution-lifecycle-hooks/save-execution-progress.js.map +1 -1
  47. package/dist/expression-evaluator.js +3 -1
  48. package/dist/expression-evaluator.js.map +1 -1
  49. package/dist/license.d.ts +1 -3
  50. package/dist/license.js +11 -10
  51. package/dist/license.js.map +1 -1
  52. package/dist/load-nodes-and-credentials.d.ts +7 -3
  53. package/dist/load-nodes-and-credentials.js +76 -3
  54. package/dist/load-nodes-and-credentials.js.map +1 -1
  55. package/dist/manual-execution.service.d.ts +9 -0
  56. package/dist/manual-execution.service.js +112 -0
  57. package/dist/manual-execution.service.js.map +1 -0
  58. package/dist/node-types.js +1 -1
  59. package/dist/node-types.js.map +1 -1
  60. package/dist/public-api/types.d.ts +4 -1
  61. package/dist/public-api/types.js.map +1 -1
  62. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +10 -1
  63. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  64. package/dist/public-api/v1/openapi.yml +14 -0
  65. package/dist/push/abstract.push.d.ts +3 -1
  66. package/dist/push/abstract.push.js +6 -3
  67. package/dist/push/abstract.push.js.map +1 -1
  68. package/dist/push/index.d.ts +3 -3
  69. package/dist/push/index.js +5 -5
  70. package/dist/push/index.js.map +1 -1
  71. package/dist/push/websocket.push.js +1 -1
  72. package/dist/push/websocket.push.js.map +1 -1
  73. package/dist/response-helper.js +2 -1
  74. package/dist/response-helper.js.map +1 -1
  75. package/dist/runners/runner-ws-server.js +1 -1
  76. package/dist/runners/runner-ws-server.js.map +1 -1
  77. package/dist/runners/task-managers/task-manager.js +11 -1
  78. package/dist/runners/task-managers/task-manager.js.map +1 -1
  79. package/dist/runners/task-runner-module.d.ts +3 -1
  80. package/dist/runners/task-runner-module.js +5 -2
  81. package/dist/runners/task-runner-module.js.map +1 -1
  82. package/dist/scaling/job-processor.d.ts +3 -2
  83. package/dist/scaling/job-processor.js +4 -2
  84. package/dist/scaling/job-processor.js.map +1 -1
  85. package/dist/scaling/pubsub/publisher.service.d.ts +1 -1
  86. package/dist/scaling/pubsub/publisher.service.js +9 -1
  87. package/dist/scaling/pubsub/publisher.service.js.map +1 -1
  88. package/dist/scaling/pubsub/pubsub.types.d.ts +2 -2
  89. package/dist/scaling/pubsub/subscriber.service.js +10 -6
  90. package/dist/scaling/pubsub/subscriber.service.js.map +1 -1
  91. package/dist/scaling/scaling.service.d.ts +3 -2
  92. package/dist/scaling/scaling.service.js +9 -6
  93. package/dist/scaling/scaling.service.js.map +1 -1
  94. package/dist/server.d.ts +1 -3
  95. package/dist/server.js +2 -5
  96. package/dist/server.js.map +1 -1
  97. package/dist/services/credentials-tester.service.d.ts +3 -1
  98. package/dist/services/credentials-tester.service.js +6 -4
  99. package/dist/services/credentials-tester.service.js.map +1 -1
  100. package/dist/services/dynamic-node-parameters.service.js +6 -2
  101. package/dist/services/dynamic-node-parameters.service.js.map +1 -1
  102. package/dist/services/frontend.service.d.ts +0 -1
  103. package/dist/services/frontend.service.js +1 -12
  104. package/dist/services/frontend.service.js.map +1 -1
  105. package/dist/services/orchestration.service.d.ts +0 -5
  106. package/dist/services/orchestration.service.js +2 -18
  107. package/dist/services/orchestration.service.js.map +1 -1
  108. package/dist/services/pruning/pruning.service.js +1 -1
  109. package/dist/services/pruning/pruning.service.js.map +1 -1
  110. package/dist/shutdown/shutdown.service.d.ts +3 -2
  111. package/dist/shutdown/shutdown.service.js +6 -3
  112. package/dist/shutdown/shutdown.service.js.map +1 -1
  113. package/dist/user-management/email/node-mailer.d.ts +3 -1
  114. package/dist/user-management/email/node-mailer.js +6 -4
  115. package/dist/user-management/email/node-mailer.js.map +1 -1
  116. package/dist/wait-tracker.js +2 -3
  117. package/dist/wait-tracker.js.map +1 -1
  118. package/dist/webhooks/live-webhooks.js +3 -1
  119. package/dist/webhooks/live-webhooks.js.map +1 -1
  120. package/dist/webhooks/test-webhook-registrations.service.d.ts +3 -3
  121. package/dist/webhooks/test-webhook-registrations.service.js +5 -5
  122. package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
  123. package/dist/webhooks/test-webhooks.d.ts +5 -3
  124. package/dist/webhooks/test-webhooks.js +11 -9
  125. package/dist/webhooks/test-webhooks.js.map +1 -1
  126. package/dist/webhooks/waiting-webhooks.d.ts +3 -1
  127. package/dist/webhooks/waiting-webhooks.js +8 -3
  128. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  129. package/dist/webhooks/webhook-helpers.js +5 -4
  130. package/dist/webhooks/webhook-helpers.js.map +1 -1
  131. package/dist/webhooks/webhook.service.d.ts +13 -4
  132. package/dist/webhooks/webhook.service.js +100 -3
  133. package/dist/webhooks/webhook.service.js.map +1 -1
  134. package/dist/workflow-execute-additional-data.js +5 -5
  135. package/dist/workflow-execute-additional-data.js.map +1 -1
  136. package/dist/workflow-helpers.d.ts +1 -2
  137. package/dist/workflow-helpers.js +0 -9
  138. package/dist/workflow-helpers.js.map +1 -1
  139. package/dist/workflow-runner.d.ts +6 -6
  140. package/dist/workflow-runner.js +11 -52
  141. package/dist/workflow-runner.js.map +1 -1
  142. package/dist/workflows/workflow-execution.service.d.ts +3 -1
  143. package/dist/workflows/workflow-execution.service.js +5 -2
  144. package/dist/workflows/workflow-execution.service.js.map +1 -1
  145. package/dist/workflows/workflow-static-data.service.d.ts +4 -2
  146. package/dist/workflows/workflow-static-data.service.js +5 -3
  147. package/dist/workflows/workflow-static-data.service.js.map +1 -1
  148. package/dist/workflows/workflows.controller.d.ts +4 -4
  149. package/package.json +10 -10
  150. package/templates/form-trigger.handlebars +5 -1
  151. package/dist/error-reporting.d.ts +0 -1
  152. package/dist/error-reporting.js +0 -137
  153. package/dist/error-reporting.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n",
3
- "version": "1.72.0",
3
+ "version": "1.73.0",
4
4
  "description": "n8n Workflow Automation Tool",
5
5
  "main": "dist/index",
6
6
  "types": "dist/index.d.ts",
@@ -110,7 +110,7 @@
110
110
  "lodash": "4.17.21",
111
111
  "luxon": "3.4.4",
112
112
  "mysql2": "3.11.0",
113
- "nanoid": "3.3.6",
113
+ "nanoid": "3.3.8",
114
114
  "nodemailer": "6.9.9",
115
115
  "oauth-1.0a": "2.2.6",
116
116
  "open": "7.4.2",
@@ -146,16 +146,16 @@
146
146
  "xss": "1.0.15",
147
147
  "yamljs": "0.3.0",
148
148
  "zod": "3.23.8",
149
- "@n8n/api-types": "0.10.0",
150
149
  "@n8n/client-oauth2": "0.21.0",
151
- "@n8n/config": "1.22.0",
150
+ "@n8n/api-types": "0.11.0",
151
+ "@n8n/config": "1.23.0",
152
152
  "@n8n/permissions": "0.16.0",
153
- "@n8n/task-runner": "1.10.0",
154
- "n8n-core": "1.72.0",
155
- "@n8n/n8n-nodes-langchain": "1.72.0",
156
- "n8n-nodes-base": "1.72.0",
157
- "n8n-workflow": "1.71.0",
158
- "n8n-editor-ui": "1.72.0"
153
+ "n8n-core": "1.73.0",
154
+ "@n8n/task-runner": "1.11.0",
155
+ "n8n-editor-ui": "1.73.0",
156
+ "n8n-workflow": "1.72.0",
157
+ "@n8n/n8n-nodes-langchain": "1.73.0",
158
+ "n8n-nodes-base": "1.73.0"
159
159
  },
160
160
  "license": "SEE LICENSE IN LICENSE.md",
161
161
  "homepage": "https://n8n.io",
@@ -450,7 +450,11 @@
450
450
 
451
451
  <div class='card' id='submitted-form' style='display: none;'>
452
452
  <div class='form-header'>
453
- <h1 id='submitted-header'>Form Submitted</h1>
453
+ {{#if formSubmittedHeader}}
454
+ <h1 id='submitted-header'>{{formSubmittedHeader}}</h1>
455
+ {{else}}
456
+ <h1 id='submitted-header'>Form Submitted</h1>
457
+ {{/if}}
454
458
  {{#if formSubmittedText}}
455
459
  <p id='submitted-content'>
456
460
  {{formSubmittedText}}
@@ -1 +0,0 @@
1
- export declare const initErrorHandling: () => Promise<void>;
@@ -1,137 +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
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.initErrorHandling = void 0;
40
- const config_1 = require("@n8n/config");
41
- const typeorm_1 = require("@n8n/typeorm");
42
- const axios_1 = require("axios");
43
- const crypto_1 = require("crypto");
44
- const n8n_core_1 = require("n8n-core");
45
- const n8n_workflow_1 = require("n8n-workflow");
46
- const typedi_1 = __importDefault(require("typedi"));
47
- let initialized = false;
48
- const initErrorHandling = async () => {
49
- if (initialized)
50
- return;
51
- process.on('uncaughtException', (error) => {
52
- n8n_workflow_1.ErrorReporterProxy.error(error);
53
- });
54
- const dsn = typedi_1.default.get(config_1.GlobalConfig).sentry.backendDsn;
55
- if (!dsn) {
56
- initialized = true;
57
- return;
58
- }
59
- Error.stackTraceLimit = 50;
60
- const { N8N_VERSION: release, ENVIRONMENT: environment, DEPLOYMENT_NAME: serverName, } = process.env;
61
- const { init, captureException, setTag } = await Promise.resolve().then(() => __importStar(require('@sentry/node')));
62
- const { requestDataIntegration, rewriteFramesIntegration } = await Promise.resolve().then(() => __importStar(require('@sentry/node')));
63
- const enabledIntegrations = [
64
- 'InboundFilters',
65
- 'FunctionToString',
66
- 'LinkedErrors',
67
- 'OnUnhandledRejection',
68
- 'ContextLines',
69
- ];
70
- const seenErrors = new Set();
71
- init({
72
- dsn,
73
- release,
74
- environment,
75
- enableTracing: false,
76
- serverName,
77
- beforeBreadcrumb: () => null,
78
- integrations: (integrations) => [
79
- ...integrations.filter(({ name }) => enabledIntegrations.includes(name)),
80
- rewriteFramesIntegration({ root: process.cwd() }),
81
- requestDataIntegration({
82
- include: {
83
- cookies: false,
84
- data: false,
85
- headers: false,
86
- query_string: false,
87
- url: true,
88
- user: false,
89
- },
90
- }),
91
- ],
92
- async beforeSend(event, { originalException }) {
93
- if (!originalException)
94
- return null;
95
- if (originalException instanceof Promise) {
96
- originalException = await originalException.catch((error) => error);
97
- }
98
- if (originalException instanceof axios_1.AxiosError)
99
- return null;
100
- if (originalException instanceof typeorm_1.QueryFailedError &&
101
- ['SQLITE_FULL', 'SQLITE_IOERR'].some((errMsg) => originalException.message.includes(errMsg))) {
102
- return null;
103
- }
104
- if (originalException instanceof n8n_workflow_1.ApplicationError) {
105
- const { level, extra, tags } = originalException;
106
- if (level === 'warning')
107
- return null;
108
- event.level = level;
109
- if (extra)
110
- event.extra = { ...event.extra, ...extra };
111
- if (tags)
112
- event.tags = { ...event.tags, ...tags };
113
- }
114
- if (originalException instanceof Error &&
115
- 'cause' in originalException &&
116
- originalException.cause instanceof Error &&
117
- 'level' in originalException.cause &&
118
- originalException.cause.level === 'warning') {
119
- return null;
120
- }
121
- if (originalException instanceof Error && originalException.stack) {
122
- const eventHash = (0, crypto_1.createHash)('sha1').update(originalException.stack).digest('base64');
123
- if (seenErrors.has(eventHash))
124
- return null;
125
- seenErrors.add(eventHash);
126
- }
127
- return event;
128
- },
129
- });
130
- setTag('server_type', typedi_1.default.get(n8n_core_1.InstanceSettings).instanceType);
131
- n8n_workflow_1.ErrorReporterProxy.init({
132
- report: (error, options) => captureException(error, options),
133
- });
134
- initialized = true;
135
- };
136
- exports.initErrorHandling = initErrorHandling;
137
- //# sourceMappingURL=error-reporting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-reporting.js","sourceRoot":"","sources":["../src/error-reporting.ts"],"names":[],"mappings":"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"}