From 4dadec5ae9fe56955015f0be404c61c2965ecd5c Mon Sep 17 00:00:00 2001
From: Daniela Arcese <dnarcese@gmail.com>
Date: Fri, 23 Jun 2017 12:10:53 -0400
Subject: [PATCH 1/7] fix conflicts

---
 frontend/src/upload.js  | 166 ++++++++++++++++++++++++----------------
 server/portal_server.js |  17 ++++
 views/index.handlebars  |  19 +++--
 3 files changed, 128 insertions(+), 74 deletions(-)

diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index 984787f4..1ef072e6 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -11,13 +11,18 @@ $(document).ready(function() {
   $copyBtn.html('Copy');
 
   $('#page-one').show();
-  $('#file-list').hide();
+  $('#file-list').show();
   $('#upload-progress').hide();
   $('#share-link').hide();
 
+  for(let i=0; i<localStorage.length; i++) {
+    let id = localStorage.key(i);
+    checkUploads(id);
+  }
+
   // copy link to clipboard
   $copyBtn.click(() => {
-    const aux = document.createElement('input');
+    var aux = document.createElement('input');
     aux.setAttribute('value', $('#link').attr('value'));
     document.body.appendChild(aux);
     aux.select();
@@ -52,39 +57,6 @@ $(document).ready(function() {
       file = event.target.files[0];
     }
 
-    const $fileList = $('#uploaded-files');
-    const row = document.createElement('tr');
-    const name = document.createElement('td');
-    const link = document.createElement('td');
-    const expiry = document.createElement('td');
-    const del = document.createElement('td');
-    del.setAttribute('align', 'center');
-    const btn = document.createElement('button');
-    const popupDiv = document.createElement('div');
-    const $popupText = $('<span>', { class: 'popuptext' });
-    const cellText = document.createTextNode(file.name);
-
-    name.appendChild(cellText);
-
-    // create delete button
-    btn.innerHTML = 'x';
-    btn.classList.add('delete-btn');
-
-    // create popup
-    popupDiv.classList.add('popup');
-    $popupText.html(
-      '<span class="del-file">Delete</span><span class="nvm" > Nevermind</span>'
-    );
-
-    // add data cells to table row
-    row.appendChild(name);
-    row.appendChild(link);
-    row.appendChild(expiry);
-    popupDiv.appendChild(btn);
-    $(popupDiv).append($popupText);
-    del.appendChild(popupDiv);
-    row.appendChild(del);
-
     const fileSender = new FileSender(file);
     fileSender.on('progress', percentComplete => {
       $('#page-one').hide();
@@ -96,53 +68,111 @@ $(document).ready(function() {
         .querySelector('#progress-bar')
         .style.setProperty('--progress', percentComplete + '%');
       $('#progress-text').html(`${percentComplete}%`);
-      if (percentComplete === 100) {
-        notify('Your upload has finished.');
-      }
+
     });
     fileSender.upload().then(info => {
       const url = info.url.trim() + `#${info.secretKey}`.trim();
       $('#link').attr('value', url);
-      link.innerHTML = url;
+
       localStorage.setItem(info.fileId, info.deleteToken);
 
-      // delete file
-      $popupText.find('.del-file').click(e => {
-        FileSender.delete(
-          info.fileId,
-          localStorage.getItem(info.fileId)
-        ).then(() => {
-          $(e.target).parents('tr').remove();
-          localStorage.removeItem(info.fileId);
-        })
-        .catch(err => { 
-          Raven.captureException(err);
-          return Promise.reject(err);
-        });
-      });
-
-      // show popup
-      del.addEventListener('click', toggleShow);
-      // hide popup
-      $popupText.find('.nvm').click(toggleShow);
-
-      $fileList.append(row); //add row to table
       $('#page-one').hide();
       $('#file-list').hide();
       $('#upload-progress').hide();
       $('#share-link').show();
-    })
-    .catch(err => {
-      Raven.captureException(err);
-      return Promise.reject(err);
-    });
 
-    function toggleShow() {
-      $popupText.toggleClass('show');
-    }
+      checkUploads(info.fileId, url);
+    });
   };
 
   window.allowDrop = function(ev) {
     ev.preventDefault();
   };
+
+  //load previous uploads
+  function checkUploads(id, url='') {
+    return new Promise ((resolve, reject) => {
+      const xhr = new XMLHttpRequest();
+      xhr.responseType = 'json';
+      xhr.onreadystatechange = () => {
+        if (xhr.readyState == 4 && xhr.status == 200) {
+          resolve(xhr.response);
+        }
+        else if (xhr.readyState == 4 && xhr.status == 404) {
+          reject('error code: ' + xhr.status);
+        }
+      };
+      xhr.onerror = () => {
+        reject('There was a network error.');
+      };
+      xhr.open('get', '/file/' + id, true);
+      xhr.send();
+    }).then (response => {
+      populateFileList(response, url);
+    }, error => {
+      console.log(error);
+    });
+  }
+
+  //update file table with current files in localStorage
+  function populateFileList(file, url) {
+    console.log(file);
+    const $fileList = $('#uploaded-files');
+    const row = document.createElement('tr');
+    const name = document.createElement('td');
+    const link = document.createElement('td');
+    const expiry = document.createElement('td');
+    const del = document.createElement('td');
+    del.setAttribute('align', 'center');
+    const btn = document.createElement('button');
+    const popupDiv = document.createElement('div');
+    const $popupText = $('<span>', { class: 'popuptext' });
+    const cellText = document.createTextNode(file.name);
+    const progress = document.createElement('p');
+
+    name.appendChild(cellText);
+
+    // create delete button
+    btn.innerHTML = 'x';
+    btn.classList.add('delete-btn');
+    link.innerHTML = url;
+
+    // create popup
+    popupDiv.classList.add('popup');
+    $popupText.html(
+      '<span class="del-file">Delete</span><span class="nvm" > Nevermind</span>'
+    );
+
+    // delete file
+    $popupText.find('.del-file').click(e => {
+      FileSender.delete(
+        file.fileId,
+        localStorage.getItem(file.fileId)
+      ).then(() => {
+        $(e.target).parents('tr').remove();
+        localStorage.removeItem(file.fileId);
+      });
+    });
+
+    // add data cells to table row
+    row.appendChild(name);
+    row.appendChild(link);
+    row.appendChild(expiry);
+    popupDiv.appendChild(btn);
+    $(popupDiv).append($popupText);
+    del.appendChild(popupDiv);
+    row.appendChild(del);
+
+    // show popup
+    del.addEventListener('click', toggleShow);
+    // hide popup
+    $popupText.find('.nvm').click(toggleShow);
+
+    $('tbody').append(row); //add row to table
+
+    function toggleShow() {
+      $popupText.toggleClass('show');
+    }
+  }
+
 });
diff --git a/server/portal_server.js b/server/portal_server.js
index 9dc2cf01..6fba066a 100644
--- a/server/portal_server.js
+++ b/server/portal_server.js
@@ -50,6 +50,23 @@ app.get('/exists/:id', (req, res) => {
   }).catch(err => res.sendStatus(404));
 });
 
+app.get('/file/:id', (req, res) => {
+  let id = req.params.id;
+  storage.filename(id).then(filename => {
+    storage
+      .length(id)
+      .then(contentLength => {
+        res.json({
+          name: filename,
+          filesize: bytes(contentLength),
+          fileId: id
+        })
+      }).catch(() => {
+        console.log('error retrieving id ' + id);
+      });
+  })
+});
+
 app.get('/download/:id', (req, res) => {
   const id = req.params.id;
   storage.filename(id).then(filename => {
diff --git a/views/index.handlebars b/views/index.handlebars
index ed765aed..4ef0788b 100644
--- a/views/index.handlebars
+++ b/views/index.handlebars
@@ -38,12 +38,19 @@
 
     <div id="file-list">
       <table id="uploaded-files">
-        <tr>
-          <th width="30%">File</th>
-          <th width="45%">Copy URL</th>
-          <th width="18%">Expires in</th>
-          <th width="7%">Delete</th>
-        </tr>
+        <thead>
+          <tr>
+            <!-- htmllint attr-bans="false" -->
+            <th width="30%">File</th>
+            <th width="45%">Copy URL</th>
+            <th width="18%">Expires in</th>
+            <th width="7%">Delete</th>
+            <!-- htmllint tag-bans="$previous" -->
+          </tr>
+        </thead>
+        <tbody>
+
+        </tbody>
       </table>
     </div>
 

From 0b4301be9ecfb110973f65eb911d3b42e499fe4d Mon Sep 17 00:00:00 2001
From: Daniela Arcese <dnarcese@gmail.com>
Date: Fri, 23 Jun 2017 13:35:17 -0400
Subject: [PATCH 2/7] fix Nevermind button

---
 frontend/src/upload.js | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index 1ef072e6..9e3ca119 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -166,7 +166,13 @@ $(document).ready(function() {
     // show popup
     del.addEventListener('click', toggleShow);
     // hide popup
-    $popupText.find('.nvm').click(toggleShow);
+    $popupText.find('.nvm').click(function(e){
+      e.stopPropagation();
+      toggleShow();
+    });
+    $popupText.click(function(e){
+      e.stopPropagation();
+    });
 
     $('tbody').append(row); //add row to table
 

From b673fad7030ce7a98c9193e06d05c37ea8f4e4c5 Mon Sep 17 00:00:00 2001
From: Daniela Arcese <dnarcese@gmail.com>
Date: Fri, 23 Jun 2017 15:07:02 -0400
Subject: [PATCH 3/7] load previous uploads from localStorage

---
 frontend/src/upload.js | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index 9e3ca119..af035906 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -17,7 +17,7 @@ $(document).ready(function() {
 
   for(let i=0; i<localStorage.length; i++) {
     let id = localStorage.key(i);
-    checkUploads(id);
+    populateFileList(localStorage.getItem(id));
   }
 
   // copy link to clipboard
@@ -73,15 +73,21 @@ $(document).ready(function() {
     fileSender.upload().then(info => {
       const url = info.url.trim() + `#${info.secretKey}`.trim();
       $('#link').attr('value', url);
-
-      localStorage.setItem(info.fileId, info.deleteToken);
+      const fileData = {
+        name: file.name,
+        fileId: info.fileId,
+        url: info.url,
+        secretKey: info.secretKey,
+        deleteToken: info.deleteToken
+      };
+      localStorage.setItem(info.fileId, JSON.stringify(fileData));
 
       $('#page-one').hide();
       $('#file-list').hide();
       $('#upload-progress').hide();
       $('#share-link').show();
 
-      checkUploads(info.fileId, url);
+      populateFileList(JSON.stringify(fileData));
     });
   };
 
@@ -90,7 +96,7 @@ $(document).ready(function() {
   };
 
   //load previous uploads
-  function checkUploads(id, url='') {
+  function checkUploads(file) {
     return new Promise ((resolve, reject) => {
       const xhr = new XMLHttpRequest();
       xhr.responseType = 'json';
@@ -115,8 +121,9 @@ $(document).ready(function() {
   }
 
   //update file table with current files in localStorage
-  function populateFileList(file, url) {
-    console.log(file);
+  function populateFileList(file) {
+    file = JSON.parse(file);
+
     const $fileList = $('#uploaded-files');
     const row = document.createElement('tr');
     const name = document.createElement('td');
@@ -135,7 +142,7 @@ $(document).ready(function() {
     // create delete button
     btn.innerHTML = 'x';
     btn.classList.add('delete-btn');
-    link.innerHTML = url;
+    link.innerHTML = file.url.trim() + `#${file.secretKey}`.trim();;
 
     // create popup
     popupDiv.classList.add('popup');
@@ -147,7 +154,7 @@ $(document).ready(function() {
     $popupText.find('.del-file').click(e => {
       FileSender.delete(
         file.fileId,
-        localStorage.getItem(file.fileId)
+        file.deleteToken
       ).then(() => {
         $(e.target).parents('tr').remove();
         localStorage.removeItem(file.fileId);

From aa8c1afa9df7460c839021ac2454f674104db89a Mon Sep 17 00:00:00 2001
From: Daniela Arcese <dnarcese@gmail.com>
Date: Fri, 23 Jun 2017 15:17:47 -0400
Subject: [PATCH 4/7] lint

---
 frontend/src/download.js     |  3 +--
 frontend/src/fileReceiver.js | 40 ++++++++++++++++++------------------
 frontend/src/fileSender.js   |  8 ++++----
 frontend/src/upload.js       | 33 ++++++++++++++---------------
 server/portal_server.js      |  7 ++++---
 5 files changed, 44 insertions(+), 47 deletions(-)

diff --git a/frontend/src/download.js b/frontend/src/download.js
index d59691c7..52e71f91 100644
--- a/frontend/src/download.js
+++ b/frontend/src/download.js
@@ -4,7 +4,6 @@ const $ = require('jquery');
 
 const Raven = window.Raven;
 
-
 $(document).ready(function() {
   $('#download-progress').hide();
   $('#send-file').click(() => {
@@ -63,7 +62,7 @@ $(document).ready(function() {
         document.body.appendChild(a);
         a.click();
       })
-      .catch(err => { 
+      .catch(err => {
         Raven.captureException(err);
         return Promise.reject(err);
       });
diff --git a/frontend/src/fileReceiver.js b/frontend/src/fileReceiver.js
index 0b969dbc..d73fae3c 100644
--- a/frontend/src/fileReceiver.js
+++ b/frontend/src/fileReceiver.js
@@ -64,26 +64,26 @@ class FileReceiver extends EventEmitter {
         ['encrypt', 'decrypt']
       )
     ])
-    .then(([fdata, key]) => {
-      const salt = this.salt;
-      return Promise.all([
-        window.crypto.subtle.decrypt(
-          {
-            name: 'AES-CBC',
-            iv: salt
-          },
-          key,
-          fdata.data
-        ),
-        new Promise((resolve, reject) => {
-          resolve(fdata.fname);
-        })
-      ]);
-    })
-    .catch(err => {
-      Raven.captureException(err);
-      return Promise.reject(err);
-    });
+      .then(([fdata, key]) => {
+        const salt = this.salt;
+        return Promise.all([
+          window.crypto.subtle.decrypt(
+            {
+              name: 'AES-CBC',
+              iv: salt
+            },
+            key,
+            fdata.data
+          ),
+          new Promise((resolve, reject) => {
+            resolve(fdata.fname);
+          })
+        ]);
+      })
+      .catch(err => {
+        Raven.captureException(err);
+        return Promise.reject(err);
+      });
   }
 }
 
diff --git a/frontend/src/fileSender.js b/frontend/src/fileSender.js
index af285f86..ede0b252 100644
--- a/frontend/src/fileSender.js
+++ b/frontend/src/fileSender.js
@@ -66,8 +66,8 @@ class FileSender extends EventEmitter {
           window.crypto.subtle.exportKey('jwk', secretKey)
         ]);
       })
-      .catch(err => { 
-        Raven.captureException(err) 
+      .catch(err => {
+        Raven.captureException(err);
         return Promise.reject(err);
       })
       .then(([encrypted, keydata]) => {
@@ -106,8 +106,8 @@ class FileSender extends EventEmitter {
           xhr.send(fd);
         });
       })
-      .catch(err => { 
-        Raven.captureException(err) 
+      .catch(err => {
+        Raven.captureException(err);
         return Promise.reject(err);
       });
   }
diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index af035906..aba17737 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -15,7 +15,7 @@ $(document).ready(function() {
   $('#upload-progress').hide();
   $('#share-link').hide();
 
-  for(let i=0; i<localStorage.length; i++) {
+  for (let i = 0; i < localStorage.length; i++) {
     let id = localStorage.key(i);
     populateFileList(localStorage.getItem(id));
   }
@@ -68,7 +68,6 @@ $(document).ready(function() {
         .querySelector('#progress-bar')
         .style.setProperty('--progress', percentComplete + '%');
       $('#progress-text').html(`${percentComplete}%`);
-
     });
     fileSender.upload().then(info => {
       const url = info.url.trim() + `#${info.secretKey}`.trim();
@@ -97,14 +96,13 @@ $(document).ready(function() {
 
   //load previous uploads
   function checkUploads(file) {
-    return new Promise ((resolve, reject) => {
+    return new Promise((resolve, reject) => {
       const xhr = new XMLHttpRequest();
       xhr.responseType = 'json';
       xhr.onreadystatechange = () => {
         if (xhr.readyState == 4 && xhr.status == 200) {
           resolve(xhr.response);
-        }
-        else if (xhr.readyState == 4 && xhr.status == 404) {
+        } else if (xhr.readyState == 4 && xhr.status == 404) {
           reject('error code: ' + xhr.status);
         }
       };
@@ -113,11 +111,14 @@ $(document).ready(function() {
       };
       xhr.open('get', '/file/' + id, true);
       xhr.send();
-    }).then (response => {
-      populateFileList(response, url);
-    }, error => {
-      console.log(error);
-    });
+    }).then(
+      response => {
+        populateFileList(response, url);
+      },
+      error => {
+        console.log(error);
+      }
+    );
   }
 
   //update file table with current files in localStorage
@@ -142,7 +143,7 @@ $(document).ready(function() {
     // create delete button
     btn.innerHTML = 'x';
     btn.classList.add('delete-btn');
-    link.innerHTML = file.url.trim() + `#${file.secretKey}`.trim();;
+    link.innerHTML = file.url.trim() + `#${file.secretKey}`.trim();
 
     // create popup
     popupDiv.classList.add('popup');
@@ -152,10 +153,7 @@ $(document).ready(function() {
 
     // delete file
     $popupText.find('.del-file').click(e => {
-      FileSender.delete(
-        file.fileId,
-        file.deleteToken
-      ).then(() => {
+      FileSender.delete(file.fileId, file.deleteToken).then(() => {
         $(e.target).parents('tr').remove();
         localStorage.removeItem(file.fileId);
       });
@@ -173,11 +171,11 @@ $(document).ready(function() {
     // show popup
     del.addEventListener('click', toggleShow);
     // hide popup
-    $popupText.find('.nvm').click(function(e){
+    $popupText.find('.nvm').click(function(e) {
       e.stopPropagation();
       toggleShow();
     });
-    $popupText.click(function(e){
+    $popupText.click(function(e) {
       e.stopPropagation();
     });
 
@@ -187,5 +185,4 @@ $(document).ready(function() {
       $popupText.toggleClass('show');
     }
   }
-
 });
diff --git a/server/portal_server.js b/server/portal_server.js
index 6fba066a..9939a979 100644
--- a/server/portal_server.js
+++ b/server/portal_server.js
@@ -60,11 +60,12 @@ app.get('/file/:id', (req, res) => {
           name: filename,
           filesize: bytes(contentLength),
           fileId: id
-        })
-      }).catch(() => {
+        });
+      })
+      .catch(() => {
         console.log('error retrieving id ' + id);
       });
-  })
+  });
 });
 
 app.get('/download/:id', (req, res) => {

From 6ee2df5adc908dd1d6ef70680b77d14152278102 Mon Sep 17 00:00:00 2001
From: Daniela Arcese <dnarcese@gmail.com>
Date: Fri, 23 Jun 2017 15:37:34 -0400
Subject: [PATCH 5/7] removing unused code

---
 frontend/src/upload.js  | 27 ---------------------------
 server/portal_server.js | 18 ------------------
 2 files changed, 45 deletions(-)

diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index aba17737..1e5bb5f5 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -94,33 +94,6 @@ $(document).ready(function() {
     ev.preventDefault();
   };
 
-  //load previous uploads
-  function checkUploads(file) {
-    return new Promise((resolve, reject) => {
-      const xhr = new XMLHttpRequest();
-      xhr.responseType = 'json';
-      xhr.onreadystatechange = () => {
-        if (xhr.readyState == 4 && xhr.status == 200) {
-          resolve(xhr.response);
-        } else if (xhr.readyState == 4 && xhr.status == 404) {
-          reject('error code: ' + xhr.status);
-        }
-      };
-      xhr.onerror = () => {
-        reject('There was a network error.');
-      };
-      xhr.open('get', '/file/' + id, true);
-      xhr.send();
-    }).then(
-      response => {
-        populateFileList(response, url);
-      },
-      error => {
-        console.log(error);
-      }
-    );
-  }
-
   //update file table with current files in localStorage
   function populateFileList(file) {
     file = JSON.parse(file);
diff --git a/server/portal_server.js b/server/portal_server.js
index 9939a979..9dc2cf01 100644
--- a/server/portal_server.js
+++ b/server/portal_server.js
@@ -50,24 +50,6 @@ app.get('/exists/:id', (req, res) => {
   }).catch(err => res.sendStatus(404));
 });
 
-app.get('/file/:id', (req, res) => {
-  let id = req.params.id;
-  storage.filename(id).then(filename => {
-    storage
-      .length(id)
-      .then(contentLength => {
-        res.json({
-          name: filename,
-          filesize: bytes(contentLength),
-          fileId: id
-        });
-      })
-      .catch(() => {
-        console.log('error retrieving id ' + id);
-      });
-  });
-});
-
 app.get('/download/:id', (req, res) => {
   const id = req.params.id;
   storage.filename(id).then(filename => {

From eda901ba4addc94b37d029dd6fea3db8ed77b01f Mon Sep 17 00:00:00 2001
From: Danny Coates <dannycoates@gmail.com>
Date: Fri, 23 Jun 2017 17:05:41 -0700
Subject: [PATCH 6/7] fixed lint

---
 frontend/src/fileSender.js |  4 ----
 frontend/src/upload.js     | 14 +++++++-------
 package-lock.json          |  6 +++---
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/frontend/src/fileSender.js b/frontend/src/fileSender.js
index ede0b252..c443443a 100644
--- a/frontend/src/fileSender.js
+++ b/frontend/src/fileSender.js
@@ -66,10 +66,6 @@ class FileSender extends EventEmitter {
           window.crypto.subtle.exportKey('jwk', secretKey)
         ]);
       })
-      .catch(err => {
-        Raven.captureException(err);
-        return Promise.reject(err);
-      })
       .then(([encrypted, keydata]) => {
         return new Promise((resolve, reject) => {
           const file = this.file;
diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index 1e5bb5f5..4988e001 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -2,8 +2,6 @@ const FileSender = require('./fileSender');
 const { notify } = require('./utils');
 const $ = require('jquery');
 
-const Raven = window.Raven;
-
 $(document).ready(function() {
   // reset copy button
   const $copyBtn = $('#copy-btn');
@@ -16,13 +14,13 @@ $(document).ready(function() {
   $('#share-link').hide();
 
   for (let i = 0; i < localStorage.length; i++) {
-    let id = localStorage.key(i);
+    const id = localStorage.key(i);
     populateFileList(localStorage.getItem(id));
   }
 
   // copy link to clipboard
   $copyBtn.click(() => {
-    var aux = document.createElement('input');
+    const aux = document.createElement('input');
     aux.setAttribute('value', $('#link').attr('value'));
     document.body.appendChild(aux);
     aux.select();
@@ -87,6 +85,7 @@ $(document).ready(function() {
       $('#share-link').show();
 
       populateFileList(JSON.stringify(fileData));
+      notify('Your upload has finished.');
     });
   };
 
@@ -96,9 +95,11 @@ $(document).ready(function() {
 
   //update file table with current files in localStorage
   function populateFileList(file) {
-    file = JSON.parse(file);
+    try {
+      file = JSON.parse(file);
+    }
+    catch (e) { return }
 
-    const $fileList = $('#uploaded-files');
     const row = document.createElement('tr');
     const name = document.createElement('td');
     const link = document.createElement('td');
@@ -109,7 +110,6 @@ $(document).ready(function() {
     const popupDiv = document.createElement('div');
     const $popupText = $('<span>', { class: 'popuptext' });
     const cellText = document.createTextNode(file.name);
-    const progress = document.createElement('p');
 
     name.appendChild(cellText);
 
diff --git a/package-lock.json b/package-lock.json
index 3ab4be91..e456c480 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -198,9 +198,9 @@
       "dev": true
     },
     "aws-sdk": {
-      "version": "2.76.0",
-      "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.76.0.tgz",
-      "integrity": "sha1-LDe/BON6tKJrX/fHWD1ZYDTHYwk="
+      "version": "2.77.0",
+      "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.77.0.tgz",
+      "integrity": "sha1-gJCQu4dNj0//ysUxZilYdjjnhlw="
     },
     "babel-code-frame": {
       "version": "6.22.0",

From d09b97db41d8a62cb9324ff63abe60b57de79132 Mon Sep 17 00:00:00 2001
From: Danny Coates <dannycoates@gmail.com>
Date: Fri, 23 Jun 2017 17:06:08 -0700
Subject: [PATCH 7/7] npm run format

---
 frontend/src/upload.js     |  3 ++-
 server/config.js           |  3 ++-
 server/portal_server.js    |  9 ++++++---
 test/local.storage.test.js | 14 ++++++++------
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/frontend/src/upload.js b/frontend/src/upload.js
index 4988e001..6d902b0d 100644
--- a/frontend/src/upload.js
+++ b/frontend/src/upload.js
@@ -97,8 +97,9 @@ $(document).ready(function() {
   function populateFileList(file) {
     try {
       file = JSON.parse(file);
+    } catch (e) {
+      return;
     }
-    catch (e) { return }
 
     const row = document.createElement('tr');
     const name = document.createElement('td');
diff --git a/server/config.js b/server/config.js
index c49681b8..efe47a40 100644
--- a/server/config.js
+++ b/server/config.js
@@ -24,7 +24,8 @@ const conf = convict({
   },
   sentry_id: {
     format: String,
-    default: 'https://cdf9a4f43a584f759586af8ceb2194f2@sentry.prod.mozaws.net/238',
+    default:
+      'https://cdf9a4f43a584f759586af8ceb2194f2@sentry.prod.mozaws.net/238',
     env: 'P2P_SENTRY_CLIENT'
   },
   sentry_dsn: {
diff --git a/server/portal_server.js b/server/portal_server.js
index 9dc2cf01..7a4b4af9 100644
--- a/server/portal_server.js
+++ b/server/portal_server.js
@@ -45,9 +45,12 @@ app.get('/', (req, res) => {
 
 app.get('/exists/:id', (req, res) => {
   const id = req.params.id;
-  storage.exists(id).then(() => {
-    res.sendStatus(200);
-  }).catch(err => res.sendStatus(404));
+  storage
+    .exists(id)
+    .then(() => {
+      res.sendStatus(200);
+    })
+    .catch(err => res.sendStatus(404));
 });
 
 app.get('/download/:id', (req, res) => {
diff --git a/test/local.storage.test.js b/test/local.storage.test.js
index d7d33f1b..6dcdd6f2 100644
--- a/test/local.storage.test.js
+++ b/test/local.storage.test.js
@@ -44,16 +44,18 @@ const storage = proxyquire('../server/storage', {
 describe('Testing Exists from local filesystem', function() {
   it('Exists returns true when file exists', function() {
     exists.callsArgWith(1, null, 1);
-    return storage.exists('test')
-                  .then(() => assert(1))
-                  .catch(err => assert.fail())
+    return storage
+      .exists('test')
+      .then(() => assert(1))
+      .catch(err => assert.fail());
   });
 
   it('Exists returns false when file does not exist', function() {
     exists.callsArgWith(1, null, 0);
-    return storage.exists('test')
-                  .then(() => assert.fail())
-                  .catch(err => assert(1))
+    return storage
+      .exists('test')
+      .then(() => assert.fail())
+      .catch(err => assert(1));
   });
 });