n8n 2.36.5 → 2.37.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 (738) hide show
  1. package/README.md +4 -4
  2. package/dist/auth/auth.service.js.map +1 -1
  3. package/dist/build.tsbuildinfo +1 -1
  4. package/dist/commands/start.js +3 -2
  5. package/dist/commands/start.js.map +1 -1
  6. package/dist/constants/oauth2-triggers.d.ts +1 -1
  7. package/dist/constants/oauth2-triggers.js +3 -3
  8. package/dist/constants/workflow-reviews.d.ts +0 -3
  9. package/dist/constants/workflow-reviews.js +1 -10
  10. package/dist/constants/workflow-reviews.js.map +1 -1
  11. package/dist/constants.d.ts +2 -0
  12. package/dist/constants.js +4 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/controller.registry.js +11 -1
  15. package/dist/controller.registry.js.map +1 -1
  16. package/dist/controllers/e2e.controller.d.ts +2 -0
  17. package/dist/controllers/e2e.controller.js +7 -1
  18. package/dist/controllers/e2e.controller.js.map +1 -1
  19. package/dist/controllers/project.controller.js +3 -3
  20. package/dist/controllers/project.controller.js.map +1 -1
  21. package/dist/controllers/role.controller.d.ts +0 -1
  22. package/dist/controllers/role.controller.js +24 -17
  23. package/dist/controllers/role.controller.js.map +1 -1
  24. package/dist/controllers/security-settings.controller.js +1 -2
  25. package/dist/controllers/security-settings.controller.js.map +1 -1
  26. package/dist/credentials/credential-resolution-provider.interface.d.ts +1 -1
  27. package/dist/credentials/dynamic-credentials-proxy.d.ts +1 -1
  28. package/dist/credentials/dynamic-credentials-proxy.js +2 -2
  29. package/dist/credentials/dynamic-credentials-proxy.js.map +1 -1
  30. package/dist/credentials-helper.js +12 -1
  31. package/dist/credentials-helper.js.map +1 -1
  32. package/dist/errors/response-errors/unsupported-media-type.error.d.ts +4 -0
  33. package/dist/errors/response-errors/unsupported-media-type.error.js +11 -0
  34. package/dist/errors/response-errors/unsupported-media-type.error.js.map +1 -0
  35. package/dist/eventbus/event-message-classes/event-message-audit.d.ts +1 -1
  36. package/dist/eventbus/event-message-classes/event-message-mcp.d.ts +2 -0
  37. package/dist/eventbus/event-message-classes/event-message-mcp.js.map +1 -1
  38. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  39. package/dist/eventbus/event-message-classes/index.js +7 -0
  40. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  41. package/dist/events/maps/poll-trigger-metrics.event-map.d.ts +3 -0
  42. package/dist/events/maps/relay.event-map.d.ts +42 -2
  43. package/dist/events/relays/log-streaming.event-relay.d.ts +4 -0
  44. package/dist/events/relays/log-streaming.event-relay.js +72 -1
  45. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  46. package/dist/events/relays/telemetry.event-relay.d.ts +5 -0
  47. package/dist/events/relays/telemetry.event-relay.js +55 -1
  48. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  49. package/dist/executions/execution-data/db-store.d.ts +1 -1
  50. package/dist/executions/execution-data/db-store.js +3 -2
  51. package/dist/executions/execution-data/db-store.js.map +1 -1
  52. package/dist/executions/execution-data/types.d.ts +4 -2
  53. package/dist/executions/execution-data/types.js +4 -0
  54. package/dist/executions/execution-data/types.js.map +1 -1
  55. package/dist/executions/execution-data/unreadable-run-data.error.d.ts +5 -0
  56. package/dist/executions/execution-data/unreadable-run-data.error.js +11 -0
  57. package/dist/executions/execution-data/unreadable-run-data.error.js.map +1 -0
  58. package/dist/executions/execution-persistence.d.ts +3 -1
  59. package/dist/executions/execution-persistence.js +23 -10
  60. package/dist/executions/execution-persistence.js.map +1 -1
  61. package/dist/executions/execution.service.d.ts +4 -1
  62. package/dist/executions/execution.service.js +9 -7
  63. package/dist/executions/execution.service.js.map +1 -1
  64. package/dist/executions/execution.types.d.ts +1 -7
  65. package/dist/executions/executions.controller.d.ts +4 -1
  66. package/dist/executions/executions.controller.js +8 -3
  67. package/dist/executions/executions.controller.js.map +1 -1
  68. package/dist/executions/pre-execution-checks/credentials-permission-checker.js +3 -21
  69. package/dist/executions/pre-execution-checks/credentials-permission-checker.js.map +1 -1
  70. package/dist/metrics/prometheus/poll-trigger-metrics.service.js +8 -0
  71. package/dist/metrics/prometheus/poll-trigger-metrics.service.js.map +1 -1
  72. package/dist/modules/agents/agent-config.service.js +1 -1
  73. package/dist/modules/agents/agent-config.service.js.map +1 -1
  74. package/dist/modules/agents/agent-custom-tools.service.js +2 -2
  75. package/dist/modules/agents/agent-custom-tools.service.js.map +1 -1
  76. package/dist/modules/agents/agent-execution.service.d.ts +5 -1
  77. package/dist/modules/agents/agent-execution.service.js +33 -5
  78. package/dist/modules/agents/agent-execution.service.js.map +1 -1
  79. package/dist/modules/agents/agent-integration-management.service.d.ts +1 -0
  80. package/dist/modules/agents/agent-integration-management.service.js +16 -4
  81. package/dist/modules/agents/agent-integration-management.service.js.map +1 -1
  82. package/dist/modules/agents/agent-publish.service.d.ts +1 -1
  83. package/dist/modules/agents/agent-publish.service.js +56 -20
  84. package/dist/modules/agents/agent-publish.service.js.map +1 -1
  85. package/dist/modules/agents/agent-sandbox-principal.d.ts +2 -2
  86. package/dist/modules/agents/agent-sandbox-principal.js +2 -2
  87. package/dist/modules/agents/agent-sandbox-principal.js.map +1 -1
  88. package/dist/modules/agents/agent-sandbox-runtime.service.js +2 -2
  89. package/dist/modules/agents/agent-sandbox-runtime.service.js.map +1 -1
  90. package/dist/modules/agents/agent-skills.service.js +3 -3
  91. package/dist/modules/agents/agent-skills.service.js.map +1 -1
  92. package/dist/modules/agents/agent-task.service.d.ts +2 -0
  93. package/dist/modules/agents/agent-task.service.js +45 -10
  94. package/dist/modules/agents/agent-task.service.js.map +1 -1
  95. package/dist/modules/agents/agent-threads.controller.d.ts +3 -4
  96. package/dist/modules/agents/agent-threads.controller.js +10 -4
  97. package/dist/modules/agents/agent-threads.controller.js.map +1 -1
  98. package/dist/modules/agents/agent-validation.service.d.ts +2 -6
  99. package/dist/modules/agents/agent-validation.service.js +5 -9
  100. package/dist/modules/agents/agent-validation.service.js.map +1 -1
  101. package/dist/modules/agents/agent-workflow-execution.service.d.ts +3 -2
  102. package/dist/modules/agents/agent-workflow-execution.service.js +31 -14
  103. package/dist/modules/agents/agent-workflow-execution.service.js.map +1 -1
  104. package/dist/modules/agents/agents-config.controller.d.ts +9 -0
  105. package/dist/modules/agents/agents.module.js +0 -3
  106. package/dist/modules/agents/agents.module.js.map +1 -1
  107. package/dist/modules/agents/builder/agents-builder-tools.service.js +5 -2
  108. package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
  109. package/dist/modules/agents/builder/agents-builder.service.d.ts +2 -0
  110. package/dist/modules/agents/builder/agents-builder.service.js +18 -5
  111. package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
  112. package/dist/modules/agents/builder/builder-model-live-lookup.service.d.ts +4 -3
  113. package/dist/modules/agents/builder/builder-model-live-lookup.service.js +11 -10
  114. package/dist/modules/agents/builder/builder-model-live-lookup.service.js.map +1 -1
  115. package/dist/modules/agents/builder/get-resource-locator-options.tool.d.ts +2 -2
  116. package/dist/modules/agents/builder/skills/target-tasks.skill.js +3 -0
  117. package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
  118. package/dist/modules/agents/entities/agent-execution.entity.d.ts +2 -0
  119. package/dist/modules/agents/entities/agent-execution.entity.js +4 -0
  120. package/dist/modules/agents/entities/agent-execution.entity.js.map +1 -1
  121. package/dist/modules/agents/entities/agent-task-snapshot.entity.d.ts +1 -0
  122. package/dist/modules/agents/entities/agent-task-snapshot.entity.js +10 -1
  123. package/dist/modules/agents/entities/agent-task-snapshot.entity.js.map +1 -1
  124. package/dist/modules/agents/entities/agent-task.entity.d.ts +1 -0
  125. package/dist/modules/agents/entities/agent-task.entity.js +10 -1
  126. package/dist/modules/agents/entities/agent-task.entity.js.map +1 -1
  127. package/dist/modules/agents/entities/agent.entity.d.ts +1 -0
  128. package/dist/modules/agents/entities/agent.entity.js +4 -0
  129. package/dist/modules/agents/entities/agent.entity.js.map +1 -1
  130. package/dist/modules/agents/instance-ai-builder-delegate.adapter.js +1 -0
  131. package/dist/modules/agents/instance-ai-builder-delegate.adapter.js.map +1 -1
  132. package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +1 -0
  133. package/dist/modules/agents/integrations/agent-chat-bridge.js +22 -8
  134. package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
  135. package/dist/modules/agents/integrations/agent-chat-integration.d.ts +13 -2
  136. package/dist/modules/agents/integrations/agent-chat-integration.js +1 -1
  137. package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
  138. package/dist/modules/agents/integrations/agent-chat-message-context.d.ts +2 -1
  139. package/dist/modules/agents/integrations/agent-chat-message-context.js +15 -0
  140. package/dist/modules/agents/integrations/agent-chat-message-context.js.map +1 -1
  141. package/dist/modules/agents/integrations/chat-integration.service.d.ts +14 -1
  142. package/dist/modules/agents/integrations/chat-integration.service.js +128 -11
  143. package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
  144. package/dist/modules/agents/integrations/integration-action-executor.d.ts +1 -0
  145. package/dist/modules/agents/integrations/integration-action-executor.js +20 -6
  146. package/dist/modules/agents/integrations/integration-action-executor.js.map +1 -1
  147. package/dist/modules/agents/integrations/integration-message-context.service.d.ts +8 -1
  148. package/dist/modules/agents/integrations/integration-message-context.service.js +87 -3
  149. package/dist/modules/agents/integrations/integration-message-context.service.js.map +1 -1
  150. package/dist/modules/agents/integrations/integration-tool-execution.js +7 -0
  151. package/dist/modules/agents/integrations/integration-tool-execution.js.map +1 -1
  152. package/dist/modules/agents/integrations/integration-tool-types.d.ts +8 -0
  153. package/dist/modules/agents/integrations/leader-channel-relay.service.d.ts +25 -0
  154. package/dist/modules/agents/integrations/leader-channel-relay.service.js +123 -0
  155. package/dist/modules/agents/integrations/leader-channel-relay.service.js.map +1 -0
  156. package/dist/modules/agents/integrations/platforms/slack/slack-bridge-behavior.js +8 -4
  157. package/dist/modules/agents/integrations/platforms/slack/slack-bridge-behavior.js.map +1 -1
  158. package/dist/modules/agents/integrations/platforms/slack/slack-integration.d.ts +12 -2
  159. package/dist/modules/agents/integrations/platforms/slack/slack-integration.js +34 -2
  160. package/dist/modules/agents/integrations/platforms/slack/slack-integration.js.map +1 -1
  161. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.d.ts +4 -1
  162. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js +37 -9
  163. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js.map +1 -1
  164. package/dist/modules/agents/integrations/platforms/telegram-integration.d.ts +3 -1
  165. package/dist/modules/agents/integrations/platforms/telegram-integration.js +2 -2
  166. package/dist/modules/agents/integrations/platforms/telegram-integration.js.map +1 -1
  167. package/dist/modules/agents/json-config/agent-config-composition.d.ts +1 -1
  168. package/dist/modules/agents/json-config/agent-config-composition.js +3 -10
  169. package/dist/modules/agents/json-config/agent-config-composition.js.map +1 -1
  170. package/dist/modules/agents/repositories/agent-execution-thread.repository.d.ts +5 -1
  171. package/dist/modules/agents/repositories/agent-execution-thread.repository.js +89 -8
  172. package/dist/modules/agents/repositories/agent-execution-thread.repository.js.map +1 -1
  173. package/dist/modules/agents/repositories/agent-execution.repository.d.ts +5 -2
  174. package/dist/modules/agents/repositories/agent-execution.repository.js +41 -2
  175. package/dist/modules/agents/repositories/agent-execution.repository.js.map +1 -1
  176. package/dist/modules/agents/repositories/agent-task-snapshot.repository.d.ts +1 -1
  177. package/dist/modules/agents/repositories/agent.repository.d.ts +6 -1
  178. package/dist/modules/agents/repositories/agent.repository.js +38 -0
  179. package/dist/modules/agents/repositories/agent.repository.js.map +1 -1
  180. package/dist/modules/agents/sub-agents/sub-agent-cleanup.service.d.ts +1 -0
  181. package/dist/modules/agents/sub-agents/sub-agent-cleanup.service.js +20 -7
  182. package/dist/modules/agents/sub-agents/sub-agent-cleanup.service.js.map +1 -1
  183. package/dist/modules/agents/tools/workflow-tool-factory.d.ts +11 -0
  184. package/dist/modules/agents/tools/workflow-tool-factory.js +109 -40
  185. package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
  186. package/dist/modules/agents/utils/agent-draft.utils.d.ts +4 -0
  187. package/dist/modules/agents/utils/agent-draft.utils.js +9 -0
  188. package/dist/modules/agents/utils/agent-draft.utils.js.map +1 -1
  189. package/dist/modules/agents/utils/agent-memory-scope.d.ts +1 -0
  190. package/dist/modules/agents/utils/agent-memory-scope.js +4 -0
  191. package/dist/modules/agents/utils/agent-memory-scope.js.map +1 -1
  192. package/dist/modules/agents/utils/execution-failure-summary.d.ts +23 -0
  193. package/dist/modules/agents/utils/execution-failure-summary.js +54 -0
  194. package/dist/modules/agents/utils/execution-failure-summary.js.map +1 -0
  195. package/dist/modules/agents/workflow-agent-stream.d.ts +41 -0
  196. package/dist/modules/agents/workflow-agent-stream.js +132 -0
  197. package/dist/modules/agents/workflow-agent-stream.js.map +1 -0
  198. package/dist/modules/breaking-changes/breaking-changes.service.js +1 -1
  199. package/dist/modules/breaking-changes/breaking-changes.service.js.map +1 -1
  200. package/dist/modules/breaking-changes/rules/index.d.ts +4 -0
  201. package/dist/modules/breaking-changes/rules/index.js +4 -0
  202. package/dist/modules/breaking-changes/rules/index.js.map +1 -1
  203. package/dist/modules/breaking-changes/rules/v3/agent-node-mode.d.ts +4 -0
  204. package/dist/modules/breaking-changes/rules/v3/agent-node-mode.js +26 -0
  205. package/dist/modules/breaking-changes/rules/v3/agent-node-mode.js.map +1 -0
  206. package/dist/modules/breaking-changes/rules/v3/agent-node-version.rule.d.ts +10 -0
  207. package/dist/modules/breaking-changes/rules/v3/agent-node-version.rule.js +53 -0
  208. package/dist/modules/breaking-changes/rules/v3/agent-node-version.rule.js.map +1 -0
  209. package/dist/modules/breaking-changes/rules/v3/agent-removed-modes.rule.d.ts +10 -0
  210. package/dist/modules/breaking-changes/rules/v3/agent-removed-modes.rule.js +56 -0
  211. package/dist/modules/breaking-changes/rules/v3/agent-removed-modes.rule.js.map +1 -0
  212. package/dist/modules/breaking-changes/rules/v3/caller-policy-any-removed.rule.d.ts +10 -0
  213. package/dist/modules/breaking-changes/rules/v3/caller-policy-any-removed.rule.js +54 -0
  214. package/dist/modules/breaking-changes/rules/v3/caller-policy-any-removed.rule.js.map +1 -0
  215. package/dist/modules/breaking-changes/rules/v3/caller-policy-default-any.rule.d.ts +10 -0
  216. package/dist/modules/breaking-changes/rules/v3/caller-policy-default-any.rule.js +63 -0
  217. package/dist/modules/breaking-changes/rules/v3/caller-policy-default-any.rule.js.map +1 -0
  218. package/dist/modules/chat-hub/chat-hub.models.service.js +1 -69
  219. package/dist/modules/chat-hub/chat-hub.models.service.js.map +1 -1
  220. package/dist/modules/community-packages/community-packages.lifecycle.service.js +4 -14
  221. package/dist/modules/community-packages/community-packages.lifecycle.service.js.map +1 -1
  222. package/dist/modules/community-packages/community-packages.service.d.ts +8 -6
  223. package/dist/modules/community-packages/community-packages.service.js +263 -177
  224. package/dist/modules/community-packages/community-packages.service.js.map +1 -1
  225. package/dist/modules/data-table/data-table-size-validator.service.js +2 -2
  226. package/dist/modules/data-table/data-table-size-validator.service.js.map +1 -1
  227. package/dist/modules/data-table/multer-upload-middleware.js +2 -2
  228. package/dist/modules/data-table/multer-upload-middleware.js.map +1 -1
  229. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.d.ts +1 -1
  230. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.d.ts +13 -2
  231. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js +33 -3
  232. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
  233. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +3 -0
  234. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +14 -16
  235. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -1
  236. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.d.ts +2 -1
  237. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js +2 -2
  238. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js.map +1 -1
  239. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.d.ts +12 -0
  240. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +135 -19
  241. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -1
  242. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.d.ts +6 -0
  243. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js +29 -1
  244. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js.map +1 -1
  245. package/dist/modules/dynamic-credentials.ee/credential-resolvers/n8n-credential-resolver.d.ts +5 -5
  246. package/dist/modules/dynamic-credentials.ee/credential-resolvers/n8n-credential-resolver.js +12 -12
  247. package/dist/modules/dynamic-credentials.ee/credential-resolvers/n8n-credential-resolver.js.map +1 -1
  248. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.d.ts +15 -4
  249. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js +8 -0
  250. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js.map +1 -1
  251. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +1 -1
  252. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +3 -3
  253. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
  254. package/dist/modules/engine-v2/engine-data-plane-client.d.ts +15 -0
  255. package/dist/modules/engine-v2/engine-data-plane-client.js +76 -0
  256. package/dist/modules/engine-v2/engine-data-plane-client.js.map +1 -0
  257. package/dist/modules/engine-v2/engine-v2.module.d.ts +5 -0
  258. package/dist/modules/engine-v2/engine-v2.module.js +48 -0
  259. package/dist/modules/engine-v2/engine-v2.module.js.map +1 -0
  260. package/dist/modules/engine-v2/engine-v2.runtime.d.ts +20 -0
  261. package/dist/modules/engine-v2/engine-v2.runtime.js +164 -0
  262. package/dist/modules/engine-v2/engine-v2.runtime.js.map +1 -0
  263. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js +1 -1
  264. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js.map +1 -1
  265. package/dist/modules/git-connections.ee/constants.d.ts +7 -0
  266. package/dist/modules/git-connections.ee/constants.js +11 -0
  267. package/dist/modules/git-connections.ee/constants.js.map +1 -0
  268. package/dist/modules/git-connections.ee/database/entities/git-connection-project.entity.d.ts +8 -0
  269. package/dist/modules/git-connections.ee/database/entities/git-connection-project.entity.js +36 -0
  270. package/dist/modules/git-connections.ee/database/entities/git-connection-project.entity.js.map +1 -0
  271. package/dist/modules/git-connections.ee/database/entities/git-connection.entity.d.ts +14 -0
  272. package/dist/modules/git-connections.ee/database/entities/git-connection.entity.js +61 -0
  273. package/dist/modules/git-connections.ee/database/entities/git-connection.entity.js.map +1 -0
  274. package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.d.ts +9 -0
  275. package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.js +46 -0
  276. package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.js.map +1 -0
  277. package/dist/modules/git-connections.ee/database/repositories/git-connection.repository.d.ts +12 -0
  278. package/dist/modules/git-connections.ee/database/repositories/git-connection.repository.js +37 -0
  279. package/dist/modules/git-connections.ee/database/repositories/git-connection.repository.js.map +1 -0
  280. package/dist/modules/git-connections.ee/git-connections-git.service.d.ts +33 -0
  281. package/dist/modules/git-connections.ee/git-connections-git.service.js +191 -0
  282. package/dist/modules/git-connections.ee/git-connections-git.service.js.map +1 -0
  283. package/dist/modules/git-connections.ee/git-connections-git.utils.d.ts +13 -0
  284. package/dist/modules/git-connections.ee/git-connections-git.utils.js +49 -0
  285. package/dist/modules/git-connections.ee/git-connections-git.utils.js.map +1 -0
  286. package/dist/modules/git-connections.ee/git-connections.module.d.ts +5 -0
  287. package/dist/modules/git-connections.ee/git-connections.module.js +32 -0
  288. package/dist/modules/git-connections.ee/git-connections.module.js.map +1 -0
  289. package/dist/modules/git-connections.ee/git-connections.service.d.ts +64 -0
  290. package/dist/modules/git-connections.ee/git-connections.service.js +331 -0
  291. package/dist/modules/git-connections.ee/git-connections.service.js.map +1 -0
  292. package/dist/modules/instance-ai/browser/browser-use-ws.constants.d.ts +2 -0
  293. package/dist/modules/instance-ai/browser/browser-use-ws.constants.js +10 -1
  294. package/dist/modules/instance-ai/browser/browser-use-ws.constants.js.map +1 -1
  295. package/dist/modules/instance-ai/browser/instance-ai-browser-session.service.d.ts +2 -0
  296. package/dist/modules/instance-ai/browser/instance-ai-browser-session.service.js +19 -2
  297. package/dist/modules/instance-ai/browser/instance-ai-browser-session.service.js.map +1 -1
  298. package/dist/modules/instance-ai/event-bus/durable-event-log.d.ts +2 -0
  299. package/dist/modules/instance-ai/event-bus/durable-event-log.js +30 -1
  300. package/dist/modules/instance-ai/event-bus/durable-event-log.js.map +1 -1
  301. package/dist/modules/instance-ai/event-bus/in-process-event-bus.d.ts +3 -1
  302. package/dist/modules/instance-ai/event-bus/in-process-event-bus.js +33 -23
  303. package/dist/modules/instance-ai/event-bus/in-process-event-bus.js.map +1 -1
  304. package/dist/modules/instance-ai/instance-ai-memory.service.js +49 -7
  305. package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
  306. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +1 -1
  307. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js.map +1 -1
  308. package/dist/modules/instance-ai/instance-ai-verification.service.js +3 -2
  309. package/dist/modules/instance-ai/instance-ai-verification.service.js.map +1 -1
  310. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +4 -0
  311. package/dist/modules/instance-ai/instance-ai.adapter.service.js +91 -32
  312. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  313. package/dist/modules/instance-ai/instance-ai.module.js +5 -0
  314. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  315. package/dist/modules/instance-ai/instance-ai.service.d.ts +1 -1
  316. package/dist/modules/instance-ai/instance-ai.service.js +36 -87
  317. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  318. package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.d.ts +3 -1
  319. package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.js +14 -6
  320. package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.js.map +1 -1
  321. package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.d.ts +3 -2
  322. package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.js +10 -0
  323. package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.js.map +1 -1
  324. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.d.ts +4 -2
  325. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js +47 -4
  326. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js.map +1 -1
  327. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.d.ts +9 -1
  328. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.js +34 -2
  329. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.js.map +1 -1
  330. package/dist/modules/instance-ai/repositories/instance-ai-run-snapshot.repository.d.ts +4 -0
  331. package/dist/modules/instance-ai/repositories/instance-ai-run-snapshot.repository.js +14 -0
  332. package/dist/modules/instance-ai/repositories/instance-ai-run-snapshot.repository.js.map +1 -1
  333. package/dist/modules/instance-ai/run-trace-metadata.js +2 -1
  334. package/dist/modules/instance-ai/run-trace-metadata.js.map +1 -1
  335. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js +5 -0
  336. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js.map +1 -1
  337. package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +4 -1
  338. package/dist/modules/instance-ai/storage/db-snapshot-storage.js +2 -5
  339. package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -1
  340. package/dist/modules/instance-ai/storage/typeorm-agent-memory.d.ts +2 -0
  341. package/dist/modules/instance-ai/storage/typeorm-agent-memory.js +6 -2
  342. package/dist/modules/instance-ai/storage/typeorm-agent-memory.js.map +1 -1
  343. package/dist/modules/instance-ai/tracing/index.d.ts +1 -1
  344. package/dist/modules/instance-ai/tracing/instance-ai-tracing.service.d.ts +9 -6
  345. package/dist/modules/instance-ai/tracing/instance-ai-tracing.service.js +18 -3
  346. package/dist/modules/instance-ai/tracing/instance-ai-tracing.service.js.map +1 -1
  347. package/dist/modules/mcp/mcp-api-key.service.js +1 -1
  348. package/dist/modules/mcp/mcp-api-key.service.js.map +1 -1
  349. package/dist/modules/mcp/mcp-server-middleware.service.js +1 -1
  350. package/dist/modules/mcp/mcp-server-middleware.service.js.map +1 -1
  351. package/dist/modules/mcp/mcp.controller.js +7 -3
  352. package/dist/modules/mcp/mcp.controller.js.map +1 -1
  353. package/dist/modules/mcp/mcp.service.d.ts +3 -3
  354. package/dist/modules/mcp/mcp.service.js +7 -5
  355. package/dist/modules/mcp/mcp.service.js.map +1 -1
  356. package/dist/modules/mcp/mcp.types.d.ts +14 -1
  357. package/dist/modules/mcp/mcp.types.js.map +1 -1
  358. package/dist/modules/mcp/tool-schema.util.js +2 -3
  359. package/dist/modules/mcp/tool-schema.util.js.map +1 -1
  360. package/dist/modules/mcp/tools/agents/agent-reference.d.ts +1 -1
  361. package/dist/modules/mcp/tools/agents/agent-reference.js +2 -0
  362. package/dist/modules/mcp/tools/agents/agent-reference.js.map +1 -1
  363. package/dist/modules/mcp/tools/agents/agent-tools.service.js +1 -0
  364. package/dist/modules/mcp/tools/agents/agent-tools.service.js.map +1 -1
  365. package/dist/modules/mcp/tools/search-folders.tool.js +1 -1
  366. package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -1
  367. package/dist/modules/mcp/tools/search-workflows.tool.d.ts +5 -2
  368. package/dist/modules/mcp/tools/search-workflows.tool.js +58 -7
  369. package/dist/modules/mcp/tools/search-workflows.tool.js.map +1 -1
  370. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +1 -1
  371. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  372. package/dist/modules/mcp/tools/workflow-builder/credential-validation.js +2 -21
  373. package/dist/modules/mcp/tools/workflow-builder/credential-validation.js.map +1 -1
  374. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +2 -2
  375. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  376. package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js +3 -25
  377. package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js.map +1 -1
  378. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js +62 -13
  379. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js.map +1 -1
  380. package/dist/modules/n8n-packages/engine/import-orchestrator.d.ts +13 -3
  381. package/dist/modules/n8n-packages/engine/import-orchestrator.js +33 -3
  382. package/dist/modules/n8n-packages/engine/import-orchestrator.js.map +1 -1
  383. package/dist/modules/n8n-packages/engine/import-result.d.ts +3 -1
  384. package/dist/modules/n8n-packages/engine/import-result.js +2 -0
  385. package/dist/modules/n8n-packages/engine/import-result.js.map +1 -1
  386. package/dist/modules/n8n-packages/engine/import-telemetry.d.ts +2 -2
  387. package/dist/modules/n8n-packages/engine/import-telemetry.js +9 -0
  388. package/dist/modules/n8n-packages/engine/import-telemetry.js.map +1 -1
  389. package/dist/modules/n8n-packages/engine/n8n-package-parser.d.ts +6 -1
  390. package/dist/modules/n8n-packages/engine/n8n-package-parser.js +16 -2
  391. package/dist/modules/n8n-packages/engine/n8n-package-parser.js.map +1 -1
  392. package/dist/modules/n8n-packages/engine/project-package-importer.d.ts +2 -2
  393. package/dist/modules/n8n-packages/engine/project-package-importer.js +11 -0
  394. package/dist/modules/n8n-packages/engine/project-package-importer.js.map +1 -1
  395. package/dist/modules/n8n-packages/engine/workflow-package-importer.d.ts +2 -2
  396. package/dist/modules/n8n-packages/engine/workflow-package-importer.js +2 -0
  397. package/dist/modules/n8n-packages/engine/workflow-package-importer.js.map +1 -1
  398. package/dist/modules/n8n-packages/entities/credential/credential-export-policy.d.ts +4 -0
  399. package/dist/modules/n8n-packages/entities/credential/credential-export-policy.js +43 -0
  400. package/dist/modules/n8n-packages/entities/credential/credential-export-policy.js.map +1 -0
  401. package/dist/modules/n8n-packages/entities/credential/credential.exporter.d.ts +2 -0
  402. package/dist/modules/n8n-packages/entities/credential/credential.exporter.js +5 -2
  403. package/dist/modules/n8n-packages/entities/credential/credential.exporter.js.map +1 -1
  404. package/dist/modules/n8n-packages/entities/credential/credential.serializer.d.ts +4 -2
  405. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js +2 -1
  406. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js.map +1 -1
  407. package/dist/modules/n8n-packages/entities/data-table/data-table.exporter.js +2 -2
  408. package/dist/modules/n8n-packages/entities/data-table/data-table.exporter.js.map +1 -1
  409. package/dist/modules/n8n-packages/entities/folder/folder-conflict-policy.d.ts +5 -1
  410. package/dist/modules/n8n-packages/entities/folder/folder-conflict-policy.js +24 -0
  411. package/dist/modules/n8n-packages/entities/folder/folder-conflict-policy.js.map +1 -1
  412. package/dist/modules/n8n-packages/entities/folder/folder-removal.types.d.ts +11 -0
  413. package/dist/modules/n8n-packages/entities/folder/folder-removal.types.js +3 -0
  414. package/dist/modules/n8n-packages/entities/folder/folder-removal.types.js.map +1 -0
  415. package/dist/modules/n8n-packages/entities/folder/folder-remover.d.ts +14 -0
  416. package/dist/modules/n8n-packages/entities/folder/folder-remover.js +110 -0
  417. package/dist/modules/n8n-packages/entities/folder/folder-remover.js.map +1 -0
  418. package/dist/modules/n8n-packages/entities/folder/folder.exporter.js +4 -4
  419. package/dist/modules/n8n-packages/entities/folder/folder.exporter.js.map +1 -1
  420. package/dist/modules/n8n-packages/entities/project/project.exporter.js +4 -4
  421. package/dist/modules/n8n-packages/entities/project/project.exporter.js.map +1 -1
  422. package/dist/modules/n8n-packages/entities/tag/tag.exporter.d.ts +1 -1
  423. package/dist/modules/n8n-packages/entities/tag/tag.exporter.js +3 -3
  424. package/dist/modules/n8n-packages/entities/tag/tag.exporter.js.map +1 -1
  425. package/dist/modules/n8n-packages/entities/variable/variable.exporter.js +2 -2
  426. package/dist/modules/n8n-packages/entities/variable/variable.exporter.js.map +1 -1
  427. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow.exporter.d.ts +1 -1
  428. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow.exporter.js +16 -16
  429. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow.exporter.js.map +1 -1
  430. package/dist/modules/n8n-packages/entities/workflow/workflow-removal.types.d.ts +21 -0
  431. package/dist/modules/n8n-packages/entities/workflow/workflow-removal.types.js +3 -0
  432. package/dist/modules/n8n-packages/entities/workflow/workflow-removal.types.js.map +1 -0
  433. package/dist/modules/n8n-packages/entities/workflow/workflow-remover.d.ts +12 -0
  434. package/dist/modules/n8n-packages/entities/workflow/workflow-remover.js +109 -0
  435. package/dist/modules/n8n-packages/entities/workflow/workflow-remover.js.map +1 -0
  436. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +2 -2
  437. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
  438. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.d.ts +1 -1
  439. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +2 -0
  440. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -1
  441. package/dist/modules/n8n-packages/io/directory/directory-package-writer.d.ts +9 -0
  442. package/dist/modules/n8n-packages/io/directory/directory-package-writer.js +39 -0
  443. package/dist/modules/n8n-packages/io/directory/directory-package-writer.js.map +1 -0
  444. package/dist/modules/n8n-packages/io/package-writer.d.ts +2 -4
  445. package/dist/modules/n8n-packages/n8n-packages.service.d.ts +5 -1
  446. package/dist/modules/n8n-packages/n8n-packages.service.js +41 -16
  447. package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
  448. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +57 -4
  449. package/dist/modules/n8n-packages/n8n-packages.types.js +10 -1
  450. package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
  451. package/dist/modules/n8n-packages/spec/serialized/credential.schema.d.ts +8 -0
  452. package/dist/modules/n8n-packages/spec/serialized/credential.schema.js +12 -1
  453. package/dist/modules/n8n-packages/spec/serialized/credential.schema.js.map +1 -1
  454. package/dist/modules/n8n-packages/spec/serialized/workflow.schema.d.ts +28 -0
  455. package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js +7 -0
  456. package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js.map +1 -1
  457. package/dist/modules/oauth-server/oauth-token.service.d.ts +1 -0
  458. package/dist/modules/oauth-server/oauth-token.service.js +12 -1
  459. package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
  460. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js +0 -4
  461. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js.map +1 -1
  462. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js +0 -4
  463. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js.map +1 -1
  464. package/dist/modules/policy-infrastructure/policy-check-failed.error.d.ts +10 -0
  465. package/dist/modules/policy-infrastructure/policy-check-failed.error.js +14 -0
  466. package/dist/modules/policy-infrastructure/policy-check-failed.error.js.map +1 -0
  467. package/dist/modules/policy-infrastructure/policy-decision.service.d.ts +14 -0
  468. package/dist/modules/policy-infrastructure/policy-decision.service.js +121 -0
  469. package/dist/modules/policy-infrastructure/policy-decision.service.js.map +1 -0
  470. package/dist/modules/policy-infrastructure/policy-infrastructure.module.d.ts +4 -0
  471. package/dist/modules/policy-infrastructure/policy-infrastructure.module.js +23 -0
  472. package/dist/modules/policy-infrastructure/policy-infrastructure.module.js.map +1 -0
  473. package/dist/modules/provisioning.ee/constants.d.ts +1 -0
  474. package/dist/modules/provisioning.ee/constants.js +3 -1
  475. package/dist/modules/provisioning.ee/constants.js.map +1 -1
  476. package/dist/modules/provisioning.ee/errors/sso-access-denied.error.d.ts +4 -0
  477. package/dist/modules/provisioning.ee/errors/sso-access-denied.error.js +11 -0
  478. package/dist/modules/provisioning.ee/errors/sso-access-denied.error.js.map +1 -0
  479. package/dist/modules/provisioning.ee/provisioning.service.ee.js +4 -4
  480. package/dist/modules/provisioning.ee/provisioning.service.ee.js.map +1 -1
  481. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.d.ts +1 -3
  482. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js +16 -23
  483. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js.map +1 -1
  484. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +17 -5
  485. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +31 -9
  486. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
  487. package/dist/modules/source-control.ee/source-control-export.service.ee.js +1 -0
  488. package/dist/modules/source-control.ee/source-control-export.service.ee.js.map +1 -1
  489. package/dist/modules/source-control.ee/source-control-git.service.ee.js +7 -19
  490. package/dist/modules/source-control.ee/source-control-git.service.ee.js.map +1 -1
  491. package/dist/modules/source-control.ee/source-control-helper.ee.d.ts +3 -5
  492. package/dist/modules/source-control.ee/source-control-helper.ee.js +10 -40
  493. package/dist/modules/source-control.ee/source-control-helper.ee.js.map +1 -1
  494. package/dist/modules/source-control.ee/source-control-import.service.ee.js +7 -2
  495. package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
  496. package/dist/modules/source-control.ee/source-control-status.service.ee.js +1 -1
  497. package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
  498. package/dist/modules/source-control.ee/types/exportable-workflow.d.ts +1 -0
  499. package/dist/modules/source-control.ee/types/source-control-workflow-version-id.d.ts +1 -0
  500. package/dist/modules/sso-oidc/oidc.controller.ee.js +23 -7
  501. package/dist/modules/sso-oidc/oidc.controller.ee.js.map +1 -1
  502. package/dist/modules/sso-saml/saml.controller.ee.js +5 -0
  503. package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
  504. package/dist/modules/type-availability-policies/policy-evaluator.d.ts +2 -0
  505. package/dist/modules/type-availability-policies/policy-evaluator.js +28 -0
  506. package/dist/modules/type-availability-policies/policy-evaluator.js.map +1 -0
  507. package/dist/modules/type-availability-policies/policy-rule.types.d.ts +23 -0
  508. package/dist/modules/type-availability-policies/policy-rule.types.js +3 -0
  509. package/dist/modules/type-availability-policies/policy-rule.types.js.map +1 -0
  510. package/dist/modules/type-availability-policies/type-availability-policies.module.d.ts +4 -0
  511. package/dist/modules/type-availability-policies/type-availability-policies.module.js +18 -0
  512. package/dist/modules/type-availability-policies/type-availability-policies.module.js.map +1 -0
  513. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.d.ts +4 -0
  514. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js +25 -0
  515. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js.map +1 -1
  516. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.d.ts +5 -2
  517. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js +14 -2
  518. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js.map +1 -1
  519. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js +9 -9
  520. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js.map +1 -1
  521. package/dist/modules/workflow-reviews.ee/workflow-review-feature-gate.service.js +1 -2
  522. package/dist/modules/workflow-reviews.ee/workflow-review-feature-gate.service.js.map +1 -1
  523. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.d.ts +2 -3
  524. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js +5 -5
  525. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js.map +1 -1
  526. package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.d.ts +30 -0
  527. package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.js +256 -0
  528. package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.js.map +1 -0
  529. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +6 -6
  530. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +61 -52
  531. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +1 -1
  532. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.d.ts +3 -2
  533. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js +24 -1
  534. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js.map +1 -1
  535. package/dist/modules/workflow-reviews.ee/workflow-reviews.module.js +2 -5
  536. package/dist/modules/workflow-reviews.ee/workflow-reviews.module.js.map +1 -1
  537. package/dist/oauth/dcr-managed-fields.d.ts +1 -0
  538. package/dist/oauth/dcr-managed-fields.js +9 -1
  539. package/dist/oauth/dcr-managed-fields.js.map +1 -1
  540. package/dist/policy/policy-cleared.d.ts +20 -0
  541. package/dist/policy/policy-cleared.js +22 -0
  542. package/dist/policy/policy-cleared.js.map +1 -0
  543. package/dist/policy/policy-enforcement-backend.d.ts +15 -0
  544. package/dist/policy/policy-enforcement-backend.js +3 -0
  545. package/dist/policy/policy-enforcement-backend.js.map +1 -0
  546. package/dist/policy/policy-enforcement.service.d.ts +21 -0
  547. package/dist/policy/policy-enforcement.service.js +87 -0
  548. package/dist/policy/policy-enforcement.service.js.map +1 -0
  549. package/dist/policy/policy-violation.error.d.ts +13 -0
  550. package/dist/policy/policy-violation.error.js +22 -0
  551. package/dist/policy/policy-violation.error.js.map +1 -0
  552. package/dist/posthog/index.js +1 -1
  553. package/dist/posthog/index.js.map +1 -1
  554. package/dist/public-api/public-api-controller.registry.js +7 -1
  555. package/dist/public-api/public-api-controller.registry.js.map +1 -1
  556. package/dist/public-api/public-api-media-type.d.ts +1 -0
  557. package/dist/public-api/public-api-media-type.js +36 -0
  558. package/dist/public-api/public-api-media-type.js.map +1 -0
  559. package/dist/public-api/public-api-route-resolver.d.ts +6 -2
  560. package/dist/public-api/public-api-route-resolver.js +5 -0
  561. package/dist/public-api/public-api-route-resolver.js.map +1 -1
  562. package/dist/public-api/public-api-validation-error.d.ts +2 -0
  563. package/dist/public-api/public-api-validation-error.js +17 -0
  564. package/dist/public-api/public-api-validation-error.js.map +1 -0
  565. package/dist/public-api/types.d.ts +2 -9
  566. package/dist/public-api/v1/controllers/git-connections.public.controller.d.ts +20 -0
  567. package/dist/public-api/v1/controllers/git-connections.public.controller.js +278 -0
  568. package/dist/public-api/v1/controllers/git-connections.public.controller.js.map +1 -0
  569. package/dist/public-api/v1/controllers/index.d.ts +1 -0
  570. package/dist/public-api/v1/controllers/index.js +1 -0
  571. package/dist/public-api/v1/controllers/index.js.map +1 -1
  572. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.d.ts +6 -1
  573. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js +117 -11
  574. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js.map +1 -1
  575. package/dist/public-api/v1/controllers/roles.public.controller.d.ts +2 -1
  576. package/dist/public-api/v1/controllers/roles.public.controller.js +46 -2
  577. package/dist/public-api/v1/controllers/roles.public.controller.js.map +1 -1
  578. package/dist/public-api/v1/controllers/tags.public.controller.js +1 -18
  579. package/dist/public-api/v1/controllers/tags.public.controller.js.map +1 -1
  580. package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +16 -3
  581. package/dist/public-api/v1/controllers/workflows.public.controller.js +170 -21
  582. package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -1
  583. package/dist/public-api/v1/handlers/executions/executions.handler.js +3 -1
  584. package/dist/public-api/v1/handlers/executions/executions.handler.js.map +1 -1
  585. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.d.ts +1 -0
  586. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +2 -0
  587. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
  588. package/dist/public-api/v1/handlers/projects/projects.handler.js +3 -3
  589. package/dist/public-api/v1/handlers/projects/projects.handler.js.map +1 -1
  590. package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +0 -6
  591. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +0 -72
  592. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  593. package/dist/public-api/v1/openapi-gen/decorator-routes.d.ts +32 -0
  594. package/dist/public-api/v1/openapi-gen/decorator-routes.js +41 -8
  595. package/dist/public-api/v1/openapi-gen/decorator-routes.js.map +1 -1
  596. package/dist/public-api/v1/openapi.yml +5209 -1871
  597. package/dist/public-api/v1/shared/services/pagination.service.d.ts +8 -0
  598. package/dist/public-api/v1/shared/services/pagination.service.js +20 -0
  599. package/dist/public-api/v1/shared/services/pagination.service.js.map +1 -1
  600. package/dist/push/index.js +3 -3
  601. package/dist/push/index.js.map +1 -1
  602. package/dist/response-helper.js +1 -2
  603. package/dist/response-helper.js.map +1 -1
  604. package/dist/scaling/constants.d.ts +2 -2
  605. package/dist/scaling/constants.js +2 -0
  606. package/dist/scaling/constants.js.map +1 -1
  607. package/dist/scaling/pubsub/pubsub.event-map.d.ts +19 -0
  608. package/dist/scaling/pubsub/pubsub.types.d.ts +3 -1
  609. package/dist/scaling/pubsub/subscriber.service.d.ts +1 -0
  610. package/dist/scaling/pubsub/subscriber.service.js +24 -4
  611. package/dist/scaling/pubsub/subscriber.service.js.map +1 -1
  612. package/dist/scheduling/durable-job-provisioner.js +1 -1
  613. package/dist/scheduling/durable-job-provisioner.js.map +1 -1
  614. package/dist/scheduling/durable-scheduler.js +9 -0
  615. package/dist/scheduling/durable-scheduler.js.map +1 -1
  616. package/dist/scheduling/poll-trigger-node/durable-poller-chain.d.ts +2 -0
  617. package/dist/scheduling/poll-trigger-node/durable-poller-chain.js +9 -0
  618. package/dist/scheduling/poll-trigger-node/durable-poller-chain.js.map +1 -0
  619. package/dist/scheduling/poll-trigger-node/poll-job-provider.d.ts +1 -3
  620. package/dist/scheduling/poll-trigger-node/poll-job-provider.js +4 -8
  621. package/dist/scheduling/poll-trigger-node/poll-job-provider.js.map +1 -1
  622. package/dist/scheduling/poll-trigger-node/poll-trigger-job-registrar.d.ts +3 -1
  623. package/dist/scheduling/poll-trigger-node/poll-trigger-job-registrar.js +9 -3
  624. package/dist/scheduling/poll-trigger-node/poll-trigger-job-registrar.js.map +1 -1
  625. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.d.ts +8 -3
  626. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +86 -7
  627. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -1
  628. package/dist/services/engine-data-plane-proxy.service.d.ts +10 -0
  629. package/dist/services/engine-data-plane-proxy.service.js +33 -0
  630. package/dist/services/engine-data-plane-proxy.service.js.map +1 -0
  631. package/dist/services/engine-v2-dispatcher.service.d.ts +14 -0
  632. package/dist/services/engine-v2-dispatcher.service.js +93 -0
  633. package/dist/services/engine-v2-dispatcher.service.js.map +1 -0
  634. package/dist/services/folder-finder.service.d.ts +1 -0
  635. package/dist/services/folder-finder.service.js +9 -0
  636. package/dist/services/folder-finder.service.js.map +1 -1
  637. package/dist/services/folder.service.d.ts +5 -0
  638. package/dist/services/folder.service.js +7 -0
  639. package/dist/services/folder.service.js.map +1 -1
  640. package/dist/services/frontend.service.d.ts +3 -4
  641. package/dist/services/frontend.service.js +5 -13
  642. package/dist/services/frontend.service.js.map +1 -1
  643. package/dist/services/node-resource-explorer.service.d.ts +1 -0
  644. package/dist/services/node-resource-explorer.service.js +72 -13
  645. package/dist/services/node-resource-explorer.service.js.map +1 -1
  646. package/dist/services/oauth-token-verifier-proxy.service.d.ts +11 -1
  647. package/dist/services/oauth-token-verifier-proxy.service.js +6 -0
  648. package/dist/services/oauth-token-verifier-proxy.service.js.map +1 -1
  649. package/dist/services/ownership-transfer/ownership-transfer.manifest.json +5 -0
  650. package/dist/services/role-authorization.d.ts +11 -2
  651. package/dist/services/role-authorization.js +15 -6
  652. package/dist/services/role-authorization.js.map +1 -1
  653. package/dist/services/role.service.d.ts +5 -1
  654. package/dist/services/role.service.js +7 -2
  655. package/dist/services/role.service.js.map +1 -1
  656. package/dist/utils/ai-service-retry.js +3 -4
  657. package/dist/utils/ai-service-retry.js.map +1 -1
  658. package/dist/webhooks/webhook-blank-file-inputs.d.ts +4 -0
  659. package/dist/webhooks/webhook-blank-file-inputs.js +32 -0
  660. package/dist/webhooks/webhook-blank-file-inputs.js.map +1 -0
  661. package/dist/webhooks/webhook-form-data.js +29 -15
  662. package/dist/webhooks/webhook-form-data.js.map +1 -1
  663. package/dist/webhooks/webhook-helpers.js +2 -2
  664. package/dist/webhooks/webhook-helpers.js.map +1 -1
  665. package/dist/webhooks/webhook-request-sanitizer.js +10 -4
  666. package/dist/webhooks/webhook-request-sanitizer.js.map +1 -1
  667. package/dist/workflow-execute-additional-data.d.ts +2 -2
  668. package/dist/workflow-execute-additional-data.js +17 -6
  669. package/dist/workflow-execute-additional-data.js.map +1 -1
  670. package/dist/workflow-helpers.d.ts +2 -7
  671. package/dist/workflow-helpers.js +3 -34
  672. package/dist/workflow-helpers.js.map +1 -1
  673. package/dist/workflow-runner.d.ts +3 -1
  674. package/dist/workflow-runner.js +7 -2
  675. package/dist/workflow-runner.js.map +1 -1
  676. package/dist/workflows/publication/heal-node-ids.d.ts +26 -0
  677. package/dist/workflows/publication/heal-node-ids.js +65 -0
  678. package/dist/workflows/publication/heal-node-ids.js.map +1 -0
  679. package/dist/workflows/publication/publication-result.d.ts +1 -1
  680. package/dist/workflows/publication/publication-status-reporter.js +8 -3
  681. package/dist/workflows/publication/publication-status-reporter.js.map +1 -1
  682. package/dist/workflows/publication/workflow-publication-applier.d.ts +10 -1
  683. package/dist/workflows/publication/workflow-publication-applier.js +56 -3
  684. package/dist/workflows/publication/workflow-publication-applier.js.map +1 -1
  685. package/dist/workflows/publication/workflow-publication-outbox-consumer.js +1 -1
  686. package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -1
  687. package/dist/workflows/triggers/enabled-trigger-nodes.d.ts +2 -1
  688. package/dist/workflows/triggers/enabled-trigger-nodes.js +5 -1
  689. package/dist/workflows/triggers/enabled-trigger-nodes.js.map +1 -1
  690. package/dist/workflows/triggers/poll-backoff-policy.d.ts +15 -0
  691. package/dist/workflows/triggers/poll-backoff-policy.js +78 -0
  692. package/dist/workflows/triggers/poll-backoff-policy.js.map +1 -0
  693. package/dist/workflows/triggers/poll-backoff.service.d.ts +30 -0
  694. package/dist/workflows/triggers/poll-backoff.service.js +121 -0
  695. package/dist/workflows/triggers/poll-backoff.service.js.map +1 -0
  696. package/dist/workflows/triggers/poll-cursor.service.d.ts +7 -5
  697. package/dist/workflows/triggers/poll-cursor.service.js +14 -6
  698. package/dist/workflows/triggers/poll-cursor.service.js.map +1 -1
  699. package/dist/workflows/triggers/workflow-trigger-activator.d.ts +1 -0
  700. package/dist/workflows/triggers/workflow-trigger-activator.js +31 -3
  701. package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
  702. package/dist/workflows/workflow-creation.service.d.ts +3 -1
  703. package/dist/workflows/workflow-creation.service.js +9 -2
  704. package/dist/workflows/workflow-creation.service.js.map +1 -1
  705. package/dist/workflows/workflow-finder.service.d.ts +8 -0
  706. package/dist/workflows/workflow-finder.service.js +20 -0
  707. package/dist/workflows/workflow-finder.service.js.map +1 -1
  708. package/dist/workflows/workflow-mutation-hooks-proxy.service.d.ts +16 -6
  709. package/dist/workflows/workflow-mutation-hooks-proxy.service.js +9 -6
  710. package/dist/workflows/workflow-mutation-hooks-proxy.service.js.map +1 -1
  711. package/dist/workflows/workflow-validation.service.js +2 -5
  712. package/dist/workflows/workflow-validation.service.js.map +1 -1
  713. package/dist/workflows/workflow.service.d.ts +15 -1
  714. package/dist/workflows/workflow.service.ee.d.ts +3 -1
  715. package/dist/workflows/workflow.service.ee.js +12 -6
  716. package/dist/workflows/workflow.service.ee.js.map +1 -1
  717. package/dist/workflows/workflow.service.js +77 -25
  718. package/dist/workflows/workflow.service.js.map +1 -1
  719. package/package.json +64 -62
  720. package/templates/form-shell.handlebars +92 -7
  721. package/templates/form-trigger-completion.handlebars +5 -3
  722. package/templates/form-trigger.handlebars +11 -4
  723. package/templates/partials/formHostNavigation.handlebars +44 -0
  724. package/dist/modules/agents/builder/agents-builder-settings.controller.d.ts +0 -10
  725. package/dist/modules/agents/builder/agents-builder-settings.controller.js +0 -52
  726. package/dist/modules/agents/builder/agents-builder-settings.controller.js.map +0 -1
  727. package/dist/modules/agents/builder/agents-builder-settings.service.d.ts +0 -38
  728. package/dist/modules/agents/builder/agents-builder-settings.service.js +0 -174
  729. package/dist/modules/agents/builder/agents-builder-settings.service.js.map +0 -1
  730. package/dist/modules/data-table/utils/size-utils.d.ts +0 -2
  731. package/dist/modules/data-table/utils/size-utils.js +0 -19
  732. package/dist/modules/data-table/utils/size-utils.js.map +0 -1
  733. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.d.ts +0 -18
  734. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js +0 -114
  735. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js.map +0 -1
  736. package/dist/workflows/triggers/durable-poller-gate.service.d.ts +0 -19
  737. package/dist/workflows/triggers/durable-poller-gate.service.js +0 -78
  738. package/dist/workflows/triggers/durable-poller-gate.service.js.map +0 -1
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.CommunityPackagesService = void 0;
13
16
  exports.isValidVersionSpecifier = isValidVersionSpecifier;
@@ -23,6 +26,7 @@ const node_child_process_1 = require("node:child_process");
23
26
  const promises_1 = require("node:fs/promises");
24
27
  const node_path_1 = require("node:path");
25
28
  const node_util_1 = require("node:util");
29
+ const p_limit_1 = __importDefault(require("p-limit"));
26
30
  const semver_1 = require("semver");
27
31
  const constants_2 = require("../../constants");
28
32
  const feature_not_licensed_error_1 = require("../../errors/feature-not-licensed.error");
@@ -52,9 +56,9 @@ let CommunityPackagesService = class CommunityPackagesService {
52
56
  this.publisher = publisher;
53
57
  this.license = license;
54
58
  this.config = config;
55
- this.missingPackages = [];
56
59
  this.downloadFolder = this.instanceSettings.nodesDownloadDir;
57
60
  this.packageJsonPath = (0, node_path_1.join)(this.downloadFolder, 'package.json');
61
+ this.packageMutex = (0, p_limit_1.default)(1);
58
62
  this.http = outboundHttp.requests({
59
63
  ssrf: 'disabled',
60
64
  timeout: REQUEST_TIMEOUT_MS,
@@ -64,18 +68,12 @@ let CommunityPackagesService = class CommunityPackagesService {
64
68
  await this.ensurePackageJson();
65
69
  await this.checkForMissingPackages();
66
70
  }
67
- get hasMissingPackages() {
68
- return this.missingPackages.length > 0;
69
- }
70
71
  async findInstalledPackage(packageName) {
71
72
  return await this.installedPackageRepository.findOne({
72
73
  where: { packageName },
73
74
  relations: ['installedNodes'],
74
75
  });
75
76
  }
76
- async isPackageInstalled(packageName) {
77
- return await this.installedPackageRepository.exist({ where: { packageName } });
78
- }
79
77
  async getAllInstalledPackages() {
80
78
  return await this.installedPackageRepository.find({ relations: ['installedNodes'] });
81
79
  }
@@ -140,27 +138,15 @@ let CommunityPackagesService = class CommunityPackagesService {
140
138
  return acc;
141
139
  }, []);
142
140
  }
143
- matchMissingPackages(installedPackages) {
144
- const missingPackagesList = this.missingPackages
145
- .map((name) => {
146
- try {
147
- const parsedPackageData = this.parseNpmPackageName(name);
148
- return parsedPackageData.packageName;
149
- }
150
- catch {
151
- return;
152
- }
153
- })
154
- .filter((i) => i !== undefined);
155
- const packages = [];
156
- for (const installedPackage of installedPackages) {
157
- const pkg = { ...installedPackage };
158
- if (missingPackagesList.includes(pkg.packageName)) {
159
- pkg.failedLoading = true;
160
- }
161
- packages.push(pkg);
162
- }
163
- return packages;
141
+ areNodesLoaded(installedNodes) {
142
+ return (installedNodes.length === 0 ||
143
+ installedNodes.some((node) => this.loadNodesAndCredentials.isKnownNode(node.type)));
144
+ }
145
+ withLoadStatus(installedPackages) {
146
+ return installedPackages.map((installedPackage) => ({
147
+ ...installedPackage,
148
+ failedLoading: !this.areNodesLoaded(installedPackage.installedNodes),
149
+ }));
164
150
  }
165
151
  async checkNpmPackageStatus(packageName) {
166
152
  const N8N_BACKEND_SERVICE_URL = 'https://api.n8n.io/api/package';
@@ -178,48 +164,55 @@ let CommunityPackagesService = class CommunityPackagesService {
178
164
  }
179
165
  return { status: constants_2.NPM_PACKAGE_STATUS_GOOD };
180
166
  }
181
- hasPackageLoaded(packageName) {
182
- if (!this.missingPackages.length)
183
- return true;
184
- return !this.missingPackages.some((packageNameAndVersion) => packageNameAndVersion.startsWith(packageName) &&
185
- packageNameAndVersion.replace(packageName, '').startsWith('@'));
186
- }
187
- removePackageFromMissingList(packageName) {
188
- try {
189
- this.missingPackages = this.missingPackages.filter((packageNameAndVersion) => !packageNameAndVersion.startsWith(packageName) ||
190
- !packageNameAndVersion.replace(packageName, '').startsWith('@'));
191
- }
192
- catch {
193
- }
167
+ isPackageLoaded(installedPackage) {
168
+ return this.areNodesLoaded(installedPackage.installedNodes);
169
+ }
170
+ async readPackageJson() {
171
+ const content = await (0, promises_1.readFile)(this.packageJsonPath, 'utf-8').catch(() => null);
172
+ if (content === null)
173
+ return null;
174
+ const packageJson = (0, n8n_workflow_1.jsonParse)(content, { fallbackValue: null });
175
+ if (packageJson?.dependencies)
176
+ return packageJson;
177
+ this.logger.warn('Community package ledger is unusable, rebuilding it');
178
+ return null;
179
+ }
180
+ async readInstalledPackageVersion(packageName) {
181
+ const packageJsonPath = `${this.resolvePackageDirectory(packageName)}/package.json`;
182
+ const content = await (0, promises_1.readFile)(packageJsonPath, 'utf-8').catch(() => null);
183
+ if (content === null)
184
+ return null;
185
+ return (0, n8n_workflow_1.jsonParse)(content, { fallbackValue: null })?.version ?? null;
186
+ }
187
+ async buildPackageJsonFromDatabase() {
188
+ const installedPackages = await this.getAllInstalledPackages();
189
+ return {
190
+ name: 'installed-nodes',
191
+ private: true,
192
+ dependencies: Object.fromEntries(installedPackages.map(({ packageName, installedVersion }) => [
193
+ packageName,
194
+ installedVersion,
195
+ ])),
196
+ };
194
197
  }
195
198
  async ensurePackageJson() {
196
- try {
197
- await (0, promises_1.access)(this.packageJsonPath, promises_1.constants.F_OK);
198
- }
199
- catch {
200
- await (0, promises_1.mkdir)(this.downloadFolder, { recursive: true });
201
- const packageJson = {
202
- name: 'installed-nodes',
203
- private: true,
204
- dependencies: {},
205
- };
206
- await (0, promises_1.writeFile)(this.packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
207
- }
199
+ if (await this.readPackageJson())
200
+ return;
201
+ const packageJson = await this.buildPackageJsonFromDatabase();
202
+ await (0, promises_1.mkdir)(this.downloadFolder, { recursive: true });
203
+ await (0, promises_1.writeFile)(this.packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
208
204
  }
209
205
  async checkForMissingPackages() {
210
206
  const installedPackages = await this.getAllInstalledPackages();
211
207
  const missingPackages = new Set();
212
208
  installedPackages.forEach((installedPackage) => {
213
- installedPackage.installedNodes.forEach((installedNode) => {
214
- if (!this.loadNodesAndCredentials.isKnownNode(installedNode.type)) {
215
- missingPackages.add({
216
- packageName: installedPackage.packageName,
217
- version: installedPackage.installedVersion,
218
- });
219
- }
209
+ if (this.areNodesLoaded(installedPackage.installedNodes))
210
+ return;
211
+ missingPackages.add({
212
+ packageName: installedPackage.packageName,
213
+ version: installedPackage.installedVersion,
220
214
  });
221
215
  });
222
- this.missingPackages = [];
223
216
  if (missingPackages.size === 0)
224
217
  return;
225
218
  const { reinstallMissing } = this.config;
@@ -271,7 +264,6 @@ let CommunityPackagesService = class CommunityPackagesService {
271
264
  else {
272
265
  this.logger.warn('n8n detected that some packages are missing. For more information, visit https://docs.n8n.io/integrations/community-nodes/troubleshooting/');
273
266
  }
274
- this.missingPackages = [...missingPackages].map((missingPackage) => `${missingPackage.packageName}@${missingPackage.version}`);
275
267
  }
276
268
  async installPackage(packageName, version, checksum) {
277
269
  return await this.installOrUpdatePackage(packageName, { version, checksum });
@@ -282,9 +274,16 @@ let CommunityPackagesService = class CommunityPackagesService {
282
274
  async removePackage(packageName, installedPackage) {
283
275
  await this.removeNpmPackage(packageName);
284
276
  await this.removePackageFromDatabase(installedPackage);
285
- void this.publisher.publishCommand({
277
+ void this.publisher
278
+ .publishCommand({
286
279
  command: 'community-package-uninstall',
287
280
  payload: { packageName },
281
+ })
282
+ .catch((error) => {
283
+ this.logger.warn('Failed to publish community package uninstall event', {
284
+ error: (0, ensure_error_1.ensureError)(error),
285
+ packageName,
286
+ });
288
287
  });
289
288
  }
290
289
  getNpmRegistry() {
@@ -303,51 +302,37 @@ let CommunityPackagesService = class CommunityPackagesService {
303
302
  }
304
303
  }
305
304
  async installOrUpdatePackage(packageName, options = {}) {
306
- const isUpdate = 'installedPackage' in options;
307
- const packageVersion = !options.version ? 'latest' : options.version;
308
- const shouldValidateChecksum = 'checksum' in options && Boolean(options.checksum);
309
- this.checkInstallPermissions(shouldValidateChecksum);
310
- const authToken = this.getNpmAuthToken();
311
- if (options.checksum) {
312
- await (0, npm_utils_1.verifyIntegrity)(packageName, packageVersion, this.getNpmRegistry(), options.checksum, authToken);
313
- }
314
- await (0, npm_utils_1.checkIfVersionExistsOrThrow)(packageName, packageVersion, this.getNpmRegistry(), authToken);
315
- const previousVersion = isUpdate ? options.installedPackage.installedVersion : undefined;
316
- const backupDirectory = isUpdate && (await this.packageDirectoryExists(packageName))
317
- ? await this.backupPackageDirectory(packageName)
318
- : undefined;
319
- try {
320
- await this.downloadPackage(packageName, packageVersion, authToken);
321
- }
322
- catch (error) {
323
- await this.restoreFailedPackageInstallation(packageName, {
324
- backupDirectory,
325
- previousVersion,
326
- });
327
- if (error instanceof Error && error.message === constants_2.RESPONSE_ERROR_MESSAGES.PACKAGE_NOT_FOUND) {
328
- throw new n8n_workflow_1.UserError('npm package not found', { extra: { packageName } });
305
+ return await this.packageMutex(async () => {
306
+ const isUpdate = 'installedPackage' in options;
307
+ const packageVersion = !options.version ? 'latest' : options.version;
308
+ const shouldValidateChecksum = 'checksum' in options && Boolean(options.checksum);
309
+ this.checkInstallPermissions(shouldValidateChecksum);
310
+ const authToken = this.getNpmAuthToken();
311
+ if (options.checksum) {
312
+ await (0, npm_utils_1.verifyIntegrity)(packageName, packageVersion, this.getNpmRegistry(), options.checksum, authToken);
329
313
  }
330
- throw error;
331
- }
332
- let loader;
333
- try {
334
- await this.loadNodesAndCredentials.unloadPackage(packageName);
335
- loader = await this.loadNodesAndCredentials.loadPackage(packageName);
336
- }
337
- catch (error) {
338
- await this.restoreFailedPackageInstallation(packageName, {
339
- backupDirectory,
340
- previousVersion,
341
- reloadPackage: isUpdate,
342
- });
343
- throw new n8n_workflow_1.UnexpectedError(constants_2.RESPONSE_ERROR_MESSAGES.PACKAGE_LOADING_FAILED, { cause: error });
344
- }
345
- if (loader.loadedNodes.length > 0) {
346
- let installedPackage;
314
+ await (0, npm_utils_1.checkIfVersionExistsOrThrow)(packageName, packageVersion, this.getNpmRegistry(), authToken);
315
+ const previousVersion = isUpdate ? options.installedPackage.installedVersion : undefined;
316
+ const backupDirectory = isUpdate && (await this.packageDirectoryExists(packageName))
317
+ ? await this.backupPackageDirectory(packageName)
318
+ : undefined;
347
319
  try {
348
- installedPackage = isUpdate
349
- ? await this.replaceInstalledPackage(options.installedPackage, loader)
350
- : await this.persistInstalledPackage(loader);
320
+ await this.downloadPackage(packageName, packageVersion, authToken);
321
+ }
322
+ catch (error) {
323
+ await this.restoreFailedPackageInstallation(packageName, {
324
+ backupDirectory,
325
+ previousVersion,
326
+ });
327
+ if (error instanceof Error && error.message === constants_2.RESPONSE_ERROR_MESSAGES.PACKAGE_NOT_FOUND) {
328
+ throw new n8n_workflow_1.UserError('npm package not found', { extra: { packageName } });
329
+ }
330
+ throw error;
331
+ }
332
+ let loader;
333
+ try {
334
+ await this.loadNodesAndCredentials.unloadPackage(packageName);
335
+ loader = await this.loadNodesAndCredentials.loadPackage(packageName);
351
336
  }
352
337
  catch (error) {
353
338
  await this.restoreFailedPackageInstallation(packageName, {
@@ -355,62 +340,115 @@ let CommunityPackagesService = class CommunityPackagesService {
355
340
  previousVersion,
356
341
  reloadPackage: isUpdate,
357
342
  });
358
- throw new n8n_workflow_1.UnexpectedError('Failed to save installed package', {
359
- extra: { packageName },
343
+ throw new n8n_workflow_1.UnexpectedError(constants_2.RESPONSE_ERROR_MESSAGES.PACKAGE_LOADING_FAILED, {
360
344
  cause: error,
361
345
  });
362
346
  }
363
- if (backupDirectory) {
347
+ if (loader.loadedNodes.length > 0) {
348
+ let installedPackage;
364
349
  try {
365
- await (0, promises_1.rm)(backupDirectory, { recursive: true, force: true });
350
+ installedPackage = isUpdate
351
+ ? await this.replaceInstalledPackage(options.installedPackage, loader)
352
+ : await this.persistInstalledPackage(loader);
366
353
  }
367
354
  catch (error) {
368
- this.logger.warn('Failed to remove community package backup directory', {
369
- error: (0, ensure_error_1.ensureError)(error),
370
- packageName,
355
+ await this.restoreFailedPackageInstallation(packageName, {
371
356
  backupDirectory,
357
+ previousVersion,
358
+ reloadPackage: isUpdate,
359
+ });
360
+ throw new n8n_workflow_1.UnexpectedError('Failed to save installed package', {
361
+ extra: { packageName },
362
+ cause: error,
372
363
  });
373
364
  }
365
+ if (backupDirectory) {
366
+ try {
367
+ await (0, promises_1.rm)(backupDirectory, { recursive: true, force: true, maxRetries: 3 });
368
+ }
369
+ catch (error) {
370
+ this.logger.warn('Failed to remove community package backup directory', {
371
+ error: (0, ensure_error_1.ensureError)(error),
372
+ packageName,
373
+ backupDirectory,
374
+ });
375
+ }
376
+ }
377
+ const { installedVersion } = installedPackage;
378
+ void this.publisher
379
+ .publishCommand({
380
+ command: isUpdate ? 'community-package-update' : 'community-package-install',
381
+ payload: { packageName, packageVersion: installedVersion },
382
+ })
383
+ .catch((error) => {
384
+ this.logger.warn('Failed to publish community package install/update event', {
385
+ error: (0, ensure_error_1.ensureError)(error),
386
+ packageName,
387
+ packageVersion: installedVersion,
388
+ });
389
+ });
390
+ await this.loadNodesAndCredentials.postProcessLoaders();
391
+ this.loadNodesAndCredentials.releaseTypes();
392
+ this.logger.info(`Community package installed: ${packageName}`);
393
+ return installedPackage;
374
394
  }
375
- void this.publisher.publishCommand({
376
- command: isUpdate ? 'community-package-update' : 'community-package-install',
377
- payload: { packageName, packageVersion },
378
- });
379
- await this.loadNodesAndCredentials.postProcessLoaders();
380
- this.loadNodesAndCredentials.releaseTypes();
381
- this.logger.info(`Community package installed: ${packageName}`);
382
- return installedPackage;
395
+ else {
396
+ await this.restoreFailedPackageInstallation(packageName, {
397
+ backupDirectory,
398
+ previousVersion,
399
+ reloadPackage: isUpdate,
400
+ });
401
+ throw new n8n_workflow_1.UnexpectedError(constants_2.RESPONSE_ERROR_MESSAGES.PACKAGE_DOES_NOT_CONTAIN_NODES);
402
+ }
403
+ });
404
+ }
405
+ async handleInstallEvent({ packageName, packageVersion, }) {
406
+ try {
407
+ await this.installOrUpdateNpmPackage(packageName, packageVersion);
383
408
  }
384
- else {
385
- await this.restoreFailedPackageInstallation(packageName, {
386
- backupDirectory,
387
- previousVersion,
388
- reloadPackage: isUpdate,
409
+ catch (error) {
410
+ this.logger.error(`Failed to install community package ${packageName} from pubsub event`, {
411
+ error: (0, ensure_error_1.ensureError)(error),
412
+ packageName,
413
+ packageVersion,
389
414
  });
390
- throw new n8n_workflow_1.UnexpectedError(constants_2.RESPONSE_ERROR_MESSAGES.PACKAGE_DOES_NOT_CONTAIN_NODES);
391
415
  }
392
416
  }
393
- async handleInstallEvent({ packageName, packageVersion, }) {
394
- await this.installOrUpdateNpmPackage(packageName, packageVersion);
395
- }
396
417
  async handleUninstallEvent({ packageName }) {
397
- await this.removeNpmPackage(packageName);
418
+ try {
419
+ await this.removeNpmPackage(packageName);
420
+ }
421
+ catch (error) {
422
+ this.logger.error(`Failed to uninstall community package ${packageName} from pubsub event`, {
423
+ error: (0, ensure_error_1.ensureError)(error),
424
+ packageName,
425
+ });
426
+ }
398
427
  }
399
428
  async installOrUpdateNpmPackage(packageName, packageVersion) {
400
- const authToken = this.getNpmAuthToken();
401
- await this.downloadPackage(packageName, packageVersion, authToken);
402
- await this.loadNodesAndCredentials.unloadPackage(packageName);
403
- await this.loadNodesAndCredentials.loadPackage(packageName);
404
- await this.loadNodesAndCredentials.postProcessLoaders();
405
- this.loadNodesAndCredentials.releaseTypes();
406
- this.logger.info(`Community package installed: ${packageName}`);
429
+ return await this.packageMutex(async () => {
430
+ const onDiskVersion = await this.readInstalledPackageVersion(packageName);
431
+ if (onDiskVersion === packageVersion && this.loadNodesAndCredentials.loaders[packageName]) {
432
+ this.logger.debug(`Community package ${packageName} already at ${packageVersion}, skipping`);
433
+ return;
434
+ }
435
+ const authToken = this.getNpmAuthToken();
436
+ await this.downloadPackage(packageName, packageVersion, authToken);
437
+ await this.loadNodesAndCredentials.unloadPackage(packageName);
438
+ await this.loadNodesAndCredentials.loadPackage(packageName);
439
+ await this.loadNodesAndCredentials.postProcessLoaders();
440
+ this.loadNodesAndCredentials.releaseTypes();
441
+ this.logger.info(`Community package installed: ${packageName}`);
442
+ });
407
443
  }
408
444
  async removeNpmPackage(packageName) {
409
- await this.deletePackageDirectory(packageName);
410
- await this.loadNodesAndCredentials.unloadPackage(packageName);
411
- await this.loadNodesAndCredentials.postProcessLoaders();
412
- this.loadNodesAndCredentials.releaseTypes();
413
- this.logger.info(`Community package uninstalled: ${packageName}`);
445
+ return await this.packageMutex(async () => {
446
+ await this.deletePackageDirectory(packageName);
447
+ await this.loadNodesAndCredentials.unloadPackage(packageName);
448
+ await this.loadNodesAndCredentials.postProcessLoaders();
449
+ this.loadNodesAndCredentials.releaseTypes();
450
+ this.logger.info(`Community package uninstalled: ${packageName}`);
451
+ });
414
452
  }
415
453
  resolvePackageDirectory(packageName) {
416
454
  return `${this.downloadFolder}/node_modules/${packageName}`;
@@ -430,25 +468,44 @@ let CommunityPackagesService = class CommunityPackagesService {
430
468
  await (0, promises_1.rename)(packageDirectory, backupDirectory);
431
469
  return backupDirectory;
432
470
  }
471
+ async restorePackageDirectoryFromBackup(packageName, backupDirectory) {
472
+ await this.deletePackageDirectory(packageName);
473
+ if (!backupDirectory)
474
+ return;
475
+ await (0, promises_1.rename)(backupDirectory, this.resolvePackageDirectory(packageName));
476
+ }
433
477
  async restoreFailedPackageInstallation(packageName, options) {
434
478
  const { backupDirectory, previousVersion, reloadPackage = false } = options;
435
479
  try {
436
- await this.deletePackageDirectory(packageName);
480
+ await this.restorePackageDirectoryFromBackup(packageName, backupDirectory);
481
+ if (backupDirectory && reloadPackage) {
482
+ try {
483
+ await this.loadNodesAndCredentials.unloadPackage(packageName);
484
+ await this.loadNodesAndCredentials.loadPackage(packageName);
485
+ await this.loadNodesAndCredentials.postProcessLoaders();
486
+ this.loadNodesAndCredentials.releaseTypes();
487
+ }
488
+ catch (cleanupError) {
489
+ this.logger.warn('Failed to reload community package after failed installation', {
490
+ error: (0, ensure_error_1.ensureError)(cleanupError),
491
+ packageName,
492
+ });
493
+ }
494
+ }
495
+ }
496
+ catch (cleanupError) {
497
+ this.logger.warn('Failed to restore community package directory after failed installation', {
498
+ error: (0, ensure_error_1.ensureError)(cleanupError),
499
+ packageName,
500
+ });
501
+ }
502
+ try {
437
503
  if (previousVersion) {
438
504
  await this.updatePackageJsonDependency(packageName, previousVersion);
439
505
  }
440
506
  else {
441
507
  await this.removePackageJsonDependency(packageName);
442
508
  }
443
- if (!backupDirectory)
444
- return;
445
- await (0, promises_1.rename)(backupDirectory, this.resolvePackageDirectory(packageName));
446
- if (!reloadPackage)
447
- return;
448
- await this.loadNodesAndCredentials.unloadPackage(packageName);
449
- await this.loadNodesAndCredentials.loadPackage(packageName);
450
- await this.loadNodesAndCredentials.postProcessLoaders();
451
- this.loadNodesAndCredentials.releaseTypes();
452
509
  }
453
510
  catch (cleanupError) {
454
511
  this.logger.warn('Failed to restore community package after failed installation', {
@@ -460,35 +517,65 @@ let CommunityPackagesService = class CommunityPackagesService {
460
517
  async downloadPackage(packageName, packageVersion, authToken) {
461
518
  const registry = this.getNpmRegistry();
462
519
  const packageDirectory = this.resolvePackageDirectory(packageName);
463
- await this.deletePackageDirectory(packageName);
464
- await (0, promises_1.mkdir)(packageDirectory, { recursive: true });
465
- const tarOutput = await (0, npm_utils_1.executeNpmCommand)(['pack', `${packageName}@${packageVersion}`, '--quiet'], { cwd: this.downloadFolder, registry, authToken });
466
- const tarballName = tarOutput?.trim();
520
+ const backupDirectory = (await this.packageDirectoryExists(packageName))
521
+ ? await this.backupPackageDirectory(packageName)
522
+ : undefined;
467
523
  try {
468
- await asyncExecFile('tar', ['-xzf', tarballName, '-C', packageDirectory, '--strip-components=1'], { cwd: this.downloadFolder });
469
- const packageJsonPath = `${packageDirectory}/package.json`;
470
- const packageJsonContent = await (0, promises_1.readFile)(packageJsonPath, 'utf-8');
471
- const { devDependencies, peerDependencies, optionalDependencies, ...packageJson } = JSON.parse(packageJsonContent);
472
- await (0, promises_1.writeFile)(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
473
- await (0, npm_utils_1.executeNpmCommand)([
474
- 'install',
475
- '--audit=false',
476
- '--fund=false',
477
- '--bin-links=false',
478
- '--install-strategy=shallow',
479
- '--ignore-scripts=true',
480
- '--package-lock=false',
481
- ], { cwd: packageDirectory, registry, authToken });
482
- await this.updatePackageJsonDependency(packageName, packageJson.version);
524
+ await (0, promises_1.mkdir)(packageDirectory, { recursive: true });
525
+ const tarOutput = await (0, npm_utils_1.executeNpmCommand)(['pack', `${packageName}@${packageVersion}`, '--quiet'], { cwd: this.downloadFolder, registry, authToken });
526
+ const tarballName = tarOutput?.trim();
527
+ try {
528
+ await asyncExecFile('tar', ['-xzf', tarballName, '-C', packageDirectory, '--strip-components=1'], { cwd: this.downloadFolder });
529
+ const packageJsonPath = `${packageDirectory}/package.json`;
530
+ const packageJsonContent = await (0, promises_1.readFile)(packageJsonPath, 'utf-8');
531
+ const { devDependencies, peerDependencies, optionalDependencies, ...packageJson } = JSON.parse(packageJsonContent);
532
+ await (0, promises_1.writeFile)(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
533
+ await (0, npm_utils_1.executeNpmCommand)([
534
+ 'install',
535
+ '--audit=false',
536
+ '--fund=false',
537
+ '--bin-links=false',
538
+ '--install-strategy=shallow',
539
+ '--ignore-scripts=true',
540
+ '--package-lock=false',
541
+ ], { cwd: packageDirectory, registry, authToken });
542
+ await this.updatePackageJsonDependency(packageName, packageJson.version);
543
+ }
544
+ finally {
545
+ if (tarballName) {
546
+ await (0, promises_1.rm)((0, node_path_1.join)(this.downloadFolder, tarballName));
547
+ }
548
+ }
549
+ }
550
+ catch (error) {
551
+ try {
552
+ await this.restorePackageDirectoryFromBackup(packageName, backupDirectory);
553
+ }
554
+ catch (restoreError) {
555
+ this.logger.warn('Failed to restore community package directory after failed download', {
556
+ error: (0, ensure_error_1.ensureError)(restoreError),
557
+ packageName,
558
+ });
559
+ }
560
+ throw error;
483
561
  }
484
- finally {
485
- await (0, promises_1.rm)((0, node_path_1.join)(this.downloadFolder, tarballName));
562
+ if (backupDirectory) {
563
+ try {
564
+ await (0, promises_1.rm)(backupDirectory, { recursive: true, force: true, maxRetries: 3 });
565
+ }
566
+ catch (error) {
567
+ this.logger.warn('Failed to remove community package backup directory', {
568
+ error: (0, ensure_error_1.ensureError)(error),
569
+ packageName,
570
+ backupDirectory,
571
+ });
572
+ }
486
573
  }
487
574
  return packageDirectory;
488
575
  }
489
576
  async deletePackageDirectory(packageName) {
490
577
  const packageDirectory = this.resolvePackageDirectory(packageName);
491
- await (0, promises_1.rm)(packageDirectory, { recursive: true, force: true });
578
+ await (0, promises_1.rm)(packageDirectory, { recursive: true, force: true, maxRetries: 3 });
492
579
  }
493
580
  async updatePackageJsonDependency(packageName, version) {
494
581
  await this.mutatePackageJsonDependencies((dependencies) => {
@@ -501,8 +588,7 @@ let CommunityPackagesService = class CommunityPackagesService {
501
588
  });
502
589
  }
503
590
  async mutatePackageJsonDependencies(mutate) {
504
- const existingContent = await (0, promises_1.readFile)(this.packageJsonPath, 'utf-8');
505
- const packageJson = (0, n8n_workflow_1.jsonParse)(existingContent);
591
+ const packageJson = (await this.readPackageJson()) ?? (await this.buildPackageJsonFromDatabase());
506
592
  mutate(packageJson.dependencies);
507
593
  await (0, promises_1.writeFile)(this.packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
508
594
  }