From d69c7b0b1a2610c6197db045aef017a686caeb24 Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 17 Nov 2011 10:09:20 -0500 Subject: [PATCH 1/8] Detect and decode base64 strings that are returned by AWS when XML-restricted characters are present. --- lib/simpledb.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/simpledb.js b/lib/simpledb.js index 965aa7b..6a41057 100644 --- a/lib/simpledb.js +++ b/lib/simpledb.js @@ -214,14 +214,21 @@ exports.SimpleDB = function(opts,logger) { function getattrs(out,attrs,asarrays) { + attrs.forEach(function(attr){ - var n = out[attr.Name] - + var n = out[attr.Name], + val = attr.Value; + + if (val['@'] && val['@'].encoding === 'base64') { // Check for base64 encoding + val = new Buffer(val['#'], 'base64').toString('utf8'); + } + + if( asarrays ) { - (out[attr.Name] = n?n:[]).push(attr.Value) + (out[attr.Name] = n?n:[]).push(val) } else { - out[attr.Name] = (n?n+',':'') + attr.Value + out[attr.Name] = (n?n+',':'') + val } }) } From 5193839b7902177827ff0bbe22fc4e2a24d7e40c Mon Sep 17 00:00:00 2001 From: Aaron Goertzen Date: Thu, 17 Nov 2011 10:55:37 -0500 Subject: [PATCH 2/8] Return empty strings correctly --- lib/simpledb.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/simpledb.js b/lib/simpledb.js index 6a41057..aef7ddc 100644 --- a/lib/simpledb.js +++ b/lib/simpledb.js @@ -219,10 +219,13 @@ exports.SimpleDB = function(opts,logger) { var n = out[attr.Name], val = attr.Value; - if (val['@'] && val['@'].encoding === 'base64') { // Check for base64 encoding - val = new Buffer(val['#'], 'base64').toString('utf8'); + if (typeof val === 'object') { + if (val['@'] && val['@'].encoding === 'base64') { // Check for base64 encoding + val = new Buffer(val['#'], 'base64').toString('utf8'); + } else { // The XML parser returns empty strings as val = {} + val = ''; + } } - if( asarrays ) { (out[attr.Name] = n?n:[]).push(val) From f44b40c4dfef13766ac2a5c9ce192154e7081f45 Mon Sep 17 00:00:00 2001 From: Aaron G Date: Wed, 30 Nov 2011 09:29:52 -0500 Subject: [PATCH 3/8] Add NPM ignore --- .npmignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +node_modules From 3f1d1e06e1416416ced3b7ed460e434494772f13 Mon Sep 17 00:00:00 2001 From: Aaron G Date: Wed, 30 Nov 2011 09:30:33 -0500 Subject: [PATCH 4/8] Add git ignore --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2ffdc63..3c3629e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -keys.mine.js -*~ +node_modules From aeb862083fc8add37f428dd7024b4ae1e8934353 Mon Sep 17 00:00:00 2001 From: Aaron G Date: Wed, 30 Nov 2011 09:31:17 -0500 Subject: [PATCH 5/8] Depend on aws-lib repository - NPM package has bugs --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fed2294..db5b666 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "John Roberts " ], "dependencies": { - "aws-lib": ">0.0.1" + "aws-lib": "git://github.com/livelycode/aws-lib.git" }, "main": "lib/simpledb", "directories": { @@ -20,4 +20,4 @@ "engines": { "node": "*" } -} \ No newline at end of file +} From 4269ae3835ee907294568d62c643ead346226094 Mon Sep 17 00:00:00 2001 From: Aaron G Date: Wed, 21 Mar 2012 19:11:11 -0400 Subject: [PATCH 6/8] Specify aws-lib version in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index db5b666..16d4e5c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "John Roberts " ], "dependencies": { - "aws-lib": "git://github.com/livelycode/aws-lib.git" + "aws-lib": "git://github.com/livelycode/aws-lib.git#v0.0.5" }, "main": "lib/simpledb", "directories": { From 401ebaffc2ee26f44917dfa9e388b305ba5267a0 Mon Sep 17 00:00:00 2001 From: Aaron G Date: Fri, 23 Mar 2012 08:34:52 -0400 Subject: [PATCH 7/8] Fix aws-lib dependency --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 16d4e5c..cc35f2c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "John Roberts " ], "dependencies": { - "aws-lib": "git://github.com/livelycode/aws-lib.git#v0.0.5" + "aws-lib": "0.0.5" }, "main": "lib/simpledb", "directories": { From 3a897ba0fbdb55d0d7233ce0c745bb88410bc511 Mon Sep 17 00:00:00 2001 From: Aaron G Date: Fri, 23 Mar 2012 12:31:42 -0400 Subject: [PATCH 8/8] Again fix aws-lib issue --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cc35f2c..7c73c80 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "John Roberts " ], "dependencies": { - "aws-lib": "0.0.5" + "aws-lib": "git://github.com/livelycode/aws-lib.git#46b88355d6c2117447c4c4b0252aa7a4953ad74e" }, "main": "lib/simpledb", "directories": {