n8n 2.19.1 → 2.19.3

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 (39) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/controllers/project.controller.d.ts +1 -0
  3. package/dist/controllers/project.controller.js +13 -0
  4. package/dist/controllers/project.controller.js.map +1 -1
  5. package/dist/modules/favorites/favorites.controller.d.ts +0 -1
  6. package/dist/modules/favorites/favorites.controller.js +1 -1
  7. package/dist/modules/favorites/favorites.controller.js.map +1 -1
  8. package/dist/modules/favorites/favorites.service.d.ts +6 -3
  9. package/dist/modules/favorites/favorites.service.js +97 -71
  10. package/dist/modules/favorites/favorites.service.js.map +1 -1
  11. package/dist/scaling/leader-election-client.d.ts +28 -0
  12. package/dist/scaling/leader-election-client.js +102 -0
  13. package/dist/scaling/leader-election-client.js.map +1 -0
  14. package/dist/scaling/multi-main-setup-legacy.d.ts +25 -0
  15. package/dist/scaling/multi-main-setup-legacy.js +75 -0
  16. package/dist/scaling/multi-main-setup-legacy.js.map +1 -0
  17. package/dist/scaling/multi-main-setup-v2.d.ts +25 -0
  18. package/dist/scaling/multi-main-setup-v2.js +143 -0
  19. package/dist/scaling/multi-main-setup-v2.js.map +1 -0
  20. package/dist/scaling/multi-main-setup.ee.d.ts +5 -8
  21. package/dist/scaling/multi-main-setup.ee.js +22 -61
  22. package/dist/scaling/multi-main-setup.ee.js.map +1 -1
  23. package/dist/scaling/multi-main-setup.types.d.ts +6 -0
  24. package/dist/scaling/multi-main-setup.types.js +3 -0
  25. package/dist/scaling/multi-main-setup.types.js.map +1 -0
  26. package/dist/scaling/pubsub/publisher.service.js.map +1 -1
  27. package/dist/scaling/redis/redis.types.d.ts +1 -1
  28. package/dist/services/dynamic-node-parameters.service.d.ts +1 -0
  29. package/dist/services/dynamic-node-parameters.service.js +29 -12
  30. package/dist/services/dynamic-node-parameters.service.js.map +1 -1
  31. package/dist/services/project.service.ee.d.ts +1 -0
  32. package/dist/services/project.service.ee.js +6 -0
  33. package/dist/services/project.service.ee.js.map +1 -1
  34. package/dist/services/user.service.js +0 -9
  35. package/dist/services/user.service.js.map +1 -1
  36. package/dist/workflow-runner.d.ts +1 -0
  37. package/dist/workflow-runner.js +33 -6
  38. package/dist/workflow-runner.js.map +1 -1
  39. package/package.json +20 -20
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiMainSetupLegacy = void 0;
4
+ class MultiMainSetupLegacy {
5
+ constructor(logger, instanceSettings, publisher, redisClientService, globalConfig, errorReporter, emit) {
6
+ this.logger = logger;
7
+ this.instanceSettings = instanceSettings;
8
+ this.publisher = publisher;
9
+ this.redisClientService = redisClientService;
10
+ this.globalConfig = globalConfig;
11
+ this.errorReporter = errorReporter;
12
+ this.emit = emit;
13
+ this.leaderKeyTtl = this.globalConfig.multiMainSetup.ttl;
14
+ }
15
+ async init() {
16
+ const prefix = this.globalConfig.redis.prefix;
17
+ const validPrefix = this.redisClientService.toValidPrefix(prefix);
18
+ this.leaderKey = validPrefix + ':main_instance_leader';
19
+ await this.tryBecomeLeader();
20
+ }
21
+ async shutdown() {
22
+ const { isLeader } = this.instanceSettings;
23
+ if (isLeader)
24
+ await this.publisher.clear(this.leaderKey);
25
+ }
26
+ async checkLeader() {
27
+ const leaderId = await this.publisher.get(this.leaderKey);
28
+ const { hostId } = this.instanceSettings;
29
+ if (leaderId === hostId) {
30
+ if (!this.instanceSettings.isLeader) {
31
+ this.errorReporter.info(`[Instance ID ${hostId}] Remote/Local leadership mismatch, marking self as leader`, {
32
+ shouldBeLogged: true,
33
+ shouldReport: true,
34
+ });
35
+ this.instanceSettings.markAsLeader();
36
+ this.emit('leader-takeover');
37
+ }
38
+ this.logger.debug(`[Instance ID ${hostId}] Leader is this instance`);
39
+ await this.publisher.setExpiration(this.leaderKey, this.leaderKeyTtl);
40
+ return;
41
+ }
42
+ if (leaderId && leaderId !== hostId) {
43
+ this.logger.debug(`[Instance ID ${hostId}] Leader is other instance "${leaderId}"`);
44
+ if (this.instanceSettings.isLeader) {
45
+ this.instanceSettings.markAsFollower();
46
+ this.emit('leader-stepdown');
47
+ this.logger.warn('[Multi-main setup] Leader failed to renew leader key');
48
+ }
49
+ return;
50
+ }
51
+ if (!leaderId) {
52
+ this.logger.debug(`[Instance ID ${hostId}] Leadership vacant, attempting to become leader...`);
53
+ this.instanceSettings.markAsFollower();
54
+ this.emit('leader-stepdown');
55
+ await this.tryBecomeLeader();
56
+ }
57
+ }
58
+ async tryBecomeLeader() {
59
+ const { hostId } = this.instanceSettings;
60
+ const keySetSuccessfully = await this.publisher.setIfNotExists(this.leaderKey, hostId, this.leaderKeyTtl);
61
+ if (keySetSuccessfully) {
62
+ this.logger.info(`[Instance ID ${hostId}] Leader is now this instance`);
63
+ this.instanceSettings.markAsLeader();
64
+ this.emit('leader-takeover');
65
+ }
66
+ else {
67
+ this.instanceSettings.markAsFollower();
68
+ }
69
+ }
70
+ async fetchLeaderKey() {
71
+ return await this.publisher.get(this.leaderKey);
72
+ }
73
+ }
74
+ exports.MultiMainSetupLegacy = MultiMainSetupLegacy;
75
+ //# sourceMappingURL=multi-main-setup-legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-main-setup-legacy.js","sourceRoot":"","sources":["../../src/scaling/multi-main-setup-legacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { LeaderElectionClient } from '../scaling/leader-election-client';
2
+ import type { Logger } from '@n8n/backend-common';
3
+ import type { ErrorReporter, InstanceSettings } from 'n8n-core';
4
+ import type { MultiMainStrategy } from './multi-main-setup.types';
5
+ type EmitFn = (event: 'leader-takeover' | 'leader-stepdown') => void;
6
+ export declare class MultiMainSetupV2 implements MultiMainStrategy {
7
+ private readonly logger;
8
+ private readonly instanceSettings;
9
+ private readonly errorReporter;
10
+ private readonly client;
11
+ private readonly emit;
12
+ private leaderCheckInProgress;
13
+ private get hostId();
14
+ constructor(logger: Logger, instanceSettings: InstanceSettings, errorReporter: ErrorReporter, client: LeaderElectionClient, emit: EmitFn);
15
+ init(): Promise<void>;
16
+ shutdown(): Promise<void>;
17
+ checkLeader(): Promise<void>;
18
+ private checkAreWeStillLeader;
19
+ private checkCanBecomeLeader;
20
+ private takeOverAsLeader;
21
+ private stepDownToFollower;
22
+ fetchLeaderKey(): Promise<string | null>;
23
+ private logRedisCommandFailure;
24
+ }
25
+ export {};
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MultiMainSetupV2 = void 0;
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ class MultiMainSetupV2 {
9
+ get hostId() {
10
+ return this.instanceSettings.hostId;
11
+ }
12
+ constructor(logger, instanceSettings, errorReporter, client, emit) {
13
+ this.logger = logger;
14
+ this.instanceSettings = instanceSettings;
15
+ this.errorReporter = errorReporter;
16
+ this.client = client;
17
+ this.emit = emit;
18
+ this.leaderCheckInProgress = false;
19
+ }
20
+ async init() {
21
+ const result = await this.client.setLeaderIfNotExists();
22
+ if (!result.ok) {
23
+ this.logRedisCommandFailure('Failed to set leader key in Redis during init', result.error);
24
+ this.instanceSettings.markAsFollower();
25
+ }
26
+ else if (result.result) {
27
+ this.takeOverAsLeader();
28
+ }
29
+ else {
30
+ this.instanceSettings.markAsFollower();
31
+ }
32
+ }
33
+ async shutdown() {
34
+ const { isLeader } = this.instanceSettings;
35
+ if (isLeader) {
36
+ const result = await this.client.clearLeader();
37
+ if (!result.ok) {
38
+ this.logger.warn('Failed to clear leader key from Redis', { error: result.error });
39
+ }
40
+ }
41
+ this.client.destroy();
42
+ }
43
+ async checkLeader() {
44
+ if (this.leaderCheckInProgress) {
45
+ this.logger.warn('Previous leader check is still in progress, skipping this check');
46
+ return;
47
+ }
48
+ this.leaderCheckInProgress = true;
49
+ try {
50
+ if (this.instanceSettings.isLeader) {
51
+ await this.checkAreWeStillLeader();
52
+ }
53
+ else {
54
+ await this.checkCanBecomeLeader();
55
+ }
56
+ }
57
+ finally {
58
+ this.leaderCheckInProgress = false;
59
+ }
60
+ }
61
+ async checkAreWeStillLeader() {
62
+ (0, node_assert_1.default)(this.instanceSettings.isLeader);
63
+ const renewTtlResult = await this.client.tryRenewLeaderTtl();
64
+ if (!renewTtlResult.ok) {
65
+ this.logRedisCommandFailure('Failed to renew leader TTL', renewTtlResult.error);
66
+ return;
67
+ }
68
+ const renewalResult = renewTtlResult.result;
69
+ if (renewalResult.id === 'success') {
70
+ this.logger.debug(`[Instance ID ${this.hostId}] Leader is this instance`);
71
+ return;
72
+ }
73
+ this.logger.warn('[Multi-main setup] Leader failed to renew leader key');
74
+ if (renewalResult.id === 'other-host-is-leader') {
75
+ this.logger.debug(`[Instance ID ${this.hostId}] Leader is other instance "${renewalResult.currentLeaderId}"`);
76
+ this.stepDownToFollower();
77
+ return;
78
+ }
79
+ (0, node_assert_1.default)(renewalResult.id === 'key-missing');
80
+ const result = await this.client.setLeaderIfNotExists();
81
+ if (!result.ok) {
82
+ this.logRedisCommandFailure('Failed to set leader key in Redis', result.error);
83
+ this.stepDownToFollower();
84
+ return;
85
+ }
86
+ const wasSet = result.result;
87
+ if (!wasSet) {
88
+ this.stepDownToFollower();
89
+ }
90
+ }
91
+ async checkCanBecomeLeader() {
92
+ (0, node_assert_1.default)(!this.instanceSettings.isLeader);
93
+ const getResult = await this.client.getLeader();
94
+ if (!getResult.ok) {
95
+ this.logRedisCommandFailure('Failed to get leader key from Redis', getResult.error);
96
+ return;
97
+ }
98
+ const leaderId = getResult.result;
99
+ if (leaderId && leaderId === this.hostId) {
100
+ this.errorReporter.info(`[Instance ID ${this.hostId}] Remote/Local leadership mismatch, marking self as leader`, {
101
+ shouldBeLogged: true,
102
+ shouldReport: true,
103
+ });
104
+ this.takeOverAsLeader();
105
+ return;
106
+ }
107
+ if (leaderId) {
108
+ this.logger.debug(`[Instance ID ${this.hostId}] Leader is other instance "${leaderId}"`);
109
+ return;
110
+ }
111
+ this.logger.debug(`[Instance ID ${this.hostId}] Leadership vacant, attempting to become leader...`);
112
+ const result = await this.client.setLeaderIfNotExists();
113
+ if (!result.ok) {
114
+ this.logger.warn('Failed to try leader key set in Redis', { error: result.error });
115
+ return;
116
+ }
117
+ const wasSet = result.result;
118
+ if (wasSet) {
119
+ this.takeOverAsLeader();
120
+ }
121
+ }
122
+ takeOverAsLeader() {
123
+ (0, node_assert_1.default)(!this.instanceSettings.isLeader);
124
+ this.logger.info(`[Instance ID ${this.hostId}] Leader is now this instance`);
125
+ this.instanceSettings.markAsLeader();
126
+ this.emit('leader-takeover');
127
+ }
128
+ stepDownToFollower() {
129
+ (0, node_assert_1.default)(this.instanceSettings.isLeader);
130
+ this.logger.info(`[Instance ID ${this.hostId}] This is now a follower instance`);
131
+ this.instanceSettings.markAsFollower();
132
+ this.emit('leader-stepdown');
133
+ }
134
+ async fetchLeaderKey() {
135
+ const result = await this.client.getLeader();
136
+ return result.ok ? result.result : null;
137
+ }
138
+ logRedisCommandFailure(message, error) {
139
+ this.logger.warn(`${message}: ${error.message}`, { error });
140
+ }
141
+ }
142
+ exports.MultiMainSetupV2 = MultiMainSetupV2;
143
+ //# sourceMappingURL=multi-main-setup-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-main-setup-v2.js","sourceRoot":"","sources":["../../src/scaling/multi-main-setup-v2.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
+ import { TypedEmitter } from '../typed-emitter';
1
2
  import { Logger } from '@n8n/backend-common';
2
3
  import { GlobalConfig } from '@n8n/config';
3
4
  import { MultiMainMetadata } from '@n8n/decorators';
4
5
  import { ErrorReporter, InstanceSettings } from 'n8n-core';
5
6
  import { Publisher } from '../scaling/pubsub/publisher.service';
6
7
  import { RedisClientService } from '../services/redis-client.service';
7
- import { TypedEmitter } from '../typed-emitter';
8
8
  type MultiMainEvents = {
9
9
  'leader-stepdown': never;
10
10
  'leader-takeover': never;
@@ -12,19 +12,16 @@ type MultiMainEvents = {
12
12
  export declare class MultiMainSetup extends TypedEmitter<MultiMainEvents> {
13
13
  private readonly logger;
14
14
  private readonly instanceSettings;
15
- private readonly publisher;
16
- private readonly redisClientService;
17
15
  private readonly globalConfig;
18
16
  private readonly metadata;
19
17
  private readonly errorReporter;
20
- constructor(logger: Logger, instanceSettings: InstanceSettings, publisher: Publisher, redisClientService: RedisClientService, globalConfig: GlobalConfig, metadata: MultiMainMetadata, errorReporter: ErrorReporter);
21
- private leaderKey;
22
- private readonly leaderKeyTtl;
18
+ private readonly publisher;
19
+ private readonly redisClientService;
20
+ private readonly strategy;
23
21
  private leaderCheckInterval;
22
+ constructor(logger: Logger, instanceSettings: InstanceSettings, globalConfig: GlobalConfig, metadata: MultiMainMetadata, errorReporter: ErrorReporter, publisher: Publisher, redisClientService: RedisClientService);
24
23
  init(): Promise<void>;
25
24
  shutdown(): Promise<void>;
26
- private checkLeader;
27
- private tryBecomeLeader;
28
25
  fetchLeaderKey(): Promise<string | null>;
29
26
  registerEventHandlers(): void;
30
27
  }
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MultiMainSetup = void 0;
13
+ const typed_emitter_1 = require("../typed-emitter");
13
14
  const backend_common_1 = require("@n8n/backend-common");
14
15
  const config_1 = require("@n8n/config");
15
16
  const constants_1 = require("@n8n/constants");
@@ -18,81 +19,41 @@ const di_1 = require("@n8n/di");
18
19
  const n8n_core_1 = require("n8n-core");
19
20
  const publisher_service_1 = require("../scaling/pubsub/publisher.service");
20
21
  const redis_client_service_1 = require("../services/redis-client.service");
21
- const typed_emitter_1 = require("../typed-emitter");
22
+ const multi_main_setup_legacy_1 = require("./multi-main-setup-legacy");
23
+ const multi_main_setup_v2_1 = require("./multi-main-setup-v2");
22
24
  let MultiMainSetup = class MultiMainSetup extends typed_emitter_1.TypedEmitter {
23
- constructor(logger, instanceSettings, publisher, redisClientService, globalConfig, metadata, errorReporter) {
25
+ constructor(logger, instanceSettings, globalConfig, metadata, errorReporter, publisher, redisClientService) {
24
26
  super();
25
27
  this.logger = logger;
26
28
  this.instanceSettings = instanceSettings;
27
- this.publisher = publisher;
28
- this.redisClientService = redisClientService;
29
29
  this.globalConfig = globalConfig;
30
30
  this.metadata = metadata;
31
31
  this.errorReporter = errorReporter;
32
- this.leaderKeyTtl = this.globalConfig.multiMainSetup.ttl;
32
+ this.publisher = publisher;
33
+ this.redisClientService = redisClientService;
33
34
  this.logger = this.logger.scoped(['scaling', 'multi-main-setup']);
35
+ const emitFn = (event) => this.emit(event);
36
+ if (this.globalConfig.multiMainSetup.newLeaderElection) {
37
+ const { LeaderElectionClient } = require('../scaling/leader-election-client');
38
+ const client = di_1.Container.get(LeaderElectionClient);
39
+ this.strategy = new multi_main_setup_v2_1.MultiMainSetupV2(this.logger, this.instanceSettings, this.errorReporter, client, emitFn);
40
+ }
41
+ else {
42
+ this.strategy = new multi_main_setup_legacy_1.MultiMainSetupLegacy(this.logger, this.instanceSettings, this.publisher, this.redisClientService, this.globalConfig, this.errorReporter, emitFn);
43
+ }
34
44
  }
35
45
  async init() {
36
- const prefix = this.globalConfig.redis.prefix;
37
- const validPrefix = this.redisClientService.toValidPrefix(prefix);
38
- this.leaderKey = validPrefix + ':main_instance_leader';
39
- await this.tryBecomeLeader();
46
+ await this.strategy.init();
40
47
  this.leaderCheckInterval = setInterval(async () => {
41
- await this.checkLeader();
48
+ await this.strategy.checkLeader();
42
49
  }, this.globalConfig.multiMainSetup.interval * constants_1.Time.seconds.toMilliseconds);
43
50
  }
44
51
  async shutdown() {
45
52
  clearInterval(this.leaderCheckInterval);
46
- const { isLeader } = this.instanceSettings;
47
- if (isLeader)
48
- await this.publisher.clear(this.leaderKey);
49
- }
50
- async checkLeader() {
51
- const leaderId = await this.publisher.get(this.leaderKey);
52
- const { hostId } = this.instanceSettings;
53
- if (leaderId === hostId) {
54
- if (!this.instanceSettings.isLeader) {
55
- this.errorReporter.info(`[Instance ID ${hostId}] Remote/Local leadership mismatch, marking self as leader`, {
56
- shouldBeLogged: true,
57
- shouldReport: true,
58
- });
59
- this.instanceSettings.markAsLeader();
60
- this.emit('leader-takeover');
61
- }
62
- this.logger.debug(`[Instance ID ${hostId}] Leader is this instance`);
63
- await this.publisher.setExpiration(this.leaderKey, this.leaderKeyTtl);
64
- return;
65
- }
66
- if (leaderId && leaderId !== hostId) {
67
- this.logger.debug(`[Instance ID ${hostId}] Leader is other instance "${leaderId}"`);
68
- if (this.instanceSettings.isLeader) {
69
- this.instanceSettings.markAsFollower();
70
- this.emit('leader-stepdown');
71
- this.logger.warn('[Multi-main setup] Leader failed to renew leader key');
72
- }
73
- return;
74
- }
75
- if (!leaderId) {
76
- this.logger.debug(`[Instance ID ${hostId}] Leadership vacant, attempting to become leader...`);
77
- this.instanceSettings.markAsFollower();
78
- this.emit('leader-stepdown');
79
- await this.tryBecomeLeader();
80
- }
81
- }
82
- async tryBecomeLeader() {
83
- const { hostId } = this.instanceSettings;
84
- const keySetSuccessfully = await this.publisher.setIfNotExists(this.leaderKey, hostId, this.leaderKeyTtl);
85
- if (keySetSuccessfully) {
86
- this.logger.info(`[Instance ID ${hostId}] Leader is now this instance`);
87
- this.instanceSettings.markAsLeader();
88
- this.emit('leader-takeover');
89
- }
90
- else {
91
- this.instanceSettings.markAsFollower();
92
- }
53
+ await this.strategy.shutdown();
93
54
  }
94
55
  async fetchLeaderKey() {
95
- return await this.publisher.get(this.leaderKey);
56
+ return await this.strategy.fetchLeaderKey();
96
57
  }
97
58
  registerEventHandlers() {
98
59
  const handlers = this.metadata.getHandlers();
@@ -109,10 +70,10 @@ exports.MultiMainSetup = MultiMainSetup = __decorate([
109
70
  (0, di_1.Service)(),
110
71
  __metadata("design:paramtypes", [backend_common_1.Logger,
111
72
  n8n_core_1.InstanceSettings,
112
- publisher_service_1.Publisher,
113
- redis_client_service_1.RedisClientService,
114
73
  config_1.GlobalConfig,
115
74
  decorators_1.MultiMainMetadata,
116
- n8n_core_1.ErrorReporter])
75
+ n8n_core_1.ErrorReporter,
76
+ publisher_service_1.Publisher,
77
+ redis_client_service_1.RedisClientService])
117
78
  ], MultiMainSetup);
118
79
  //# sourceMappingURL=multi-main-setup.ee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-main-setup.ee.js","sourceRoot":"","sources":["../../src/scaling/multi-main-setup.ee.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA2C;AAC3C,8CAAsC;AACtC,gDAAoD;AACpD,gCAA6C;AAC7C,uCAA2D;AAE3D,0EAA+D;AAC/D,0EAAqE;AACrE,mDAA+C;AAoBxC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,4BAA6B;IAChE,YACkB,MAAc,EACd,gBAAkC,EAClC,SAAoB,EACpB,kBAAsC,EACtC,YAA0B,EAC1B,QAA2B,EAC3B,aAA4B;QAE7C,KAAK,EAAE,CAAC;QARS,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,cAAS,GAAT,SAAS,CAAW;QACpB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,aAAQ,GAAR,QAAQ,CAAmB;QAC3B,kBAAa,GAAb,aAAa,CAAe;QAQ7B,iBAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC;QALpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACnE,CAAC;IAQD,KAAK,CAAC,IAAI;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,uBAAuB,CAAC;QAEvD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACjD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;IAGD,KAAK,CAAC,QAAQ;QACb,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAExC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE3C,IAAI,QAAQ;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,WAAW;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEzC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAGrC,IAAI,CAAC,aAAa,CAAC,IAAI,CACtB,gBAAgB,MAAM,4DAA4D,EAClF;oBACC,cAAc,EAAE,IAAI;oBACpB,YAAY,EAAE,IAAI;iBAClB,CACD,CAAC;gBAEF,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBAErC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,2BAA2B,CAAC,CAAC;YAErE,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtE,OAAO;QACR,CAAC;QAED,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,+BAA+B,QAAQ,GAAG,CAAC,CAAC;YAEpF,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;gBAEvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,gBAAgB,MAAM,qDAAqD,CAC3E,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE7B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9B,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAGzC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAC7D,IAAI,CAAC,SAAS,EACd,MAAM,EACN,IAAI,CAAC,YAAY,CACjB,CAAC;QAEF,IAAI,kBAAkB,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,+BAA+B,CAAC,CAAC;YAExE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;YAErC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;QACxC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,qBAAqB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE7C,KAAK,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE,CAAC;YACrE,MAAM,QAAQ,GAAG,cAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBAE7B,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD,CAAA;AArIY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,YAAO,GAAE;qCAGiB,uBAAM;QACI,2BAAgB;QACvB,6BAAS;QACA,yCAAkB;QACxB,qBAAY;QAChB,8BAAiB;QACZ,wBAAa;GARlC,cAAc,CAqI1B"}
1
+ {"version":3,"file":"multi-main-setup.ee.js","sourceRoot":"","sources":["../../src/scaling/multi-main-setup.ee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface MultiMainStrategy {
2
+ init(): Promise<void>;
3
+ shutdown(): Promise<void>;
4
+ checkLeader(): Promise<void>;
5
+ fetchLeaderKey(): Promise<string | null>;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=multi-main-setup.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-main-setup.types.js","sourceRoot":"","sources":["../../src/scaling/multi-main-setup.types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.service.js","sourceRoot":"","sources":["../../../src/scaling/pubsub/publisher.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.service.js","sourceRoot":"","sources":["../../../src/scaling/pubsub/publisher.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export type RedisClientType = N8nRedisClientType | BullRedisClientType;
2
- type N8nRedisClientType = 'subscriber(n8n)' | 'publisher(n8n)' | 'cache(n8n)' | 'registry(n8n)';
2
+ type N8nRedisClientType = 'subscriber(n8n)' | 'publisher(n8n)' | 'cache(n8n)' | 'registry(n8n)' | 'leader(n8n)';
3
3
  type BullRedisClientType = 'subscriber(bull)' | 'client(bull)' | 'bclient(bull)';
4
4
  export {};
@@ -22,6 +22,7 @@ export declare class DynamicNodeParametersService {
22
22
  getResourceMappingFields(methodName: string, path: string, additionalData: IWorkflowExecuteAdditionalData, nodeTypeAndVersion: INodeTypeNameVersion, currentNodeParameters: INodeParameters, credentials?: INodeCredentials): Promise<ResourceMapperFields>;
23
23
  getLocalResourceMappingFields(methodName: string, path: string, additionalData: IWorkflowExecuteAdditionalData, nodeTypeAndVersion: INodeTypeNameVersion): Promise<ResourceMapperFields>;
24
24
  getActionResult(handler: string, path: string, additionalData: IWorkflowExecuteAdditionalData, nodeTypeAndVersion: INodeTypeNameVersion, currentNodeParameters: INodeParameters, payload: IDataObject | string | undefined, credentials?: INodeCredentials): Promise<NodeParameterValueType>;
25
+ private withExpressionIsolate;
25
26
  private getMethod;
26
27
  private getNodeType;
27
28
  private getWorkflow;
@@ -67,7 +67,9 @@ let DynamicNodeParametersService = class DynamicNodeParametersService {
67
67
  const method = this.getMethod('loadOptions', methodName, nodeType);
68
68
  const workflow = this.getWorkflow(nodeTypeAndVersion, currentNodeParameters, credentials);
69
69
  const thisArgs = this.getThisArg(path, additionalData, workflow);
70
- return await method.call(thisArgs);
70
+ return await this.withExpressionIsolate(workflow, async () => {
71
+ return await method.call(thisArgs);
72
+ });
71
73
  }
72
74
  async getOptionsViaLoadOptions(loadOptions, additionalData, nodeTypeAndVersion, currentNodeParameters, credentials) {
73
75
  const nodeType = this.getNodeType(nodeTypeAndVersion);
@@ -107,28 +109,32 @@ let DynamicNodeParametersService = class DynamicNodeParametersService {
107
109
  };
108
110
  const executeFunctions = new n8n_core_1.ExecuteContext(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executeData, []);
109
111
  const routingNode = new n8n_core_1.RoutingNode(executeFunctions, tempNodeType);
110
- const optionsData = await routingNode.runNode();
111
- if (optionsData?.length === 0) {
112
- return [];
113
- }
114
- if (!Array.isArray(optionsData)) {
115
- throw new n8n_workflow_1.UnexpectedError('The returned data is not an array');
116
- }
117
- return optionsData[0].map((item) => item.json);
112
+ return await this.withExpressionIsolate(workflow, async () => {
113
+ const optionsData = await routingNode.runNode();
114
+ if (optionsData?.length === 0) {
115
+ return [];
116
+ }
117
+ if (!Array.isArray(optionsData)) {
118
+ throw new n8n_workflow_1.UnexpectedError('The returned data is not an array');
119
+ }
120
+ return optionsData[0].map((item) => item.json);
121
+ });
118
122
  }
119
123
  async getResourceLocatorResults(methodName, path, additionalData, nodeTypeAndVersion, currentNodeParameters, credentials, filter, paginationToken) {
120
124
  const nodeType = this.getNodeType(nodeTypeAndVersion);
121
125
  const method = this.getMethod('listSearch', methodName, nodeType);
122
126
  const workflow = this.getWorkflow(nodeTypeAndVersion, currentNodeParameters, credentials);
123
127
  const thisArgs = this.getThisArg(path, additionalData, workflow);
124
- return await method.call(thisArgs, filter, paginationToken);
128
+ return await this.withExpressionIsolate(workflow, async () => {
129
+ return await method.call(thisArgs, filter, paginationToken);
130
+ });
125
131
  }
126
132
  async getResourceMappingFields(methodName, path, additionalData, nodeTypeAndVersion, currentNodeParameters, credentials) {
127
133
  const nodeType = this.getNodeType(nodeTypeAndVersion);
128
134
  const method = this.getMethod('resourceMapping', methodName, nodeType);
129
135
  const workflow = this.getWorkflow(nodeTypeAndVersion, currentNodeParameters, credentials);
130
136
  const thisArgs = this.getThisArg(path, additionalData, workflow);
131
- return this.removeDuplicateResourceMappingFields(await method.call(thisArgs));
137
+ return await this.withExpressionIsolate(workflow, async () => this.removeDuplicateResourceMappingFields(await method.call(thisArgs)));
132
138
  }
133
139
  async getLocalResourceMappingFields(methodName, path, additionalData, nodeTypeAndVersion) {
134
140
  const nodeType = this.getNodeType(nodeTypeAndVersion);
@@ -141,7 +147,18 @@ let DynamicNodeParametersService = class DynamicNodeParametersService {
141
147
  const method = this.getMethod('actionHandler', handler, nodeType);
142
148
  const workflow = this.getWorkflow(nodeTypeAndVersion, currentNodeParameters, credentials);
143
149
  const thisArgs = this.getThisArg(path, additionalData, workflow);
144
- return await method.call(thisArgs, payload);
150
+ return await this.withExpressionIsolate(workflow, async () => {
151
+ return await method.call(thisArgs, payload);
152
+ });
153
+ }
154
+ async withExpressionIsolate(workflow, fn) {
155
+ await workflow.expression.acquireIsolate();
156
+ try {
157
+ return await fn();
158
+ }
159
+ finally {
160
+ await workflow.expression.releaseIsolate();
161
+ }
145
162
  }
146
163
  getMethod(type, methodName, nodeType) {
147
164
  const methodsOfType = nodeType.methods?.[type];
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-node-parameters.service.js","sourceRoot":"","sources":["../../src/services/dynamic-node-parameters.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-node-parameters.service.js","sourceRoot":"","sources":["../../src/services/dynamic-node-parameters.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAClC,uCAAoG;AAqBpG,+CAAsF;AAEtF,6CAAyC;AACzC,yFAAoF;AACpF,8EAA0E;AAE1E,uEAAkE;AAClE,gCAAyD;AACzD,gEAA8D;AAC9D,wDAA6C;AAyBtC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACxC,YACS,MAAc,EACd,SAAoB,EACpB,qBAA4C,EAC5C,wBAAkD,EAClD,wBAAkD;QAJlD,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAW;QACpB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,6BAAwB,GAAxB,wBAAwB,CAA0B;IACxD,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CACtB,IAAU,EACV,OAAoF;QAMpF,IACC,OAAO,CAAC,SAAS;YACjB,CAAC,CAAC,MAAM,IAAA,4BAAa,EAAC,IAAI,EAAE,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE;gBAC7D,SAAS,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAC,CAAC,EACF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,mCAAmC,OAAO,CAAC,SAAS,qCAAqC,CACzF,CAAC;YACF,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,IAAA,4BAAa,EAAC,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE;gBACrE,UAAU,EAAE,OAAO,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,oCAAoC,OAAO,CAAC,UAAU,qCAAqC,CAC3F,CAAC;gBACF,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAC3E,OAAO,CAAC,UAAU,CAClB,CAAC;gBACF,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,EAAE,CAAC;YACjC,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;iBACtD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;YAEhE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,iCAAiC,CAC1F,aAAa,EACb,IAAI,EACJ,CAAC,iBAAiB,CAAC,CACnB,CAAC;gBAEF,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,IAAI,gCAAc,EAAE,CAAC;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAGD,KAAK,CAAC,uBAAuB,CAC5B,UAAkB,EAClB,IAAY,EACZ,cAA8C,EAC9C,kBAAwC,EACxC,qBAAsC,EACtC,WAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAG5D,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,KAAK,CAAC,wBAAwB,CAC7B,WAAyB,EACzB,cAA8C,EAC9C,kBAAwC,EACxC,qBAAsC,EACtC,WAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAOpD,MAAM,IAAI,8BAAe,CACxB,8EAA8E,EAC9E,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CACjD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,MAAM,mBAAmB,GAAyB,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAA,0CAA2B,GAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAGzC,MAAM,YAAY,GAAc;YAC/B,GAAG,QAAQ;YACX,GAAG;gBACF,WAAW,EAAE;oBACZ,GAAG,QAAQ,CAAC,WAAW;oBACvB,UAAU,EAAE;wBACX;4BACC,WAAW,EAAE,EAAE;4BACf,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE;4BACR,OAAO,EAAE,EAAE;4BACX,OAAO,EAAE,WAAW,CAAC,OAAO;yBACT;qBACpB;iBACD;aACD;SACD,CAAC;QAEF,MAAM,SAAS,GAAyB;YACvC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;SACtB,CAAC;QAEF,MAAM,WAAW,GAAiB;YACjC,IAAI;YACJ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE;SACR,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,yBAAc,CAC1C,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,EAAE,CACF,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QACpE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAEhD,IAAI,WAAW,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACX,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,8BAAe,CAAC,mCAAmC,CAAC,CAAC;YAChE,CAAC;YAED,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAsC,CAAC;QACrF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC9B,UAAkB,EAClB,IAAY,EACZ,cAA8C,EAC9C,kBAAwC,EACxC,qBAAsC,EACtC,WAA8B,EAC9B,MAAe,EACf,eAAwB;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,KAAK,CAAC,wBAAwB,CAC7B,UAAkB,EAClB,IAAY,EACZ,cAA8C,EAC9C,kBAAwC,EACxC,qBAAsC,EACtC,WAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAC5D,IAAI,CAAC,oCAAoC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACtE,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,6BAA6B,CAClC,UAAkB,EAClB,IAAY,EACZ,cAA8C,EAC9C,kBAAwC;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,oCAAoC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IAGD,KAAK,CAAC,eAAe,CACpB,OAAe,EACf,IAAY,EACZ,cAA8C,EAC9C,kBAAwC,EACxC,qBAAsC,EACtC,OAAyC,EACzC,WAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC;IAMO,KAAK,CAAC,qBAAqB,CAAI,QAAkB,EAAE,EAAoB;QAC9E,MAAM,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC;YACJ,OAAO,MAAM,EAAE,EAAE,CAAC;QACnB,CAAC;gBAAS,CAAC;YACV,MAAM,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC5C,CAAC;IACF,CAAC;IAuBO,SAAS,CAChB,IAKkB,EAClB,UAAkB,EAClB,QAAmB;QAEnB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC,UAAU,CAAe,CAAC;QACzD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAOlE,MAAM,qBAAqB,GAAa,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChF,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,YAAY;oBAAE,SAAS;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,qBAAqB,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC;YACF,CAAC;YAED,MAAM,aAAa,GAClB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,oBAAoB,CAAC;YAC/E,MAAM,cAAc,GACnB,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBAC/B,CAAC,CAAC,sCAAsC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC3E,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,IAAI,8BAAe,CACxB,cAAc,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,IAAI,kBAAkB,UAAU,gBAAgB,IAAI,aAAa,aAAa,IAAI,cAAc,EAAE,EACrJ;gBACC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC7C,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,EAAE;aACzE,CACD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAwB;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEO,WAAW,CAClB,kBAAwC,EACxC,qBAAsC,EACtC,WAA8B;QAE9B,MAAM,IAAI,GAAU;YACnB,UAAU,EAAE,qBAAqB;YACjC,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC7B,WAAW,EAAE,kBAAkB,CAAC,OAAO;YACvC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAChB,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,uBAAQ,CAAC;YACnB,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC;IACJ,CAAC;IAEO,UAAU,CACjB,IAAY,EACZ,cAA8C,EAC9C,QAAkB;QAElB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,IAAI,6BAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAEO,0BAA0B,CACjC,IAAY,EACZ,cAA8C;QAE9C,OAAO,IAAI,kCAAuB,CACjC,IAAI,CAAC,SAAS,EACd,cAAc,EACd,IAAI,EACJ,IAAI,CAAC,qBAAqB,CAC1B,CAAC;IACH,CAAC;IAEO,oCAAoC,CAAC,MAA4B;QACxE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,OAAO;YACN,GAAG,MAAM;YACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvC,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC;gBACd,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACb,CAAC,CAAC;SACF,CAAC;IACH,CAAC;CACD,CAAA;AAnYY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,YAAO,GAAE;qCAGQ,uBAAM;QACH,sBAAS;QACG,+CAAqB;QAClB,6BAAwB;QACxB,qDAAwB;GAN/C,4BAA4B,CAmYxC"}
@@ -35,6 +35,7 @@ export declare class ProjectService {
35
35
  }>>;
36
36
  getAccessibleProjects(user: User): Promise<Project[]>;
37
37
  getAccessibleProjectsAndCount(user: User, options: ProjectListOptions): Promise<[Project[], number]>;
38
+ getShareableProjectsAndCount(user: User, options: ProjectListOptions): Promise<[Project[], number]>;
38
39
  getPersonalProjectOwners(projectIds: string[]): Promise<ProjectRelation[]>;
39
40
  private createTeamProjectWithEntityManager;
40
41
  createTeamProject(adminUser: User, data: CreateProjectDto): Promise<Project>;