@fsai-flow/core 0.0.4 → 0.1.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 (136) hide show
  1. package/dist/index.d.ts +17 -0
  2. package/dist/index.js +61 -0
  3. package/dist/{src/lib → lib}/ActiveWebhooks.d.ts +1 -1
  4. package/dist/lib/ActiveWebhooks.js +177 -0
  5. package/dist/{src/lib → lib}/ActiveWorkflows.d.ts +3 -3
  6. package/dist/lib/ActiveWorkflows.js +465 -0
  7. package/dist/{src/lib → lib}/BinaryDataManager/FileSystem.d.ts +1 -1
  8. package/dist/lib/BinaryDataManager/FileSystem.js +180 -0
  9. package/dist/{src/lib → lib}/BinaryDataManager/index.d.ts +2 -2
  10. package/dist/lib/BinaryDataManager/index.js +129 -0
  11. package/dist/{src/lib → lib}/ChangeCase.js +11 -11
  12. package/dist/lib/Constants.js +18 -0
  13. package/dist/{src/lib → lib}/Credentials.d.ts +1 -1
  14. package/dist/{src/lib → lib}/Credentials.js +7 -8
  15. package/dist/{src/lib → lib}/FileSystem.d.ts +1 -1
  16. package/dist/lib/FileSystem.js +180 -0
  17. package/dist/{src/lib → lib}/InputConnectionDataLegacy.d.ts +1 -1
  18. package/dist/lib/InputConnectionDataLegacy.js +72 -0
  19. package/dist/{src/lib → lib}/Interfaces.d.ts +47 -48
  20. package/dist/{src/lib → lib}/Interfaces.js +0 -1
  21. package/dist/{src/lib → lib}/LoadNodeParameterOptions.d.ts +1 -1
  22. package/dist/lib/LoadNodeParameterOptions.js +152 -0
  23. package/dist/{src/lib → lib}/NodeExecuteFunctions.d.ts +9 -10
  24. package/dist/lib/NodeExecuteFunctions.js +2467 -0
  25. package/dist/{src/lib → lib}/NodesLoader/constants.d.ts +1 -1
  26. package/dist/lib/NodesLoader/constants.js +105 -0
  27. package/dist/{src/lib → lib}/NodesLoader/custom-directory-loader.d.ts +1 -1
  28. package/dist/lib/NodesLoader/custom-directory-loader.js +35 -0
  29. package/dist/{src/lib → lib}/NodesLoader/directory-loader.d.ts +1 -1
  30. package/dist/{src/lib → lib}/NodesLoader/directory-loader.js +80 -38
  31. package/dist/lib/NodesLoader/index.d.ts +5 -0
  32. package/dist/{src/lib → lib}/NodesLoader/index.js +5 -6
  33. package/dist/{src/lib → lib}/NodesLoader/lazy-package-directory-loader.d.ts +1 -1
  34. package/dist/lib/NodesLoader/lazy-package-directory-loader.js +44 -0
  35. package/dist/{src/lib → lib}/NodesLoader/load-class-in-isolation.js +6 -11
  36. package/dist/{src/lib → lib}/NodesLoader/package-directory-loader.d.ts +2 -2
  37. package/dist/{src/lib → lib}/NodesLoader/package-directory-loader.js +28 -36
  38. package/dist/{src/lib → lib}/NodesLoader/types.js +0 -1
  39. package/dist/{src/lib → lib}/RedisLeaderElectionManager.d.ts +1 -1
  40. package/dist/lib/RedisLeaderElectionManager.js +279 -0
  41. package/dist/lib/RequestTypes.d.ts +58 -0
  42. package/dist/lib/RequestTypes.js +8 -0
  43. package/dist/{src/lib → lib}/UserSettings.d.ts +1 -1
  44. package/dist/lib/UserSettings.js +269 -0
  45. package/dist/{src/lib → lib}/WorkflowExecute.d.ts +4 -4
  46. package/dist/{src/lib → lib}/WorkflowExecute.js +230 -178
  47. package/dist/{src/lib → lib}/index.d.ts +2 -2
  48. package/dist/lib/index.js +129 -0
  49. package/dist/{src/utils → utils}/crypto.js +2 -3
  50. package/package.json +59 -52
  51. package/dist/README.md +0 -31
  52. package/dist/package.json +0 -54
  53. package/dist/src/index.d.ts +0 -16
  54. package/dist/src/index.js +0 -30
  55. package/dist/src/index.js.map +0 -1
  56. package/dist/src/lib/ActiveWebhooks.js +0 -184
  57. package/dist/src/lib/ActiveWebhooks.js.map +0 -1
  58. package/dist/src/lib/ActiveWorkflows.js +0 -456
  59. package/dist/src/lib/ActiveWorkflows.js.map +0 -1
  60. package/dist/src/lib/BinaryDataManager/FileSystem.js +0 -179
  61. package/dist/src/lib/BinaryDataManager/FileSystem.js.map +0 -1
  62. package/dist/src/lib/BinaryDataManager/index.js +0 -146
  63. package/dist/src/lib/BinaryDataManager/index.js.map +0 -1
  64. package/dist/src/lib/ChangeCase.js.map +0 -1
  65. package/dist/src/lib/Constants.js +0 -19
  66. package/dist/src/lib/Constants.js.map +0 -1
  67. package/dist/src/lib/Credentials.js.map +0 -1
  68. package/dist/src/lib/FileSystem.js +0 -179
  69. package/dist/src/lib/FileSystem.js.map +0 -1
  70. package/dist/src/lib/InputConnectionDataLegacy.js +0 -79
  71. package/dist/src/lib/InputConnectionDataLegacy.js.map +0 -1
  72. package/dist/src/lib/Interfaces.js.map +0 -1
  73. package/dist/src/lib/LoadNodeParameterOptions.js +0 -150
  74. package/dist/src/lib/LoadNodeParameterOptions.js.map +0 -1
  75. package/dist/src/lib/NodeExecuteFunctions.js +0 -2479
  76. package/dist/src/lib/NodeExecuteFunctions.js.map +0 -1
  77. package/dist/src/lib/NodesLoader/constants.js +0 -106
  78. package/dist/src/lib/NodesLoader/constants.js.map +0 -1
  79. package/dist/src/lib/NodesLoader/custom-directory-loader.js +0 -36
  80. package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +0 -1
  81. package/dist/src/lib/NodesLoader/directory-loader.js.map +0 -1
  82. package/dist/src/lib/NodesLoader/index.d.ts +0 -5
  83. package/dist/src/lib/NodesLoader/index.js.map +0 -1
  84. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +0 -52
  85. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +0 -1
  86. package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +0 -1
  87. package/dist/src/lib/NodesLoader/package-directory-loader.js.map +0 -1
  88. package/dist/src/lib/NodesLoader/types.js.map +0 -1
  89. package/dist/src/lib/RedisLeaderElectionManager.js +0 -294
  90. package/dist/src/lib/RedisLeaderElectionManager.js.map +0 -1
  91. package/dist/src/lib/UserSettings.js +0 -261
  92. package/dist/src/lib/UserSettings.js.map +0 -1
  93. package/dist/src/lib/WorkflowExecute.js.map +0 -1
  94. package/dist/src/lib/index.js +0 -146
  95. package/dist/src/lib/index.js.map +0 -1
  96. package/dist/src/utils/crypto.js.map +0 -1
  97. package/eslint.config.js +0 -19
  98. package/jest.config.ts +0 -10
  99. package/project.json +0 -19
  100. package/src/index.ts +0 -28
  101. package/src/lib/ActiveWebhooks.ts +0 -245
  102. package/src/lib/ActiveWorkflows.ts +0 -575
  103. package/src/lib/BinaryDataManager/FileSystem.ts +0 -214
  104. package/src/lib/BinaryDataManager/index.ts +0 -187
  105. package/src/lib/ChangeCase.ts +0 -45
  106. package/src/lib/Constants.ts +0 -16
  107. package/src/lib/Credentials.ts +0 -108
  108. package/src/lib/FileSystem.ts +0 -214
  109. package/src/lib/InputConnectionDataLegacy.ts +0 -123
  110. package/src/lib/Interfaces.ts +0 -338
  111. package/src/lib/LoadNodeParameterOptions.ts +0 -235
  112. package/src/lib/NodeExecuteFunctions.ts +0 -3700
  113. package/src/lib/NodesLoader/constants.ts +0 -112
  114. package/src/lib/NodesLoader/custom-directory-loader.ts +0 -31
  115. package/src/lib/NodesLoader/directory-loader.ts +0 -458
  116. package/src/lib/NodesLoader/index.ts +0 -5
  117. package/src/lib/NodesLoader/lazy-package-directory-loader.ts +0 -55
  118. package/src/lib/NodesLoader/load-class-in-isolation.ts +0 -19
  119. package/src/lib/NodesLoader/package-directory-loader.ts +0 -107
  120. package/src/lib/NodesLoader/types.ts +0 -14
  121. package/src/lib/RedisLeaderElectionManager.ts +0 -334
  122. package/src/lib/UserSettings.ts +0 -292
  123. package/src/lib/WorkflowExecute.ts +0 -1128
  124. package/src/lib/index.ts +0 -187
  125. package/src/utils/crypto.ts +0 -5
  126. package/tests/Credentials.test.ts +0 -88
  127. package/tests/Helpers.ts +0 -808
  128. package/tests/WorkflowExecute.test.ts +0 -1242
  129. package/tsconfig.json +0 -41
  130. package/tsconfig.lib.json +0 -10
  131. package/tsconfig.spec.json +0 -14
  132. /package/dist/{src/lib → lib}/ChangeCase.d.ts +0 -0
  133. /package/dist/{src/lib → lib}/Constants.d.ts +0 -0
  134. /package/dist/{src/lib → lib}/NodesLoader/load-class-in-isolation.d.ts +0 -0
  135. /package/dist/{src/lib → lib}/NodesLoader/types.d.ts +0 -0
  136. /package/dist/{src/utils → utils}/crypto.d.ts +0 -0
@@ -1,294 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RedisLeaderElectionManager = void 0;
4
- const tslib_1 = require("tslib");
5
- const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
6
- const workflow_1 = require("@fsai-flow/workflow");
7
- class RedisLeaderElectionManager {
8
- constructor(lockKey, redisConfig, callbacks) {
9
- this.isLeader = false;
10
- this.lockTTL = 30000; // 30 seconds in milliseconds
11
- this.renewalInterval = 10000; // 10 seconds in milliseconds
12
- this.lockKey = `leader:${lockKey}`;
13
- this.nodeId = this.generateNodeId();
14
- this.callbacks = callbacks;
15
- // Initialize Redis connection
16
- if (typeof redisConfig === 'string') {
17
- this.redis = new ioredis_1.default(redisConfig);
18
- }
19
- else {
20
- this.redis = new ioredis_1.default(redisConfig);
21
- }
22
- // Handle Redis connection events
23
- this.redis.on('connect', () => {
24
- workflow_1.LoggerProxy.info(`Redis connected for leader election: ${this.lockKey}`);
25
- });
26
- this.redis.on('ready', () => {
27
- workflow_1.LoggerProxy.info(`Redis ready for leader election: ${this.lockKey}`);
28
- });
29
- this.redis.on('error', (error) => {
30
- workflow_1.LoggerProxy.error(`Redis connection error for leader election: ${error.message}`);
31
- });
32
- }
33
- /**
34
- * Wait for Redis connection to be ready
35
- */
36
- waitForRedisConnection() {
37
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
- return new Promise((resolve, reject) => {
39
- if (this.redis.status === 'ready') {
40
- workflow_1.LoggerProxy.debug(`Redis already ready for ${this.lockKey}`);
41
- resolve();
42
- return;
43
- }
44
- let isSettled = false;
45
- let timeoutId = null;
46
- // Cleanup function to prevent memory leaks
47
- const cleanup = () => {
48
- if (isSettled)
49
- return; // Already cleaned up
50
- isSettled = true;
51
- // Clear timeout safely
52
- if (timeoutId !== null) {
53
- clearTimeout(timeoutId);
54
- timeoutId = null;
55
- }
56
- // Remove event listeners safely
57
- try {
58
- this.redis.off('ready', onReady);
59
- this.redis.off('error', onError);
60
- }
61
- catch (error) {
62
- // Ignore cleanup errors - Redis connection might be destroyed
63
- workflow_1.LoggerProxy.debug(`Cleanup warning for ${this.lockKey}: ${error}`);
64
- }
65
- };
66
- const onReady = () => {
67
- cleanup();
68
- workflow_1.LoggerProxy.debug(`Redis connection established for ${this.lockKey}`);
69
- resolve();
70
- };
71
- const onError = (error) => {
72
- cleanup();
73
- workflow_1.LoggerProxy.error(`Redis connection failed for ${this.lockKey}: ${error.message}`);
74
- reject(error);
75
- };
76
- const onTimeout = () => {
77
- cleanup();
78
- reject(new Error(`Redis connection timeout after 10 seconds for ${this.lockKey}`));
79
- };
80
- // Set up timeout
81
- timeoutId = setTimeout(onTimeout, 10000); // 10 second timeout
82
- // Set up event listeners
83
- this.redis.once('ready', onReady);
84
- this.redis.once('error', onError);
85
- });
86
- });
87
- }
88
- /**
89
- * Start the leader election process
90
- */
91
- start() {
92
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
93
- workflow_1.LoggerProxy.info(`🚀 Starting Redis leader election for ${this.nodeId} on key ${this.lockKey}`);
94
- workflow_1.LoggerProxy.info(`🔧 Leader election config: TTL=${this.lockTTL}ms, RenewalInterval=${this.renewalInterval}ms`);
95
- // Wait for Redis connection to be ready
96
- workflow_1.LoggerProxy.info(`⏳ ${this.nodeId} waiting for Redis connection...`);
97
- yield this.waitForRedisConnection();
98
- workflow_1.LoggerProxy.info(`✅ Redis connection ready for ${this.nodeId}`);
99
- // Try to acquire leadership immediately
100
- workflow_1.LoggerProxy.info(`🎯 ${this.nodeId} making initial leadership attempt...`);
101
- yield this.tryAcquireLeadership();
102
- // Start the renewal/retry loop
103
- this.startRenewalLoop();
104
- workflow_1.LoggerProxy.info(`✅ Leader election process started for ${this.nodeId}`);
105
- });
106
- }
107
- /**
108
- * Stop the leader election process
109
- */
110
- stop() {
111
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
- workflow_1.LoggerProxy.info(`🛑 Stopping Redis leader election for ${this.nodeId}`);
113
- // Stop renewal timer
114
- if (this.renewalTimer) {
115
- workflow_1.LoggerProxy.debug(`⏹️ Stopping leadership monitoring loop for ${this.nodeId}`);
116
- clearInterval(this.renewalTimer);
117
- this.renewalTimer = undefined;
118
- }
119
- // Release leadership if we have it
120
- if (this.isLeader) {
121
- workflow_1.LoggerProxy.info(`👋 ${this.nodeId} releasing leadership voluntarily for ${this.lockKey}`);
122
- yield this.releaseLock();
123
- }
124
- // Close Redis connection
125
- workflow_1.LoggerProxy.debug(`🔌 Disconnecting Redis for ${this.nodeId}`);
126
- this.redis.disconnect();
127
- workflow_1.LoggerProxy.info(`✅ Leader election stopped for ${this.nodeId}`);
128
- });
129
- }
130
- /**
131
- * Check if this node is currently the leader
132
- */
133
- getIsLeader() {
134
- return this.isLeader;
135
- }
136
- /**
137
- * Try to acquire leadership
138
- */
139
- tryAcquireLeadership() {
140
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
141
- try {
142
- // Check if Redis connection is ready before attempting operations
143
- if (this.redis.status !== 'ready') {
144
- workflow_1.LoggerProxy.warn(`Redis not ready for ${this.nodeId}, current status: ${this.redis.status}`);
145
- return false;
146
- }
147
- workflow_1.LoggerProxy.debug(`Node ${this.nodeId} attempting to acquire leadership for ${this.lockKey}`);
148
- // Use SET with NX (not exists) and PX (expire in milliseconds)
149
- const result = yield this.redis.set(this.lockKey, this.nodeId, 'PX', this.lockTTL, 'NX');
150
- if (result === 'OK') {
151
- // Successfully acquired leadership
152
- if (!this.isLeader) {
153
- this.isLeader = true;
154
- workflow_1.LoggerProxy.info(`🏆 Node ${this.nodeId} ACQUIRED LEADERSHIP for ${this.lockKey} (TTL: ${this.lockTTL}ms)`);
155
- this.callbacks.onStartedLeading();
156
- }
157
- else {
158
- workflow_1.LoggerProxy.debug(`Node ${this.nodeId} renewed leadership lock for ${this.lockKey}`);
159
- }
160
- return true;
161
- }
162
- else {
163
- // Failed to acquire leadership - check who is the current leader
164
- const currentLeader = yield this.redis.get(this.lockKey);
165
- const lockTTL = yield this.redis.pttl(this.lockKey);
166
- if (currentLeader) {
167
- if (currentLeader !== this.nodeId) {
168
- workflow_1.LoggerProxy.debug(`👑 Node ${this.nodeId} sees ${currentLeader} is the current leader for ${this.lockKey} (TTL: ${lockTTL}ms)`);
169
- if (this.callbacks.onNewLeader) {
170
- this.callbacks.onNewLeader(currentLeader);
171
- }
172
- }
173
- }
174
- else {
175
- workflow_1.LoggerProxy.debug(`Node ${this.nodeId} found no current leader for ${this.lockKey}, but failed to acquire lock`);
176
- }
177
- // Lost leadership if we previously had it
178
- if (this.isLeader) {
179
- this.isLeader = false;
180
- workflow_1.LoggerProxy.info(`📉 Node ${this.nodeId} LOST LEADERSHIP for ${this.lockKey}`);
181
- this.callbacks.onStoppedLeading();
182
- }
183
- return false;
184
- }
185
- }
186
- catch (error) {
187
- workflow_1.LoggerProxy.error(`❌ Error during leader election for ${this.nodeId}: ${error.message}`);
188
- // If we had leadership and there's an error, assume we lost it
189
- if (this.isLeader) {
190
- this.isLeader = false;
191
- workflow_1.LoggerProxy.info(`💥 Node ${this.nodeId} LOST LEADERSHIP due to error: ${this.lockKey}`);
192
- this.callbacks.onStoppedLeading();
193
- }
194
- return false;
195
- }
196
- });
197
- }
198
- /**
199
- * Renew the leadership lock
200
- */
201
- renewLock() {
202
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
203
- try {
204
- // Check if Redis connection is ready before attempting operations
205
- if (this.redis.status !== 'ready') {
206
- workflow_1.LoggerProxy.warn(`Redis not ready for ${this.nodeId} renewal, current status: ${this.redis.status}`);
207
- return false;
208
- }
209
- workflow_1.LoggerProxy.debug(`🔄 Node ${this.nodeId} attempting to renew leadership for ${this.lockKey}`);
210
- // Use Lua script to atomically check ownership and renew
211
- const script = `
212
- if redis.call("get", KEYS[1]) == ARGV[1] then
213
- return redis.call("pexpire", KEYS[1], ARGV[2])
214
- else
215
- return 0
216
- end
217
- `;
218
- const result = yield this.redis.eval(script, 1, this.lockKey, this.nodeId, this.lockTTL.toString());
219
- if (result === 1) {
220
- workflow_1.LoggerProxy.debug(`✅ Node ${this.nodeId} successfully renewed leadership for ${this.lockKey} (TTL: ${this.lockTTL}ms)`);
221
- return true;
222
- }
223
- else {
224
- workflow_1.LoggerProxy.warn(`⚠️ Node ${this.nodeId} failed to renew leadership for ${this.lockKey} - lock no longer owned by this node`);
225
- return false;
226
- }
227
- }
228
- catch (error) {
229
- workflow_1.LoggerProxy.error(`❌ Error renewing leadership lock for ${this.nodeId}: ${error.message}`);
230
- return false;
231
- }
232
- });
233
- }
234
- /**
235
- * Release the leadership lock
236
- */
237
- releaseLock() {
238
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
239
- try {
240
- // Use Lua script to atomically check ownership and delete
241
- const script = `
242
- if redis.call("get", KEYS[1]) == ARGV[1] then
243
- return redis.call("del", KEYS[1])
244
- else
245
- return 0
246
- end
247
- `;
248
- yield this.redis.eval(script, 1, this.lockKey, this.nodeId);
249
- workflow_1.LoggerProxy.info(`Node ${this.nodeId} released leadership lock for ${this.lockKey}`);
250
- }
251
- catch (error) {
252
- workflow_1.LoggerProxy.error(`Error releasing lock for ${this.nodeId}: ${error.message}`);
253
- }
254
- });
255
- }
256
- /**
257
- * Start the renewal/retry loop
258
- */
259
- startRenewalLoop() {
260
- workflow_1.LoggerProxy.info(`Starting leadership monitoring loop for ${this.nodeId} (check every ${this.renewalInterval}ms)`);
261
- this.renewalTimer = setInterval(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
262
- if (this.isLeader) {
263
- // Leader: Try to renew the lock
264
- workflow_1.LoggerProxy.debug(`⏰ [LEADER] Node ${this.nodeId} periodic leadership renewal check`);
265
- const renewed = yield this.renewLock();
266
- if (!renewed) {
267
- // Failed to renew - we lost leadership
268
- this.isLeader = false;
269
- workflow_1.LoggerProxy.info(`💔 [LEADER] Node ${this.nodeId} LOST LEADERSHIP (failed to renew) for ${this.lockKey}`);
270
- this.callbacks.onStoppedLeading();
271
- }
272
- else {
273
- // Successfully renewed - keeping leadership
274
- //Logger.info(`🔒 [LEADER] Node ${this.nodeId} RENEWED LEADERSHIP - staying active for ${this.lockKey}`);
275
- }
276
- }
277
- else {
278
- // Follower: Try to acquire leadership
279
- workflow_1.LoggerProxy.debug(`⏰ [FOLLOWER] Node ${this.nodeId} checking for available leadership`);
280
- yield this.tryAcquireLeadership();
281
- }
282
- }), this.renewalInterval);
283
- }
284
- /**
285
- * Generate a unique node identifier
286
- */
287
- generateNodeId() {
288
- return process.env['POD_NAME'] ||
289
- process.env['HOSTNAME'] ||
290
- `node-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
291
- }
292
- }
293
- exports.RedisLeaderElectionManager = RedisLeaderElectionManager;
294
- //# sourceMappingURL=RedisLeaderElectionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisLeaderElectionManager.js","sourceRoot":"","sources":["../../../src/lib/RedisLeaderElectionManager.ts"],"names":[],"mappings":";;;;AAAA,8DAA8C;AAC9C,kDAA4D;AAQ5D,MAAa,0BAA0B;IAUtC,YACC,OAAe,EACf,WAAkC,EAClC,SAAuC;QAXhC,aAAQ,GAAG,KAAK,CAAC;QAGjB,YAAO,GAAW,KAAK,CAAC,CAAC,6BAA6B;QACtD,oBAAe,GAAW,KAAK,CAAC,CAAC,6BAA6B;QASrE,IAAI,CAAC,OAAO,GAAG,UAAU,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,8BAA8B;QAC9B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YAC7B,sBAAM,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,sBAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;YACrC,sBAAM,CAAC,KAAK,CAAC,+CAA+C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACW,sBAAsB;;YACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACnC,sBAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACxD,OAAO,EAAE,CAAC;oBACV,OAAO;gBACR,CAAC;gBAED,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,SAAS,GAA0B,IAAI,CAAC;gBAE5C,2CAA2C;gBAC3C,MAAM,OAAO,GAAG,GAAG,EAAE;oBACpB,IAAI,SAAS;wBAAE,OAAO,CAAC,qBAAqB;oBAC5C,SAAS,GAAG,IAAI,CAAC;oBAEjB,uBAAuB;oBACvB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACxB,YAAY,CAAC,SAAS,CAAC,CAAC;wBACxB,SAAS,GAAG,IAAI,CAAC;oBAClB,CAAC;oBAED,gCAAgC;oBAChC,IAAI,CAAC;wBACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAClC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,8DAA8D;wBAC9D,sBAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;oBAC/D,CAAC;gBACF,CAAC,CAAC;gBAEF,MAAM,OAAO,GAAG,GAAG,EAAE;oBACpB,OAAO,EAAE,CAAC;oBACV,sBAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjE,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC;gBAEF,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;oBAChC,OAAO,EAAE,CAAC;oBACV,sBAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC9E,MAAM,CAAC,KAAK,CAAC,CAAC;gBACf,CAAC,CAAC;gBAEF,MAAM,SAAS,GAAG,GAAG,EAAE;oBACtB,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC,CAAC;gBAEF,iBAAiB;gBACjB,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;gBAE9D,yBAAyB;gBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;KAAA;IAED;;OAEG;IACG,KAAK;;YACV,sBAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,sBAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,OAAO,uBAAuB,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YAE3G,wCAAwC;YACxC,sBAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,kCAAkC,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACpC,sBAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAE3D,wCAAwC;YACxC,sBAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,uCAAuC,CAAC,CAAC;YACtE,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAElC,+BAA+B;YAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,sBAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;KAAA;IAED;;OAEG;IACG,IAAI;;YACT,sBAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEpE,qBAAqB;YACrB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,sBAAM,CAAC,KAAK,CAAC,+CAA+C,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3E,aAAa,CAAC,IAAI,CAAC,YAA8B,CAAC,CAAC;gBACnD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC/B,CAAC;YAED,mCAAmC;YACnC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,sBAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,yCAAyC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,CAAC;YAED,yBAAyB;YACzB,sBAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAExB,sBAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC;KAAA;IAED;;OAEG;IACH,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;OAEG;IACW,oBAAoB;;YACjC,IAAI,CAAC;gBACJ,kEAAkE;gBAClE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACnC,sBAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBACxF,OAAO,KAAK,CAAC;gBACd,CAAC;gBAED,sBAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,yCAAyC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEzF,+DAA+D;gBAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,IAAI,CACJ,CAAC;gBAEF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACrB,mCAAmC;oBACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,sBAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,4BAA4B,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;wBACvG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACP,sBAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjF,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACP,iEAAiE;oBACjE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAEpD,IAAI,aAAa,EAAE,CAAC;wBACnB,IAAI,aAAa,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;4BACnC,sBAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,SAAS,aAAa,8BAA8B,IAAI,CAAC,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC;4BAC3H,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gCAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;4BAC3C,CAAC;wBACF,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,sBAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,gCAAgC,IAAI,CAAC,OAAO,8BAA8B,CAAC,CAAC;oBAC7G,CAAC;oBAED,0CAA0C;oBAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACtB,sBAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,wBAAwB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC1E,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBACnC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,sBAAM,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEpF,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,sBAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,kCAAkC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACpF,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBACnC,CAAC;gBACD,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;KAAA;IAED;;OAEG;IACW,SAAS;;YACtB,IAAI,CAAC;gBACJ,kEAAkE;gBAClE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACnC,sBAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,6BAA6B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAChG,OAAO,KAAK,CAAC;gBACd,CAAC;gBAED,sBAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,uCAAuC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE1F,yDAAyD;gBACzD,MAAM,MAAM,GAAG;;;;;;IAMd,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CACnC,MAAM,EACN,CAAC,EACD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CACvB,CAAC;gBAEF,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClB,sBAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,wCAAwC,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;oBACnH,OAAO,IAAI,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACP,sBAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,mCAAmC,IAAI,CAAC,OAAO,sCAAsC,CAAC,CAAC;oBAC1H,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,sBAAM,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtF,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;KAAA;IAED;;OAEG;IACW,WAAW;;YACxB,IAAI,CAAC;gBACJ,0DAA0D;gBAC1D,MAAM,MAAM,GAAG;;;;;;IAMd,CAAC;gBAEF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5D,sBAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,iCAAiC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,sBAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;QACF,CAAC;KAAA;IAED;;OAEG;IACK,gBAAgB;QACvB,sBAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,MAAM,iBAAiB,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC;QAE9G,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAS,EAAE;YAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,gCAAgC;gBAChC,sBAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,MAAM,oCAAoC,CAAC,CAAC;gBACjF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,uCAAuC;oBACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,sBAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,0CAA0C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACrG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACP,4CAA4C;oBAC5C,yGAAyG;gBAC1G,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,sCAAsC;gBACtC,sBAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,MAAM,oCAAoC,CAAC,CAAC;gBACnF,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACnC,CAAC;QACF,CAAC,CAAA,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,cAAc;QACrB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACvB,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;CACD;AApUD,gEAoUC"}
@@ -1,261 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareUserSettings = prepareUserSettings;
4
- exports.getEncryptionKey = getEncryptionKey;
5
- exports.getInstanceId = getInstanceId;
6
- exports.addToUserSettings = addToUserSettings;
7
- exports.writeUserSettings = writeUserSettings;
8
- exports.getUserSettings = getUserSettings;
9
- exports.getUserSettingsPath = getUserSettingsPath;
10
- exports.getUserN8nFolderPath = getUserN8nFolderPath;
11
- exports.getUserN8nFolderCustomExtensionPath = getUserN8nFolderCustomExtensionPath;
12
- exports.getUserHome = getUserHome;
13
- const tslib_1 = require("tslib");
14
- /* eslint-disable no-param-reassign */
15
- /* eslint-disable @typescript-eslint/no-use-before-define */
16
- /* eslint-disable @typescript-eslint/no-unsafe-call */
17
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
18
- const fs = tslib_1.__importStar(require("fs"));
19
- const path = tslib_1.__importStar(require("path"));
20
- const crypto_1 = require("crypto");
21
- // eslint-disable-next-line import/no-cycle
22
- const __1 = require("..");
23
- // eslint-disable-next-line @typescript-eslint/no-var-requires
24
- const { promisify } = require('util');
25
- const fsAccess = promisify(fs.access);
26
- const fsReadFile = promisify(fs.readFile);
27
- const fsMkdir = promisify(fs.mkdir);
28
- const fsWriteFile = promisify(fs.writeFile);
29
- let settingsCache;
30
- /**
31
- * Creates the user settings if they do not exist yet
32
- *
33
- * @export
34
- */
35
- function prepareUserSettings() {
36
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
- const settingsPath = getUserSettingsPath();
38
- let userSettings = yield getUserSettings(settingsPath);
39
- if (userSettings !== undefined) {
40
- // Settings already exist, check if they contain the encryptionKey
41
- if (userSettings.encryptionKey !== undefined) {
42
- // Key already exists
43
- if (userSettings.instanceId === undefined) {
44
- userSettings.instanceId = yield generateInstanceId(userSettings.encryptionKey);
45
- settingsCache = userSettings;
46
- }
47
- return userSettings;
48
- }
49
- }
50
- else {
51
- userSettings = {};
52
- }
53
- if (process.env[__1.ENCRYPTION_KEY_ENV_OVERWRITE] !== undefined) {
54
- // Use the encryption key which got set via environment
55
- userSettings.encryptionKey = process.env[__1.ENCRYPTION_KEY_ENV_OVERWRITE];
56
- }
57
- else {
58
- // Generate a new encryption key
59
- userSettings.encryptionKey = (0, crypto_1.randomBytes)(24).toString('base64');
60
- }
61
- userSettings.instanceId = yield generateInstanceId(userSettings.encryptionKey);
62
- // eslint-disable-next-line no-console
63
- console.log(`UserSettings were generated and saved to: ${settingsPath}`);
64
- return writeUserSettings(userSettings, settingsPath);
65
- });
66
- }
67
- /**
68
- * Returns the encryption key which is used to encrypt
69
- * the credentials.
70
- *
71
- * @export
72
- * @returns
73
- */
74
- function getEncryptionKey() {
75
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
- if (process.env[__1.ENCRYPTION_KEY_ENV_OVERWRITE] !== undefined) {
77
- return process.env[__1.ENCRYPTION_KEY_ENV_OVERWRITE];
78
- }
79
- const userSettings = yield getUserSettings();
80
- if (userSettings === undefined) {
81
- return undefined;
82
- }
83
- if (userSettings.encryptionKey === undefined) {
84
- return undefined;
85
- }
86
- return userSettings.encryptionKey;
87
- });
88
- }
89
- /**
90
- * Returns the instance ID
91
- *
92
- * @export
93
- * @returns
94
- */
95
- function getInstanceId() {
96
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
- const userSettings = yield getUserSettings();
98
- if (userSettings === undefined) {
99
- return '';
100
- }
101
- if (userSettings.instanceId === undefined) {
102
- return '';
103
- }
104
- return userSettings.instanceId;
105
- });
106
- }
107
- function generateInstanceId(key) {
108
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
109
- const hash = key
110
- ? (0, crypto_1.createHash)('sha256')
111
- .update(key.slice(Math.round(key.length / 2)))
112
- .digest('hex')
113
- : undefined;
114
- return hash;
115
- });
116
- }
117
- /**
118
- * Adds/Overwrite the given settings in the currently
119
- * saved user settings
120
- *
121
- * @export
122
- * @param {IUserSettings} addSettings The settings to add/overwrite
123
- * @param {string} [settingsPath] Optional settings file path
124
- * @returns {Promise<IUserSettings>}
125
- */
126
- function addToUserSettings(addSettings, settingsPath) {
127
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
128
- if (settingsPath === undefined) {
129
- settingsPath = getUserSettingsPath();
130
- }
131
- let userSettings = yield getUserSettings(settingsPath);
132
- if (userSettings === undefined) {
133
- userSettings = {};
134
- }
135
- // Add the settings
136
- Object.assign(userSettings, addSettings);
137
- return writeUserSettings(userSettings, settingsPath);
138
- });
139
- }
140
- /**
141
- * Writes a user settings file
142
- *
143
- * @export
144
- * @param {IUserSettings} userSettings The settings to write
145
- * @param {string} [settingsPath] Optional settings file path
146
- * @returns {Promise<IUserSettings>}
147
- */
148
- function writeUserSettings(userSettings, settingsPath) {
149
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
150
- if (settingsPath === undefined) {
151
- settingsPath = getUserSettingsPath();
152
- }
153
- if (userSettings === undefined) {
154
- userSettings = {};
155
- }
156
- // Check if parent folder exists if not create it.
157
- try {
158
- yield fsAccess(path.dirname(settingsPath));
159
- }
160
- catch (error) {
161
- // Parent folder does not exist so create
162
- yield fsMkdir(path.dirname(settingsPath));
163
- }
164
- const settingsToWrite = Object.assign({}, userSettings);
165
- if (settingsToWrite.instanceId !== undefined) {
166
- delete settingsToWrite.instanceId;
167
- }
168
- yield fsWriteFile(settingsPath, JSON.stringify(settingsToWrite, null, '\t'));
169
- settingsCache = JSON.parse(JSON.stringify(userSettings));
170
- return userSettings;
171
- });
172
- }
173
- /**
174
- * Returns the content of the user settings
175
- *
176
- * @export
177
- * @returns {UserSettings}
178
- */
179
- function getUserSettings(settingsPath, ignoreCache) {
180
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
181
- if (settingsCache !== undefined && ignoreCache !== true) {
182
- return settingsCache;
183
- }
184
- if (settingsPath === undefined) {
185
- settingsPath = getUserSettingsPath();
186
- }
187
- try {
188
- yield fsAccess(settingsPath);
189
- }
190
- catch (error) {
191
- // The file does not exist
192
- return undefined;
193
- }
194
- const settingsFile = yield fsReadFile(settingsPath, 'utf8');
195
- try {
196
- settingsCache = JSON.parse(settingsFile);
197
- }
198
- catch (error) {
199
- throw new Error(`Error parsing n8n-config file "${settingsPath}". It does not seem to be valid JSON.`);
200
- }
201
- return settingsCache;
202
- });
203
- }
204
- /**
205
- * Returns the path to the user settings
206
- *
207
- * @export
208
- * @returns {string}
209
- */
210
- function getUserSettingsPath() {
211
- const n8nFolder = getUserN8nFolderPath();
212
- return path.join(n8nFolder, __1.USER_SETTINGS_FILE_NAME);
213
- }
214
- /**
215
- * Retruns the path to the n8n folder in which all n8n
216
- * related data gets saved
217
- *
218
- * @export
219
- * @returns {string}
220
- */
221
- function getUserN8nFolderPath() {
222
- let userFolder;
223
- if (process.env[__1.USER_FOLDER_ENV_OVERWRITE] !== undefined) {
224
- userFolder = process.env[__1.USER_FOLDER_ENV_OVERWRITE];
225
- }
226
- else {
227
- userFolder = getUserHome();
228
- }
229
- return path.join(userFolder, __1.USER_SETTINGS_SUBFOLDER);
230
- }
231
- /**
232
- * Returns the path to the n8n user folder with the custom
233
- * extensions like nodes and credentials
234
- *
235
- * @export
236
- * @returns {string}
237
- */
238
- function getUserN8nFolderCustomExtensionPath() {
239
- return path.join(getUserN8nFolderPath(), __1.EXTENSIONS_SUBDIRECTORY);
240
- }
241
- /**
242
- * Returns the home folder path of the user if
243
- * none can be found it falls back to the current
244
- * working directory
245
- *
246
- * @export
247
- * @returns {string}
248
- */
249
- function getUserHome() {
250
- let variableName = 'HOME';
251
- if (process.platform === 'win32') {
252
- variableName = 'USERPROFILE';
253
- }
254
- if (process.env[variableName] === undefined) {
255
- // If for some reason the variable does not exist
256
- // fall back to current folder
257
- return process.cwd();
258
- }
259
- return process.env[variableName];
260
- }
261
- //# sourceMappingURL=UserSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserSettings.js","sourceRoot":"","sources":["../../../src/lib/UserSettings.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkflowExecute.js","sourceRoot":"","sources":["../../../src/lib/WorkflowExecute.ts"],"names":[],"mappings":"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"}