n8n-nodes-comfyui-all 2.2.8 → 2.2.10

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 (37) hide show
  1. package/README.md +126 -13
  2. package/dist/agent-tools/ComfyUIAgentTool.d.ts +57 -0
  3. package/dist/agent-tools/ComfyUIAgentTool.d.ts.map +1 -0
  4. package/dist/agent-tools/ComfyUIAgentTool.js +405 -0
  5. package/dist/agent-tools/ComfyUIAgentTool.js.map +1 -0
  6. package/dist/nodes/ComfyUi/ComfyUi.node.d.ts +13 -35
  7. package/dist/nodes/ComfyUi/ComfyUi.node.d.ts.map +1 -1
  8. package/dist/nodes/ComfyUi/ComfyUi.node.js +67 -158
  9. package/dist/nodes/ComfyUi/ComfyUi.node.js.map +1 -1
  10. package/dist/nodes/ComfyUiClient.d.ts +81 -0
  11. package/dist/nodes/ComfyUiClient.d.ts.map +1 -1
  12. package/dist/nodes/ComfyUiClient.js +235 -26
  13. package/dist/nodes/ComfyUiClient.js.map +1 -1
  14. package/dist/nodes/constants.d.ts +5 -1
  15. package/dist/nodes/constants.d.ts.map +1 -1
  16. package/dist/nodes/constants.js +7 -12
  17. package/dist/nodes/constants.js.map +1 -1
  18. package/dist/nodes/logger.d.ts +9 -19
  19. package/dist/nodes/logger.d.ts.map +1 -1
  20. package/dist/nodes/logger.js +62 -25
  21. package/dist/nodes/logger.js.map +1 -1
  22. package/dist/nodes/types.d.ts +59 -41
  23. package/dist/nodes/types.d.ts.map +1 -1
  24. package/dist/nodes/utils.d.ts +47 -0
  25. package/dist/nodes/utils.d.ts.map +1 -0
  26. package/dist/nodes/utils.js +139 -0
  27. package/dist/nodes/utils.js.map +1 -0
  28. package/dist/nodes/validation.d.ts +2 -14
  29. package/dist/nodes/validation.d.ts.map +1 -1
  30. package/dist/nodes/validation.js +48 -90
  31. package/dist/nodes/validation.js.map +1 -1
  32. package/dist/nodes/workflowConfig.d.ts +13 -0
  33. package/dist/nodes/workflowConfig.d.ts.map +1 -0
  34. package/dist/nodes/workflowConfig.js +91 -0
  35. package/dist/nodes/workflowConfig.js.map +1 -0
  36. package/package.json +3 -1
  37. package/LICENSE +0 -21
@@ -1,4 +1,5 @@
1
1
  import { IExecuteFunctions } from 'n8n-workflow';
2
+ import { Logger } from './logger';
2
3
  export interface ComfyUIClientConfig {
3
4
  baseUrl: string;
4
5
  clientId?: string;
@@ -6,6 +7,7 @@ export interface ComfyUIClientConfig {
6
7
  maxRetries?: number;
7
8
  retryDelay?: number;
8
9
  helpers: IExecuteFunctions['helpers'];
10
+ logger?: Logger;
9
11
  }
10
12
  export interface WorkflowNode {
11
13
  inputs?: Record<string, unknown>;
@@ -24,11 +26,13 @@ export interface WorkflowResult {
24
26
  }
25
27
  export declare class ComfyUIClient {
26
28
  private helpers;
29
+ private logger;
27
30
  private baseUrl;
28
31
  private timeout;
29
32
  private clientId;
30
33
  private maxRetries;
31
34
  private isDestroyed;
35
+ private abortController;
32
36
  constructor(config: ComfyUIClientConfig);
33
37
  /**
34
38
  * Cancel any ongoing request and clean up resources
@@ -42,20 +46,97 @@ export declare class ComfyUIClient {
42
46
  * Check if the client has been destroyed
43
47
  */
44
48
  isClientDestroyed(): boolean;
49
+ /**
50
+ * Generate a unique client ID
51
+ * @returns Unique client ID string
52
+ */
45
53
  private generateClientId;
54
+ /**
55
+ * Delay execution for a specified time
56
+ * @param ms - Delay time in milliseconds
57
+ * @returns Promise that resolves after the delay
58
+ */
59
+ private delay;
60
+ /**
61
+ * Retry a request with exponential backoff
62
+ * @param requestFn - Function that returns a Promise to retry
63
+ * @param retries - Maximum number of retry attempts
64
+ * @returns Promise that resolves when the request succeeds
65
+ * @throws Error if all retry attempts fail
66
+ */
46
67
  private retryRequest;
68
+ /**
69
+ * Execute a ComfyUI workflow
70
+ * @param workflow - Workflow object containing nodes and their configurations
71
+ * @returns Promise containing workflow execution result
72
+ */
47
73
  executeWorkflow(workflow: Record<string, WorkflowNode>): Promise<WorkflowResult>;
74
+ /**
75
+ * Prepare workflow prompt for ComfyUI API
76
+ * @param workflow - Workflow object containing nodes
77
+ * @returns Formatted prompt object
78
+ */
48
79
  private preparePrompt;
80
+ /**
81
+ * Wait for workflow execution to complete
82
+ * @param promptId - Prompt ID from ComfyUI
83
+ * @param maxWaitTime - Maximum time to wait in milliseconds
84
+ * @returns Promise containing workflow execution result
85
+ */
49
86
  private waitForExecution;
87
+ /**
88
+ * Extract image and video results from workflow outputs
89
+ * @param outputs - Raw output data from ComfyUI
90
+ * @returns WorkflowResult with extracted images and videos
91
+ */
50
92
  private extractResults;
93
+ /**
94
+ * Get execution history from ComfyUI
95
+ * @param limit - Maximum number of history entries to retrieve
96
+ * @returns Promise containing history data
97
+ */
51
98
  getHistory(limit?: number): Promise<Record<string, unknown>>;
99
+ /**
100
+ * Upload an image to ComfyUI server
101
+ * @param imageData - Image data as Buffer
102
+ * @param filename - Name of the file to upload
103
+ * @param overwrite - Whether to overwrite existing file
104
+ * @returns Promise containing the uploaded filename
105
+ * @throws Error if image data is invalid or upload fails
106
+ */
52
107
  uploadImage(imageData: Buffer, filename: string, overwrite?: boolean): Promise<string>;
108
+ /**
109
+ * Get system information from ComfyUI server
110
+ * @returns Promise containing system stats
111
+ */
53
112
  getSystemInfo(): Promise<Record<string, unknown>>;
113
+ /**
114
+ * Get image buffer from ComfyUI server
115
+ * @param imagePath - Path to the image on ComfyUI server
116
+ * @returns Promise containing image data as Buffer
117
+ * @throws Error if image retrieval fails
118
+ */
54
119
  getImageBuffer(imagePath: string): Promise<Buffer>;
120
+ /**
121
+ * Get video buffer from ComfyUI server
122
+ * @param videoPath - Path to the video on ComfyUI server
123
+ * @returns Promise containing video data as Buffer
124
+ * @throws Error if video retrieval fails
125
+ */
55
126
  getVideoBuffer(videoPath: string): Promise<Buffer>;
56
127
  /**
57
128
  * Format error message with additional context
58
129
  */
59
130
  private formatErrorMessage;
131
+ /**
132
+ * Process workflow execution results and format them for n8n output
133
+ * @param result - Workflow execution result
134
+ * @param outputBinaryKey - Property name for the first output binary data
135
+ * @returns Processed result with json and binary data
136
+ */
137
+ processResults(result: WorkflowResult, outputBinaryKey?: string): Promise<{
138
+ json: Record<string, any>;
139
+ binary: Record<string, any>;
140
+ }>;
60
141
  }
61
142
  //# sourceMappingURL=ComfyUiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComfyUiClient.d.ts","sourceRoot":"","sources":["../../nodes/ComfyUiClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,EAAE,mBAAmB;IAQvC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B,OAAO,CAAC,gBAAgB;YAIV,YAAY;IA0BpB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAuDtF,OAAO,CAAC,aAAa;YAcP,gBAAgB;IA2D9B,OAAO,CAAC,cAAc;IAuChB,UAAU,CAAC,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiBjE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B7F,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAgBjD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBlD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBxD;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAQ3B"}
1
+ {"version":3,"file":"ComfyUiClient.d.ts","sourceRoot":"","sources":["../../nodes/ComfyUiClient.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,14 @@ exports.ComfyUIClient = void 0;
7
7
  const crypto_1 = require("crypto");
8
8
  const constants_1 = require("./constants");
9
9
  const form_data_1 = __importDefault(require("form-data"));
10
+ const logger_1 = require("./logger");
11
+ const utils_1 = require("./utils");
10
12
  class ComfyUIClient {
11
13
  constructor(config) {
12
14
  this.isDestroyed = false;
15
+ this.abortController = null;
13
16
  this.helpers = config.helpers;
17
+ this.logger = config.logger || new logger_1.Logger();
14
18
  this.baseUrl = config.baseUrl;
15
19
  this.timeout = config.timeout || constants_1.VALIDATION.REQUEST_TIMEOUT_MS;
16
20
  this.clientId = config.clientId || this.generateClientId();
@@ -21,6 +25,10 @@ class ComfyUIClient {
21
25
  */
22
26
  cancelRequest() {
23
27
  this.isDestroyed = true;
28
+ if (this.abortController) {
29
+ this.abortController.abort();
30
+ this.abortController = null;
31
+ }
24
32
  }
25
33
  /**
26
34
  * Clean up resources when the client is no longer needed
@@ -34,28 +42,71 @@ class ComfyUIClient {
34
42
  isClientDestroyed() {
35
43
  return this.isDestroyed;
36
44
  }
45
+ /**
46
+ * Generate a unique client ID
47
+ * @returns Unique client ID string
48
+ */
37
49
  generateClientId() {
38
50
  return `client_${(0, crypto_1.randomUUID)()}`;
39
51
  }
52
+ /**
53
+ * Delay execution for a specified time
54
+ * @param ms - Delay time in milliseconds
55
+ * @returns Promise that resolves after the delay
56
+ */
57
+ async delay(ms) {
58
+ return new Promise(resolve => setTimeout(resolve, ms));
59
+ }
60
+ /**
61
+ * Retry a request with exponential backoff
62
+ * @param requestFn - Function that returns a Promise to retry
63
+ * @param retries - Maximum number of retry attempts
64
+ * @returns Promise that resolves when the request succeeds
65
+ * @throws Error if all retry attempts fail
66
+ */
40
67
  async retryRequest(requestFn, retries = this.maxRetries) {
41
68
  let lastError;
69
+ const baseDelay = constants_1.VALIDATION.RETRY_DELAY_MS;
70
+ const maxBackoffDelay = constants_1.VALIDATION.MAX_BACKOFF_DELAY_RETRY;
71
+ let backoffDelay = baseDelay;
72
+ // Create new AbortController for this request
73
+ this.abortController = new AbortController();
42
74
  for (let attempt = 0; attempt <= retries; attempt++) {
43
75
  try {
44
76
  if (this.isDestroyed) {
45
77
  throw new Error('Client has been destroyed');
46
78
  }
79
+ // Check if request was aborted
80
+ if (this.abortController.signal.aborted) {
81
+ throw new Error('Request aborted');
82
+ }
47
83
  return await requestFn();
48
84
  }
49
85
  catch (error) {
50
86
  lastError = error;
87
+ // If aborted, don't retry
88
+ if (error instanceof Error && (error.name === 'AbortError' || error.message === 'Request aborted')) {
89
+ throw new Error('Request was cancelled');
90
+ }
51
91
  if (attempt < retries) {
52
- // Use a microtask to yield control between retries
53
- await Promise.resolve();
92
+ // Exponential backoff: double the delay with each error, capped at maxBackoffDelay
93
+ backoffDelay = Math.min(backoffDelay * 2, maxBackoffDelay);
94
+ if (attempt > 0) {
95
+ const errorMsg = error instanceof Error ? error.message : String(error);
96
+ this.logger.warn(`Request attempt ${attempt + 1}/${retries + 1} failed, retrying in ${backoffDelay}ms: ${errorMsg}`);
97
+ }
98
+ // Wait before retrying with exponential backoff
99
+ await this.delay(backoffDelay);
54
100
  }
55
101
  }
56
102
  }
57
103
  throw lastError;
58
104
  }
105
+ /**
106
+ * Execute a ComfyUI workflow
107
+ * @param workflow - Workflow object containing nodes and their configurations
108
+ * @returns Promise containing workflow execution result
109
+ */
59
110
  async executeWorkflow(workflow) {
60
111
  try {
61
112
  if (this.isDestroyed) {
@@ -69,16 +120,16 @@ class ComfyUIClient {
69
120
  prompt,
70
121
  client_id: this.clientId,
71
122
  };
72
- // Debug: Log the request body
73
- console.log('[ComfyUI] Sending workflow to ComfyUI:', JSON.stringify(requestBody, null, 2));
123
+ this.logger.debug('Sending workflow to ComfyUI:', JSON.stringify(requestBody, null, 2));
74
124
  const response = await this.retryRequest(() => this.helpers.httpRequest({
75
125
  method: 'POST',
76
126
  url: `${this.baseUrl}/prompt`,
77
127
  json: true,
78
128
  body: requestBody,
79
129
  timeout: this.timeout,
130
+ abortSignal: this.abortController?.signal,
80
131
  }));
81
- console.log('[ComfyUI] Response from ComfyUI:', JSON.stringify(response, null, 2));
132
+ this.logger.debug('Response from ComfyUI:', JSON.stringify(response, null, 2));
82
133
  if (response.prompt_id) {
83
134
  return await this.waitForExecution(response.prompt_id);
84
135
  }
@@ -88,12 +139,14 @@ class ComfyUIClient {
88
139
  };
89
140
  }
90
141
  catch (error) {
91
- console.error('[ComfyUI] Workflow execution error:', error);
92
- console.error('[ComfyUI] Error details:', {
93
- message: error.message,
94
- statusCode: error.response?.statusCode || error.statusCode,
95
- statusMessage: error.response?.statusMessage || error.statusMessage,
96
- responseBody: error.response?.body || error.response?.data,
142
+ this.logger.error('Workflow execution error:', error);
143
+ const err = error instanceof Error ? error : new Error(String(error));
144
+ const errObj = err;
145
+ this.logger.error('Error details:', {
146
+ message: err.message,
147
+ statusCode: errObj.response?.statusCode || errObj.statusCode,
148
+ statusMessage: errObj.response?.statusMessage || errObj.statusMessage,
149
+ responseBody: errObj.response?.body || errObj.response?.data,
97
150
  });
98
151
  return {
99
152
  success: false,
@@ -101,6 +154,11 @@ class ComfyUIClient {
101
154
  };
102
155
  }
103
156
  }
157
+ /**
158
+ * Prepare workflow prompt for ComfyUI API
159
+ * @param workflow - Workflow object containing nodes
160
+ * @returns Formatted prompt object
161
+ */
104
162
  preparePrompt(workflow) {
105
163
  const prompt = {};
106
164
  for (const nodeId in workflow) {
@@ -112,11 +170,22 @@ class ComfyUIClient {
112
170
  }
113
171
  return prompt;
114
172
  }
173
+ /**
174
+ * Wait for workflow execution to complete
175
+ * @param promptId - Prompt ID from ComfyUI
176
+ * @param maxWaitTime - Maximum time to wait in milliseconds
177
+ * @returns Promise containing workflow execution result
178
+ */
115
179
  async waitForExecution(promptId, maxWaitTime = constants_1.VALIDATION.MAX_WAIT_TIME_MS) {
116
180
  const startTime = Date.now();
117
181
  let lastStatus = 'pending';
118
182
  let consecutiveErrors = 0;
119
- const maxConsecutiveErrors = 5;
183
+ const maxConsecutiveErrors = constants_1.VALIDATION.MAX_CONSECUTIVE_ERRORS;
184
+ let totalErrors = 0;
185
+ const maxTotalErrors = constants_1.VALIDATION.MAX_TOTAL_ERRORS;
186
+ let backoffDelay = constants_1.VALIDATION.POLL_INTERVAL_MS;
187
+ const maxBackoffDelay = constants_1.VALIDATION.MAX_BACKOFF_DELAY_POLLING;
188
+ const baseDelay = constants_1.VALIDATION.POLL_INTERVAL_MS;
120
189
  while (Date.now() - startTime < maxWaitTime) {
121
190
  try {
122
191
  if (this.isDestroyed) {
@@ -130,6 +199,7 @@ class ComfyUIClient {
130
199
  url: `${this.baseUrl}/history/${promptId}`,
131
200
  json: true,
132
201
  timeout: this.timeout,
202
+ abortSignal: this.abortController?.signal,
133
203
  });
134
204
  if (response[promptId]) {
135
205
  const status = response[promptId].status;
@@ -142,19 +212,33 @@ class ComfyUIClient {
142
212
  }
143
213
  // Reset error counter on successful request
144
214
  consecutiveErrors = 0;
145
- // Yield control between polls
146
- await Promise.resolve();
215
+ backoffDelay = baseDelay; // Reset backoff delay
216
+ // Wait before next poll
217
+ await this.delay(baseDelay);
147
218
  }
148
219
  catch (error) {
149
220
  consecutiveErrors++;
221
+ totalErrors++;
222
+ const errorMsg = error instanceof Error ? error.message : String(error);
223
+ // Check consecutive errors limit
150
224
  if (consecutiveErrors >= maxConsecutiveErrors) {
151
225
  return {
152
226
  success: false,
153
- error: `Workflow execution failed after ${maxConsecutiveErrors} consecutive errors: ${error.message}`,
227
+ error: `Workflow execution failed after ${maxConsecutiveErrors} consecutive errors: ${errorMsg}`,
228
+ };
229
+ }
230
+ // Check total errors limit to prevent resource exhaustion
231
+ if (totalErrors >= maxTotalErrors) {
232
+ return {
233
+ success: false,
234
+ error: `Workflow execution failed after ${maxTotalErrors} total errors (last: ${errorMsg})`,
154
235
  };
155
236
  }
156
- // Yield control between retries
157
- await Promise.resolve();
237
+ // Exponential backoff: double the delay with each error, capped at maxBackoffDelay
238
+ backoffDelay = Math.min(backoffDelay * 2, maxBackoffDelay);
239
+ this.logger.warn(`Polling error ${consecutiveErrors}/${maxConsecutiveErrors} (total: ${totalErrors}/${maxTotalErrors}), retrying in ${backoffDelay}ms: ${errorMsg}`);
240
+ // Wait with exponential backoff
241
+ await this.delay(backoffDelay);
158
242
  }
159
243
  }
160
244
  return {
@@ -162,6 +246,11 @@ class ComfyUIClient {
162
246
  error: 'Workflow execution timeout',
163
247
  };
164
248
  }
249
+ /**
250
+ * Extract image and video results from workflow outputs
251
+ * @param outputs - Raw output data from ComfyUI
252
+ * @returns WorkflowResult with extracted images and videos
253
+ */
165
254
  extractResults(outputs) {
166
255
  const result = {
167
256
  success: true,
@@ -195,6 +284,11 @@ class ComfyUIClient {
195
284
  }
196
285
  return result;
197
286
  }
287
+ /**
288
+ * Get execution history from ComfyUI
289
+ * @param limit - Maximum number of history entries to retrieve
290
+ * @returns Promise containing history data
291
+ */
198
292
  async getHistory(limit = 100) {
199
293
  if (this.isDestroyed) {
200
294
  throw new Error('Client has been destroyed');
@@ -205,14 +299,35 @@ class ComfyUIClient {
205
299
  qs: { limit },
206
300
  json: true,
207
301
  timeout: this.timeout,
302
+ abortSignal: this.abortController?.signal,
208
303
  }));
209
304
  return response;
210
305
  }
306
+ /**
307
+ * Upload an image to ComfyUI server
308
+ * @param imageData - Image data as Buffer
309
+ * @param filename - Name of the file to upload
310
+ * @param overwrite - Whether to overwrite existing file
311
+ * @returns Promise containing the uploaded filename
312
+ * @throws Error if image data is invalid or upload fails
313
+ */
211
314
  async uploadImage(imageData, filename, overwrite = false) {
212
315
  if (this.isDestroyed) {
213
316
  throw new Error('Client has been destroyed');
214
317
  }
215
- console.log('[ComfyUI] Uploading image:', { filename, size: imageData.length });
318
+ // Validate image data
319
+ if (!Buffer.isBuffer(imageData)) {
320
+ throw new Error('Invalid image data: expected Buffer');
321
+ }
322
+ if (imageData.length === 0) {
323
+ throw new Error('Invalid image data: buffer is empty');
324
+ }
325
+ // Validate image size (maximum 50MB as defined in VALIDATION.MAX_IMAGE_SIZE_MB)
326
+ const maxSize = constants_1.VALIDATION.MAX_IMAGE_SIZE_MB * 1024 * 1024;
327
+ if (imageData.length > maxSize) {
328
+ throw new Error(`Image size (${Math.round(imageData.length / 1024 / 1024)}MB) exceeds maximum allowed size of ${constants_1.VALIDATION.MAX_IMAGE_SIZE_MB}MB`);
329
+ }
330
+ this.logger.debug('Uploading image:', { filename, size: imageData.length });
216
331
  const form = new form_data_1.default();
217
332
  form.append('image', imageData, { filename: filename });
218
333
  form.append('overwrite', overwrite.toString());
@@ -224,10 +339,15 @@ class ComfyUIClient {
224
339
  ...form.getHeaders(),
225
340
  },
226
341
  timeout: this.timeout,
342
+ abortSignal: this.abortController?.signal,
227
343
  }));
228
- console.log('[ComfyUI] Upload response:', response);
344
+ this.logger.debug('Upload response:', response);
229
345
  return response.name;
230
346
  }
347
+ /**
348
+ * Get system information from ComfyUI server
349
+ * @returns Promise containing system stats
350
+ */
231
351
  async getSystemInfo() {
232
352
  if (this.isDestroyed) {
233
353
  throw new Error('Client has been destroyed');
@@ -237,9 +357,16 @@ class ComfyUIClient {
237
357
  url: `${this.baseUrl}/system_stats`,
238
358
  json: true,
239
359
  timeout: this.timeout,
360
+ abortSignal: this.abortController?.signal,
240
361
  }));
241
362
  return response;
242
363
  }
364
+ /**
365
+ * Get image buffer from ComfyUI server
366
+ * @param imagePath - Path to the image on ComfyUI server
367
+ * @returns Promise containing image data as Buffer
368
+ * @throws Error if image retrieval fails
369
+ */
243
370
  async getImageBuffer(imagePath) {
244
371
  try {
245
372
  if (this.isDestroyed) {
@@ -250,13 +377,26 @@ class ComfyUIClient {
250
377
  url: `${this.baseUrl}${imagePath}`,
251
378
  encoding: 'arraybuffer',
252
379
  timeout: this.timeout,
380
+ abortSignal: this.abortController?.signal,
253
381
  });
254
- return Buffer.from(response);
382
+ const buffer = Buffer.from(response);
383
+ // Validate buffer size (maximum 50MB as defined in VALIDATION.MAX_IMAGE_SIZE_MB)
384
+ const maxSize = constants_1.VALIDATION.MAX_IMAGE_SIZE_MB * 1024 * 1024;
385
+ if (buffer.length > maxSize) {
386
+ throw new Error(`Image size (${Math.round(buffer.length / 1024 / 1024)}MB) exceeds maximum allowed size of ${constants_1.VALIDATION.MAX_IMAGE_SIZE_MB}MB`);
387
+ }
388
+ return buffer;
255
389
  }
256
390
  catch (error) {
257
391
  throw new Error(`Failed to get image buffer: ${this.formatErrorMessage(error)}`);
258
392
  }
259
393
  }
394
+ /**
395
+ * Get video buffer from ComfyUI server
396
+ * @param videoPath - Path to the video on ComfyUI server
397
+ * @returns Promise containing video data as Buffer
398
+ * @throws Error if video retrieval fails
399
+ */
260
400
  async getVideoBuffer(videoPath) {
261
401
  try {
262
402
  if (this.isDestroyed) {
@@ -267,8 +407,15 @@ class ComfyUIClient {
267
407
  url: `${this.baseUrl}${videoPath}`,
268
408
  encoding: 'arraybuffer',
269
409
  timeout: this.timeout,
410
+ abortSignal: this.abortController?.signal,
270
411
  });
271
- return Buffer.from(response);
412
+ const buffer = Buffer.from(response);
413
+ // Validate buffer size (maximum 50MB as defined in VALIDATION.MAX_IMAGE_SIZE_MB)
414
+ const maxSize = constants_1.VALIDATION.MAX_IMAGE_SIZE_MB * 1024 * 1024;
415
+ if (buffer.length > maxSize) {
416
+ throw new Error(`Video size (${Math.round(buffer.length / 1024 / 1024)}MB) exceeds maximum allowed size of ${constants_1.VALIDATION.MAX_IMAGE_SIZE_MB}MB`);
417
+ }
418
+ return buffer;
272
419
  }
273
420
  catch (error) {
274
421
  throw new Error(`Failed to get video buffer: ${this.formatErrorMessage(error)}`);
@@ -278,13 +425,75 @@ class ComfyUIClient {
278
425
  * Format error message with additional context
279
426
  */
280
427
  formatErrorMessage(error, context = '') {
281
- if (error.response) {
282
- return `${context}: ${error.response.statusCode} ${error.response.statusMessage}`;
428
+ if (error instanceof Error) {
429
+ const err = error;
430
+ if (err.response) {
431
+ return `${context}: ${err.response.statusCode} ${err.response.statusMessage}`;
432
+ }
433
+ else if (err.request) {
434
+ return `${context}: No response from server`;
435
+ }
436
+ return context ? `${context}: ${error.message}` : error.message;
283
437
  }
284
- else if (error.request) {
285
- return `${context}: No response from server`;
438
+ return context ? `${context}: ${String(error)}` : String(error);
439
+ }
440
+ /**
441
+ * Process workflow execution results and format them for n8n output
442
+ * @param result - Workflow execution result
443
+ * @param outputBinaryKey - Property name for the first output binary data
444
+ * @returns Processed result with json and binary data
445
+ */
446
+ async processResults(result, outputBinaryKey = 'data') {
447
+ const jsonData = {
448
+ success: true,
449
+ };
450
+ if (result.output) {
451
+ jsonData.data = result.output;
452
+ }
453
+ if (result.images && result.images.length > 0) {
454
+ jsonData.images = result.images;
455
+ jsonData.imageUrls = result.images.map(img => `${this.baseUrl}${img}`);
286
456
  }
287
- return context ? `${context}: ${error.message}` : error.message;
457
+ if (result.videos && result.videos.length > 0) {
458
+ jsonData.videos = result.videos;
459
+ jsonData.videoUrls = result.videos.map(vid => `${this.baseUrl}${vid}`);
460
+ }
461
+ const binaryData = {};
462
+ if (result.images && result.images.length > 0) {
463
+ for (let i = 0; i < result.images.length; i++) {
464
+ const imagePath = result.images[i];
465
+ const imageBuffer = await this.getImageBuffer(imagePath);
466
+ const fileInfo = (0, utils_1.extractFileInfo)(imagePath, 'png');
467
+ const mimeType = (0, utils_1.validateMimeType)(fileInfo.mimeType, constants_1.IMAGE_MIME_TYPES);
468
+ const binaryKey = i === 0 ? outputBinaryKey : `image_${i}`;
469
+ binaryData[binaryKey] = {
470
+ data: imageBuffer.toString('base64'),
471
+ mimeType: mimeType,
472
+ fileName: fileInfo.filename,
473
+ };
474
+ }
475
+ jsonData.imageCount = result.images.length;
476
+ }
477
+ if (result.videos && result.videos.length > 0) {
478
+ for (let i = 0; i < result.videos.length; i++) {
479
+ const videoPath = result.videos[i];
480
+ const fileInfo = (0, utils_1.extractFileInfo)(videoPath, 'mp4');
481
+ const mimeType = (0, utils_1.validateMimeType)(fileInfo.mimeType, constants_1.VIDEO_MIME_TYPES);
482
+ const videoBuffer = await this.getVideoBuffer(videoPath);
483
+ const hasImages = result.images && result.images.length > 0;
484
+ const binaryKey = (!hasImages && i === 0) ? outputBinaryKey : `video_${i}`;
485
+ binaryData[binaryKey] = {
486
+ data: videoBuffer.toString('base64'),
487
+ mimeType: mimeType,
488
+ fileName: fileInfo.filename,
489
+ };
490
+ }
491
+ jsonData.videoCount = result.videos.length;
492
+ }
493
+ return {
494
+ json: jsonData,
495
+ binary: binaryData,
496
+ };
288
497
  }
289
498
  }
290
499
  exports.ComfyUIClient = ComfyUIClient;
@@ -1 +1 @@
1
- {"version":3,"file":"ComfyUiClient.js","sourceRoot":"","sources":["../../nodes/ComfyUiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComfyUiClient.js","sourceRoot":"","sources":["../../nodes/ComfyUiClient.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAoC;AACpC,2CAA6E;AAE7E,0DAAiC;AACjC,qCAAkC;AAClC,mCAA4D;AA8B5D,MAAa,aAAa;IAUxB,YAAY,MAA2B;QAH/B,gBAAW,GAAY,KAAK,CAAC;QAC7B,oBAAe,GAA2B,IAAI,CAAC;QAGrD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,eAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,sBAAU,CAAC,kBAAkB,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,sBAAU,CAAC,WAAW,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,OAAO,UAAU,IAAA,mBAAU,GAAE,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,KAAK,CAAC,EAAU;QAC5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CACxB,SAA2B,EAC3B,UAAkB,IAAI,CAAC,UAAU;QAEjC,IAAI,SAAkB,CAAC;QACvB,MAAM,SAAS,GAAG,sBAAU,CAAC,cAAwB,CAAC;QACtD,MAAM,eAAe,GAAG,sBAAU,CAAC,uBAAiC,CAAC;QACrE,IAAI,YAAY,GAAG,SAAS,CAAC;QAE7B,8CAA8C;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE7C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC/C,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACrC,CAAC;gBAED,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,SAAS,GAAG,KAAK,CAAC;gBAElB,0BAA0B;gBAC1B,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,CAAC,EAAE,CAAC;oBACnG,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC3C,CAAC;gBAED,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;oBACtB,mFAAmF;oBACnF,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;oBAE3D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBAChB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,wBAAwB,YAAY,OAAO,QAAQ,EAAE,CAAC,CAAC;oBACvH,CAAC;oBAED,gDAAgD;oBAChD,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,QAAsC;QAC1D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,2BAA2B;iBACnC,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE5C,MAAM,WAAW,GAAG;gBAClB,MAAM;gBACN,SAAS,EAAE,IAAI,CAAC,QAAQ;aACzB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAExF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBACvB,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,SAAS;gBAC7B,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;aAC1C,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE/E,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,mDAAmD;aAC3D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,GAAU,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAClC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU;gBAC5D,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,MAAM,CAAC,aAAa;gBACrE,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI;aAC7D,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,4BAA4B,CAAC;aACpE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,QAAsC;QAC1D,MAAM,MAAM,GAAiC,EAAE,CAAC;QAEhD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,cAAsB,sBAAU,CAAC,gBAAgB;QAChG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,MAAM,oBAAoB,GAAG,sBAAU,CAAC,sBAAgC,CAAC;QACzE,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,cAAc,GAAG,sBAAU,CAAC,gBAA0B,CAAC;QAC7D,IAAI,YAAY,GAAG,sBAAU,CAAC,gBAA0B,CAAC;QACzD,MAAM,eAAe,GAAG,sBAAU,CAAC,yBAAmC,CAAC;QACvE,MAAM,SAAS,GAAG,sBAAU,CAAC,gBAA0B,CAAC;QAExD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,2BAA2B;qBACnC,CAAC;gBACJ,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC9C,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,YAAY,QAAQ,EAAE;oBAC1C,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;iBAC1C,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;oBAEzC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACrB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;oBACzD,CAAC;oBAED,IAAI,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;wBACrC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAED,4CAA4C;gBAC5C,iBAAiB,GAAG,CAAC,CAAC;gBACtB,YAAY,GAAG,SAAS,CAAC,CAAC,sBAAsB;gBAChD,wBAAwB;gBACxB,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,iBAAiB,EAAE,CAAC;gBACpB,WAAW,EAAE,CAAC;gBAEd,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAExE,iCAAiC;gBACjC,IAAI,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;oBAC9C,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,mCAAmC,oBAAoB,wBAAwB,QAAQ,EAAE;qBACjG,CAAC;gBACJ,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;oBAClC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,mCAAmC,cAAc,wBAAwB,QAAQ,GAAG;qBAC5F,CAAC;gBACJ,CAAC;gBAED,mFAAmF;gBACnF,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBAE3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,IAAI,oBAAoB,YAAY,WAAW,IAAI,cAAc,kBAAkB,YAAY,OAAO,QAAQ,EAAE,CAAC,CAAC;gBAErK,gCAAgC;gBAChC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B;SACpC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,OAAY;QACjC,MAAM,MAAM,GAAmB;YAC7B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,OAAO;SAChB,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAEnC,iBAAiB;YACjB,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,QAAQ,cAAc,KAAK,CAAC,SAAS,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC1G,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,gCAAgC;YAChC,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,QAAQ,cAAc,KAAK,CAAC,SAAS,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC1G,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBACpC,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,QAAQ,cAAc,KAAK,CAAC,SAAS,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC1G,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,GAAG;QAClC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,UAAU;YAC9B,EAAE,EAAE,EAAE,KAAK,EAAE;YACb,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;SAC1C,CAAC,CACH,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,QAAgB,EAAE,YAAqB,KAAK;QAC/E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,gFAAgF;QAChF,MAAM,OAAO,GAAG,sBAAU,CAAC,iBAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;QACrE,IAAI,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,uCAAuC,sBAAU,CAAC,iBAA2B,IAAI,CAC3I,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,eAAe;YACnC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,UAAU,EAAE;aACrB;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;SAC1C,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,eAAe;YACnC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;SAC1C,CAAC,CACH,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC9C,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE;gBAClC,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;aAC1C,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErC,iFAAiF;YACjF,MAAM,OAAO,GAAG,sBAAU,CAAC,iBAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;YACrE,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,uCAAuC,sBAAU,CAAC,iBAA2B,IAAI,CACxI,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC9C,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE;gBAClC,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;aAC1C,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErC,iFAAiF;YACjF,MAAM,OAAO,GAAG,sBAAU,CAAC,iBAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;YACrE,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,uCAAuC,sBAAU,CAAC,iBAA2B,IAAI,CACxI,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,KAAc,EAAE,UAAkB,EAAE;QAC7D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAY,CAAC;YACzB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChF,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,OAAO,2BAA2B,CAAC;YAC/C,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAClE,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,MAAsB,EAAE,kBAA0B,MAAM;QAI3E,MAAM,QAAQ,GAAwB;YACpC,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAChC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAChC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,UAAU,GAAwB,EAAE,CAAC;QAE3C,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAEzD,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,QAAQ,CAAC,QAAQ,EAAE,4BAAgB,CAAC,CAAC;gBAEvE,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,SAAS,CAAC,GAAG;oBACtB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACpC,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7C,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,QAAQ,CAAC,QAAQ,EAAE,4BAAgB,CAAC,CAAC;gBAEvE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAEzD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3E,UAAU,CAAC,SAAS,CAAC,GAAG;oBACtB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACpC,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC;CACF;AA9kBD,sCA8kBC"}
@@ -35,8 +35,12 @@ export declare const VALIDATION: {
35
35
  readonly POLL_INTERVAL_MS: 1000;
36
36
  readonly MAX_RETRIES: 3;
37
37
  readonly RETRY_DELAY_MS: 1000;
38
+ readonly MAX_CONSECUTIVE_ERRORS: 3;
39
+ readonly MAX_TOTAL_ERRORS: 10;
40
+ readonly MAX_BACKOFF_DELAY_POLLING: 10000;
41
+ readonly MAX_BACKOFF_DELAY_RETRY: 5000;
38
42
  };
39
- export declare const PRIVATE_IP_PATTERNS: RegExp[];
43
+ export declare const DEFAULT_OUTPUT_BINARY_KEY = "data";
40
44
  export declare const OUTPUT_FORMATS: {
41
45
  readonly URL: "url";
42
46
  readonly BASE64: "base64";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../nodes/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAGxD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAG9C,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,cAAc,KAAK,CAAC;AAGjC,eAAO,MAAM,OAAO;;;;;;;;;CASV,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAab,CAAC;AAGX,eAAO,MAAM,mBAAmB,UAS/B,CAAC;AAGF,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAGX,eAAO,MAAM,aAAa;;CAEhB,CAAC;AAGX,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ1C,CAAC;AAEX,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO1C,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../nodes/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAGxD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAG9C,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,cAAc,KAAK,CAAC;AAGjC,eAAO,MAAM,OAAO;;;;;;;;;CASV,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAGX,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAGhD,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAGX,eAAO,MAAM,aAAa;;CAEhB,CAAC;AAGX,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ1C,CAAC;AAEX,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO1C,CAAC"}