@atom8n/n8n 2.4.7 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/chat/chat-service.types.d.ts +6 -6
  3. package/dist/commands/execute-batch.d.ts +2 -2
  4. package/dist/commands/execute.js +0 -0
  5. package/dist/commands/import/credentials.d.ts +2 -2
  6. package/dist/commands/import/credentials.js +0 -0
  7. package/dist/commands/import/workflow.d.ts +2 -2
  8. package/dist/commands/ldap/reset.d.ts +2 -2
  9. package/dist/commands/mcp.d.ts +23 -0
  10. package/dist/commands/mcp.js +315 -0
  11. package/dist/commands/run.d.ts +23 -0
  12. package/dist/commands/run.js +162 -0
  13. package/dist/controllers/annotation-tags.controller.ee.d.ts +1 -1
  14. package/dist/controllers/cli.controller.d.ts +26 -0
  15. package/dist/controllers/cli.controller.js +334 -0
  16. package/dist/controllers/orchestration.controller.js +0 -0
  17. package/dist/controllers/users.controller.d.ts +1 -1
  18. package/dist/environments.ee/source-control/source-control-status.service.ee.d.ts +2 -2
  19. package/dist/environments.ee/source-control/source-control.controller.ee.d.ts +4 -4
  20. package/dist/environments.ee/source-control/source-control.service.ee.d.ts +2 -2
  21. package/dist/environments.ee/source-control/types/source-control-set-branch.js +0 -0
  22. package/dist/eventbus/event-message-classes/index.js +0 -0
  23. package/dist/events/relays/workflow-failure-notification.event-relay.d.ts +13 -0
  24. package/dist/events/relays/workflow-failure-notification.event-relay.js +77 -0
  25. package/dist/executions/execution-data/types.d.ts +17 -0
  26. package/dist/executions/execution-data/types.js +2 -0
  27. package/dist/executions/failed-run-factory.d.ts +4 -0
  28. package/dist/executions/failed-run-factory.js +71 -0
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.js +8 -0
  31. package/dist/interfaces.d.ts +1 -1
  32. package/dist/license.js +1 -1
  33. package/dist/middlewares/webview-frame-options.d.ts +2 -0
  34. package/dist/middlewares/webview-frame-options.js +22 -0
  35. package/dist/modules/chat-hub/chat-hub-extractor.d.ts +22 -0
  36. package/dist/modules/chat-hub/chat-hub-extractor.js +63 -0
  37. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-user-entry-storage.d.ts +11 -0
  38. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-user-entry-storage.js +58 -0
  39. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-user-entry.d.ts +12 -0
  40. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-user-entry.js +64 -0
  41. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-user-entry.repository.d.ts +5 -0
  42. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-user-entry.repository.js +25 -0
  43. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.config.d.ts +5 -0
  44. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.config.js +36 -0
  45. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-cors.service.d.ts +12 -0
  46. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-cors.service.js +69 -0
  47. package/dist/modules/dynamic-credentials.ee/services/resolver-config-expression.service.d.ts +7 -0
  48. package/dist/modules/dynamic-credentials.ee/services/resolver-config-expression.service.js +46 -0
  49. package/dist/modules/insights/database/entities/insights-metadata.js +1 -1
  50. package/dist/modules/insights/database/repositories/insights-by-period-query.helper.js +4 -1
  51. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +1 -1
  52. package/dist/modules/insights/insights.module.d.ts +1 -1
  53. package/dist/modules/insights/insights.service.d.ts +1 -1
  54. package/dist/modules/log-streaming.ee/database/entities/event-destination.entity.d.ts +6 -0
  55. package/dist/modules/log-streaming.ee/database/entities/event-destination.entity.js +28 -0
  56. package/dist/modules/log-streaming.ee/database/entities/index.d.ts +1 -0
  57. package/dist/modules/log-streaming.ee/database/entities/index.js +5 -0
  58. package/dist/modules/log-streaming.ee/database/repositories/event-destination.repository.d.ts +5 -0
  59. package/dist/modules/log-streaming.ee/database/repositories/event-destination.repository.js +25 -0
  60. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.d.ts +4 -0
  61. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.js +24 -0
  62. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-sentry.ee.d.ts +17 -0
  63. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-sentry.ee.js +131 -0
  64. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-syslog.ee.d.ts +22 -0
  65. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-syslog.ee.js +116 -0
  66. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.d.ts +35 -0
  67. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +328 -0
  68. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.d.ts +28 -0
  69. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.js +74 -0
  70. package/dist/modules/log-streaming.ee/log-streaming-destination.service.d.ts +32 -0
  71. package/dist/modules/log-streaming.ee/log-streaming-destination.service.js +175 -0
  72. package/dist/modules/log-streaming.ee/log-streaming.controller.d.ts +15 -0
  73. package/dist/modules/log-streaming.ee/log-streaming.controller.js +149 -0
  74. package/dist/modules/log-streaming.ee/log-streaming.module.d.ts +5 -0
  75. package/dist/modules/log-streaming.ee/log-streaming.module.js +66 -0
  76. package/dist/modules/mcp/mcp-oauth.helpers.js +0 -0
  77. package/dist/modules/mcp/mcp.oauth-clients.controller.js +0 -0
  78. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +10 -10
  79. package/dist/modules/mcp/tools/schemas.d.ts +10 -10
  80. package/dist/modules/source-control.ee/constants.d.ts +17 -0
  81. package/dist/modules/source-control.ee/constants.js +22 -0
  82. package/dist/modules/source-control.ee/middleware/source-control-enabled-middleware.ee.d.ts +2 -0
  83. package/dist/modules/source-control.ee/middleware/source-control-enabled-middleware.ee.js +18 -0
  84. package/dist/modules/source-control.ee/source-control-export.service.ee.d.ts +37 -0
  85. package/dist/modules/source-control.ee/source-control-export.service.ee.js +426 -0
  86. package/dist/modules/source-control.ee/source-control-git.service.ee.d.ts +59 -0
  87. package/dist/modules/source-control.ee/source-control-git.service.ee.js +427 -0
  88. package/dist/modules/source-control.ee/source-control-helper.ee.d.ts +49 -0
  89. package/dist/modules/source-control.ee/source-control-helper.ee.js +241 -0
  90. package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +110 -0
  91. package/dist/modules/source-control.ee/source-control-import.service.ee.js +957 -0
  92. package/dist/modules/source-control.ee/source-control-preferences.service.ee.d.ts +46 -0
  93. package/dist/modules/source-control.ee/source-control-preferences.service.ee.js +309 -0
  94. package/dist/modules/source-control.ee/source-control-resource-helper.d.ts +4 -0
  95. package/dist/modules/source-control.ee/source-control-resource-helper.js +20 -0
  96. package/dist/modules/source-control.ee/source-control-scoped.service.d.ts +17 -0
  97. package/dist/modules/source-control.ee/source-control-scoped.service.js +134 -0
  98. package/dist/modules/source-control.ee/source-control-status.service.ee.d.ts +90 -0
  99. package/dist/modules/source-control.ee/source-control-status.service.ee.js +596 -0
  100. package/dist/modules/source-control.ee/source-control.config.d.ts +3 -0
  101. package/dist/modules/source-control.ee/source-control.config.js +26 -0
  102. package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +157 -0
  103. package/dist/modules/source-control.ee/source-control.controller.ee.js +347 -0
  104. package/dist/modules/source-control.ee/source-control.module.d.ts +4 -0
  105. package/dist/modules/source-control.ee/source-control.module.js +59 -0
  106. package/dist/modules/source-control.ee/source-control.service.ee.d.ts +125 -0
  107. package/dist/modules/source-control.ee/source-control.service.ee.js +466 -0
  108. package/dist/modules/source-control.ee/types/export-result.d.ts +10 -0
  109. package/dist/modules/source-control.ee/types/export-result.js +2 -0
  110. package/dist/modules/source-control.ee/types/exportable-credential.d.ts +14 -0
  111. package/dist/modules/source-control.ee/types/exportable-credential.js +2 -0
  112. package/dist/modules/source-control.ee/types/exportable-folders.d.ts +11 -0
  113. package/dist/modules/source-control.ee/types/exportable-folders.js +2 -0
  114. package/dist/modules/source-control.ee/types/exportable-project.d.ts +17 -0
  115. package/dist/modules/source-control.ee/types/exportable-project.js +2 -0
  116. package/dist/modules/source-control.ee/types/exportable-tags.d.ts +5 -0
  117. package/dist/modules/source-control.ee/types/exportable-tags.js +2 -0
  118. package/dist/modules/source-control.ee/types/exportable-variable.d.ts +7 -0
  119. package/dist/modules/source-control.ee/types/exportable-variable.js +2 -0
  120. package/dist/modules/source-control.ee/types/exportable-workflow.d.ts +14 -0
  121. package/dist/modules/source-control.ee/types/exportable-workflow.js +2 -0
  122. package/dist/modules/source-control.ee/types/import-result.d.ts +20 -0
  123. package/dist/modules/source-control.ee/types/import-result.js +2 -0
  124. package/dist/modules/source-control.ee/types/key-pair-type.d.ts +1 -0
  125. package/dist/modules/source-control.ee/types/key-pair-type.js +2 -0
  126. package/dist/modules/source-control.ee/types/key-pair.d.ts +4 -0
  127. package/dist/modules/source-control.ee/types/key-pair.js +2 -0
  128. package/dist/modules/source-control.ee/types/requests.d.ts +21 -0
  129. package/dist/modules/source-control.ee/types/requests.js +2 -0
  130. package/dist/modules/source-control.ee/types/resource-owner.d.ts +17 -0
  131. package/dist/modules/source-control.ee/types/resource-owner.js +2 -0
  132. package/dist/modules/source-control.ee/types/source-control-commit.d.ts +3 -0
  133. package/dist/modules/source-control.ee/types/source-control-commit.js +20 -0
  134. package/dist/modules/source-control.ee/types/source-control-context.d.ts +7 -0
  135. package/dist/modules/source-control.ee/types/source-control-context.js +16 -0
  136. package/dist/modules/source-control.ee/types/source-control-disconnect.d.ts +3 -0
  137. package/dist/modules/source-control.ee/types/source-control-disconnect.js +21 -0
  138. package/dist/modules/source-control.ee/types/source-control-generate-key-pair.d.ts +4 -0
  139. package/dist/modules/source-control.ee/types/source-control-generate-key-pair.js +21 -0
  140. package/dist/modules/source-control.ee/types/source-control-get-status.d.ts +10 -0
  141. package/dist/modules/source-control.ee/types/source-control-get-status.js +42 -0
  142. package/dist/modules/source-control.ee/types/source-control-preferences.d.ts +17 -0
  143. package/dist/modules/source-control.ee/types/source-control-preferences.js +88 -0
  144. package/dist/modules/source-control.ee/types/source-control-push.d.ts +3 -0
  145. package/dist/modules/source-control.ee/types/source-control-push.js +21 -0
  146. package/dist/modules/source-control.ee/types/source-control-set-branch.d.ts +3 -0
  147. package/dist/modules/source-control.ee/types/source-control-set-branch.js +20 -0
  148. package/dist/modules/source-control.ee/types/source-control-set-read-only.d.ts +3 -0
  149. package/dist/modules/source-control.ee/types/source-control-set-read-only.js +20 -0
  150. package/dist/modules/source-control.ee/types/source-control-stage.d.ts +5 -0
  151. package/dist/modules/source-control.ee/types/source-control-stage.js +31 -0
  152. package/dist/modules/source-control.ee/types/source-control-workflow-version-id.d.ts +12 -0
  153. package/dist/modules/source-control.ee/types/source-control-workflow-version-id.js +2 -0
  154. package/dist/modules/sso-oidc/constants.d.ts +3 -0
  155. package/dist/modules/sso-oidc/constants.js +6 -0
  156. package/dist/modules/sso-oidc/oidc.controller.ee.d.ts +23 -0
  157. package/dist/modules/sso-oidc/oidc.controller.ee.js +123 -0
  158. package/dist/modules/sso-oidc/oidc.service.ee.d.ts +56 -0
  159. package/dist/modules/sso-oidc/oidc.service.ee.js +468 -0
  160. package/dist/modules/sso-oidc/sso-oidc.module.d.ts +4 -0
  161. package/dist/modules/sso-oidc/sso-oidc.module.js +55 -0
  162. package/dist/modules/sso-saml/constants.d.ts +3 -0
  163. package/dist/modules/sso-saml/constants.js +6 -0
  164. package/dist/modules/sso-saml/errors/invalid-saml-metadata-url.error.d.ts +4 -0
  165. package/dist/modules/sso-saml/errors/invalid-saml-metadata-url.error.js +10 -0
  166. package/dist/modules/sso-saml/errors/invalid-saml-metadata.error.d.ts +4 -0
  167. package/dist/modules/sso-saml/errors/invalid-saml-metadata.error.js +10 -0
  168. package/dist/modules/sso-saml/middleware/saml-enabled-middleware.d.ts +3 -0
  169. package/dist/modules/sso-saml/middleware/saml-enabled-middleware.js +22 -0
  170. package/dist/modules/sso-saml/saml-helpers.d.ts +19 -0
  171. package/dist/modules/sso-saml/saml-helpers.js +129 -0
  172. package/dist/modules/sso-saml/saml-validator.d.ts +16 -0
  173. package/dist/modules/sso-saml/saml-validator.js +129 -0
  174. package/dist/modules/sso-saml/saml.controller.ee.d.ts +50 -0
  175. package/dist/modules/sso-saml/saml.controller.ee.js +227 -0
  176. package/dist/modules/sso-saml/saml.service.ee.d.ts +52 -0
  177. package/dist/modules/sso-saml/saml.service.ee.js +462 -0
  178. package/dist/modules/sso-saml/schema/metadata-exchange.xsd.d.ts +2 -0
  179. package/dist/modules/sso-saml/schema/metadata-exchange.xsd.js +118 -0
  180. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.d.ts +2 -0
  181. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.js +201 -0
  182. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.d.ts +2 -0
  183. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.js +114 -0
  184. package/dist/modules/sso-saml/schema/saml-schema-assertion-2.0.xsd.d.ts +2 -0
  185. package/dist/modules/sso-saml/schema/saml-schema-assertion-2.0.xsd.js +289 -0
  186. package/dist/modules/sso-saml/schema/saml-schema-metadata-2.0.xsd.d.ts +2 -0
  187. package/dist/modules/sso-saml/schema/saml-schema-metadata-2.0.xsd.js +344 -0
  188. package/dist/modules/sso-saml/schema/saml-schema-protocol-2.0.xsd.d.ts +2 -0
  189. package/dist/modules/sso-saml/schema/saml-schema-protocol-2.0.xsd.js +308 -0
  190. package/dist/modules/sso-saml/schema/ws-addr.xsd.d.ts +2 -0
  191. package/dist/modules/sso-saml/schema/ws-addr.xsd.js +143 -0
  192. package/dist/modules/sso-saml/schema/ws-authorization.xsd.d.ts +2 -0
  193. package/dist/modules/sso-saml/schema/ws-authorization.xsd.js +151 -0
  194. package/dist/modules/sso-saml/schema/ws-federation.xsd.d.ts +2 -0
  195. package/dist/modules/sso-saml/schema/ws-federation.xsd.js +476 -0
  196. package/dist/modules/sso-saml/schema/ws-securitypolicy-1.2.xsd.d.ts +2 -0
  197. package/dist/modules/sso-saml/schema/ws-securitypolicy-1.2.xsd.js +1211 -0
  198. package/dist/modules/sso-saml/schema/xenc-schema.xsd.d.ts +2 -0
  199. package/dist/modules/sso-saml/schema/xenc-schema.xsd.js +151 -0
  200. package/dist/modules/sso-saml/schema/xml.xsd.d.ts +2 -0
  201. package/dist/modules/sso-saml/schema/xml.xsd.js +123 -0
  202. package/dist/modules/sso-saml/schema/xmldsig-core-schema.xsd.d.ts +2 -0
  203. package/dist/modules/sso-saml/schema/xmldsig-core-schema.xsd.js +324 -0
  204. package/dist/modules/sso-saml/service-provider.ee.d.ts +6 -0
  205. package/dist/modules/sso-saml/service-provider.ee.js +44 -0
  206. package/dist/modules/sso-saml/sso-saml.module.d.ts +4 -0
  207. package/dist/modules/sso-saml/sso-saml.module.js +55 -0
  208. package/dist/modules/sso-saml/types.d.ts +4 -0
  209. package/dist/modules/sso-saml/types.js +2 -0
  210. package/dist/modules/sso-saml/views/init-sso-post.d.ts +2 -0
  211. package/dist/modules/sso-saml/views/init-sso-post.js +16 -0
  212. package/dist/node-lib.d.ts +10 -0
  213. package/dist/node-lib.js +137 -0
  214. package/dist/push/index.d.ts +1 -1
  215. package/dist/server.d.ts +1 -0
  216. package/dist/server.js +1 -0
  217. package/dist/services/cors-service.d.ts +7 -0
  218. package/dist/services/cors-service.js +50 -0
  219. package/dist/services/static-auth-service.d.ts +4 -0
  220. package/dist/services/static-auth-service.js +29 -0
  221. package/dist/sso.ee/saml/schema/metadata-exchange.xsd.js +0 -0
  222. package/dist/task-runners/task-broker/errors/task-runner-accept-timeout.error.js +0 -0
  223. package/dist/typecheck.tsbuildinfo +1 -0
  224. package/dist/user-management/email/templates/workflow-failure.handlebars +211 -0
  225. package/dist/utils/cors.util.d.ts +2 -0
  226. package/dist/utils/cors.util.js +17 -0
  227. package/dist/webhooks/waiting-forms.js +3 -3
  228. package/dist/webhooks/waiting-webhooks.js +2 -0
  229. package/dist/workflows/workflow.service.d.ts +2 -2
  230. package/dist/workflows/workflows.controller.d.ts +6 -6
  231. package/package.json +22 -21
@@ -0,0 +1,157 @@
1
+ import { IWorkflowToImport } from '../../interfaces';
2
+ import { PullWorkFolderRequestDto, PushWorkFolderRequestDto, type GitCommitInfo, type SourceControlledFile } from '@n8n/api-types';
3
+ import { AuthenticatedRequest } from '@n8n/db';
4
+ import * as express from 'express';
5
+ import type { PullResult } from 'simple-git';
6
+ import { SourceControlPreferencesService } from './source-control-preferences.service.ee';
7
+ import { SourceControlScopedService } from './source-control-scoped.service';
8
+ import { SourceControlService } from './source-control.service.ee';
9
+ import type { ImportResult } from './types/import-result';
10
+ import { SourceControlRequest } from './types/requests';
11
+ import type { SourceControlPreferences } from './types/source-control-preferences';
12
+ import { EventService } from '../../events/event.service';
13
+ export declare class SourceControlController {
14
+ private readonly sourceControlService;
15
+ private readonly sourceControlPreferencesService;
16
+ private readonly sourceControlScopedService;
17
+ private readonly eventService;
18
+ constructor(sourceControlService: SourceControlService, sourceControlPreferencesService: SourceControlPreferencesService, sourceControlScopedService: SourceControlScopedService, eventService: EventService);
19
+ getPreferences(): Promise<SourceControlPreferences>;
20
+ setPreferences(req: SourceControlRequest.UpdatePreferences): Promise<SourceControlPreferences>;
21
+ updatePreferences(req: SourceControlRequest.UpdatePreferences): Promise<SourceControlPreferences>;
22
+ disconnect(req: SourceControlRequest.Disconnect): Promise<SourceControlPreferences>;
23
+ getBranches(): Promise<{
24
+ branches: string[];
25
+ currentBranch: string;
26
+ }>;
27
+ pushWorkfolder(req: AuthenticatedRequest, res: express.Response, payload: PushWorkFolderRequestDto): Promise<{
28
+ files: SourceControlledFile[];
29
+ commit: GitCommitInfo | null;
30
+ }>;
31
+ pullWorkfolder(req: AuthenticatedRequest, res: express.Response, payload: PullWorkFolderRequestDto): Promise<SourceControlledFile[] | ImportResult | PullResult | undefined>;
32
+ resetWorkfolder(): Promise<ImportResult | undefined>;
33
+ getStatus(req: SourceControlRequest.GetStatus): Promise<{
34
+ status: "unknown" | "new" | "modified" | "deleted" | "created" | "renamed" | "conflicted" | "ignored" | "staged";
35
+ type: "tags" | "project" | "credential" | "file" | "workflow" | "variables" | "folders";
36
+ id: string;
37
+ name: string;
38
+ updatedAt: string;
39
+ file: string;
40
+ location: "local" | "remote";
41
+ conflict: boolean;
42
+ pushed?: boolean | undefined;
43
+ owner?: {
44
+ type: "personal" | "team";
45
+ projectId: string;
46
+ projectName: string;
47
+ } | undefined;
48
+ }[] | {
49
+ wfRemoteVersionIds: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
50
+ wfLocalVersionIds: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
51
+ wfMissingInLocal: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
52
+ wfMissingInRemote: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
53
+ wfModifiedInEither: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
54
+ credMissingInLocal: import("./types/exportable-credential").StatusExportableCredential[];
55
+ credMissingInRemote: import("./types/exportable-credential").StatusExportableCredential[];
56
+ credModifiedInEither: import("./types/exportable-credential").StatusExportableCredential[];
57
+ varMissingInLocal: import("./types/exportable-variable").ExportableVariable[];
58
+ varMissingInRemote: import("@n8n/db").Variables[];
59
+ varModifiedInEither: import("./types/exportable-variable").ExportableVariable[];
60
+ tagsMissingInLocal: import("@n8n/db").TagEntity[];
61
+ tagsMissingInRemote: import("@n8n/db").TagEntity[];
62
+ tagsModifiedInEither: import("@n8n/db").TagEntity[];
63
+ mappingsMissingInLocal: import("@n8n/db").WorkflowTagMapping[];
64
+ mappingsMissingInRemote: import("@n8n/db").WorkflowTagMapping[];
65
+ foldersMissingInLocal: import("./types/exportable-folders").ExportableFolder[];
66
+ foldersMissingInRemote: import("./types/exportable-folders").ExportableFolder[];
67
+ foldersModifiedInEither: import("./types/exportable-folders").ExportableFolder[];
68
+ projectsRemote: import("./types/exportable-project").ExportableProjectWithFileName[];
69
+ projectsLocal: import("./types/exportable-project").ExportableProjectWithFileName[];
70
+ projectsMissingInLocal: import("./types/exportable-project").ExportableProjectWithFileName[];
71
+ projectsMissingInRemote: import("./types/exportable-project").ExportableProjectWithFileName[];
72
+ projectsModifiedInEither: import("./types/exportable-project").ExportableProjectWithFileName[];
73
+ sourceControlledFiles: {
74
+ status: "unknown" | "new" | "modified" | "deleted" | "created" | "renamed" | "conflicted" | "ignored" | "staged";
75
+ type: "tags" | "project" | "credential" | "file" | "workflow" | "variables" | "folders";
76
+ id: string;
77
+ name: string;
78
+ updatedAt: string;
79
+ file: string;
80
+ location: "local" | "remote";
81
+ conflict: boolean;
82
+ pushed?: boolean | undefined;
83
+ owner?: {
84
+ type: "personal" | "team";
85
+ projectId: string;
86
+ projectName: string;
87
+ } | undefined;
88
+ }[];
89
+ }>;
90
+ status(req: SourceControlRequest.GetStatus): Promise<{
91
+ status: "unknown" | "new" | "modified" | "deleted" | "created" | "renamed" | "conflicted" | "ignored" | "staged";
92
+ type: "tags" | "project" | "credential" | "file" | "workflow" | "variables" | "folders";
93
+ id: string;
94
+ name: string;
95
+ updatedAt: string;
96
+ file: string;
97
+ location: "local" | "remote";
98
+ conflict: boolean;
99
+ pushed?: boolean | undefined;
100
+ owner?: {
101
+ type: "personal" | "team";
102
+ projectId: string;
103
+ projectName: string;
104
+ } | undefined;
105
+ }[] | {
106
+ wfRemoteVersionIds: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
107
+ wfLocalVersionIds: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
108
+ wfMissingInLocal: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
109
+ wfMissingInRemote: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
110
+ wfModifiedInEither: import("./types/source-control-workflow-version-id").SourceControlWorkflowVersionId[];
111
+ credMissingInLocal: import("./types/exportable-credential").StatusExportableCredential[];
112
+ credMissingInRemote: import("./types/exportable-credential").StatusExportableCredential[];
113
+ credModifiedInEither: import("./types/exportable-credential").StatusExportableCredential[];
114
+ varMissingInLocal: import("./types/exportable-variable").ExportableVariable[];
115
+ varMissingInRemote: import("@n8n/db").Variables[];
116
+ varModifiedInEither: import("./types/exportable-variable").ExportableVariable[];
117
+ tagsMissingInLocal: import("@n8n/db").TagEntity[];
118
+ tagsMissingInRemote: import("@n8n/db").TagEntity[];
119
+ tagsModifiedInEither: import("@n8n/db").TagEntity[];
120
+ mappingsMissingInLocal: import("@n8n/db").WorkflowTagMapping[];
121
+ mappingsMissingInRemote: import("@n8n/db").WorkflowTagMapping[];
122
+ foldersMissingInLocal: import("./types/exportable-folders").ExportableFolder[];
123
+ foldersMissingInRemote: import("./types/exportable-folders").ExportableFolder[];
124
+ foldersModifiedInEither: import("./types/exportable-folders").ExportableFolder[];
125
+ projectsRemote: import("./types/exportable-project").ExportableProjectWithFileName[];
126
+ projectsLocal: import("./types/exportable-project").ExportableProjectWithFileName[];
127
+ projectsMissingInLocal: import("./types/exportable-project").ExportableProjectWithFileName[];
128
+ projectsMissingInRemote: import("./types/exportable-project").ExportableProjectWithFileName[];
129
+ projectsModifiedInEither: import("./types/exportable-project").ExportableProjectWithFileName[];
130
+ sourceControlledFiles: {
131
+ status: "unknown" | "new" | "modified" | "deleted" | "created" | "renamed" | "conflicted" | "ignored" | "staged";
132
+ type: "tags" | "project" | "credential" | "file" | "workflow" | "variables" | "folders";
133
+ id: string;
134
+ name: string;
135
+ updatedAt: string;
136
+ file: string;
137
+ location: "local" | "remote";
138
+ conflict: boolean;
139
+ pushed?: boolean | undefined;
140
+ owner?: {
141
+ type: "personal" | "team";
142
+ projectId: string;
143
+ projectName: string;
144
+ } | undefined;
145
+ }[];
146
+ }>;
147
+ generateKeyPair(req: SourceControlRequest.GenerateKeyPair): Promise<SourceControlPreferences>;
148
+ getFileContent(req: AuthenticatedRequest & {
149
+ params: {
150
+ type: SourceControlledFile['type'];
151
+ id: string;
152
+ };
153
+ }): Promise<{
154
+ content: IWorkflowToImport;
155
+ type: SourceControlledFile['type'];
156
+ }>;
157
+ }
@@ -0,0 +1,347 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
45
+ return function (target, key) { decorator(target, key, paramIndex); }
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.SourceControlController = void 0;
49
+ const api_types_1 = require("@n8n/api-types");
50
+ const decorators_1 = require("@n8n/decorators");
51
+ const express = __importStar(require("express"));
52
+ const constants_1 = require("./constants");
53
+ const source_control_enabled_middleware_ee_1 = require("./middleware/source-control-enabled-middleware.ee");
54
+ const source_control_helper_ee_1 = require("./source-control-helper.ee");
55
+ const source_control_preferences_service_ee_1 = require("./source-control-preferences.service.ee");
56
+ const source_control_scoped_service_1 = require("./source-control-scoped.service");
57
+ const source_control_service_ee_1 = require("./source-control.service.ee");
58
+ const source_control_get_status_1 = require("./types/source-control-get-status");
59
+ const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
60
+ const forbidden_error_1 = require("../../errors/response-errors/forbidden.error");
61
+ const event_service_1 = require("../../events/event.service");
62
+ let SourceControlController = class SourceControlController {
63
+ constructor(sourceControlService, sourceControlPreferencesService, sourceControlScopedService, eventService) {
64
+ this.sourceControlService = sourceControlService;
65
+ this.sourceControlPreferencesService = sourceControlPreferencesService;
66
+ this.sourceControlScopedService = sourceControlScopedService;
67
+ this.eventService = eventService;
68
+ }
69
+ async getPreferences() {
70
+ const publicKey = await this.sourceControlPreferencesService.getPublicKey();
71
+ return { ...this.sourceControlPreferencesService.getPreferences(), publicKey };
72
+ }
73
+ async setPreferences(req) {
74
+ if (req.body.branchReadOnly === undefined &&
75
+ this.sourceControlPreferencesService.isSourceControlConnected()) {
76
+ throw new bad_request_error_1.BadRequestError('Cannot change preferences while connected to a source control provider. Please disconnect first.');
77
+ }
78
+ try {
79
+ const sanitizedPreferences = {
80
+ ...req.body,
81
+ initRepo: req.body.initRepo ?? true,
82
+ connected: undefined,
83
+ publicKey: undefined,
84
+ };
85
+ await this.sourceControlPreferencesService.validateSourceControlPreferences(sanitizedPreferences);
86
+ const updatedPreferences = await this.sourceControlPreferencesService.setPreferences(sanitizedPreferences);
87
+ if (sanitizedPreferences.initRepo === true) {
88
+ try {
89
+ await this.sourceControlService.initializeRepository({
90
+ ...updatedPreferences,
91
+ branchName: updatedPreferences.branchName === ''
92
+ ? constants_1.SOURCE_CONTROL_DEFAULT_BRANCH
93
+ : updatedPreferences.branchName,
94
+ initRepo: true,
95
+ }, req.user);
96
+ if (this.sourceControlPreferencesService.getPreferences().branchName !== '') {
97
+ await this.sourceControlPreferencesService.setPreferences({
98
+ connected: true,
99
+ });
100
+ }
101
+ }
102
+ catch (error) {
103
+ await this.sourceControlService.disconnect({ keepKeyPair: true });
104
+ throw error;
105
+ }
106
+ }
107
+ await this.sourceControlService.start();
108
+ const resultingPreferences = this.sourceControlPreferencesService.getPreferences();
109
+ this.eventService.emit('source-control-settings-updated', {
110
+ branchName: resultingPreferences.branchName,
111
+ connected: resultingPreferences.connected,
112
+ readOnlyInstance: resultingPreferences.branchReadOnly,
113
+ repoType: (0, source_control_helper_ee_1.getRepoType)(resultingPreferences.repositoryUrl),
114
+ connectionType: resultingPreferences.connectionType,
115
+ });
116
+ return resultingPreferences;
117
+ }
118
+ catch (error) {
119
+ throw new bad_request_error_1.BadRequestError(error.message);
120
+ }
121
+ }
122
+ async updatePreferences(req) {
123
+ try {
124
+ const sanitizedPreferences = {
125
+ ...req.body,
126
+ initRepo: false,
127
+ connected: undefined,
128
+ publicKey: undefined,
129
+ repositoryUrl: undefined,
130
+ };
131
+ const currentPreferences = this.sourceControlPreferencesService.getPreferences();
132
+ await this.sourceControlPreferencesService.validateSourceControlPreferences(sanitizedPreferences);
133
+ if (sanitizedPreferences.branchName &&
134
+ sanitizedPreferences.branchName !== currentPreferences.branchName) {
135
+ await this.sourceControlService.setBranch(sanitizedPreferences.branchName);
136
+ }
137
+ if (sanitizedPreferences.branchColor ?? sanitizedPreferences.branchReadOnly !== undefined) {
138
+ await this.sourceControlPreferencesService.setPreferences({
139
+ branchColor: sanitizedPreferences.branchColor,
140
+ branchReadOnly: sanitizedPreferences.branchReadOnly,
141
+ }, true);
142
+ }
143
+ await this.sourceControlService.start();
144
+ const resultingPreferences = this.sourceControlPreferencesService.getPreferences();
145
+ this.eventService.emit('source-control-settings-updated', {
146
+ branchName: resultingPreferences.branchName,
147
+ connected: resultingPreferences.connected,
148
+ readOnlyInstance: resultingPreferences.branchReadOnly,
149
+ repoType: (0, source_control_helper_ee_1.getRepoType)(resultingPreferences.repositoryUrl),
150
+ connectionType: resultingPreferences.connectionType,
151
+ });
152
+ return resultingPreferences;
153
+ }
154
+ catch (error) {
155
+ throw new bad_request_error_1.BadRequestError(error.message);
156
+ }
157
+ }
158
+ async disconnect(req) {
159
+ try {
160
+ return await this.sourceControlService.disconnect(req.body);
161
+ }
162
+ catch (error) {
163
+ throw new bad_request_error_1.BadRequestError(error.message);
164
+ }
165
+ }
166
+ async getBranches() {
167
+ try {
168
+ return await this.sourceControlService.getBranches();
169
+ }
170
+ catch (error) {
171
+ throw new bad_request_error_1.BadRequestError(error.message);
172
+ }
173
+ }
174
+ async pushWorkfolder(req, res, payload) {
175
+ await this.sourceControlScopedService.ensureIsAllowedToPush(req);
176
+ try {
177
+ await this.sourceControlService.setGitUserDetails(`${req.user.firstName} ${req.user.lastName}`, req.user.email);
178
+ const result = await this.sourceControlService.pushWorkfolder(req.user, payload);
179
+ res.statusCode = result.statusCode;
180
+ const commitInfo = result.pushResult?.update?.hash?.to
181
+ ? {
182
+ hash: result.pushResult.update.hash.to,
183
+ message: payload.commitMessage ?? 'Updated Workfolder',
184
+ branch: result.pushResult.update.head?.local ?? '',
185
+ }
186
+ : null;
187
+ return {
188
+ files: result.statusResult,
189
+ commit: commitInfo,
190
+ };
191
+ }
192
+ catch (error) {
193
+ throw new bad_request_error_1.BadRequestError(error.message);
194
+ }
195
+ }
196
+ async pullWorkfolder(req, res, payload) {
197
+ try {
198
+ const result = await this.sourceControlService.pullWorkfolder(req.user, payload);
199
+ res.statusCode = result.statusCode;
200
+ return result.statusResult;
201
+ }
202
+ catch (error) {
203
+ throw new bad_request_error_1.BadRequestError(error.message);
204
+ }
205
+ }
206
+ async resetWorkfolder() {
207
+ try {
208
+ return await this.sourceControlService.resetWorkfolder();
209
+ }
210
+ catch (error) {
211
+ throw new bad_request_error_1.BadRequestError(error.message);
212
+ }
213
+ }
214
+ async getStatus(req) {
215
+ try {
216
+ const result = await this.sourceControlService.getStatus(req.user, new source_control_get_status_1.SourceControlGetStatus(req.query));
217
+ return result;
218
+ }
219
+ catch (error) {
220
+ throw new bad_request_error_1.BadRequestError(error.message);
221
+ }
222
+ }
223
+ async status(req) {
224
+ try {
225
+ return await this.sourceControlService.getStatus(req.user, new source_control_get_status_1.SourceControlGetStatus(req.query));
226
+ }
227
+ catch (error) {
228
+ throw new bad_request_error_1.BadRequestError(error.message);
229
+ }
230
+ }
231
+ async generateKeyPair(req) {
232
+ try {
233
+ const keyPairType = req.body.keyGeneratorType;
234
+ const result = await this.sourceControlPreferencesService.generateAndSaveKeyPair(keyPairType);
235
+ const publicKey = await this.sourceControlPreferencesService.getPublicKey();
236
+ return { ...result, publicKey };
237
+ }
238
+ catch (error) {
239
+ throw new bad_request_error_1.BadRequestError(error.message);
240
+ }
241
+ }
242
+ async getFileContent(req) {
243
+ try {
244
+ const { type, id } = req.params;
245
+ const content = await this.sourceControlService.getRemoteFileEntity({
246
+ user: req.user,
247
+ type,
248
+ id,
249
+ });
250
+ return { content, type };
251
+ }
252
+ catch (error) {
253
+ if (error instanceof forbidden_error_1.ForbiddenError) {
254
+ throw error;
255
+ }
256
+ throw new bad_request_error_1.BadRequestError(error.message);
257
+ }
258
+ }
259
+ };
260
+ exports.SourceControlController = SourceControlController;
261
+ __decorate([
262
+ (0, decorators_1.Get)('/preferences'),
263
+ __metadata("design:type", Function),
264
+ __metadata("design:paramtypes", []),
265
+ __metadata("design:returntype", Promise)
266
+ ], SourceControlController.prototype, "getPreferences", null);
267
+ __decorate([
268
+ (0, decorators_1.Post)('/preferences'),
269
+ (0, decorators_1.GlobalScope)('sourceControl:manage'),
270
+ __metadata("design:type", Function),
271
+ __metadata("design:paramtypes", [Object]),
272
+ __metadata("design:returntype", Promise)
273
+ ], SourceControlController.prototype, "setPreferences", null);
274
+ __decorate([
275
+ (0, decorators_1.Patch)('/preferences'),
276
+ (0, decorators_1.GlobalScope)('sourceControl:manage'),
277
+ __metadata("design:type", Function),
278
+ __metadata("design:paramtypes", [Object]),
279
+ __metadata("design:returntype", Promise)
280
+ ], SourceControlController.prototype, "updatePreferences", null);
281
+ __decorate([
282
+ (0, decorators_1.Post)('/disconnect'),
283
+ (0, decorators_1.GlobalScope)('sourceControl:manage'),
284
+ __metadata("design:type", Function),
285
+ __metadata("design:paramtypes", [Object]),
286
+ __metadata("design:returntype", Promise)
287
+ ], SourceControlController.prototype, "disconnect", null);
288
+ __decorate([
289
+ (0, decorators_1.Get)('/get-branches'),
290
+ __metadata("design:type", Function),
291
+ __metadata("design:paramtypes", []),
292
+ __metadata("design:returntype", Promise)
293
+ ], SourceControlController.prototype, "getBranches", null);
294
+ __decorate([
295
+ (0, decorators_1.Post)('/push-workfolder', { middlewares: [source_control_enabled_middleware_ee_1.sourceControlEnabledMiddleware] }),
296
+ __param(2, decorators_1.Body),
297
+ __metadata("design:type", Function),
298
+ __metadata("design:paramtypes", [Object, Object, api_types_1.PushWorkFolderRequestDto]),
299
+ __metadata("design:returntype", Promise)
300
+ ], SourceControlController.prototype, "pushWorkfolder", null);
301
+ __decorate([
302
+ (0, decorators_1.Post)('/pull-workfolder', { middlewares: [source_control_enabled_middleware_ee_1.sourceControlEnabledMiddleware] }),
303
+ (0, decorators_1.GlobalScope)('sourceControl:pull'),
304
+ __param(2, decorators_1.Body),
305
+ __metadata("design:type", Function),
306
+ __metadata("design:paramtypes", [Object, Object, api_types_1.PullWorkFolderRequestDto]),
307
+ __metadata("design:returntype", Promise)
308
+ ], SourceControlController.prototype, "pullWorkfolder", null);
309
+ __decorate([
310
+ (0, decorators_1.Get)('/reset-workfolder', { middlewares: [source_control_enabled_middleware_ee_1.sourceControlEnabledMiddleware] }),
311
+ (0, decorators_1.GlobalScope)('sourceControl:manage'),
312
+ __metadata("design:type", Function),
313
+ __metadata("design:paramtypes", []),
314
+ __metadata("design:returntype", Promise)
315
+ ], SourceControlController.prototype, "resetWorkfolder", null);
316
+ __decorate([
317
+ (0, decorators_1.Get)('/get-status', { middlewares: [source_control_enabled_middleware_ee_1.sourceControlEnabledMiddleware] }),
318
+ __metadata("design:type", Function),
319
+ __metadata("design:paramtypes", [Object]),
320
+ __metadata("design:returntype", Promise)
321
+ ], SourceControlController.prototype, "getStatus", null);
322
+ __decorate([
323
+ (0, decorators_1.Get)('/status'),
324
+ __metadata("design:type", Function),
325
+ __metadata("design:paramtypes", [Object]),
326
+ __metadata("design:returntype", Promise)
327
+ ], SourceControlController.prototype, "status", null);
328
+ __decorate([
329
+ (0, decorators_1.Post)('/generate-key-pair'),
330
+ (0, decorators_1.GlobalScope)('sourceControl:manage'),
331
+ __metadata("design:type", Function),
332
+ __metadata("design:paramtypes", [Object]),
333
+ __metadata("design:returntype", Promise)
334
+ ], SourceControlController.prototype, "generateKeyPair", null);
335
+ __decorate([
336
+ (0, decorators_1.Get)('/remote-content/:type/:id', { middlewares: [source_control_enabled_middleware_ee_1.sourceControlEnabledMiddleware] }),
337
+ __metadata("design:type", Function),
338
+ __metadata("design:paramtypes", [Object]),
339
+ __metadata("design:returntype", Promise)
340
+ ], SourceControlController.prototype, "getFileContent", null);
341
+ exports.SourceControlController = SourceControlController = __decorate([
342
+ (0, decorators_1.RestController)('/source-control'),
343
+ __metadata("design:paramtypes", [source_control_service_ee_1.SourceControlService,
344
+ source_control_preferences_service_ee_1.SourceControlPreferencesService,
345
+ source_control_scoped_service_1.SourceControlScopedService,
346
+ event_service_1.EventService])
347
+ ], SourceControlController);
@@ -0,0 +1,4 @@
1
+ import type { ModuleInterface } from '@n8n/decorators';
2
+ export declare class SourceControlModule implements ModuleInterface {
3
+ init(): Promise<void>;
4
+ }
@@ -0,0 +1,59 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.SourceControlModule = void 0;
43
+ const decorators_1 = require("@n8n/decorators");
44
+ const di_1 = require("@n8n/di");
45
+ let SourceControlModule = class SourceControlModule {
46
+ async init() {
47
+ await Promise.resolve().then(() => __importStar(require('./source-control.controller.ee')));
48
+ const { SourceControlService } = await Promise.resolve().then(() => __importStar(require('./source-control.service.ee')));
49
+ await di_1.Container.get(SourceControlService).start();
50
+ }
51
+ };
52
+ exports.SourceControlModule = SourceControlModule;
53
+ exports.SourceControlModule = SourceControlModule = __decorate([
54
+ (0, decorators_1.BackendModule)({
55
+ name: 'source-control',
56
+ licenseFlag: 'feat:sourceControl',
57
+ instanceTypes: ['main'],
58
+ })
59
+ ], SourceControlModule);