n8n 1.42.1 → 1.43.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 (323) hide show
  1. package/dist/AbstractServer.js +4 -1
  2. package/dist/AbstractServer.js.map +1 -1
  3. package/dist/ActiveWebhooks.js +2 -2
  4. package/dist/ActiveWebhooks.js.map +1 -1
  5. package/dist/ActiveWorkflowManager.js +2 -7
  6. package/dist/ActiveWorkflowManager.js.map +1 -1
  7. package/dist/CredentialsHelper.d.ts +5 -7
  8. package/dist/CredentialsHelper.js +38 -34
  9. package/dist/CredentialsHelper.js.map +1 -1
  10. package/dist/Interfaces.d.ts +2 -1
  11. package/dist/Interfaces.js.map +1 -1
  12. package/dist/InternalHooks.d.ts +29 -3
  13. package/dist/InternalHooks.js +39 -9
  14. package/dist/InternalHooks.js.map +1 -1
  15. package/dist/Ldap/helpers.d.ts +1 -29
  16. package/dist/Ldap/helpers.js +16 -7
  17. package/dist/Ldap/helpers.js.map +1 -1
  18. package/dist/Ldap/ldap.service.js +1 -1
  19. package/dist/Ldap/ldap.service.js.map +1 -1
  20. package/dist/License.d.ts +4 -0
  21. package/dist/License.js +13 -0
  22. package/dist/License.js.map +1 -1
  23. package/dist/Mfa/mfa.service.d.ts +1 -1
  24. package/dist/Mfa/mfa.service.js +22 -10
  25. package/dist/Mfa/mfa.service.js.map +1 -1
  26. package/dist/PublicApi/types.d.ts +5 -2
  27. package/dist/PublicApi/types.js.map +1 -1
  28. package/dist/PublicApi/v1/handlers/audit/audit.handler.d.ts +3 -1
  29. package/dist/PublicApi/v1/handlers/audit/audit.handler.js +1 -1
  30. package/dist/PublicApi/v1/handlers/audit/audit.handler.js.map +1 -1
  31. package/dist/PublicApi/v1/handlers/credentials/credentials.handler.d.ts +6 -5
  32. package/dist/PublicApi/v1/handlers/credentials/credentials.handler.js +1 -3
  33. package/dist/PublicApi/v1/handlers/credentials/credentials.handler.js.map +1 -1
  34. package/dist/PublicApi/v1/handlers/credentials/credentials.service.js +4 -2
  35. package/dist/PublicApi/v1/handlers/credentials/credentials.service.js.map +1 -1
  36. package/dist/PublicApi/v1/handlers/executions/executions.handler.d.ts +2 -2
  37. package/dist/PublicApi/v1/handlers/executions/executions.handler.js +3 -6
  38. package/dist/PublicApi/v1/handlers/executions/executions.handler.js.map +1 -1
  39. package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.d.ts +3 -1
  40. package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.js +1 -1
  41. package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.js.map +1 -1
  42. package/dist/PublicApi/v1/handlers/tags/tags.handler.d.ts +15 -5
  43. package/dist/PublicApi/v1/handlers/tags/tags.handler.js +5 -5
  44. package/dist/PublicApi/v1/handlers/tags/tags.handler.js.map +1 -1
  45. package/dist/PublicApi/v1/handlers/users/users.handler.ee.d.ts +6 -3
  46. package/dist/PublicApi/v1/handlers/users/users.handler.ee.js +2 -2
  47. package/dist/PublicApi/v1/handlers/users/users.handler.ee.js.map +1 -1
  48. package/dist/PublicApi/v1/handlers/workflows/workflows.handler.d.ts +22 -8
  49. package/dist/PublicApi/v1/handlers/workflows/workflows.handler.js +48 -44
  50. package/dist/PublicApi/v1/handlers/workflows/workflows.handler.js.map +1 -1
  51. package/dist/PublicApi/v1/handlers/workflows/workflows.service.d.ts +4 -2
  52. package/dist/PublicApi/v1/handlers/workflows/workflows.service.js +18 -13
  53. package/dist/PublicApi/v1/handlers/workflows/workflows.service.js.map +1 -1
  54. package/dist/PublicApi/v1/shared/middlewares/global.middleware.d.ts +8 -2
  55. package/dist/PublicApi/v1/shared/middlewares/global.middleware.js +22 -7
  56. package/dist/PublicApi/v1/shared/middlewares/global.middleware.js.map +1 -1
  57. package/dist/Server.js +4 -0
  58. package/dist/Server.js.map +1 -1
  59. package/dist/UserManagement/PermissionChecker.d.ts +4 -6
  60. package/dist/UserManagement/PermissionChecker.js +22 -31
  61. package/dist/UserManagement/PermissionChecker.js.map +1 -1
  62. package/dist/UserManagement/email/NodeMailer.js +1 -0
  63. package/dist/UserManagement/email/NodeMailer.js.map +1 -1
  64. package/dist/WaitTracker.js +3 -3
  65. package/dist/WaitTracker.js.map +1 -1
  66. package/dist/WaitingWebhooks.js +1 -8
  67. package/dist/WaitingWebhooks.js.map +1 -1
  68. package/dist/WebhookHelpers.js +7 -14
  69. package/dist/WebhookHelpers.js.map +1 -1
  70. package/dist/WorkflowExecuteAdditionalData.d.ts +2 -2
  71. package/dist/WorkflowExecuteAdditionalData.js +10 -11
  72. package/dist/WorkflowExecuteAdditionalData.js.map +1 -1
  73. package/dist/WorkflowRunner.js +1 -1
  74. package/dist/WorkflowRunner.js.map +1 -1
  75. package/dist/auth/auth.service.js +2 -2
  76. package/dist/auth/auth.service.js.map +1 -1
  77. package/dist/build.tsbuildinfo +1 -1
  78. package/dist/commands/import/credentials.d.ts +2 -2
  79. package/dist/commands/import/credentials.js +55 -31
  80. package/dist/commands/import/credentials.js.map +1 -1
  81. package/dist/commands/import/workflow.d.ts +2 -1
  82. package/dist/commands/import/workflow.js +50 -21
  83. package/dist/commands/import/workflow.js.map +1 -1
  84. package/dist/commands/ldap/reset.d.ts +9 -0
  85. package/dist/commands/ldap/reset.js +96 -1
  86. package/dist/commands/ldap/reset.js.map +1 -1
  87. package/dist/commands/mfa/disable.js +11 -2
  88. package/dist/commands/mfa/disable.js.map +1 -1
  89. package/dist/commands/user-management/reset.js +5 -3
  90. package/dist/commands/user-management/reset.js.map +1 -1
  91. package/dist/commands/worker.js +1 -3
  92. package/dist/commands/worker.js.map +1 -1
  93. package/dist/config/index.d.ts +1 -0
  94. package/dist/config/schema.d.ts +6 -0
  95. package/dist/config/schema.js +6 -0
  96. package/dist/config/schema.js.map +1 -1
  97. package/dist/constants.d.ts +19 -14
  98. package/dist/constants.js +5 -0
  99. package/dist/constants.js.map +1 -1
  100. package/dist/controllers/auth.controller.js +2 -2
  101. package/dist/controllers/auth.controller.js.map +1 -1
  102. package/dist/controllers/dynamicNodeParameters.controller.d.ts +3 -5
  103. package/dist/controllers/dynamicNodeParameters.controller.js +10 -37
  104. package/dist/controllers/dynamicNodeParameters.controller.js.map +1 -1
  105. package/dist/controllers/invitation.controller.js +3 -3
  106. package/dist/controllers/invitation.controller.js.map +1 -1
  107. package/dist/controllers/oauth/abstractOAuth.controller.js +1 -1
  108. package/dist/controllers/oauth/abstractOAuth.controller.js.map +1 -1
  109. package/dist/controllers/passwordReset.controller.js +4 -4
  110. package/dist/controllers/passwordReset.controller.js.map +1 -1
  111. package/dist/controllers/project.controller.d.ts +32 -0
  112. package/dist/controllers/project.controller.js +227 -0
  113. package/dist/controllers/project.controller.js.map +1 -0
  114. package/dist/controllers/role.controller.d.ts +13 -0
  115. package/dist/controllers/role.controller.js +42 -0
  116. package/dist/controllers/role.controller.js.map +1 -0
  117. package/dist/controllers/users.controller.d.ts +9 -3
  118. package/dist/controllers/users.controller.js +62 -64
  119. package/dist/controllers/users.controller.js.map +1 -1
  120. package/dist/controllers/workflowStatistics.controller.d.ts +1 -1
  121. package/dist/controllers/workflowStatistics.controller.js +5 -3
  122. package/dist/controllers/workflowStatistics.controller.js.map +1 -1
  123. package/dist/credentials/credentials.controller.d.ts +25 -12
  124. package/dist/credentials/credentials.controller.js +67 -137
  125. package/dist/credentials/credentials.controller.js.map +1 -1
  126. package/dist/credentials/credentials.service.d.ts +30 -7
  127. package/dist/credentials/credentials.service.ee.d.ts +23 -15
  128. package/dist/credentials/credentials.service.ee.js +42 -39
  129. package/dist/credentials/credentials.service.ee.js.map +1 -1
  130. package/dist/credentials/credentials.service.js +157 -28
  131. package/dist/credentials/credentials.service.js.map +1 -1
  132. package/dist/databases/config.js +2 -0
  133. package/dist/databases/config.js.map +1 -1
  134. package/dist/databases/dsl/Column.js +5 -2
  135. package/dist/databases/dsl/Column.js.map +1 -1
  136. package/dist/databases/dsl/Table.d.ts +1 -0
  137. package/dist/databases/dsl/Table.js +2 -0
  138. package/dist/databases/dsl/Table.js.map +1 -1
  139. package/dist/databases/entities/ExecutionEntity.js +1 -1
  140. package/dist/databases/entities/ExecutionEntity.js.map +1 -1
  141. package/dist/databases/entities/Project.d.ts +12 -0
  142. package/dist/databases/entities/Project.js +41 -0
  143. package/dist/databases/entities/Project.js.map +1 -0
  144. package/dist/databases/entities/ProjectRelation.d.ts +11 -0
  145. package/dist/databases/entities/ProjectRelation.js +43 -0
  146. package/dist/databases/entities/ProjectRelation.js.map +1 -0
  147. package/dist/databases/entities/SharedCredentials.d.ts +3 -3
  148. package/dist/databases/entities/SharedCredentials.js +9 -9
  149. package/dist/databases/entities/SharedCredentials.js.map +1 -1
  150. package/dist/databases/entities/SharedWorkflow.d.ts +4 -4
  151. package/dist/databases/entities/SharedWorkflow.js +9 -9
  152. package/dist/databases/entities/SharedWorkflow.js.map +1 -1
  153. package/dist/databases/entities/User.d.ts +4 -1
  154. package/dist/databases/entities/User.js +20 -5
  155. package/dist/databases/entities/User.js.map +1 -1
  156. package/dist/databases/entities/index.d.ts +4 -0
  157. package/dist/databases/entities/index.js +4 -0
  158. package/dist/databases/entities/index.js.map +1 -1
  159. package/dist/databases/migrations/common/1711390882123-MoveSshKeysToDatabase.js +4 -0
  160. package/dist/databases/migrations/common/1711390882123-MoveSshKeysToDatabase.js.map +1 -1
  161. package/dist/databases/migrations/common/1714133768519-CreateProject.d.ts +13 -0
  162. package/dist/databases/migrations/common/1714133768519-CreateProject.js +221 -0
  163. package/dist/databases/migrations/common/1714133768519-CreateProject.js.map +1 -0
  164. package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.d.ts +4 -0
  165. package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js +22 -0
  166. package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js.map +1 -0
  167. package/dist/databases/migrations/mysqldb/index.js +4 -0
  168. package/dist/databases/migrations/mysqldb/index.js.map +1 -1
  169. package/dist/databases/migrations/postgresdb/index.js +4 -0
  170. package/dist/databases/migrations/postgresdb/index.js.map +1 -1
  171. package/dist/databases/migrations/sqlite/index.js +4 -0
  172. package/dist/databases/migrations/sqlite/index.js.map +1 -1
  173. package/dist/databases/repositories/credentials.repository.d.ts +0 -2
  174. package/dist/databases/repositories/credentials.repository.js +10 -10
  175. package/dist/databases/repositories/credentials.repository.js.map +1 -1
  176. package/dist/databases/repositories/project.repository.d.ts +13 -0
  177. package/dist/databases/repositories/project.repository.js +56 -0
  178. package/dist/databases/repositories/project.repository.js.map +1 -0
  179. package/dist/databases/repositories/projectRelation.repository.d.ts +12 -0
  180. package/dist/databases/repositories/projectRelation.repository.js +59 -0
  181. package/dist/databases/repositories/projectRelation.repository.js.map +1 -0
  182. package/dist/databases/repositories/sharedCredentials.repository.d.ts +19 -8
  183. package/dist/databases/repositories/sharedCredentials.repository.js +73 -24
  184. package/dist/databases/repositories/sharedCredentials.repository.js.map +1 -1
  185. package/dist/databases/repositories/sharedWorkflow.repository.d.ts +14 -21
  186. package/dist/databases/repositories/sharedWorkflow.repository.js +104 -71
  187. package/dist/databases/repositories/sharedWorkflow.repository.js.map +1 -1
  188. package/dist/databases/repositories/user.repository.d.ts +7 -1
  189. package/dist/databases/repositories/user.repository.js +25 -0
  190. package/dist/databases/repositories/user.repository.js.map +1 -1
  191. package/dist/databases/repositories/workflow.repository.d.ts +3 -6
  192. package/dist/databases/repositories/workflow.repository.js +13 -24
  193. package/dist/databases/repositories/workflow.repository.js.map +1 -1
  194. package/dist/databases/repositories/workflowStatistics.repository.js +13 -11
  195. package/dist/databases/repositories/workflowStatistics.repository.js.map +1 -1
  196. package/dist/databases/subscribers/UserSubscriber.d.ts +6 -0
  197. package/dist/databases/subscribers/UserSubscriber.js +64 -0
  198. package/dist/databases/subscribers/UserSubscriber.js.map +1 -0
  199. package/dist/databases/subscribers/index.d.ts +4 -0
  200. package/dist/databases/subscribers/index.js +8 -0
  201. package/dist/databases/subscribers/index.js.map +1 -0
  202. package/dist/decorators/{Scopes.d.ts → Scoped.d.ts} +1 -0
  203. package/dist/decorators/Scoped.js +26 -0
  204. package/dist/decorators/Scoped.js.map +1 -0
  205. package/dist/decorators/constants.d.ts +1 -1
  206. package/dist/decorators/constants.js +2 -2
  207. package/dist/decorators/constants.js.map +1 -1
  208. package/dist/decorators/index.d.ts +1 -1
  209. package/dist/decorators/index.js +4 -3
  210. package/dist/decorators/index.js.map +1 -1
  211. package/dist/decorators/registerController.d.ts +2 -2
  212. package/dist/decorators/registerController.js +17 -13
  213. package/dist/decorators/registerController.js.map +1 -1
  214. package/dist/decorators/types.d.ts +6 -1
  215. package/dist/environments/sourceControl/sourceControlExport.service.ee.js +44 -2
  216. package/dist/environments/sourceControl/sourceControlExport.service.ee.js.map +1 -1
  217. package/dist/environments/sourceControl/sourceControlImport.service.ee.d.ts +2 -1
  218. package/dist/environments/sourceControl/sourceControlImport.service.ee.js +75 -55
  219. package/dist/environments/sourceControl/sourceControlImport.service.ee.js.map +1 -1
  220. package/dist/environments/sourceControl/types/exportableCredential.d.ts +2 -1
  221. package/dist/environments/sourceControl/types/exportableWorkflow.d.ts +2 -1
  222. package/dist/environments/sourceControl/types/resourceOwner.d.ts +8 -0
  223. package/dist/environments/sourceControl/types/resourceOwner.js +3 -0
  224. package/dist/environments/sourceControl/types/resourceOwner.js.map +1 -0
  225. package/dist/errors/aborted-execution-retry.error.d.ts +4 -0
  226. package/dist/errors/aborted-execution-retry.error.js +13 -0
  227. package/dist/errors/aborted-execution-retry.error.js.map +1 -0
  228. package/dist/errors/response-errors/forbidden.error.d.ts +4 -0
  229. package/dist/errors/response-errors/forbidden.error.js +11 -0
  230. package/dist/errors/response-errors/forbidden.error.js.map +1 -0
  231. package/dist/errors/response-errors/unauthenticated.error.d.ts +4 -0
  232. package/dist/errors/response-errors/unauthenticated.error.js +11 -0
  233. package/dist/errors/response-errors/unauthenticated.error.js.map +1 -0
  234. package/dist/executions/execution.service.ee.js +8 -7
  235. package/dist/executions/execution.service.ee.js.map +1 -1
  236. package/dist/executions/execution.service.js +5 -0
  237. package/dist/executions/execution.service.js.map +1 -1
  238. package/dist/executions/executions.controller.js +15 -9
  239. package/dist/executions/executions.controller.js.map +1 -1
  240. package/dist/middlewares/listQuery/dtos/credentials.filter.dto.d.ts +1 -0
  241. package/dist/middlewares/listQuery/dtos/credentials.filter.dto.js +6 -0
  242. package/dist/middlewares/listQuery/dtos/credentials.filter.dto.js.map +1 -1
  243. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.d.ts +1 -0
  244. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js +6 -0
  245. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js.map +1 -1
  246. package/dist/permissions/checkAccess.d.ts +7 -0
  247. package/dist/permissions/checkAccess.js +64 -0
  248. package/dist/permissions/checkAccess.js.map +1 -0
  249. package/dist/permissions/global-roles.d.ts +4 -0
  250. package/dist/permissions/{roles.js → global-roles.js} +11 -5
  251. package/dist/permissions/global-roles.js.map +1 -0
  252. package/dist/permissions/project-roles.d.ts +4 -0
  253. package/dist/permissions/project-roles.js +53 -0
  254. package/dist/permissions/project-roles.js.map +1 -0
  255. package/dist/permissions/resource-roles.d.ts +5 -0
  256. package/dist/permissions/resource-roles.js +23 -0
  257. package/dist/permissions/resource-roles.js.map +1 -0
  258. package/dist/push/index.d.ts +1 -1
  259. package/dist/requests.d.ts +83 -17
  260. package/dist/requests.js.map +1 -1
  261. package/dist/services/activeWorkflows.service.js +4 -2
  262. package/dist/services/activeWorkflows.service.js.map +1 -1
  263. package/dist/services/credentials-tester.service.js +1 -1
  264. package/dist/services/credentials-tester.service.js.map +1 -1
  265. package/dist/services/events.service.js +19 -13
  266. package/dist/services/events.service.js.map +1 -1
  267. package/dist/services/frontend.service.js +6 -0
  268. package/dist/services/frontend.service.js.map +1 -1
  269. package/dist/services/import.service.d.ts +1 -1
  270. package/dist/services/import.service.js +4 -5
  271. package/dist/services/import.service.js.map +1 -1
  272. package/dist/services/ownership.service.d.ts +9 -3
  273. package/dist/services/ownership.service.js +47 -15
  274. package/dist/services/ownership.service.js.map +1 -1
  275. package/dist/services/project.service.d.ts +61 -0
  276. package/dist/services/project.service.js +277 -0
  277. package/dist/services/project.service.js.map +1 -0
  278. package/dist/services/role.service.d.ts +31 -0
  279. package/dist/services/role.service.js +142 -0
  280. package/dist/services/role.service.js.map +1 -0
  281. package/dist/services/user.service.d.ts +3 -3
  282. package/dist/services/user.service.js +14 -6
  283. package/dist/services/user.service.js.map +1 -1
  284. package/dist/services/userOnboarding.service.js +6 -1
  285. package/dist/services/userOnboarding.service.js.map +1 -1
  286. package/dist/sso/saml/saml.service.ee.js +1 -1
  287. package/dist/sso/saml/saml.service.ee.js.map +1 -1
  288. package/dist/sso/saml/samlHelpers.d.ts +1 -1
  289. package/dist/sso/saml/samlHelpers.js +14 -22
  290. package/dist/sso/saml/samlHelpers.js.map +1 -1
  291. package/dist/telemetry/index.js +4 -0
  292. package/dist/telemetry/index.js.map +1 -1
  293. package/dist/utils.d.ts +1 -0
  294. package/dist/utils.js +3 -1
  295. package/dist/utils.js.map +1 -1
  296. package/dist/workflows/workflow.request.d.ts +12 -4
  297. package/dist/workflows/workflow.service.d.ts +16 -7
  298. package/dist/workflows/workflow.service.ee.d.ts +8 -8
  299. package/dist/workflows/workflow.service.ee.js +28 -35
  300. package/dist/workflows/workflow.service.ee.js.map +1 -1
  301. package/dist/workflows/workflow.service.js +93 -39
  302. package/dist/workflows/workflow.service.js.map +1 -1
  303. package/dist/workflows/workflowExecution.service.d.ts +2 -1
  304. package/dist/workflows/workflowExecution.service.js +2 -2
  305. package/dist/workflows/workflowExecution.service.js.map +1 -1
  306. package/dist/workflows/workflowHistory/workflowHistory.service.ee.d.ts +0 -1
  307. package/dist/workflows/workflowHistory/workflowHistory.service.ee.js +10 -14
  308. package/dist/workflows/workflowHistory/workflowHistory.service.ee.js.map +1 -1
  309. package/dist/workflows/workflowSharing.service.d.ts +12 -3
  310. package/dist/workflows/workflowSharing.service.js +24 -10
  311. package/dist/workflows/workflowSharing.service.js.map +1 -1
  312. package/dist/workflows/workflows.controller.d.ts +98 -11
  313. package/dist/workflows/workflows.controller.js +106 -77
  314. package/dist/workflows/workflows.controller.js.map +1 -1
  315. package/dist/workflows/workflows.types.d.ts +8 -2
  316. package/package.json +8 -8
  317. package/dist/decorators/Scopes.js +0 -15
  318. package/dist/decorators/Scopes.js.map +0 -1
  319. package/dist/errors/response-errors/unauthorized.error.d.ts +0 -4
  320. package/dist/errors/response-errors/unauthorized.error.js +0 -11
  321. package/dist/errors/response-errors/unauthorized.error.js.map +0 -1
  322. package/dist/permissions/roles.d.ts +0 -4
  323. package/dist/permissions/roles.js.map +0 -1
@@ -13,25 +13,11 @@ exports.SharedWorkflowRepository = void 0;
13
13
  const typedi_1 = require("typedi");
14
14
  const typeorm_1 = require("@n8n/typeorm");
15
15
  const SharedWorkflow_1 = require("../entities/SharedWorkflow");
16
+ const role_service_1 = require("../../services/role.service");
16
17
  let SharedWorkflowRepository = class SharedWorkflowRepository extends typeorm_1.Repository {
17
- constructor(dataSource) {
18
+ constructor(dataSource, roleService) {
18
19
  super(SharedWorkflow_1.SharedWorkflow, dataSource.manager);
19
- }
20
- async hasAccess(workflowId, user) {
21
- const where = {
22
- workflowId,
23
- };
24
- if (!user.hasGlobalScope('workflow:read')) {
25
- where.userId = user.id;
26
- }
27
- return await this.exist({ where });
28
- }
29
- async getSharedUserIds(workflowId) {
30
- const sharedWorkflows = await this.find({
31
- select: ['userId'],
32
- where: { workflowId },
33
- });
34
- return sharedWorkflows.map((sharing) => sharing.userId);
20
+ this.roleService = roleService;
35
21
  }
36
22
  async getSharedWorkflowIds(workflowIds) {
37
23
  const sharedWorkflows = await this.find({
@@ -44,67 +30,40 @@ let SharedWorkflowRepository = class SharedWorkflowRepository extends typeorm_1.
44
30
  }
45
31
  async findByWorkflowIds(workflowIds) {
46
32
  return await this.find({
47
- relations: ['user'],
48
33
  where: {
49
34
  role: 'workflow:owner',
50
35
  workflowId: (0, typeorm_1.In)(workflowIds),
51
36
  },
37
+ relations: { project: { projectRelations: { user: true } } },
52
38
  });
53
39
  }
54
40
  async findSharingRole(userId, workflowId) {
55
- return await this.findOne({
56
- select: ['role'],
57
- where: { workflowId, userId },
58
- }).then((shared) => shared === null || shared === void 0 ? void 0 : shared.role);
59
- }
60
- async findSharing(workflowId, user, scope, { roles, extraRelations } = {}) {
61
- const where = {
62
- workflow: { id: workflowId },
63
- };
64
- if (!user.hasGlobalScope(scope)) {
65
- where.user = { id: user.id };
66
- }
67
- if (roles) {
68
- where.role = (0, typeorm_1.In)(roles);
69
- }
70
- const relations = ['workflow'];
71
- if (extraRelations)
72
- relations.push(...extraRelations);
73
- return await this.findOne({ relations, where });
74
- }
75
- async makeOwnerOfAllWorkflows(user) {
76
- return await this.update({ userId: (0, typeorm_1.Not)(user.id), role: 'workflow:owner' }, { user });
77
- }
78
- async getSharing(user, workflowId, options, relations = ['workflow']) {
79
- const where = { workflowId };
80
- if (!options.allowGlobalScope || !user.hasGlobalScope(options.globalScope)) {
81
- where.userId = user.id;
82
- }
83
- return await this.findOne({ where, relations });
84
- }
85
- async getSharedWorkflows(user, options) {
86
- return await this.find({
41
+ const sharing = await this.findOne({
42
+ select: {
43
+ role: true,
44
+ workflowId: true,
45
+ projectId: true,
46
+ },
87
47
  where: {
88
- ...(!['global:owner', 'global:admin'].includes(user.role) && { userId: user.id }),
89
- ...(options.workflowIds && { workflowId: (0, typeorm_1.In)(options.workflowIds) }),
48
+ workflowId,
49
+ project: { projectRelations: { role: 'project:personalOwner', userId } },
90
50
  },
91
- ...(options.relations && { relations: options.relations }),
92
51
  });
52
+ return sharing === null || sharing === void 0 ? void 0 : sharing.role;
93
53
  }
94
- async share(transaction, workflow, users) {
95
- const newSharedWorkflows = users.reduce((acc, user) => {
96
- if (user.isPending) {
97
- return acc;
98
- }
99
- const entity = {
100
- workflowId: workflow.id,
101
- userId: user.id,
102
- role: 'workflow:editor',
103
- };
104
- acc.push(this.create(entity));
105
- return acc;
106
- }, []);
107
- return await transaction.save(newSharedWorkflows);
54
+ async makeOwnerOfAllWorkflows(project) {
55
+ return await this.update({
56
+ projectId: (0, typeorm_1.Not)(project.id),
57
+ role: 'workflow:owner',
58
+ }, { project });
59
+ }
60
+ async makeOwner(workflowIds, projectId, trx) {
61
+ trx = trx !== null && trx !== void 0 ? trx : this.manager;
62
+ return await trx.upsert(SharedWorkflow_1.SharedWorkflow, workflowIds.map((workflowId) => ({
63
+ workflowId,
64
+ projectId,
65
+ role: 'workflow:owner',
66
+ })), ['projectId', 'workflowId']);
108
67
  }
109
68
  async findWithFields(workflowIds, { select }) {
110
69
  return await this.find({
@@ -114,16 +73,90 @@ let SharedWorkflowRepository = class SharedWorkflowRepository extends typeorm_1.
114
73
  select,
115
74
  });
116
75
  }
117
- async deleteByIds(transaction, sharedWorkflowIds, user) {
118
- return await transaction.delete(SharedWorkflow_1.SharedWorkflow, {
119
- user,
76
+ async deleteByIds(sharedWorkflowIds, projectId, trx) {
77
+ trx = trx !== null && trx !== void 0 ? trx : this.manager;
78
+ return await trx.delete(SharedWorkflow_1.SharedWorkflow, {
79
+ projectId,
120
80
  workflowId: (0, typeorm_1.In)(sharedWorkflowIds),
121
81
  });
122
82
  }
83
+ async findWorkflowForUser(workflowId, user, scopes, { includeTags = false, em = this.manager } = {}) {
84
+ let where = { workflowId };
85
+ if (!user.hasGlobalScope(scopes, { mode: 'allOf' })) {
86
+ const projectRoles = this.roleService.rolesWithScope('project', scopes);
87
+ const workflowRoles = this.roleService.rolesWithScope('workflow', scopes);
88
+ where = {
89
+ ...where,
90
+ role: (0, typeorm_1.In)(workflowRoles),
91
+ project: {
92
+ projectRelations: {
93
+ role: (0, typeorm_1.In)(projectRoles),
94
+ userId: user.id,
95
+ },
96
+ },
97
+ };
98
+ }
99
+ const sharedWorkflow = await em.findOne(SharedWorkflow_1.SharedWorkflow, {
100
+ where,
101
+ relations: {
102
+ workflow: {
103
+ shared: { project: { projectRelations: { user: true } } },
104
+ tags: includeTags,
105
+ },
106
+ },
107
+ });
108
+ if (!sharedWorkflow) {
109
+ return null;
110
+ }
111
+ return sharedWorkflow.workflow;
112
+ }
113
+ async findAllWorkflowsForUser(user, scopes) {
114
+ let where = {};
115
+ if (!user.hasGlobalScope(scopes, { mode: 'allOf' })) {
116
+ const projectRoles = this.roleService.rolesWithScope('project', scopes);
117
+ const workflowRoles = this.roleService.rolesWithScope('workflow', scopes);
118
+ where = {
119
+ ...where,
120
+ role: (0, typeorm_1.In)(workflowRoles),
121
+ project: {
122
+ projectRelations: {
123
+ role: (0, typeorm_1.In)(projectRoles),
124
+ userId: user.id,
125
+ },
126
+ },
127
+ };
128
+ }
129
+ const sharedWorkflows = await this.find({
130
+ where,
131
+ relations: {
132
+ workflow: {
133
+ shared: { project: { projectRelations: { user: true } } },
134
+ },
135
+ },
136
+ });
137
+ return sharedWorkflows.map((sw) => sw.workflow);
138
+ }
139
+ async findProjectIds(workflowId) {
140
+ const rows = await this.find({ where: { workflowId }, select: ['projectId'] });
141
+ const projectIds = rows.reduce((acc, row) => {
142
+ if (row.projectId)
143
+ acc.push(row.projectId);
144
+ return acc;
145
+ }, []);
146
+ return [...new Set(projectIds)];
147
+ }
148
+ async getWorkflowOwningProject(workflowId) {
149
+ var _a;
150
+ return (_a = (await this.findOne({
151
+ where: { workflowId, role: 'workflow:owner' },
152
+ relations: { project: true },
153
+ }))) === null || _a === void 0 ? void 0 : _a.project;
154
+ }
123
155
  };
124
156
  exports.SharedWorkflowRepository = SharedWorkflowRepository;
125
157
  exports.SharedWorkflowRepository = SharedWorkflowRepository = __decorate([
126
158
  (0, typedi_1.Service)(),
127
- __metadata("design:paramtypes", [typeorm_1.DataSource])
159
+ __metadata("design:paramtypes", [typeorm_1.DataSource,
160
+ role_service_1.RoleService])
128
161
  ], SharedWorkflowRepository);
129
162
  //# sourceMappingURL=sharedWorkflow.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharedWorkflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/sharedWorkflow.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharedWorkflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/sharedWorkflow.repository.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import type { EntityManager, FindManyOptions } from '@n8n/typeorm';
1
+ import type { DeepPartial, EntityManager, FindManyOptions } from '@n8n/typeorm';
2
2
  import { DataSource, Repository } from '@n8n/typeorm';
3
3
  import type { ListQuery } from '../../requests';
4
4
  import { type GlobalRole, User } from '../entities/User';
5
+ import { Project } from '../entities/Project';
5
6
  export declare class UserRepository extends Repository<User> {
6
7
  constructor(dataSource: DataSource);
7
8
  findManyByIds(userIds: string[]): Promise<User[]>;
9
+ update(...args: Parameters<Repository<User>['update']>): Promise<import("@n8n/typeorm").UpdateResult>;
8
10
  deleteAllExcept(user: User): Promise<void>;
9
11
  getByIds(transaction: EntityManager, ids: string[]): Promise<User[]>;
10
12
  findManyByEmail(emails: string[]): Promise<User[]>;
@@ -13,4 +15,8 @@ export declare class UserRepository extends Repository<User> {
13
15
  countUsersByRole(): Promise<Record<GlobalRole, number>>;
14
16
  toFindManyOptions(listQueryOptions?: ListQuery.Options): Promise<FindManyOptions<User>>;
15
17
  getEmailsByIds(userIds: string[]): Promise<User[]>;
18
+ createUserWithProject(user: DeepPartial<User>, transactionManager?: EntityManager): Promise<{
19
+ user: User;
20
+ project: Project;
21
+ }>;
16
22
  }
@@ -13,6 +13,8 @@ exports.UserRepository = void 0;
13
13
  const typedi_1 = require("typedi");
14
14
  const typeorm_1 = require("@n8n/typeorm");
15
15
  const User_1 = require("../entities/User");
16
+ const Project_1 = require("../entities/Project");
17
+ const ProjectRelation_1 = require("../entities/ProjectRelation");
16
18
  let UserRepository = class UserRepository extends typeorm_1.Repository {
17
19
  constructor(dataSource) {
18
20
  super(User_1.User, dataSource.manager);
@@ -22,6 +24,9 @@ let UserRepository = class UserRepository extends typeorm_1.Repository {
22
24
  where: { id: (0, typeorm_1.In)(userIds) },
23
25
  });
24
26
  }
27
+ async update(...args) {
28
+ return await super.update(...args);
29
+ }
25
30
  async deleteAllExcept(user) {
26
31
  await this.delete({ id: (0, typeorm_1.Not)(user.id) });
27
32
  }
@@ -90,6 +95,26 @@ let UserRepository = class UserRepository extends typeorm_1.Repository {
90
95
  where: { id: (0, typeorm_1.In)(userIds), password: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) },
91
96
  });
92
97
  }
98
+ async createUserWithProject(user, transactionManager) {
99
+ const createInner = async (entityManager) => {
100
+ const newUser = entityManager.create(User_1.User, user);
101
+ const savedUser = await entityManager.save(newUser);
102
+ const savedProject = await entityManager.save(entityManager.create(Project_1.Project, {
103
+ type: 'personal',
104
+ name: savedUser.createPersonalProjectName(),
105
+ }));
106
+ await entityManager.save(entityManager.create(ProjectRelation_1.ProjectRelation, {
107
+ projectId: savedProject.id,
108
+ userId: savedUser.id,
109
+ role: 'project:personalOwner',
110
+ }));
111
+ return { user: savedUser, project: savedProject };
112
+ };
113
+ if (transactionManager) {
114
+ return await createInner(transactionManager);
115
+ }
116
+ return await createInner(this.manager);
117
+ }
93
118
  };
94
119
  exports.UserRepository = UserRepository;
95
120
  exports.UserRepository = UserRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/user.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/user.repository.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import { DataSource, Repository, type UpdateResult, type FindOptionsWhere, type EntityManager, type DeleteResult } from '@n8n/typeorm';
1
+ import { DataSource, Repository, type UpdateResult, type FindOptionsWhere, type FindOptionsRelations } from '@n8n/typeorm';
2
2
  import type { ListQuery } from '../../requests';
3
3
  import { WorkflowEntity } from '../entities/WorkflowEntity';
4
- import { SharedWorkflow } from '../entities/SharedWorkflow';
5
4
  export declare class WorkflowRepository extends Repository<WorkflowEntity> {
6
5
  constructor(dataSource: DataSource);
7
6
  get(where: FindOptionsWhere<WorkflowEntity>, options?: {
8
- relations: string[];
7
+ relations: string[] | FindOptionsRelations<WorkflowEntity>;
9
8
  }): Promise<WorkflowEntity | null>;
10
9
  getAllActive(): Promise<WorkflowEntity[]>;
11
10
  getActiveIds(): Promise<string[]>;
@@ -14,11 +13,9 @@ export declare class WorkflowRepository extends Repository<WorkflowEntity> {
14
13
  fields?: string[];
15
14
  }): Promise<WorkflowEntity[]>;
16
15
  getActiveTriggerCount(): Promise<number>;
17
- getSharings(transaction: EntityManager, workflowId: string, relations?: string[]): Promise<SharedWorkflow[]>;
18
- pruneSharings(transaction: EntityManager, workflowId: string, userIds: string[]): Promise<DeleteResult>;
19
16
  updateWorkflowTriggerCount(id: string, triggerCount: number): Promise<UpdateResult>;
20
17
  getMany(sharedWorkflowIds: string[], options?: ListQuery.Options): Promise<{
21
- workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "active" | "name" | "tags" | "createdAt" | "updatedAt" | "versionId">>)[] | ListQuery.Workflow.WithSharing[];
18
+ workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "tags" | "active" | "name" | "createdAt" | "updatedAt" | "versionId">>)[] | ListQuery.Workflow.WithSharing[];
22
19
  count: number;
23
20
  }>;
24
21
  findStartingWith(workflowName: string): Promise<Array<{
@@ -18,7 +18,6 @@ const typeorm_1 = require("@n8n/typeorm");
18
18
  const utils_1 = require("../../utils");
19
19
  const config_1 = __importDefault(require("../../config"));
20
20
  const WorkflowEntity_1 = require("../entities/WorkflowEntity");
21
- const SharedWorkflow_1 = require("../entities/SharedWorkflow");
22
21
  const WebhookEntity_1 = require("../entities/WebhookEntity");
23
22
  let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
24
23
  constructor(dataSource) {
@@ -33,7 +32,7 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
33
32
  async getAllActive() {
34
33
  return await this.find({
35
34
  where: { active: true },
36
- relations: ['shared', 'shared.user'],
35
+ relations: { shared: { project: { projectRelations: true } } },
37
36
  });
38
37
  }
39
38
  async getActiveIds() {
@@ -46,7 +45,7 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
46
45
  async findById(workflowId) {
47
46
  return await this.findOne({
48
47
  where: { id: workflowId },
49
- relations: ['shared', 'shared.user'],
48
+ relations: { shared: { project: { projectRelations: true } } },
50
49
  });
51
50
  }
52
51
  async findByIds(workflowIds, { fields } = {}) {
@@ -63,20 +62,6 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
63
62
  });
64
63
  return totalTriggerCount !== null && totalTriggerCount !== void 0 ? totalTriggerCount : 0;
65
64
  }
66
- async getSharings(transaction, workflowId, relations = ['shared']) {
67
- var _a;
68
- const workflow = await transaction.findOne(WorkflowEntity_1.WorkflowEntity, {
69
- where: { id: workflowId },
70
- relations,
71
- });
72
- return (_a = workflow === null || workflow === void 0 ? void 0 : workflow.shared) !== null && _a !== void 0 ? _a : [];
73
- }
74
- async pruneSharings(transaction, workflowId, userIds) {
75
- return await transaction.delete(SharedWorkflow_1.SharedWorkflow, {
76
- workflowId,
77
- userId: (0, typeorm_1.Not)((0, typeorm_1.In)(userIds)),
78
- });
79
- }
80
65
  async updateWorkflowTriggerCount(id, triggerCount) {
81
66
  const qb = this.createQueryBuilder('workflow');
82
67
  return await qb
@@ -94,14 +79,18 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
94
79
  .execute();
95
80
  }
96
81
  async getMany(sharedWorkflowIds, options) {
97
- var _a, _b, _c, _d;
82
+ var _a, _b, _c, _d, _e;
98
83
  if (sharedWorkflowIds.length === 0)
99
84
  return { workflows: [], count: 0 };
85
+ if (typeof ((_a = options === null || options === void 0 ? void 0 : options.filter) === null || _a === void 0 ? void 0 : _a.projectId) === 'string' && options.filter.projectId !== '') {
86
+ options.filter.shared = { projectId: options.filter.projectId };
87
+ delete options.filter.projectId;
88
+ }
100
89
  const where = {
101
90
  ...options === null || options === void 0 ? void 0 : options.filter,
102
91
  id: (0, typeorm_1.In)(sharedWorkflowIds),
103
92
  };
104
- const reqTags = (_a = options === null || options === void 0 ? void 0 : options.filter) === null || _a === void 0 ? void 0 : _a.tags;
93
+ const reqTags = (_b = options === null || options === void 0 ? void 0 : options.filter) === null || _b === void 0 ? void 0 : _b.tags;
105
94
  if ((0, utils_1.isStringArray)(reqTags)) {
106
95
  where.tags = reqTags.map((tag) => ({ name: tag }));
107
96
  }
@@ -113,20 +102,20 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
113
102
  createdAt: true,
114
103
  updatedAt: true,
115
104
  versionId: true,
116
- shared: { userId: true, role: true },
105
+ shared: { role: true },
117
106
  };
118
107
  select === null || select === void 0 ? true : delete select.ownedBy;
119
108
  const relations = [];
120
109
  const areTagsEnabled = !config_1.default.getEnv('workflowTagsDisabled');
121
110
  const isDefaultSelect = (options === null || options === void 0 ? void 0 : options.select) === undefined;
122
- const areTagsRequested = isDefaultSelect || ((_b = options === null || options === void 0 ? void 0 : options.select) === null || _b === void 0 ? void 0 : _b.tags) === true;
123
- const isOwnedByIncluded = isDefaultSelect || ((_c = options === null || options === void 0 ? void 0 : options.select) === null || _c === void 0 ? void 0 : _c.ownedBy) === true;
111
+ const areTagsRequested = isDefaultSelect || ((_c = options === null || options === void 0 ? void 0 : options.select) === null || _c === void 0 ? void 0 : _c.tags) === true;
112
+ const isOwnedByIncluded = isDefaultSelect || ((_d = options === null || options === void 0 ? void 0 : options.select) === null || _d === void 0 ? void 0 : _d.ownedBy) === true;
124
113
  if (areTagsEnabled && areTagsRequested) {
125
114
  relations.push('tags');
126
115
  select.tags = { id: true, name: true };
127
116
  }
128
117
  if (isOwnedByIncluded)
129
- relations.push('shared', 'shared.user');
118
+ relations.push('shared', 'shared.project');
130
119
  if (typeof where.name === 'string' && where.name !== '') {
131
120
  where.name = (0, typeorm_1.Like)(`%${where.name}%`);
132
121
  }
@@ -134,7 +123,7 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
134
123
  select: { ...select, id: true },
135
124
  where,
136
125
  };
137
- if (isDefaultSelect || ((_d = options === null || options === void 0 ? void 0 : options.select) === null || _d === void 0 ? void 0 : _d.updatedAt) === true) {
126
+ if (isDefaultSelect || ((_e = options === null || options === void 0 ? void 0 : options.select) === null || _e === void 0 ? void 0 : _e.updatedAt) === true) {
138
127
  findManyOptions.order = { updatedAt: 'ASC' };
139
128
  }
140
129
  if (relations.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflow.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflow.repository.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,6 @@ const typedi_1 = require("typedi");
17
17
  const typeorm_1 = require("@n8n/typeorm");
18
18
  const config_1 = __importDefault(require("../../config"));
19
19
  const WorkflowStatistics_1 = require("../entities/WorkflowStatistics");
20
- const WorkflowEntity_1 = require("../../databases/entities/WorkflowEntity");
21
- const SharedWorkflow_1 = require("../../databases/entities/SharedWorkflow");
22
20
  let WorkflowStatisticsRepository = class WorkflowStatisticsRepository extends typeorm_1.Repository {
23
21
  constructor(dataSource) {
24
22
  super(WorkflowStatistics_1.WorkflowStatistics, dataSource.manager);
@@ -89,15 +87,19 @@ let WorkflowStatisticsRepository = class WorkflowStatisticsRepository extends ty
89
87
  }
90
88
  }
91
89
  async queryNumWorkflowsUserHasWithFiveOrMoreProdExecs(userId) {
92
- return await this.createQueryBuilder('workflow_statistics')
93
- .innerJoin(WorkflowEntity_1.WorkflowEntity, 'workflow', 'workflow.id = workflow_statistics.workflowId')
94
- .innerJoin(SharedWorkflow_1.SharedWorkflow, 'shared_workflow', 'shared_workflow.workflowId = workflow_statistics.workflowId')
95
- .where('shared_workflow.userId = :userId', { userId })
96
- .andWhere('workflow.active = :isActive', { isActive: true })
97
- .andWhere('workflow_statistics.name = :name', { name: "production_success" })
98
- .andWhere('workflow_statistics.count >= 5')
99
- .andWhere('role = :roleName', { roleName: 'workflow:owner' })
100
- .getCount();
90
+ return await this.count({
91
+ where: {
92
+ workflow: {
93
+ shared: {
94
+ role: 'workflow:owner',
95
+ project: { projectRelations: { userId, role: 'project:personalOwner' } },
96
+ },
97
+ active: true,
98
+ },
99
+ name: "production_success",
100
+ count: (0, typeorm_1.MoreThanOrEqual)(5),
101
+ },
102
+ });
101
103
  }
102
104
  };
103
105
  exports.WorkflowStatisticsRepository = WorkflowStatisticsRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"workflowStatistics.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflowStatistics.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflowStatistics.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflowStatistics.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { EntitySubscriberInterface, UpdateEvent } from '@n8n/typeorm';
2
+ import { User } from '../entities/User';
3
+ export declare class UserSubscriber implements EntitySubscriberInterface<User> {
4
+ listenTo(): typeof User;
5
+ afterUpdate(event: UpdateEvent<User>): Promise<void>;
6
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserSubscriber = void 0;
10
+ const typedi_1 = require("typedi");
11
+ const typeorm_1 = require("@n8n/typeorm");
12
+ const n8n_workflow_1 = require("n8n-workflow");
13
+ const Logger_1 = require("../../Logger");
14
+ const Project_1 = require("../entities/Project");
15
+ const User_1 = require("../entities/User");
16
+ const user_repository_1 = require("../repositories/user.repository");
17
+ let UserSubscriber = class UserSubscriber {
18
+ listenTo() {
19
+ return User_1.User;
20
+ }
21
+ async afterUpdate(event) {
22
+ if (event.entity) {
23
+ const newUserData = event.entity;
24
+ if (event.databaseEntity) {
25
+ const fields = event.updatedColumns.map((c) => c.propertyName);
26
+ if (fields.includes('firstName') ||
27
+ fields.includes('lastName') ||
28
+ fields.includes('email')) {
29
+ const oldUser = event.databaseEntity;
30
+ const userEntity = newUserData instanceof User_1.User
31
+ ? newUserData
32
+ : typedi_1.Container.get(user_repository_1.UserRepository).create(newUserData);
33
+ const projectName = userEntity.createPersonalProjectName();
34
+ const project = await event.manager.findOneBy(Project_1.Project, {
35
+ type: 'personal',
36
+ projectRelations: { userId: oldUser.id },
37
+ });
38
+ if (!project) {
39
+ const message = "Could not update the personal project's name";
40
+ typedi_1.Container.get(Logger_1.Logger).warn(message, event.entity);
41
+ const exception = new n8n_workflow_1.ApplicationError(message);
42
+ n8n_workflow_1.ErrorReporterProxy.warn(exception, event.entity);
43
+ return;
44
+ }
45
+ project.name = projectName;
46
+ await event.manager.save(Project_1.Project, project);
47
+ }
48
+ }
49
+ else {
50
+ if (event.entity.firstName || event.entity.lastName || event.entity.email) {
51
+ const message = "Could not update the personal project's name";
52
+ typedi_1.Container.get(Logger_1.Logger).warn(message, event.entity);
53
+ const exception = new n8n_workflow_1.ApplicationError(message);
54
+ n8n_workflow_1.ErrorReporterProxy.warn(exception, event.entity);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ };
60
+ exports.UserSubscriber = UserSubscriber;
61
+ exports.UserSubscriber = UserSubscriber = __decorate([
62
+ (0, typeorm_1.EventSubscriber)()
63
+ ], UserSubscriber);
64
+ //# sourceMappingURL=UserSubscriber.js.map