From 8b53d09ad329df2f78e95514db4cc135600232f6 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 7 Sep 2017 10:28:52 +0100 Subject: [PATCH] handle multi-line base64 strings --- parsers/base64/70-base64.js | 7 ++++--- parsers/base64/package.json | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/parsers/base64/70-base64.js b/parsers/base64/70-base64.js index 319f7716..741fa5dc 100644 --- a/parsers/base64/70-base64.js +++ b/parsers/base64/70-base64.js @@ -14,9 +14,10 @@ module.exports = function(RED) { } else if (typeof msg.payload === "string") { // Take base64 string and make into binary buffer - var regexp = new RegExp('^[A-Za-z0-9+\/=]*$'); - if ( regexp.test(msg.payload) && (msg.payload.length % 4 === 0) ) { - msg.payload = new Buffer(msg.payload,'base64'); + var load = msg.payload.replace(/\s+/g,''); // remove any whitespace + var regexp = new RegExp('^[A-Za-z0-9+\/=]*$'); // check it only contains valid characters + if ( regexp.test(load) && (load.length % 4 === 0) ) { + msg.payload = new Buffer(load,'base64'); node.send(msg); } else { diff --git a/parsers/base64/package.json b/parsers/base64/package.json index 204c6a7a..83d991e6 100644 --- a/parsers/base64/package.json +++ b/parsers/base64/package.json @@ -1,6 +1,6 @@ { "name" : "node-red-node-base64", - "version" : "0.0.6", + "version" : "0.0.7", "description" : "A Node-RED node to pack and unpack objects to base64 format", "dependencies" : { },