UNPKG

n8n-nodes-cloudinary

Version:

The official Cloudinary n8n node - upload media, update asset tags and metadata, and more

36 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMultipartBody = exports.generateCloudinarySignature = void 0; const sha256_utils_1 = require("./sha256.utils"); const generateCloudinarySignature = (params, apiSecret) => { const { signature, api_key, file, ...paramsToSign } = params; const sortedParams = Object.keys(paramsToSign) .sort() .map((key) => `${key}=${paramsToSign[key]}`) .join('&'); const stringToSign = `${sortedParams}${apiSecret}`; return (0, sha256_utils_1.sha256)(stringToSign); }; exports.generateCloudinarySignature = generateCloudinarySignature; const createMultipartBody = (fields, fileData, fileName, mimeType) => { const boundary = `----formdata-n8n-${Math.random().toString(16).slice(2)}`; const CRLF = '\r\n'; let body = ''; for (const [name, value] of Object.entries(fields)) { body += `--${boundary}${CRLF}`; body += `Content-Disposition: form-data; name="${name}"${CRLF}`; body += CRLF; body += value; body += CRLF; } body += `--${boundary}${CRLF}`; body += `Content-Disposition: form-data; name="file"; filename="${fileName}"${CRLF}`; body += `Content-Type: ${mimeType}${CRLF}`; body += CRLF; const textBuffer = Buffer.from(body, 'utf8'); const endBuffer = Buffer.from(`${CRLF}--${boundary}--${CRLF}`, 'utf8'); const finalBody = Buffer.concat([textBuffer, fileData, endBuffer]); return { body: finalBody, boundary }; }; exports.createMultipartBody = createMultipartBody; //# sourceMappingURL=cloudinary.utils.js.map