n8n-nodes-blossom 2.3.29 → 2.4.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.
@@ -9,6 +9,7 @@ exports.getDomain = getDomain;
9
9
  const axios_1 = __importDefault(require("axios"));
10
10
  const form_data_1 = __importDefault(require("form-data"));
11
11
  async function blossomApiRequest(method, endpoint, qs = {}, body = undefined) {
12
+ var _a;
12
13
  const credentials = await this.getCredentials('blossomSyncApi');
13
14
  const baseUrl = credentials === null || credentials === void 0 ? void 0 : credentials.baseUrl;
14
15
  const authMethod = credentials === null || credentials === void 0 ? void 0 : credentials.authMethod;
@@ -20,52 +21,187 @@ async function blossomApiRequest(method, endpoint, qs = {}, body = undefined) {
20
21
  }
21
22
  const cleanBaseUrl = baseUrl.replace(/\/$/, '');
22
23
  const cleanEndpoint = endpoint.startsWith('/') ? endpoint.slice(1) : endpoint;
23
- const isFileUpload = body && typeof body === 'object' && (body.sheet_file || body.avatarfile || body.diploma_file);
24
+ const url = `${cleanBaseUrl}/${cleanEndpoint}`;
25
+ const fileBody = body;
26
+ const isDirectFileUpload = fileBody && fileBody.__isFileUpload === true;
24
27
  let username = '';
25
28
  let password = '';
29
+ let authHeader = '';
26
30
  if (authMethod === 'basic') {
27
31
  username = credentials === null || credentials === void 0 ? void 0 : credentials.username;
28
32
  password = credentials === null || credentials === void 0 ? void 0 : credentials.password;
29
33
  if (!username || !password) {
30
34
  throw new Error('Username and password are required for Basic Authentication');
31
35
  }
36
+ authHeader = 'Basic ' + Buffer.from(`${username}:${password}`).toString('base64');
32
37
  }
33
38
  else if (authMethod === 'apiKey') {
34
39
  const apiKey = credentials === null || credentials === void 0 ? void 0 : credentials.apiKey;
35
- if (!apiKey) {
36
- throw new Error('API Key is required for API Key Authentication');
37
- }
40
+ if (!apiKey)
41
+ throw new Error('API Key is required');
42
+ authHeader = `Bearer ${apiKey}`;
38
43
  }
39
44
  else if (authMethod === 'jwt') {
40
45
  const jwtToken = credentials === null || credentials === void 0 ? void 0 : credentials.jwtToken;
41
- if (!jwtToken) {
42
- throw new Error('JWT Token is required for JWT Authentication');
43
- }
46
+ if (!jwtToken)
47
+ throw new Error('JWT Token is required');
48
+ authHeader = `Bearer ${jwtToken}`;
44
49
  }
45
50
  else if (authMethod === 'oauth2') {
46
51
  const oauth2Token = credentials === null || credentials === void 0 ? void 0 : credentials.oauth2Token;
47
- if (!oauth2Token) {
48
- throw new Error('OAuth 2.0 Token is required for OAuth 2.0 Authentication');
49
- }
52
+ if (!oauth2Token)
53
+ throw new Error('OAuth 2.0 Token is required');
54
+ authHeader = `Bearer ${oauth2Token}`;
50
55
  }
51
56
  else {
52
57
  throw new Error('Authentication type is required');
53
58
  }
54
- const url = `${cleanBaseUrl}/${cleanEndpoint}`;
55
59
  console.log('========================================');
56
- console.log('BLOSSOM API REQUEST - START');
60
+ console.log('BLOSSOM API REQUEST');
57
61
  console.log('========================================');
58
- console.log('Method:', method);
59
62
  console.log('URL:', url);
60
- console.log('Is File Upload:', isFileUpload);
63
+ console.log('Method:', method);
64
+ console.log('Is Direct File Upload:', isDirectFileUpload);
61
65
  console.log('Auth Method:', authMethod);
62
- console.log('Body Keys:', body ? Object.keys(body) : 'No body');
63
66
  try {
64
- if (isFileUpload) {
65
- return await handleFileUpload(url, body, authMethod, username, password, credentials);
67
+ if (isDirectFileUpload) {
68
+ const fieldName = fileBody.__fieldName;
69
+ const fileBuffer = fileBody.__fileBuffer;
70
+ const fileName = fileBody.__fileName;
71
+ const contentType = fileBody.__contentType;
72
+ console.log('========================================');
73
+ console.log('FILE UPLOAD DETAILS');
74
+ console.log('========================================');
75
+ console.log('Field name:', fieldName);
76
+ console.log('File name:', fileName);
77
+ console.log('Content-Type:', contentType);
78
+ console.log('Buffer type:', typeof fileBuffer);
79
+ console.log('Buffer is Buffer:', Buffer.isBuffer(fileBuffer));
80
+ console.log('Buffer length:', fileBuffer === null || fileBuffer === void 0 ? void 0 : fileBuffer.length);
81
+ if (!fileBuffer || !Buffer.isBuffer(fileBuffer)) {
82
+ throw new Error(`Invalid file buffer: expected Buffer, got ${typeof fileBuffer}`);
83
+ }
84
+ if (fileBuffer.length === 0) {
85
+ throw new Error('File buffer is empty');
86
+ }
87
+ console.log('Buffer content preview (first 500 chars):');
88
+ console.log(fileBuffer.toString('utf-8').substring(0, 500));
89
+ console.log('---');
90
+ let currentUrl = url;
91
+ const maxRedirects = 5;
92
+ for (let attempt = 0; attempt < maxRedirects; attempt++) {
93
+ console.log(`========================================`);
94
+ console.log(`REQUEST ATTEMPT ${attempt + 1}`);
95
+ console.log(`========================================`);
96
+ console.log('URL:', currentUrl);
97
+ const formData = new form_data_1.default();
98
+ formData.append(fieldName, fileBuffer, {
99
+ filename: fileName,
100
+ contentType: contentType,
101
+ knownLength: fileBuffer.length,
102
+ });
103
+ const formHeaders = formData.getHeaders();
104
+ console.log('FormData headers:', JSON.stringify(formHeaders, null, 2));
105
+ const formBuffer = formData.getBuffer();
106
+ console.log('FormData total length:', formBuffer.length);
107
+ console.log('FormData preview:');
108
+ console.log(formBuffer.toString('utf-8').substring(0, 800));
109
+ console.log('---');
110
+ try {
111
+ const response = await (0, axios_1.default)({
112
+ method: 'POST',
113
+ url: currentUrl,
114
+ data: formData,
115
+ headers: {
116
+ ...formHeaders,
117
+ ...(authMethod !== 'basic' ? { 'Authorization': authHeader } : {}),
118
+ },
119
+ auth: authMethod === 'basic' ? { username, password } : undefined,
120
+ timeout: 120000,
121
+ maxBodyLength: Infinity,
122
+ maxContentLength: Infinity,
123
+ maxRedirects: 0,
124
+ validateStatus: () => true,
125
+ });
126
+ console.log('Response status:', response.status, response.statusText);
127
+ console.log('Response headers:', JSON.stringify(response.headers, null, 2));
128
+ if ([301, 302, 307, 308].includes(response.status)) {
129
+ const location = response.headers['location'];
130
+ if (!location) {
131
+ throw new Error(`Redirect ${response.status} without Location header`);
132
+ }
133
+ if (location.startsWith('http')) {
134
+ currentUrl = location;
135
+ }
136
+ else if (location.startsWith('/')) {
137
+ const urlObj = new URL(currentUrl);
138
+ currentUrl = `${urlObj.protocol}//${urlObj.host}${location}`;
139
+ }
140
+ else {
141
+ const urlObj = new URL(currentUrl);
142
+ const basePath = urlObj.pathname.substring(0, urlObj.pathname.lastIndexOf('/') + 1);
143
+ currentUrl = `${urlObj.protocol}//${urlObj.host}${basePath}${location}`;
144
+ }
145
+ console.log('Following redirect to:', currentUrl);
146
+ continue;
147
+ }
148
+ console.log('========================================');
149
+ console.log('RESPONSE RECEIVED');
150
+ console.log('========================================');
151
+ console.log('Status:', response.status);
152
+ console.log('Data:', JSON.stringify(response.data, null, 2));
153
+ if (response.status >= 400) {
154
+ console.error('HTTP Error:', response.status, response.data);
155
+ }
156
+ return response.data;
157
+ }
158
+ catch (axiosError) {
159
+ if (axios_1.default.isAxiosError(axiosError)) {
160
+ console.error('Axios error:', {
161
+ message: axiosError.message,
162
+ code: axiosError.code,
163
+ response: axiosError.response ? {
164
+ status: axiosError.response.status,
165
+ data: axiosError.response.data,
166
+ } : 'No response',
167
+ });
168
+ if (axiosError.response && [301, 302, 307, 308].includes(axiosError.response.status)) {
169
+ const location = axiosError.response.headers['location'];
170
+ if (location) {
171
+ if (location.startsWith('http')) {
172
+ currentUrl = location;
173
+ }
174
+ else {
175
+ const urlObj = new URL(currentUrl);
176
+ currentUrl = `${urlObj.protocol}//${urlObj.host}${location}`;
177
+ }
178
+ console.log('Following redirect (from error) to:', currentUrl);
179
+ continue;
180
+ }
181
+ }
182
+ if ((_a = axiosError.response) === null || _a === void 0 ? void 0 : _a.data) {
183
+ return axiosError.response.data;
184
+ }
185
+ }
186
+ throw axiosError;
187
+ }
188
+ }
189
+ throw new Error(`Too many redirects (max ${maxRedirects})`);
66
190
  }
67
191
  else {
68
- return await handleJsonRequest.call(this, method, url, body, authMethod, credentials);
192
+ const options = {
193
+ method,
194
+ url,
195
+ body,
196
+ json: true,
197
+ timeout: 30000,
198
+ headers: {
199
+ 'Content-Type': 'application/json',
200
+ 'Authorization': authHeader,
201
+ },
202
+ };
203
+ console.log('Sending JSON request...');
204
+ return await this.helpers.httpRequest(options);
69
205
  }
70
206
  }
71
207
  catch (error) {
@@ -76,234 +212,6 @@ async function blossomApiRequest(method, endpoint, qs = {}, body = undefined) {
76
212
  throw error;
77
213
  }
78
214
  }
79
- async function handleFileUpload(url, body, authMethod, username, password, credentials) {
80
- var _a, _b, _c, _d, _e, _f, _g, _h;
81
- console.log('========================================');
82
- console.log('FILE UPLOAD - Processing');
83
- console.log('========================================');
84
- let fileFieldName;
85
- let fileData;
86
- if (body.sheet_file) {
87
- fileFieldName = 'sheet_file';
88
- fileData = body.sheet_file;
89
- }
90
- else if (body.avatarfile) {
91
- fileFieldName = 'avatarfile';
92
- fileData = body.avatarfile;
93
- }
94
- else if (body.diploma_file) {
95
- fileFieldName = 'diploma_file';
96
- fileData = body.diploma_file;
97
- }
98
- else {
99
- throw new Error('No file data found in request body');
100
- }
101
- console.log('File field:', fileFieldName);
102
- console.log('File data structure:', {
103
- hasValue: !!(fileData === null || fileData === void 0 ? void 0 : fileData.value),
104
- valueType: typeof (fileData === null || fileData === void 0 ? void 0 : fileData.value),
105
- valueIsBuffer: Buffer.isBuffer(fileData === null || fileData === void 0 ? void 0 : fileData.value),
106
- hasOptions: !!(fileData === null || fileData === void 0 ? void 0 : fileData.options),
107
- filename: (_a = fileData === null || fileData === void 0 ? void 0 : fileData.options) === null || _a === void 0 ? void 0 : _a.filename,
108
- contentType: (_b = fileData === null || fileData === void 0 ? void 0 : fileData.options) === null || _b === void 0 ? void 0 : _b.contentType
109
- });
110
- let fileBuffer;
111
- if (!(fileData === null || fileData === void 0 ? void 0 : fileData.value)) {
112
- throw new Error('File data value is missing or undefined');
113
- }
114
- if (Buffer.isBuffer(fileData.value)) {
115
- fileBuffer = fileData.value;
116
- console.log('Value is already a Buffer');
117
- }
118
- else if (typeof fileData.value === 'string') {
119
- console.log('Value is a string, length:', fileData.value.length);
120
- const base64Regex = /^[A-Za-z0-9+/]+=*$/;
121
- const cleanValue = fileData.value.replace(/[\r\n\s]/g, '');
122
- const looksLikeBase64 = base64Regex.test(cleanValue) && cleanValue.length > 50;
123
- console.log('String analysis:');
124
- console.log(' - First 100 chars:', fileData.value.substring(0, 100));
125
- console.log(' - Looks like base64:', looksLikeBase64);
126
- if (looksLikeBase64) {
127
- fileBuffer = Buffer.from(cleanValue, 'base64');
128
- console.log(' - Decoded from base64, result length:', fileBuffer.length);
129
- console.log(' - Decoded preview:', fileBuffer.toString('utf-8').substring(0, 200));
130
- }
131
- else {
132
- fileBuffer = Buffer.from(fileData.value, 'utf-8');
133
- console.log(' - Used as UTF-8, result length:', fileBuffer.length);
134
- }
135
- }
136
- else {
137
- throw new Error(`Invalid file data type: ${typeof fileData.value}`);
138
- }
139
- if (fileBuffer.length === 0) {
140
- throw new Error('File content is empty (0 bytes)');
141
- }
142
- console.log('========================================');
143
- console.log('FILE CONTENT DETAILS');
144
- console.log('========================================');
145
- console.log('Filename:', ((_c = fileData.options) === null || _c === void 0 ? void 0 : _c.filename) || 'unknown');
146
- console.log('Content-Type:', ((_d = fileData.options) === null || _d === void 0 ? void 0 : _d.contentType) || 'unknown');
147
- console.log('Buffer length:', fileBuffer.length);
148
- console.log('Content preview (first 500 chars):');
149
- console.log(fileBuffer.toString('utf-8').substring(0, 500));
150
- console.log('---');
151
- const formData = new form_data_1.default();
152
- formData.append(fileFieldName, fileBuffer, {
153
- filename: ((_e = fileData.options) === null || _e === void 0 ? void 0 : _e.filename) || 'file.csv',
154
- contentType: ((_f = fileData.options) === null || _f === void 0 ? void 0 : _f.contentType) || 'text/csv',
155
- knownLength: fileBuffer.length,
156
- });
157
- const formHeaders = formData.getHeaders();
158
- console.log('========================================');
159
- console.log('FORM DATA DETAILS');
160
- console.log('========================================');
161
- console.log('FormData headers:', formHeaders);
162
- console.log('FormData content-length:', formData.getLengthSync());
163
- const config = {
164
- method: 'POST',
165
- url,
166
- data: formData,
167
- headers: {
168
- ...formHeaders,
169
- },
170
- timeout: 120000,
171
- maxBodyLength: Infinity,
172
- maxContentLength: Infinity,
173
- maxRedirects: 0,
174
- validateStatus: (status) => status >= 200 && status < 400,
175
- };
176
- if (authMethod === 'basic') {
177
- config.auth = { username, password };
178
- }
179
- else {
180
- let authToken = '';
181
- if (authMethod === 'apiKey') {
182
- authToken = credentials === null || credentials === void 0 ? void 0 : credentials.apiKey;
183
- }
184
- else if (authMethod === 'jwt') {
185
- authToken = credentials === null || credentials === void 0 ? void 0 : credentials.jwtToken;
186
- }
187
- else if (authMethod === 'oauth2') {
188
- authToken = credentials === null || credentials === void 0 ? void 0 : credentials.oauth2Token;
189
- }
190
- config.headers['Authorization'] = `Bearer ${authToken}`;
191
- }
192
- console.log('========================================');
193
- console.log('SENDING REQUEST');
194
- console.log('========================================');
195
- console.log('Method:', config.method);
196
- console.log('URL:', config.url);
197
- console.log('Has auth:', !!config.auth);
198
- console.log('Headers:', JSON.stringify({ ...config.headers, Authorization: '[REDACTED]' }, null, 2));
199
- let response;
200
- let currentUrl = url;
201
- let redirectCount = 0;
202
- const maxRedirects = 5;
203
- while (true) {
204
- try {
205
- const currentFormData = new form_data_1.default();
206
- currentFormData.append(fileFieldName, fileBuffer, {
207
- filename: ((_g = fileData.options) === null || _g === void 0 ? void 0 : _g.filename) || 'file.csv',
208
- contentType: ((_h = fileData.options) === null || _h === void 0 ? void 0 : _h.contentType) || 'text/csv',
209
- knownLength: fileBuffer.length,
210
- });
211
- const currentConfig = {
212
- ...config,
213
- url: currentUrl,
214
- data: currentFormData,
215
- headers: {
216
- ...currentFormData.getHeaders(),
217
- ...(config.auth ? {} : { Authorization: config.headers['Authorization'] }),
218
- },
219
- maxRedirects: 0,
220
- validateStatus: () => true,
221
- };
222
- if (config.auth) {
223
- currentConfig.auth = config.auth;
224
- }
225
- console.log(`Request attempt ${redirectCount + 1} to: ${currentUrl}`);
226
- response = await (0, axios_1.default)(currentConfig);
227
- console.log('Response status:', response.status);
228
- console.log('Response headers:', JSON.stringify(response.headers, null, 2));
229
- if (response.status >= 300 && response.status < 400) {
230
- const location = response.headers['location'];
231
- if (!location) {
232
- throw new Error(`Redirect response (${response.status}) without Location header`);
233
- }
234
- redirectCount++;
235
- if (redirectCount > maxRedirects) {
236
- throw new Error(`Too many redirects (${maxRedirects})`);
237
- }
238
- if (location.startsWith('http')) {
239
- currentUrl = location;
240
- }
241
- else if (location.startsWith('/')) {
242
- const urlObj = new URL(currentUrl);
243
- currentUrl = `${urlObj.protocol}//${urlObj.host}${location}`;
244
- }
245
- else {
246
- const urlObj = new URL(currentUrl);
247
- const basePath = urlObj.pathname.substring(0, urlObj.pathname.lastIndexOf('/') + 1);
248
- currentUrl = `${urlObj.protocol}//${urlObj.host}${basePath}${location}`;
249
- }
250
- console.log(`Following redirect to: ${currentUrl}`);
251
- continue;
252
- }
253
- break;
254
- }
255
- catch (axiosError) {
256
- if (axios_1.default.isAxiosError(axiosError) && axiosError.response) {
257
- response = axiosError.response;
258
- break;
259
- }
260
- throw axiosError;
261
- }
262
- }
263
- console.log('========================================');
264
- console.log('RESPONSE RECEIVED');
265
- console.log('========================================');
266
- console.log('Final URL:', currentUrl);
267
- console.log('Status:', response.status, response.statusText);
268
- console.log('Response data:', JSON.stringify(response.data, null, 2));
269
- if (response.status >= 400) {
270
- const errorData = response.data;
271
- throw new Error(`HTTP ${response.status}: ${JSON.stringify(errorData)}`);
272
- }
273
- return response.data;
274
- }
275
- async function handleJsonRequest(method, url, body, authMethod, credentials) {
276
- let authHeader;
277
- if (authMethod === 'basic') {
278
- const username = credentials === null || credentials === void 0 ? void 0 : credentials.username;
279
- const password = credentials === null || credentials === void 0 ? void 0 : credentials.password;
280
- authHeader = 'Basic ' + Buffer.from(`${username}:${password}`).toString('base64');
281
- }
282
- else if (authMethod === 'apiKey') {
283
- authHeader = `Bearer ${credentials === null || credentials === void 0 ? void 0 : credentials.apiKey}`;
284
- }
285
- else if (authMethod === 'jwt') {
286
- authHeader = `Bearer ${credentials === null || credentials === void 0 ? void 0 : credentials.jwtToken}`;
287
- }
288
- else if (authMethod === 'oauth2') {
289
- authHeader = `Bearer ${credentials === null || credentials === void 0 ? void 0 : credentials.oauth2Token}`;
290
- }
291
- else {
292
- throw new Error('Invalid auth method');
293
- }
294
- const options = {
295
- method,
296
- url,
297
- body,
298
- json: true,
299
- timeout: 30000,
300
- headers: {
301
- 'Content-Type': 'application/json',
302
- 'Authorization': authHeader,
303
- },
304
- };
305
- return await this.helpers.httpRequest(options);
306
- }
307
215
  function getBaseUrl(credentials) {
308
216
  const baseUrl = credentials === null || credentials === void 0 ? void 0 : credentials.baseUrl;
309
217
  if (!baseUrl) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../nodes/Blossom/shared/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../nodes/Blossom/shared/transport.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-blossom",
3
- "version": "2.3.29",
3
+ "version": "2.4.0",
4
4
  "description": "n8n node for Blossom API integration - Generic integration for any Blossom instance",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/HirezRa/n8n-nodes-blossom",