From 3d2ee6c3fe2c895f366e86d506cfda19306f717f Mon Sep 17 00:00:00 2001
From: Misko Hevery <misko@hevery.com>
Date: Thu, 24 Aug 2017 12:49:58 -0700
Subject: [PATCH] build: fix build; missing firebase-tools

---
 aio/scripts/deploy-to-firebase.sh     |    4 +-
 integration/ng-cli-create.sh          |    2 +-
 npm-shrinkwrap.clean.json             | 2520 +++++++++++++++
 npm-shrinkwrap.json                   | 4052 +++++++++++++++++++++++++
 package.json                          |    1 +
 scripts/ci/payload-size.sh            |    7 +-
 scripts/ci/publish-build-artifacts.sh |    4 +-
 7 files changed, 6583 insertions(+), 7 deletions(-)

diff --git a/aio/scripts/deploy-to-firebase.sh b/aio/scripts/deploy-to-firebase.sh
index 90ccedd954..794c8000d6 100755
--- a/aio/scripts/deploy-to-firebase.sh
+++ b/aio/scripts/deploy-to-firebase.sh
@@ -96,8 +96,8 @@ fi
   yarn payload-size
 
   # Deploy to Firebase
-  firebase use "$projectId" --token "$firebaseToken"
-  firebase deploy --message "Commit: $TRAVIS_COMMIT" --non-interactive --token "$firebaseToken"
+  $PROJECT_ROOT/node_modules/.bin/firebase use "$projectId" --token "$firebaseToken"
+  $PROJECT_ROOT/node_modules/.bin/firebase deploy --message "Commit: $TRAVIS_COMMIT" --non-interactive --token "$firebaseToken"
 
   # Run PWA-score tests
   yarn test-pwa-score -- "$deployedUrl" "$MIN_PWA_SCORE"
diff --git a/integration/ng-cli-create.sh b/integration/ng-cli-create.sh
index a7d1ce2a79..8177088680 100755
--- a/integration/ng-cli-create.sh
+++ b/integration/ng-cli-create.sh
@@ -21,7 +21,7 @@ else
     cd $INTEGRATION_DIR
     rm -rf $PROJECT
     $NG set --global packageManager=yarn
-    $NG new $PROJECT --skip-install
+    $NG new $PROJECT --skip-install --skip-git
     echo "==================="
     echo $PROJECT created
     echo "==================="
diff --git a/npm-shrinkwrap.clean.json b/npm-shrinkwrap.clean.json
index f973941057..3df94b57ac 100644
--- a/npm-shrinkwrap.clean.json
+++ b/npm-shrinkwrap.clean.json
@@ -13,6 +13,262 @@
         }
       }
     },
+    "@google-cloud/common": {
+      "version": "0.13.4",
+      "dependencies": {
+        "array-uniq": {
+          "version": "1.0.3"
+        },
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
+    "@google-cloud/functions-emulator": {
+      "version": "1.0.0-alpha.25",
+      "dependencies": {
+        "ajv": {
+          "version": "5.2.2"
+        },
+        "ansi-regex": {
+          "version": "3.0.0"
+        },
+        "balanced-match": {
+          "version": "1.0.0"
+        },
+        "body-parser": {
+          "version": "1.17.2"
+        },
+        "brace-expansion": {
+          "version": "1.1.8"
+        },
+        "bytes": {
+          "version": "2.4.0"
+        },
+        "camelcase": {
+          "version": "4.1.0"
+        },
+        "cliui": {
+          "version": "3.2.0",
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2"
+            }
+          }
+        },
+        "configstore": {
+          "version": "3.1.1"
+        },
+        "content-type": {
+          "version": "1.0.2"
+        },
+        "debug": {
+          "version": "2.6.7"
+        },
+        "depd": {
+          "version": "1.1.1"
+        },
+        "dot-prop": {
+          "version": "4.2.0"
+        },
+        "find-up": {
+          "version": "2.1.0"
+        },
+        "glob": {
+          "version": "7.1.2"
+        },
+        "got": {
+          "version": "7.1.0"
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        },
+        "http-errors": {
+          "version": "1.6.2"
+        },
+        "http-proxy": {
+          "version": "1.16.2"
+        },
+        "iconv-lite": {
+          "version": "0.4.15"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "load-json-file": {
+          "version": "2.0.0"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "minimatch": {
+          "version": "3.0.4"
+        },
+        "ms": {
+          "version": "2.0.0"
+        },
+        "os-locale": {
+          "version": "2.1.0"
+        },
+        "path-type": {
+          "version": "2.0.0"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "raw-body": {
+          "version": "2.2.0"
+        },
+        "read-pkg": {
+          "version": "2.0.0"
+        },
+        "read-pkg-up": {
+          "version": "2.0.0"
+        },
+        "rimraf": {
+          "version": "2.6.1"
+        },
+        "semver": {
+          "version": "5.4.1"
+        },
+        "signal-exit": {
+          "version": "3.0.2"
+        },
+        "statuses": {
+          "version": "1.3.1"
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "dependencies": {
+            "is-fullwidth-code-point": {
+              "version": "2.0.0"
+            },
+            "strip-ansi": {
+              "version": "4.0.0"
+            }
+          }
+        },
+        "strip-bom": {
+          "version": "3.0.0"
+        },
+        "timed-out": {
+          "version": "4.0.1"
+        },
+        "tmp": {
+          "version": "0.0.33"
+        },
+        "type-is": {
+          "version": "1.6.15"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        },
+        "wrap-ansi": {
+          "version": "2.1.0",
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2"
+            }
+          }
+        },
+        "write-file-atomic": {
+          "version": "2.3.0"
+        },
+        "xdg-basedir": {
+          "version": "3.0.0"
+        },
+        "y18n": {
+          "version": "3.2.1"
+        },
+        "yargs": {
+          "version": "8.0.2"
+        }
+      }
+    },
+    "@google-cloud/storage": {
+      "version": "1.2.1",
+      "dependencies": {
+        "async": {
+          "version": "2.5.0"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        },
+        "readable-stream": {
+          "version": "2.3.3"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "string_decoder": {
+          "version": "1.0.3"
+        },
+        "through2": {
+          "version": "2.0.3"
+        }
+      }
+    },
     "@types/angularjs": {
       "version": "1.5.13-alpha"
     },
@@ -155,6 +411,9 @@
     "are-we-there-yet": {
       "version": "1.1.2"
     },
+    "arguejs": {
+      "version": "0.2.3"
+    },
     "arr-diff": {
       "version": "2.0.0"
     },
@@ -164,6 +423,9 @@
     "array-differ": {
       "version": "1.0.0"
     },
+    "array-flatten": {
+      "version": "1.1.1"
+    },
     "array-ify": {
       "version": "1.0.0"
     },
@@ -185,6 +447,9 @@
     "arrify": {
       "version": "1.0.1"
     },
+    "as-array": {
+      "version": "2.0.0"
+    },
     "asap": {
       "version": "2.0.3"
     },
@@ -253,6 +518,9 @@
     "base64id": {
       "version": "0.1.0"
     },
+    "base64url": {
+      "version": "2.0.0"
+    },
     "basic-auth": {
       "version": "1.0.3"
     },
@@ -1484,6 +1752,12 @@
     "buffer-crc32": {
       "version": "0.2.5"
     },
+    "buffer-equal": {
+      "version": "1.0.0"
+    },
+    "buffer-equal-constant-time": {
+      "version": "1.0.1"
+    },
     "buffer-shims": {
       "version": "1.0.0"
     },
@@ -1535,12 +1809,21 @@
     "change-case": {
       "version": "3.0.0"
     },
+    "char-spinner": {
+      "version": "1.0.1"
+    },
     "chokidar": {
       "version": "1.4.2"
     },
+    "chownr": {
+      "version": "1.0.1"
+    },
     "ci-info": {
       "version": "1.0.0"
     },
+    "cjson": {
+      "version": "0.3.3"
+    },
     "clang-format": {
       "version": "1.0.41",
       "dependencies": {
@@ -1630,6 +1913,20 @@
     "cli-cursor": {
       "version": "1.0.2"
     },
+    "cli-spinners": {
+      "version": "0.1.2"
+    },
+    "cli-table": {
+      "version": "0.3.1",
+      "dependencies": {
+        "colors": {
+          "version": "1.0.3"
+        }
+      }
+    },
+    "cli-table2": {
+      "version": "0.2.0"
+    },
     "cli-width": {
       "version": "2.1.0"
     },
@@ -1679,6 +1976,9 @@
     "compare-func": {
       "version": "1.3.2"
     },
+    "compare-semver": {
+      "version": "1.1.0"
+    },
     "component-bind": {
       "version": "1.0.0"
     },
@@ -1741,6 +2041,14 @@
     "connect-livereload": {
       "version": "0.5.4"
     },
+    "connect-query": {
+      "version": "1.0.0",
+      "dependencies": {
+        "qs": {
+          "version": "6.4.0"
+        }
+      }
+    },
     "connect-timeout": {
       "version": "1.6.2"
     },
@@ -1756,6 +2064,9 @@
     "constants-browserify": {
       "version": "0.0.1"
     },
+    "content-disposition": {
+      "version": "0.5.2"
+    },
     "content-type": {
       "version": "1.0.1"
     },
@@ -1875,18 +2186,43 @@
     "create-error-class": {
       "version": "3.0.2"
     },
+    "cross-spawn": {
+      "version": "4.0.2",
+      "dependencies": {
+        "lru-cache": {
+          "version": "4.1.1"
+        }
+      }
+    },
     "cryptiles": {
       "version": "2.0.5"
     },
     "crypto-browserify": {
       "version": "3.2.8"
     },
+    "crypto-random-string": {
+      "version": "1.0.0"
+    },
     "csrf": {
       "version": "3.0.0"
     },
     "csurf": {
       "version": "1.8.3"
     },
+    "csv-streamify": {
+      "version": "3.0.4",
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "readable-stream": {
+          "version": "2.0.6"
+        },
+        "through2": {
+          "version": "2.0.1"
+        }
+      }
+    },
     "ctype": {
       "version": "0.5.3"
     },
@@ -1925,6 +2261,12 @@
     "decamelize": {
       "version": "1.1.2"
     },
+    "decompress-response": {
+      "version": "3.3.0"
+    },
+    "deep-equal": {
+      "version": "0.2.2"
+    },
     "deep-extend": {
       "version": "0.4.1"
     },
@@ -1981,6 +2323,9 @@
     "di": {
       "version": "0.0.1"
     },
+    "didyoumean": {
+      "version": "1.2.1"
+    },
     "diff": {
       "version": "2.2.1"
     },
@@ -2022,12 +2367,43 @@
     "duplexer2": {
       "version": "0.0.2"
     },
+    "duplexer3": {
+      "version": "0.1.4"
+    },
+    "duplexify": {
+      "version": "3.5.1",
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3"
+            }
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "string_decoder": {
+          "version": "1.0.3"
+        }
+      }
+    },
     "ecc-jsbn": {
       "version": "0.1.1"
     },
+    "ecdsa-sig-formatter": {
+      "version": "1.0.9"
+    },
     "ee-first": {
       "version": "1.1.1"
     },
+    "encodeurl": {
+      "version": "1.0.1"
+    },
     "end-of-stream": {
       "version": "1.1.0"
     },
@@ -2102,6 +2478,26 @@
     "es6-promise": {
       "version": "3.3.1"
     },
+    "es6-set": {
+      "version": "0.1.5",
+      "dependencies": {
+        "d": {
+          "version": "1.0.0"
+        },
+        "es5-ext": {
+          "version": "0.10.29"
+        },
+        "es6-iterator": {
+          "version": "2.0.1"
+        },
+        "es6-symbol": {
+          "version": "3.1.1"
+        },
+        "event-emitter": {
+          "version": "0.3.5"
+        }
+      }
+    },
     "es6-symbol": {
       "version": "3.0.2"
     },
@@ -2154,9 +2550,26 @@
     "events": {
       "version": "1.1.1"
     },
+    "execa": {
+      "version": "0.7.0",
+      "dependencies": {
+        "cross-spawn": {
+          "version": "5.1.0"
+        },
+        "lru-cache": {
+          "version": "4.1.1"
+        },
+        "signal-exit": {
+          "version": "3.0.2"
+        }
+      }
+    },
     "exit": {
       "version": "0.1.2"
     },
+    "exit-code": {
+      "version": "1.0.2"
+    },
     "exit-hook": {
       "version": "1.1.1"
     },
@@ -2183,6 +2596,86 @@
     "expand-range": {
       "version": "1.8.1"
     },
+    "express": {
+      "version": "4.15.4",
+      "dependencies": {
+        "accepts": {
+          "version": "1.3.4"
+        },
+        "content-type": {
+          "version": "1.0.2"
+        },
+        "cookie": {
+          "version": "0.3.1"
+        },
+        "debug": {
+          "version": "2.6.8"
+        },
+        "depd": {
+          "version": "1.1.1"
+        },
+        "destroy": {
+          "version": "1.0.4"
+        },
+        "escape-html": {
+          "version": "1.0.3"
+        },
+        "etag": {
+          "version": "1.8.0"
+        },
+        "finalhandler": {
+          "version": "1.0.4"
+        },
+        "fresh": {
+          "version": "0.5.0"
+        },
+        "http-errors": {
+          "version": "1.6.2"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "methods": {
+          "version": "1.1.2"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "ms": {
+          "version": "2.0.0"
+        },
+        "negotiator": {
+          "version": "0.6.1"
+        },
+        "parseurl": {
+          "version": "1.3.1"
+        },
+        "qs": {
+          "version": "6.5.0"
+        },
+        "range-parser": {
+          "version": "1.2.0"
+        },
+        "send": {
+          "version": "0.15.4"
+        },
+        "serve-static": {
+          "version": "1.12.4"
+        },
+        "statuses": {
+          "version": "1.3.1"
+        },
+        "type-is": {
+          "version": "1.6.15"
+        },
+        "vary": {
+          "version": "1.1.1"
+        }
+      }
+    },
     "express-session": {
       "version": "1.11.3"
     },
@@ -2229,6 +2722,12 @@
         }
       }
     },
+    "fast-deep-equal": {
+      "version": "1.0.0"
+    },
+    "fast-url-parser": {
+      "version": "1.1.3"
+    },
     "faye-websocket": {
       "version": "0.10.0"
     },
@@ -2254,6 +2753,9 @@
     "filename-regex": {
       "version": "2.0.0"
     },
+    "filesize": {
+      "version": "3.5.10"
+    },
     "fill-range": {
       "version": "2.2.3"
     },
@@ -2277,6 +2779,213 @@
         }
       }
     },
+    "firebase": {
+      "version": "2.4.2",
+      "dependencies": {
+        "faye-websocket": {
+          "version": "0.9.3",
+          "dependencies": {
+            "websocket-driver": {
+              "version": "0.5.2",
+              "dependencies": {
+                "websocket-extensions": {
+                  "version": "0.1.1"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "firebase-tools": {
+      "version": "3.9.2",
+      "dependencies": {
+        "archiver": {
+          "version": "0.16.0",
+          "dependencies": {
+            "glob": {
+              "version": "5.0.15"
+            },
+            "lodash": {
+              "version": "3.10.1"
+            }
+          }
+        },
+        "async": {
+          "version": "1.4.2"
+        },
+        "balanced-match": {
+          "version": "1.0.0"
+        },
+        "bl": {
+          "version": "1.2.1",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3"
+            },
+            "isarray": {
+              "version": "1.0.0"
+            },
+            "readable-stream": {
+              "version": "2.3.3"
+            },
+            "string_decoder": {
+              "version": "1.0.3"
+            }
+          }
+        },
+        "brace-expansion": {
+          "version": "1.1.8"
+        },
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "colors": {
+          "version": "1.0.3"
+        },
+        "compress-commons": {
+          "version": "0.3.0"
+        },
+        "configstore": {
+          "version": "1.4.0",
+          "dependencies": {
+            "uuid": {
+              "version": "2.0.3"
+            }
+          }
+        },
+        "fs-extra": {
+          "version": "0.23.1"
+        },
+        "glob": {
+          "version": "7.1.2",
+          "dependencies": {
+            "minimatch": {
+              "version": "3.0.4"
+            }
+          }
+        },
+        "got": {
+          "version": "3.3.1",
+          "dependencies": {
+            "object-assign": {
+              "version": "3.0.0"
+            }
+          }
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "inquirer": {
+          "version": "0.12.0"
+        },
+        "JSONStream": {
+          "version": "1.3.1"
+        },
+        "latest-version": {
+          "version": "1.0.1"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "node-int64": {
+          "version": "0.4.0"
+        },
+        "package-json": {
+          "version": "1.2.0"
+        },
+        "progress": {
+          "version": "2.0.0"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "readable-stream": {
+          "version": "1.0.34"
+        },
+        "repeating": {
+          "version": "1.1.3"
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "run-async": {
+          "version": "0.1.0"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "tar": {
+          "version": "3.2.1"
+        },
+        "tar-stream": {
+          "version": "1.2.2",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3"
+            },
+            "isarray": {
+              "version": "1.0.0"
+            },
+            "readable-stream": {
+              "version": "2.3.3"
+            },
+            "string_decoder": {
+              "version": "1.0.3"
+            }
+          }
+        },
+        "timed-out": {
+          "version": "2.0.0"
+        },
+        "tmp": {
+          "version": "0.0.27"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "update-notifier": {
+          "version": "0.5.0"
+        },
+        "user-home": {
+          "version": "2.0.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        },
+        "winston": {
+          "version": "1.1.2",
+          "dependencies": {
+            "async": {
+              "version": "1.0.0"
+            }
+          }
+        },
+        "yallist": {
+          "version": "3.0.2"
+        },
+        "zip-stream": {
+          "version": "0.6.0",
+          "dependencies": {
+            "lodash": {
+              "version": "3.10.1"
+            }
+          }
+        }
+      }
+    },
     "firefox-profile": {
       "version": "0.3.11",
       "dependencies": {
@@ -2297,6 +3006,25 @@
     "flagged-respawn": {
       "version": "0.3.1"
     },
+    "flat-arguments": {
+      "version": "1.0.2",
+      "dependencies": {
+        "as-array": {
+          "version": "1.0.0",
+          "dependencies": {
+            "lodash.isarguments": {
+              "version": "2.4.1"
+            },
+            "lodash.isobject": {
+              "version": "2.4.1"
+            }
+          }
+        },
+        "lodash.isobject": {
+          "version": "3.0.2"
+        }
+      }
+    },
     "for-in": {
       "version": "0.1.4"
     },
@@ -2317,6 +3045,9 @@
         }
       }
     },
+    "forwarded": {
+      "version": "0.1.0"
+    },
     "fresh": {
       "version": "0.3.0"
     },
@@ -2720,6 +3451,17 @@
     "fstream": {
       "version": "0.1.31"
     },
+    "fstream-ignore": {
+      "version": "1.0.5",
+      "dependencies": {
+        "fstream": {
+          "version": "1.0.11"
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        }
+      }
+    },
     "fx-runner": {
       "version": "0.0.7",
       "dependencies": {
@@ -2751,12 +3493,150 @@
     "gaze": {
       "version": "0.5.2"
     },
+    "gcp-metadata": {
+      "version": "0.3.0",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "retry-request": {
+          "version": "3.0.0"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
+    "gcs-resumable-upload": {
+      "version": "0.8.1",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "configstore": {
+          "version": "3.1.1"
+        },
+        "dot-prop": {
+          "version": "4.2.0"
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "signal-exit": {
+          "version": "3.0.2"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        },
+        "write-file-atomic": {
+          "version": "2.3.0"
+        },
+        "xdg-basedir": {
+          "version": "3.0.0"
+        }
+      }
+    },
     "generate-function": {
       "version": "2.0.0"
     },
     "generate-object-property": {
       "version": "1.2.0"
     },
+    "get-caller-file": {
+      "version": "1.0.2"
+    },
     "get-pkg-repo": {
       "version": "1.2.1",
       "dependencies": {
@@ -2774,6 +3654,9 @@
     "get-stdin": {
       "version": "4.0.1"
     },
+    "get-stream": {
+      "version": "3.0.0"
+    },
     "getpass": {
       "version": "0.1.6",
       "dependencies": {
@@ -2828,6 +3711,12 @@
     "glob-parent": {
       "version": "2.0.0"
     },
+    "glob-slash": {
+      "version": "1.0.0"
+    },
+    "glob-slasher": {
+      "version": "1.0.1"
+    },
     "glob-stream": {
       "version": "3.1.18",
       "dependencies": {
@@ -2881,6 +3770,93 @@
     "glogg": {
       "version": "1.0.0"
     },
+    "google-auth-library": {
+      "version": "0.10.0",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
+    "google-auto-auth": {
+      "version": "0.7.2",
+      "dependencies": {
+        "async": {
+          "version": "2.5.0"
+        },
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
+    "google-p12-pem": {
+      "version": "0.1.2"
+    },
+    "google-proto-files": {
+      "version": "0.12.1"
+    },
+    "googleapis": {
+      "version": "20.1.0",
+      "dependencies": {
+        "async": {
+          "version": "2.3.0"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        }
+      }
+    },
     "got": {
       "version": "5.7.1",
       "dependencies": {
@@ -2901,6 +3877,519 @@
     "graceful-readlink": {
       "version": "1.0.1"
     },
+    "grpc": {
+      "version": "1.4.1",
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.4"
+        },
+        "node-pre-gyp": {
+          "version": "0.6.36",
+          "dependencies": {
+            "mkdirp": {
+              "version": "0.5.1",
+              "dependencies": {
+                "minimist": {
+                  "version": "0.0.8"
+                }
+              }
+            },
+            "nopt": {
+              "version": "4.0.1",
+              "dependencies": {
+                "abbrev": {
+                  "version": "1.1.0"
+                },
+                "osenv": {
+                  "version": "0.1.4",
+                  "dependencies": {
+                    "os-homedir": {
+                      "version": "1.0.2"
+                    },
+                    "os-tmpdir": {
+                      "version": "1.0.2"
+                    }
+                  }
+                }
+              }
+            },
+            "npmlog": {
+              "version": "4.1.2",
+              "dependencies": {
+                "are-we-there-yet": {
+                  "version": "1.1.4",
+                  "dependencies": {
+                    "delegates": {
+                      "version": "1.0.0"
+                    },
+                    "readable-stream": {
+                      "version": "2.3.2",
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "1.0.2"
+                        },
+                        "inherits": {
+                          "version": "2.0.3"
+                        },
+                        "isarray": {
+                          "version": "1.0.0"
+                        },
+                        "process-nextick-args": {
+                          "version": "1.0.7"
+                        },
+                        "safe-buffer": {
+                          "version": "5.1.1"
+                        },
+                        "string_decoder": {
+                          "version": "1.0.3"
+                        },
+                        "util-deprecate": {
+                          "version": "1.0.2"
+                        }
+                      }
+                    }
+                  }
+                },
+                "console-control-strings": {
+                  "version": "1.1.0"
+                },
+                "gauge": {
+                  "version": "2.7.4",
+                  "dependencies": {
+                    "aproba": {
+                      "version": "1.1.2"
+                    },
+                    "has-unicode": {
+                      "version": "2.0.1"
+                    },
+                    "object-assign": {
+                      "version": "4.1.1"
+                    },
+                    "signal-exit": {
+                      "version": "3.0.2"
+                    },
+                    "string-width": {
+                      "version": "1.0.2",
+                      "dependencies": {
+                        "code-point-at": {
+                          "version": "1.1.0"
+                        },
+                        "is-fullwidth-code-point": {
+                          "version": "1.0.0",
+                          "dependencies": {
+                            "number-is-nan": {
+                              "version": "1.0.1"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "strip-ansi": {
+                      "version": "3.0.1",
+                      "dependencies": {
+                        "ansi-regex": {
+                          "version": "2.1.1"
+                        }
+                      }
+                    },
+                    "wide-align": {
+                      "version": "1.1.2"
+                    }
+                  }
+                },
+                "set-blocking": {
+                  "version": "2.0.0"
+                }
+              }
+            },
+            "rc": {
+              "version": "1.2.1",
+              "dependencies": {
+                "deep-extend": {
+                  "version": "0.4.2"
+                },
+                "ini": {
+                  "version": "1.3.4"
+                },
+                "minimist": {
+                  "version": "1.2.0"
+                },
+                "strip-json-comments": {
+                  "version": "2.0.1"
+                }
+              }
+            },
+            "request": {
+              "version": "2.81.0",
+              "dependencies": {
+                "aws-sign2": {
+                  "version": "0.6.0"
+                },
+                "aws4": {
+                  "version": "1.6.0"
+                },
+                "caseless": {
+                  "version": "0.12.0"
+                },
+                "combined-stream": {
+                  "version": "1.0.5",
+                  "dependencies": {
+                    "delayed-stream": {
+                      "version": "1.0.0"
+                    }
+                  }
+                },
+                "extend": {
+                  "version": "3.0.1"
+                },
+                "forever-agent": {
+                  "version": "0.6.1"
+                },
+                "form-data": {
+                  "version": "2.1.4",
+                  "dependencies": {
+                    "asynckit": {
+                      "version": "0.4.0"
+                    }
+                  }
+                },
+                "har-validator": {
+                  "version": "4.2.1",
+                  "dependencies": {
+                    "ajv": {
+                      "version": "4.11.8",
+                      "dependencies": {
+                        "co": {
+                          "version": "4.6.0"
+                        },
+                        "json-stable-stringify": {
+                          "version": "1.0.1",
+                          "dependencies": {
+                            "jsonify": {
+                              "version": "0.0.0"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "har-schema": {
+                      "version": "1.0.5"
+                    }
+                  }
+                },
+                "hawk": {
+                  "version": "3.1.3",
+                  "dependencies": {
+                    "boom": {
+                      "version": "2.10.1"
+                    },
+                    "cryptiles": {
+                      "version": "2.0.5"
+                    },
+                    "hoek": {
+                      "version": "2.16.3"
+                    },
+                    "sntp": {
+                      "version": "1.0.9"
+                    }
+                  }
+                },
+                "http-signature": {
+                  "version": "1.1.1",
+                  "dependencies": {
+                    "assert-plus": {
+                      "version": "0.2.0"
+                    },
+                    "jsprim": {
+                      "version": "1.4.0",
+                      "dependencies": {
+                        "assert-plus": {
+                          "version": "1.0.0"
+                        },
+                        "extsprintf": {
+                          "version": "1.0.2"
+                        },
+                        "json-schema": {
+                          "version": "0.2.3"
+                        },
+                        "verror": {
+                          "version": "1.3.6"
+                        }
+                      }
+                    },
+                    "sshpk": {
+                      "version": "1.13.1",
+                      "dependencies": {
+                        "asn1": {
+                          "version": "0.2.3"
+                        },
+                        "assert-plus": {
+                          "version": "1.0.0"
+                        },
+                        "bcrypt-pbkdf": {
+                          "version": "1.0.1"
+                        },
+                        "dashdash": {
+                          "version": "1.14.1"
+                        },
+                        "ecc-jsbn": {
+                          "version": "0.1.1"
+                        },
+                        "getpass": {
+                          "version": "0.1.7"
+                        },
+                        "jsbn": {
+                          "version": "0.1.1"
+                        },
+                        "tweetnacl": {
+                          "version": "0.14.5"
+                        }
+                      }
+                    }
+                  }
+                },
+                "is-typedarray": {
+                  "version": "1.0.0"
+                },
+                "isstream": {
+                  "version": "0.1.2"
+                },
+                "json-stringify-safe": {
+                  "version": "5.0.1"
+                },
+                "mime-types": {
+                  "version": "2.1.15",
+                  "dependencies": {
+                    "mime-db": {
+                      "version": "1.27.0"
+                    }
+                  }
+                },
+                "oauth-sign": {
+                  "version": "0.8.2"
+                },
+                "performance-now": {
+                  "version": "0.2.0"
+                },
+                "qs": {
+                  "version": "6.4.0"
+                },
+                "safe-buffer": {
+                  "version": "5.1.1"
+                },
+                "stringstream": {
+                  "version": "0.0.5"
+                },
+                "tough-cookie": {
+                  "version": "2.3.2",
+                  "dependencies": {
+                    "punycode": {
+                      "version": "1.4.1"
+                    }
+                  }
+                },
+                "tunnel-agent": {
+                  "version": "0.6.0"
+                },
+                "uuid": {
+                  "version": "3.1.0"
+                }
+              }
+            },
+            "rimraf": {
+              "version": "2.6.1",
+              "dependencies": {
+                "glob": {
+                  "version": "7.1.2",
+                  "dependencies": {
+                    "fs.realpath": {
+                      "version": "1.0.0"
+                    },
+                    "inflight": {
+                      "version": "1.0.6",
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2"
+                        }
+                      }
+                    },
+                    "inherits": {
+                      "version": "2.0.3"
+                    },
+                    "minimatch": {
+                      "version": "3.0.4",
+                      "dependencies": {
+                        "brace-expansion": {
+                          "version": "1.1.8",
+                          "dependencies": {
+                            "balanced-match": {
+                              "version": "1.0.0"
+                            },
+                            "concat-map": {
+                              "version": "0.0.1"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "once": {
+                      "version": "1.4.0",
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2"
+                        }
+                      }
+                    },
+                    "path-is-absolute": {
+                      "version": "1.0.1"
+                    }
+                  }
+                }
+              }
+            },
+            "semver": {
+              "version": "5.3.0"
+            },
+            "tar": {
+              "version": "2.2.1",
+              "dependencies": {
+                "block-stream": {
+                  "version": "0.0.9"
+                },
+                "fstream": {
+                  "version": "1.0.11",
+                  "dependencies": {
+                    "graceful-fs": {
+                      "version": "4.1.11"
+                    }
+                  }
+                },
+                "inherits": {
+                  "version": "2.0.3"
+                }
+              }
+            },
+            "tar-pack": {
+              "version": "3.4.0",
+              "dependencies": {
+                "debug": {
+                  "version": "2.6.8",
+                  "dependencies": {
+                    "ms": {
+                      "version": "2.0.0"
+                    }
+                  }
+                },
+                "fstream": {
+                  "version": "1.0.11",
+                  "dependencies": {
+                    "graceful-fs": {
+                      "version": "4.1.11"
+                    },
+                    "inherits": {
+                      "version": "2.0.3"
+                    }
+                  }
+                },
+                "fstream-ignore": {
+                  "version": "1.0.5",
+                  "dependencies": {
+                    "inherits": {
+                      "version": "2.0.3"
+                    },
+                    "minimatch": {
+                      "version": "3.0.4",
+                      "dependencies": {
+                        "brace-expansion": {
+                          "version": "1.1.8",
+                          "dependencies": {
+                            "balanced-match": {
+                              "version": "1.0.0"
+                            },
+                            "concat-map": {
+                              "version": "0.0.1"
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "once": {
+                  "version": "1.4.0",
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "1.0.2"
+                    }
+                  }
+                },
+                "readable-stream": {
+                  "version": "2.3.2",
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2"
+                    },
+                    "inherits": {
+                      "version": "2.0.3"
+                    },
+                    "isarray": {
+                      "version": "1.0.0"
+                    },
+                    "process-nextick-args": {
+                      "version": "1.0.7"
+                    },
+                    "safe-buffer": {
+                      "version": "5.1.1"
+                    },
+                    "string_decoder": {
+                      "version": "1.0.3"
+                    },
+                    "util-deprecate": {
+                      "version": "1.0.2"
+                    }
+                  }
+                },
+                "uid-number": {
+                  "version": "0.0.6"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "gtoken": {
+      "version": "1.2.2",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
     "gulp": {
       "version": "3.9.0",
       "dependencies": {
@@ -3080,9 +4569,38 @@
     "has-gulplog": {
       "version": "0.1.0"
     },
+    "has-symbol-support-x": {
+      "version": "1.4.0"
+    },
+    "has-to-string-tag-x": {
+      "version": "1.4.0"
+    },
     "has-unicode": {
       "version": "2.0.1"
     },
+    "hash-stream-validation": {
+      "version": "0.2.1",
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "readable-stream": {
+          "version": "2.3.3"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "string_decoder": {
+          "version": "1.0.3"
+        },
+        "through2": {
+          "version": "2.0.3"
+        }
+      }
+    },
     "hashish": {
       "version": "0.0.4"
     },
@@ -3095,6 +4613,9 @@
     "hoek": {
       "version": "2.16.3"
     },
+    "home-dir": {
+      "version": "1.0.0"
+    },
     "hosted-git-info": {
       "version": "2.1.4"
     },
@@ -3135,12 +4656,371 @@
     "https-proxy-agent": {
       "version": "1.0.0"
     },
+    "i": {
+      "version": "0.3.5"
+    },
     "iconv-lite": {
       "version": "0.4.11"
     },
     "ieee754": {
       "version": "1.1.8"
     },
+    "iltorb": {
+      "version": "1.3.4",
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.0"
+        },
+        "ajv": {
+          "version": "4.11.8"
+        },
+        "ansi-regex": {
+          "version": "2.1.1"
+        },
+        "aproba": {
+          "version": "1.1.2"
+        },
+        "are-we-there-yet": {
+          "version": "1.1.4"
+        },
+        "asn1": {
+          "version": "0.2.3"
+        },
+        "assert-plus": {
+          "version": "0.2.0"
+        },
+        "asynckit": {
+          "version": "0.4.0"
+        },
+        "aws-sign2": {
+          "version": "0.6.0"
+        },
+        "aws4": {
+          "version": "1.6.0"
+        },
+        "balanced-match": {
+          "version": "1.0.0"
+        },
+        "bcrypt-pbkdf": {
+          "version": "1.0.1"
+        },
+        "block-stream": {
+          "version": "0.0.9"
+        },
+        "boom": {
+          "version": "2.10.1"
+        },
+        "brace-expansion": {
+          "version": "1.1.8"
+        },
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "co": {
+          "version": "4.6.0"
+        },
+        "code-point-at": {
+          "version": "1.1.0"
+        },
+        "combined-stream": {
+          "version": "1.0.5"
+        },
+        "concat-map": {
+          "version": "0.0.1"
+        },
+        "console-control-strings": {
+          "version": "1.1.0"
+        },
+        "core-util-is": {
+          "version": "1.0.2"
+        },
+        "cryptiles": {
+          "version": "2.0.5"
+        },
+        "dashdash": {
+          "version": "1.14.1",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0"
+            }
+          }
+        },
+        "debug": {
+          "version": "2.6.8"
+        },
+        "deep-extend": {
+          "version": "0.4.2"
+        },
+        "delayed-stream": {
+          "version": "1.0.0"
+        },
+        "delegates": {
+          "version": "1.0.0"
+        },
+        "ecc-jsbn": {
+          "version": "0.1.1"
+        },
+        "extend": {
+          "version": "3.0.1"
+        },
+        "extsprintf": {
+          "version": "1.0.2"
+        },
+        "forever-agent": {
+          "version": "0.6.1"
+        },
+        "form-data": {
+          "version": "2.1.4"
+        },
+        "fs.realpath": {
+          "version": "1.0.0"
+        },
+        "fstream": {
+          "version": "1.0.11"
+        },
+        "fstream-ignore": {
+          "version": "1.0.5"
+        },
+        "gauge": {
+          "version": "2.7.4"
+        },
+        "getpass": {
+          "version": "0.1.7",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0"
+            }
+          }
+        },
+        "glob": {
+          "version": "7.1.2"
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        },
+        "har-schema": {
+          "version": "1.0.5"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "has-unicode": {
+          "version": "2.0.1"
+        },
+        "hawk": {
+          "version": "3.1.3"
+        },
+        "hoek": {
+          "version": "2.16.3"
+        },
+        "http-signature": {
+          "version": "1.1.1"
+        },
+        "inflight": {
+          "version": "1.0.6"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "ini": {
+          "version": "1.3.4"
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0"
+        },
+        "is-typedarray": {
+          "version": "1.0.0"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "isstream": {
+          "version": "0.1.2"
+        },
+        "jsbn": {
+          "version": "0.1.1"
+        },
+        "json-schema": {
+          "version": "0.2.3"
+        },
+        "json-stable-stringify": {
+          "version": "1.0.1"
+        },
+        "json-stringify-safe": {
+          "version": "5.0.1"
+        },
+        "jsonify": {
+          "version": "0.0.0"
+        },
+        "jsprim": {
+          "version": "1.4.0",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0"
+            }
+          }
+        },
+        "mime-db": {
+          "version": "1.27.0"
+        },
+        "mime-types": {
+          "version": "2.1.15"
+        },
+        "minimatch": {
+          "version": "3.0.4"
+        },
+        "minimist": {
+          "version": "0.0.8"
+        },
+        "mkdirp": {
+          "version": "0.5.1"
+        },
+        "ms": {
+          "version": "2.0.0"
+        },
+        "nan": {
+          "version": "2.6.2"
+        },
+        "node-pre-gyp": {
+          "version": "0.6.36"
+        },
+        "nopt": {
+          "version": "4.0.1"
+        },
+        "npmlog": {
+          "version": "4.1.0"
+        },
+        "number-is-nan": {
+          "version": "1.0.1"
+        },
+        "oauth-sign": {
+          "version": "0.8.2"
+        },
+        "object-assign": {
+          "version": "4.1.1"
+        },
+        "once": {
+          "version": "1.4.0"
+        },
+        "os-homedir": {
+          "version": "1.0.2"
+        },
+        "os-tmpdir": {
+          "version": "1.0.2"
+        },
+        "osenv": {
+          "version": "0.1.4"
+        },
+        "path-is-absolute": {
+          "version": "1.0.1"
+        },
+        "performance-now": {
+          "version": "0.2.0"
+        },
+        "process-nextick-args": {
+          "version": "1.0.7"
+        },
+        "punycode": {
+          "version": "1.4.1"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "rc": {
+          "version": "1.2.1",
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0"
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.1"
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "rimraf": {
+          "version": "2.6.1"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "semver": {
+          "version": "5.3.0"
+        },
+        "set-blocking": {
+          "version": "2.0.0"
+        },
+        "signal-exit": {
+          "version": "3.0.2"
+        },
+        "sntp": {
+          "version": "1.0.9"
+        },
+        "sshpk": {
+          "version": "1.13.1",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0"
+            }
+          }
+        },
+        "string_decoder": {
+          "version": "1.0.2",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.0.1"
+            }
+          }
+        },
+        "string-width": {
+          "version": "1.0.2"
+        },
+        "stringstream": {
+          "version": "0.0.5"
+        },
+        "strip-ansi": {
+          "version": "3.0.1"
+        },
+        "strip-json-comments": {
+          "version": "2.0.1"
+        },
+        "tar": {
+          "version": "2.2.1"
+        },
+        "tar-pack": {
+          "version": "3.4.0"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "tweetnacl": {
+          "version": "0.14.5"
+        },
+        "uid-number": {
+          "version": "0.0.6"
+        },
+        "util-deprecate": {
+          "version": "1.0.2"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        },
+        "verror": {
+          "version": "1.3.6"
+        },
+        "wide-align": {
+          "version": "1.1.2"
+        },
+        "wrappy": {
+          "version": "1.0.2"
+        }
+      }
+    },
     "imurmurhash": {
       "version": "0.1.4"
     },
@@ -3153,6 +5033,9 @@
     "indexof": {
       "version": "0.0.1"
     },
+    "infinity-agent": {
+      "version": "2.0.3"
+    },
     "inflight": {
       "version": "1.0.5"
     },
@@ -3182,6 +5065,12 @@
     "invert-kv": {
       "version": "1.0.0"
     },
+    "ipaddr.js": {
+      "version": "1.4.0"
+    },
+    "is": {
+      "version": "3.2.1"
+    },
     "is-arrayish": {
       "version": "0.2.1"
     },
@@ -3236,6 +5125,9 @@
     "is-obj": {
       "version": "1.0.1"
     },
+    "is-object": {
+      "version": "1.0.1"
+    },
     "is-path-cwd": {
       "version": "1.0.0"
     },
@@ -3245,6 +5137,9 @@
     "is-path-inside": {
       "version": "1.0.0"
     },
+    "is-plain-obj": {
+      "version": "1.1.0"
+    },
     "is-primitive": {
       "version": "2.0.0"
     },
@@ -3263,6 +5158,9 @@
     "is-stream": {
       "version": "1.1.0"
     },
+    "is-stream-ended": {
+      "version": "0.1.3"
+    },
     "is-subset": {
       "version": "0.1.1"
     },
@@ -3275,6 +5173,9 @@
     "is-upper-case": {
       "version": "1.1.2"
     },
+    "is-url": {
+      "version": "1.2.2"
+    },
     "is-utf8": {
       "version": "0.2.1"
     },
@@ -3293,6 +5194,9 @@
     "isstream": {
       "version": "0.1.2"
     },
+    "isurl": {
+      "version": "1.0.0"
+    },
     "jasmine": {
       "version": "2.4.1",
       "dependencies": {
@@ -3327,9 +5231,15 @@
         }
       }
     },
+    "jju": {
+      "version": "1.3.0"
+    },
     "jodid25519": {
       "version": "1.0.2"
     },
+    "join-path": {
+      "version": "1.1.1"
+    },
     "jpm": {
       "version": "1.0.0",
       "dependencies": {
@@ -3373,9 +5283,15 @@
     "jsbn": {
       "version": "0.1.0"
     },
+    "json-parse-helpfulerror": {
+      "version": "1.0.3"
+    },
     "json-schema": {
       "version": "0.2.3"
     },
+    "json-schema-traverse": {
+      "version": "0.3.1"
+    },
     "json-stable-stringify": {
       "version": "1.0.1"
     },
@@ -3400,12 +5316,18 @@
     "jsonpointer": {
       "version": "2.0.0"
     },
+    "jsonschema": {
+      "version": "1.2.0"
+    },
     "JSONStream": {
       "version": "1.0.7"
     },
     "jsontoxml": {
       "version": "0.0.11"
     },
+    "jsonwebtoken": {
+      "version": "5.7.0"
+    },
     "jsprim": {
       "version": "1.3.1"
     },
@@ -3428,6 +5350,12 @@
     "jszip": {
       "version": "2.5.0"
     },
+    "jwa": {
+      "version": "1.1.5"
+    },
+    "jws": {
+      "version": "3.1.4"
+    },
     "karma": {
       "version": "0.13.20",
       "dependencies": {
@@ -3517,6 +5445,14 @@
     "loader-utils": {
       "version": "0.2.12"
     },
+    "locate-path": {
+      "version": "2.0.0",
+      "dependencies": {
+        "path-exists": {
+          "version": "3.0.0"
+        }
+      }
+    },
     "lodash": {
       "version": "3.10.1"
     },
@@ -3535,6 +5471,12 @@
     "lodash._isiterateecall": {
       "version": "3.0.9"
     },
+    "lodash._isnative": {
+      "version": "2.4.1"
+    },
+    "lodash._objecttypes": {
+      "version": "2.4.1"
+    },
     "lodash._reescape": {
       "version": "3.0.0"
     },
@@ -3544,6 +5486,9 @@
     "lodash._reinterpolate": {
       "version": "3.0.0"
     },
+    "lodash._shimkeys": {
+      "version": "2.4.1"
+    },
     "lodash.escape": {
       "version": "3.0.0"
     },
@@ -3553,9 +5498,15 @@
     "lodash.isarray": {
       "version": "3.0.4"
     },
+    "lodash.isobject": {
+      "version": "2.4.1"
+    },
     "lodash.keys": {
       "version": "3.1.2"
     },
+    "lodash.noop": {
+      "version": "3.0.1"
+    },
     "lodash.restparam": {
       "version": "3.6.1"
     },
@@ -3565,6 +5516,17 @@
     "lodash.templatesettings": {
       "version": "3.1.0"
     },
+    "lodash.values": {
+      "version": "2.4.1",
+      "dependencies": {
+        "lodash.keys": {
+          "version": "2.4.1"
+        }
+      }
+    },
+    "log-driver": {
+      "version": "1.2.5"
+    },
     "log4js": {
       "version": "0.6.36",
       "dependencies": {
@@ -3763,6 +5725,9 @@
     "magic-string": {
       "version": "0.16.0"
     },
+    "make-dir": {
+      "version": "1.0.0"
+    },
     "map-obj": {
       "version": "1.0.1"
     },
@@ -3783,6 +5748,9 @@
     "media-typer": {
       "version": "0.3.0"
     },
+    "mem": {
+      "version": "1.1.0"
+    },
     "memoizeasync": {
       "version": "1.0.0",
       "dependencies": {
@@ -3805,6 +5773,12 @@
     "meow": {
       "version": "3.6.0"
     },
+    "merge-descriptors": {
+      "version": "1.0.1"
+    },
+    "methmeth": {
+      "version": "1.1.0"
+    },
     "method-override": {
       "version": "2.3.5"
     },
@@ -3823,12 +5797,29 @@
     "mime-types": {
       "version": "2.0.14"
     },
+    "mimic-fn": {
+      "version": "1.1.0"
+    },
+    "mimic-response": {
+      "version": "1.0.0"
+    },
     "minimatch": {
       "version": "3.0.3"
     },
     "minimist": {
       "version": "1.2.0"
     },
+    "minipass": {
+      "version": "2.2.1",
+      "dependencies": {
+        "yallist": {
+          "version": "3.0.2"
+        }
+      }
+    },
+    "minizlib": {
+      "version": "1.0.3"
+    },
     "mkdirp": {
       "version": "0.5.1",
       "dependencies": {
@@ -3840,6 +5831,9 @@
     "mkdirp-promise": {
       "version": "5.0.1"
     },
+    "modelo": {
+      "version": "4.2.0"
+    },
     "modify-values": {
       "version": "1.0.0"
     },
@@ -3867,9 +5861,23 @@
     "nan": {
       "version": "2.4.0"
     },
+    "nash": {
+      "version": "2.0.4",
+      "dependencies": {
+        "async": {
+          "version": "1.5.2"
+        }
+      }
+    },
+    "ncp": {
+      "version": "1.0.1"
+    },
     "negotiator": {
       "version": "0.5.3"
     },
+    "nested-error-stacks": {
+      "version": "1.0.2"
+    },
     "next-tick": {
       "version": "0.2.2"
     },
@@ -3879,6 +5887,9 @@
     "node-emoji": {
       "version": "1.5.1"
     },
+    "node-forge": {
+      "version": "0.7.1"
+    },
     "node-gyp": {
       "version": "3.5.0",
       "dependencies": {
@@ -3902,6 +5913,68 @@
     "node-libs-browser": {
       "version": "0.6.0"
     },
+    "node-pre-gyp": {
+      "version": "0.6.36",
+      "dependencies": {
+        "balanced-match": {
+          "version": "1.0.0"
+        },
+        "brace-expansion": {
+          "version": "1.1.8"
+        },
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "glob": {
+          "version": "7.1.2"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "minimatch": {
+          "version": "3.0.4"
+        },
+        "nopt": {
+          "version": "4.0.1"
+        },
+        "osenv": {
+          "version": "0.1.4"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "rc": {
+          "version": "1.2.1"
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "rimraf": {
+          "version": "2.6.1"
+        },
+        "semver": {
+          "version": "5.4.1"
+        },
+        "strip-json-comments": {
+          "version": "2.0.1"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
     "node-source-walk": {
       "version": "1.4.2"
     },
@@ -3914,6 +5987,9 @@
     "node-watch": {
       "version": "0.3.4"
     },
+    "node-zopfli": {
+      "version": "1.4.0"
+    },
     "nomnom": {
       "version": "1.8.1",
       "dependencies": {
@@ -3940,6 +6016,9 @@
     "normalize-path": {
       "version": "2.0.1"
     },
+    "npm-run-path": {
+      "version": "2.0.2"
+    },
     "npmconf": {
       "version": "2.0.9",
       "dependencies": {
@@ -3998,6 +6077,9 @@
     "onetime": {
       "version": "1.1.0"
     },
+    "open": {
+      "version": "0.0.5"
+    },
     "optimist": {
       "version": "0.6.1",
       "dependencies": {
@@ -4012,6 +6094,9 @@
     "optjs": {
       "version": "3.2.2"
     },
+    "ora": {
+      "version": "0.2.3"
+    },
     "orchestrator": {
       "version": "0.3.7",
       "dependencies": {
@@ -4044,6 +6129,21 @@
     "over": {
       "version": "0.0.5"
     },
+    "p-cancelable": {
+      "version": "0.3.0"
+    },
+    "p-finally": {
+      "version": "1.0.0"
+    },
+    "p-limit": {
+      "version": "1.1.0"
+    },
+    "p-locate": {
+      "version": "2.0.0"
+    },
+    "p-timeout": {
+      "version": "1.2.0"
+    },
     "package-json": {
       "version": "2.4.0"
     },
@@ -4103,6 +6203,12 @@
     "path-is-inside": {
       "version": "1.0.2"
     },
+    "path-key": {
+      "version": "2.0.1"
+    },
+    "path-to-regexp": {
+      "version": "0.1.7"
+    },
     "path-type": {
       "version": "1.1.0",
       "dependencies": {
@@ -4138,6 +6244,14 @@
     "pkginfo": {
       "version": "0.3.1"
     },
+    "portfinder": {
+      "version": "0.4.0",
+      "dependencies": {
+        "async": {
+          "version": "0.9.0"
+        }
+      }
+    },
     "prepend-http": {
       "version": "1.0.4"
     },
@@ -4159,6 +6273,22 @@
     "promise": {
       "version": "7.1.1"
     },
+    "prompt": {
+      "version": "1.0.0",
+      "dependencies": {
+        "async": {
+          "version": "1.0.0"
+        },
+        "winston": {
+          "version": "2.1.1",
+          "dependencies": {
+            "colors": {
+              "version": "1.0.3"
+            }
+          }
+        }
+      }
+    },
     "promzard": {
       "version": "0.3.0"
     },
@@ -4181,6 +6311,9 @@
         }
       }
     },
+    "protochain": {
+      "version": "1.0.5"
+    },
     "protractor": {
       "version": "4.0.14",
       "dependencies": {
@@ -4237,9 +6370,15 @@
         }
       }
     },
+    "proxy-addr": {
+      "version": "1.1.5"
+    },
     "prr": {
       "version": "0.0.0"
     },
+    "pseudomap": {
+      "version": "1.0.2"
+    },
     "pullstream": {
       "version": "0.4.1",
       "dependencies": {
@@ -4248,6 +6387,12 @@
         }
       }
     },
+    "pump": {
+      "version": "1.0.2"
+    },
+    "pumpify": {
+      "version": "1.3.5"
+    },
     "punycode": {
       "version": "1.4.1"
     },
@@ -4323,6 +6468,9 @@
         }
       }
     },
+    "readline2": {
+      "version": "1.0.1"
+    },
     "rechoir": {
       "version": "0.6.2"
     },
@@ -4423,6 +6571,12 @@
     "request-progress": {
       "version": "0.3.1"
     },
+    "require-directory": {
+      "version": "2.1.1"
+    },
+    "require-main-filename": {
+      "version": "1.0.1"
+    },
     "requires-port": {
       "version": "1.0.0"
     },
@@ -4438,6 +6592,66 @@
     "retry": {
       "version": "0.10.1"
     },
+    "retry-request": {
+      "version": "2.0.5",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0"
+        },
+        "har-validator": {
+          "version": "4.2.1"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "qs": {
+          "version": "6.4.0"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3"
+        },
+        "tough-cookie": {
+          "version": "2.3.2"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0"
+        },
+        "uuid": {
+          "version": "3.1.0"
+        }
+      }
+    },
+    "revalidator": {
+      "version": "0.1.8"
+    },
     "rewire": {
       "version": "2.5.1"
     },
@@ -4484,12 +6698,38 @@
     "rollup-pluginutils": {
       "version": "1.5.2"
     },
+    "router": {
+      "version": "1.3.1",
+      "dependencies": {
+        "array-flatten": {
+          "version": "2.1.1"
+        },
+        "debug": {
+          "version": "2.6.8"
+        },
+        "methods": {
+          "version": "1.1.2"
+        },
+        "ms": {
+          "version": "2.0.0"
+        },
+        "parseurl": {
+          "version": "1.3.1"
+        }
+      }
+    },
+    "rsvp": {
+      "version": "3.6.2"
+    },
     "run-async": {
       "version": "2.3.0"
     },
     "rx": {
       "version": "4.1.0"
     },
+    "rx-lite": {
+      "version": "3.1.2"
+    },
     "rxjs": {
       "version": "5.0.1"
     },
@@ -4579,6 +6819,9 @@
     "sequencify": {
       "version": "0.0.7"
     },
+    "serializerr": {
+      "version": "1.0.3"
+    },
     "serve-favicon": {
       "version": "2.3.0"
     },
@@ -4602,9 +6845,18 @@
     "setimmediate": {
       "version": "1.0.4"
     },
+    "setprototypeof": {
+      "version": "1.0.3"
+    },
     "sha.js": {
       "version": "2.2.6"
     },
+    "shebang-command": {
+      "version": "1.2.0"
+    },
+    "shebang-regex": {
+      "version": "1.0.0"
+    },
     "shelljs": {
       "version": "0.7.6",
       "dependencies": {
@@ -4616,6 +6868,56 @@
         }
       }
     },
+    "shrink-ray": {
+      "version": "0.1.3",
+      "dependencies": {
+        "accepts": {
+          "version": "1.3.4"
+        },
+        "bytes": {
+          "version": "2.2.0"
+        },
+        "compressible": {
+          "version": "2.0.11"
+        },
+        "duplexer2": {
+          "version": "0.1.4"
+        },
+        "inherits": {
+          "version": "2.0.3"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "lru-cache": {
+          "version": "4.1.1"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "multipipe": {
+          "version": "0.3.1"
+        },
+        "negotiator": {
+          "version": "0.6.1"
+        },
+        "readable-stream": {
+          "version": "2.3.3"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "string_decoder": {
+          "version": "1.0.3"
+        },
+        "vary": {
+          "version": "1.1.1"
+        }
+      }
+    },
     "sigmund": {
       "version": "1.0.1"
     },
@@ -4720,6 +7022,17 @@
     "split": {
       "version": "1.0.0"
     },
+    "split-array-stream": {
+      "version": "1.0.3",
+      "dependencies": {
+        "async": {
+          "version": "2.5.0"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        }
+      }
+    },
     "split2": {
       "version": "2.1.0",
       "dependencies": {
@@ -4754,6 +7067,9 @@
     "stream-browserify": {
       "version": "1.0.0"
     },
+    "stream-buffers": {
+      "version": "3.0.1"
+    },
     "stream-combiner": {
       "version": "0.0.4"
     },
@@ -4766,9 +7082,24 @@
     "stream-equal": {
       "version": "0.1.6"
     },
+    "stream-events": {
+      "version": "1.0.2"
+    },
+    "stream-shift": {
+      "version": "1.0.0"
+    },
     "string_decoder": {
       "version": "0.10.31"
     },
+    "string-format-obj": {
+      "version": "1.1.0"
+    },
+    "string-length": {
+      "version": "1.0.1"
+    },
+    "string-template": {
+      "version": "1.0.0"
+    },
     "string-width": {
       "version": "1.0.1",
       "dependencies": {
@@ -4795,15 +7126,113 @@
     "strip-bom": {
       "version": "2.0.0"
     },
+    "strip-eof": {
+      "version": "1.0.0"
+    },
     "strip-indent": {
       "version": "1.0.1"
     },
     "strip-json-comments": {
       "version": "1.0.4"
     },
+    "stubs": {
+      "version": "3.0.0"
+    },
     "success-symbol": {
       "version": "0.1.0"
     },
+    "superstatic": {
+      "version": "4.3.0",
+      "dependencies": {
+        "accepts": {
+          "version": "1.3.4"
+        },
+        "async": {
+          "version": "1.5.2"
+        },
+        "balanced-match": {
+          "version": "1.0.0"
+        },
+        "basic-auth": {
+          "version": "1.1.0"
+        },
+        "brace-expansion": {
+          "version": "1.1.8"
+        },
+        "bytes": {
+          "version": "2.5.0"
+        },
+        "compressible": {
+          "version": "2.0.11"
+        },
+        "compression": {
+          "version": "1.7.0"
+        },
+        "connect": {
+          "version": "3.6.3"
+        },
+        "debug": {
+          "version": "2.6.8"
+        },
+        "depd": {
+          "version": "1.1.1"
+        },
+        "destroy": {
+          "version": "1.0.4"
+        },
+        "escape-html": {
+          "version": "1.0.3"
+        },
+        "finalhandler": {
+          "version": "1.0.4"
+        },
+        "fs-extra": {
+          "version": "0.30.0"
+        },
+        "glob": {
+          "version": "7.1.2"
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        },
+        "lodash": {
+          "version": "4.17.4"
+        },
+        "mime-db": {
+          "version": "1.29.0"
+        },
+        "mime-types": {
+          "version": "2.1.16"
+        },
+        "minimatch": {
+          "version": "3.0.4"
+        },
+        "morgan": {
+          "version": "1.8.2"
+        },
+        "ms": {
+          "version": "2.0.0"
+        },
+        "negotiator": {
+          "version": "0.6.1"
+        },
+        "parseurl": {
+          "version": "1.3.1"
+        },
+        "path-to-regexp": {
+          "version": "1.7.0"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "statuses": {
+          "version": "1.3.1"
+        },
+        "vary": {
+          "version": "1.1.1"
+        }
+      }
+    },
     "supports-color": {
       "version": "2.0.0"
     },
@@ -4830,6 +7259,52 @@
         }
       }
     },
+    "tar-pack": {
+      "version": "3.4.0",
+      "dependencies": {
+        "balanced-match": {
+          "version": "1.0.0"
+        },
+        "brace-expansion": {
+          "version": "1.1.8"
+        },
+        "fstream": {
+          "version": "1.0.11"
+        },
+        "glob": {
+          "version": "7.1.2"
+        },
+        "graceful-fs": {
+          "version": "4.1.11"
+        },
+        "isarray": {
+          "version": "1.0.0"
+        },
+        "minimatch": {
+          "version": "3.0.4"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3"
+            }
+          }
+        },
+        "rimraf": {
+          "version": "2.6.1"
+        },
+        "safe-buffer": {
+          "version": "5.1.1"
+        },
+        "string_decoder": {
+          "version": "1.0.3"
+        },
+        "uid-number": {
+          "version": "0.0.6"
+        }
+      }
+    },
     "tar-stream": {
       "version": "1.1.5",
       "dependencies": {
@@ -4904,6 +7379,14 @@
     "tough-cookie": {
       "version": "2.2.1"
     },
+    "toxic": {
+      "version": "1.0.0",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2"
+        }
+      }
+    },
     "traverse": {
       "version": "0.3.9"
     },
@@ -4913,6 +7396,9 @@
     "trim-off-newlines": {
       "version": "1.0.1"
     },
+    "try-require": {
+      "version": "1.2.1"
+    },
     "ts-api-guardian": {
       "version": "0.2.2",
       "dependencies": {
@@ -5045,6 +7531,9 @@
     "unique-stream": {
       "version": "1.0.0"
     },
+    "unique-string": {
+      "version": "1.0.0"
+    },
     "universal-analytics": {
       "version": "0.3.10"
     },
@@ -5079,9 +7568,15 @@
         }
       }
     },
+    "url-join": {
+      "version": "0.0.1"
+    },
     "url-parse-lax": {
       "version": "1.0.0"
     },
+    "url-to-options": {
+      "version": "1.0.1"
+    },
     "user-home": {
       "version": "1.1.1"
     },
@@ -5102,6 +7597,14 @@
     "util-deprecate": {
       "version": "1.0.2"
     },
+    "utile": {
+      "version": "0.3.0",
+      "dependencies": {
+        "async": {
+          "version": "0.9.2"
+        }
+      }
+    },
     "utils-merge": {
       "version": "1.0.0"
     },
@@ -5111,6 +7614,9 @@
     "v8flags": {
       "version": "2.0.11"
     },
+    "valid-url": {
+      "version": "1.0.9"
+    },
     "validate-npm-package-license": {
       "version": "3.0.1"
     },
@@ -5299,6 +7805,9 @@
     "which": {
       "version": "1.2.10"
     },
+    "which-module": {
+      "version": "2.0.0"
+    },
     "wide-align": {
       "version": "1.1.0"
     },
@@ -5372,9 +7881,20 @@
     "y18n": {
       "version": "3.2.0"
     },
+    "yallist": {
+      "version": "2.1.2"
+    },
     "yargs": {
       "version": "3.31.0"
     },
+    "yargs-parser": {
+      "version": "7.0.0",
+      "dependencies": {
+        "camelcase": {
+          "version": "4.1.0"
+        }
+      }
+    },
     "yarn": {
       "version": "0.19.1",
       "dependencies": {
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 96d352989d..7490791dd0 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -19,6 +19,422 @@
         }
       }
     },
+    "@google-cloud/common": {
+      "version": "0.13.4",
+      "from": "@google-cloud/common@>=0.13.0 <0.14.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.13.4.tgz",
+      "dependencies": {
+        "array-uniq": {
+          "version": "1.0.3",
+          "from": "array-uniq@>=1.0.3 <2.0.0",
+          "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+        },
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.1",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.79.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.0",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3",
+          "from": "through2@^2.0.3",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
+    "@google-cloud/functions-emulator": {
+      "version": "1.0.0-alpha.25",
+      "from": "@google-cloud/functions-emulator@>=1.0.0-alpha.22 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/functions-emulator/-/functions-emulator-1.0.0-alpha.25.tgz",
+      "dependencies": {
+        "ajv": {
+          "version": "5.2.2",
+          "from": "ajv@5.2.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz"
+        },
+        "ansi-regex": {
+          "version": "3.0.0",
+          "from": "ansi-regex@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "from": "balanced-match@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+        },
+        "body-parser": {
+          "version": "1.17.2",
+          "from": "body-parser@1.17.2",
+          "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz"
+        },
+        "brace-expansion": {
+          "version": "1.1.8",
+          "from": "brace-expansion@>=1.1.7 <2.0.0",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+        },
+        "bytes": {
+          "version": "2.4.0",
+          "from": "bytes@2.4.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz"
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "from": "camelcase@>=4.1.0 <5.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz"
+        },
+        "cliui": {
+          "version": "3.2.0",
+          "from": "cliui@>=3.2.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2",
+              "from": "string-width@>=1.0.1 <2.0.0",
+              "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+            }
+          }
+        },
+        "configstore": {
+          "version": "3.1.1",
+          "from": "configstore@3.1.1",
+          "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz"
+        },
+        "content-type": {
+          "version": "1.0.2",
+          "from": "content-type@>=1.0.2 <1.1.0",
+          "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz"
+        },
+        "debug": {
+          "version": "2.6.7",
+          "from": "debug@2.6.7",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz"
+        },
+        "depd": {
+          "version": "1.1.1",
+          "from": "depd@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz"
+        },
+        "dot-prop": {
+          "version": "4.2.0",
+          "from": "dot-prop@^4.1.0",
+          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz"
+        },
+        "find-up": {
+          "version": "2.1.0",
+          "from": "find-up@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@^7.0.5",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+        },
+        "got": {
+          "version": "7.1.0",
+          "from": "got@7.1.0",
+          "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz"
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@^4.1.2",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        },
+        "http-errors": {
+          "version": "1.6.2",
+          "from": "http-errors@>=1.6.1 <1.7.0",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz"
+        },
+        "http-proxy": {
+          "version": "1.16.2",
+          "from": "http-proxy@1.16.2",
+          "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz"
+        },
+        "iconv-lite": {
+          "version": "0.4.15",
+          "from": "iconv-lite@0.4.15",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "load-json-file": {
+          "version": "2.0.0",
+          "from": "load-json-file@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.15",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "from": "minimatch@>=3.0.4 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+        },
+        "ms": {
+          "version": "2.0.0",
+          "from": "ms@2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "from": "os-locale@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz"
+        },
+        "path-type": {
+          "version": "2.0.0",
+          "from": "path-type@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "raw-body": {
+          "version": "2.2.0",
+          "from": "raw-body@>=2.2.0 <2.3.0",
+          "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz"
+        },
+        "read-pkg": {
+          "version": "2.0.0",
+          "from": "read-pkg@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz"
+        },
+        "read-pkg-up": {
+          "version": "2.0.0",
+          "from": "read-pkg-up@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz"
+        },
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@2.6.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        },
+        "semver": {
+          "version": "5.4.1",
+          "from": "semver@5.4.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz"
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "from": "signal-exit@^3.0.2",
+          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+        },
+        "statuses": {
+          "version": "1.3.1",
+          "from": "statuses@>=1.3.1 <2.0.0",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "from": "string-width@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "dependencies": {
+            "is-fullwidth-code-point": {
+              "version": "2.0.0",
+              "from": "is-fullwidth-code-point@>=2.0.0 <3.0.0",
+              "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
+            },
+            "strip-ansi": {
+              "version": "4.0.0",
+              "from": "strip-ansi@>=4.0.0 <5.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
+            }
+          }
+        },
+        "strip-bom": {
+          "version": "3.0.0",
+          "from": "strip-bom@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
+        },
+        "timed-out": {
+          "version": "4.0.1",
+          "from": "timed-out@>=4.0.0 <5.0.0",
+          "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz"
+        },
+        "tmp": {
+          "version": "0.0.33",
+          "from": "tmp@0.0.33",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz"
+        },
+        "type-is": {
+          "version": "1.6.15",
+          "from": "type-is@>=1.6.15 <1.7.0",
+          "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@3.1.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        },
+        "wrap-ansi": {
+          "version": "2.1.0",
+          "from": "wrap-ansi@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2",
+              "from": "string-width@>=1.0.1 <2.0.0",
+              "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+            }
+          }
+        },
+        "write-file-atomic": {
+          "version": "2.3.0",
+          "from": "write-file-atomic@^2.0.0",
+          "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz"
+        },
+        "xdg-basedir": {
+          "version": "3.0.0",
+          "from": "xdg-basedir@^3.0.0",
+          "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz"
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "from": "y18n@>=3.2.1 <4.0.0",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
+        },
+        "yargs": {
+          "version": "8.0.2",
+          "from": "yargs@8.0.2",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz"
+        }
+      }
+    },
+    "@google-cloud/storage": {
+      "version": "1.2.1",
+      "from": "@google-cloud/storage@1.2.1",
+      "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-1.2.1.tgz",
+      "dependencies": {
+        "async": {
+          "version": "2.5.0",
+          "from": "async@>=2.0.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@^4.14.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@~5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+        },
+        "through2": {
+          "version": "2.0.3",
+          "from": "through2@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+        }
+      }
+    },
     "@types/angularjs": {
       "version": "1.5.13-alpha",
       "from": "@types/angularjs@latest",
@@ -249,6 +665,11 @@
       "from": "are-we-there-yet@>=1.1.2 <1.2.0",
       "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz"
     },
+    "arguejs": {
+      "version": "0.2.3",
+      "from": "arguejs@>=0.2.3 <0.3.0",
+      "resolved": "https://registry.npmjs.org/arguejs/-/arguejs-0.2.3.tgz"
+    },
     "arr-diff": {
       "version": "2.0.0",
       "from": "arr-diff@>=2.0.0 <3.0.0",
@@ -264,6 +685,11 @@
       "from": "array-differ@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz"
     },
+    "array-flatten": {
+      "version": "1.1.1",
+      "from": "array-flatten@1.1.1",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
+    },
     "array-ify": {
       "version": "1.0.0",
       "from": "array-ify@>=1.0.0 <2.0.0",
@@ -299,6 +725,11 @@
       "from": "arrify@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
     },
+    "as-array": {
+      "version": "2.0.0",
+      "from": "as-array@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz"
+    },
     "asap": {
       "version": "2.0.3",
       "from": "asap@>=2.0.3 <2.1.0",
@@ -411,6 +842,11 @@
       "from": "base64id@0.1.0",
       "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz"
     },
+    "base64url": {
+      "version": "2.0.0",
+      "from": "base64url@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz"
+    },
     "basic-auth": {
       "version": "1.0.3",
       "from": "basic-auth@>=1.0.3 <1.1.0",
@@ -2312,6 +2748,16 @@
       "from": "buffer-crc32@>=0.2.1 <0.3.0",
       "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz"
     },
+    "buffer-equal": {
+      "version": "1.0.0",
+      "from": "buffer-equal@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz"
+    },
+    "buffer-equal-constant-time": {
+      "version": "1.0.1",
+      "from": "buffer-equal-constant-time@1.0.1",
+      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
+    },
     "buffer-shims": {
       "version": "1.0.0",
       "from": "buffer-shims@>=1.0.0 <2.0.0",
@@ -2397,16 +2843,31 @@
       "from": "change-case@3.0.0",
       "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz"
     },
+    "char-spinner": {
+      "version": "1.0.1",
+      "from": "char-spinner@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz"
+    },
     "chokidar": {
       "version": "1.4.2",
       "from": "chokidar@>=1.1.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.2.tgz"
     },
+    "chownr": {
+      "version": "1.0.1",
+      "from": "chownr@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz"
+    },
     "ci-info": {
       "version": "1.0.0",
       "from": "ci-info@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz"
     },
+    "cjson": {
+      "version": "0.3.3",
+      "from": "cjson@>=0.3.1 <0.4.0",
+      "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz"
+    },
     "clang-format": {
       "version": "1.0.41",
       "from": "clang-format@1.0.41",
@@ -2550,6 +3011,28 @@
       "from": "cli-cursor@>=1.0.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz"
     },
+    "cli-spinners": {
+      "version": "0.1.2",
+      "from": "cli-spinners@>=0.1.2 <0.2.0",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz"
+    },
+    "cli-table": {
+      "version": "0.3.1",
+      "from": "cli-table@>=0.3.1 <0.4.0",
+      "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
+      "dependencies": {
+        "colors": {
+          "version": "1.0.3",
+          "from": "colors@1.0.3",
+          "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"
+        }
+      }
+    },
+    "cli-table2": {
+      "version": "0.2.0",
+      "from": "cli-table2@0.2.0",
+      "resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz"
+    },
     "cli-width": {
       "version": "2.1.0",
       "from": "cli-width@>=2.0.0 <3.0.0",
@@ -2629,6 +3112,11 @@
       "from": "compare-func@>=1.3.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz"
     },
+    "compare-semver": {
+      "version": "1.1.0",
+      "from": "compare-semver@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz"
+    },
     "component-bind": {
       "version": "1.0.0",
       "from": "component-bind@1.0.0",
@@ -2727,6 +3215,18 @@
       "from": "connect-livereload@>=0.5.4 <0.6.0",
       "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz"
     },
+    "connect-query": {
+      "version": "1.0.0",
+      "from": "connect-query@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/connect-query/-/connect-query-1.0.0.tgz",
+      "dependencies": {
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        }
+      }
+    },
     "connect-timeout": {
       "version": "1.6.2",
       "from": "connect-timeout@>=1.6.2 <1.7.0",
@@ -2752,6 +3252,11 @@
       "from": "constants-browserify@>=0.0.1 <0.1.0",
       "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz"
     },
+    "content-disposition": {
+      "version": "0.5.2",
+      "from": "content-disposition@0.5.2",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz"
+    },
     "content-type": {
       "version": "1.0.1",
       "from": "content-type@>=1.0.1 <1.1.0",
@@ -2945,6 +3450,18 @@
       "from": "create-error-class@>=3.0.1 <4.0.0",
       "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz"
     },
+    "cross-spawn": {
+      "version": "4.0.2",
+      "from": "cross-spawn@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+      "dependencies": {
+        "lru-cache": {
+          "version": "4.1.1",
+          "from": "lru-cache@^4.0.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz"
+        }
+      }
+    },
     "cryptiles": {
       "version": "2.0.5",
       "from": "cryptiles@>=2.0.0 <3.0.0",
@@ -2955,6 +3472,11 @@
       "from": "crypto-browserify@>=3.2.6 <3.3.0",
       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz"
     },
+    "crypto-random-string": {
+      "version": "1.0.0",
+      "from": "crypto-random-string@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz"
+    },
     "csrf": {
       "version": "3.0.0",
       "from": "csrf@>=3.0.0 <3.1.0",
@@ -2965,6 +3487,28 @@
       "from": "csurf@>=1.8.3 <1.9.0",
       "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz"
     },
+    "csv-streamify": {
+      "version": "3.0.4",
+      "from": "csv-streamify@>=3.0.4 <4.0.0",
+      "resolved": "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz",
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.0.6",
+          "from": "readable-stream@>=2.0.0 <2.1.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
+        },
+        "through2": {
+          "version": "2.0.1",
+          "from": "through2@2.0.1",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz"
+        }
+      }
+    },
     "ctype": {
       "version": "0.5.3",
       "from": "ctype@0.5.3",
@@ -3027,6 +3571,16 @@
       "from": "decamelize@>=1.1.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.1.2.tgz"
     },
+    "decompress-response": {
+      "version": "3.3.0",
+      "from": "decompress-response@>=3.2.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz"
+    },
+    "deep-equal": {
+      "version": "0.2.2",
+      "from": "deep-equal@>=0.2.1 <0.3.0",
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz"
+    },
     "deep-extend": {
       "version": "0.4.1",
       "from": "deep-extend@>=0.4.0 <0.5.0",
@@ -3119,6 +3673,11 @@
       "from": "di@>=0.0.1 <0.0.2",
       "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz"
     },
+    "didyoumean": {
+      "version": "1.2.1",
+      "from": "didyoumean@>=1.2.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz"
+    },
     "diff": {
       "version": "2.2.1",
       "from": "diff@>=2.0.2 <3.0.0",
@@ -3186,16 +3745,65 @@
       "from": "duplexer2@>=0.0.2 <0.1.0",
       "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz"
     },
+    "duplexer3": {
+      "version": "0.1.4",
+      "from": "duplexer3@>=0.1.4 <0.2.0",
+      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz"
+    },
+    "duplexify": {
+      "version": "3.5.1",
+      "from": "duplexify@>=3.5.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3",
+              "from": "inherits@>=2.0.3 <2.1.0",
+              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+            }
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@>=5.1.1 <5.2.0",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@>=1.0.3 <1.1.0",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+        }
+      }
+    },
     "ecc-jsbn": {
       "version": "0.1.1",
       "from": "ecc-jsbn@>=0.1.1 <0.2.0",
       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"
     },
+    "ecdsa-sig-formatter": {
+      "version": "1.0.9",
+      "from": "ecdsa-sig-formatter@1.0.9",
+      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz"
+    },
     "ee-first": {
       "version": "1.1.1",
       "from": "ee-first@1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
     },
+    "encodeurl": {
+      "version": "1.0.1",
+      "from": "encodeurl@>=1.0.1 <1.1.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz"
+    },
     "end-of-stream": {
       "version": "1.1.0",
       "from": "end-of-stream@>=1.0.0 <2.0.0",
@@ -3314,6 +3922,38 @@
       "from": "es6-promise@>=3.1.2 <4.0.0",
       "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz"
     },
+    "es6-set": {
+      "version": "0.1.5",
+      "from": "es6-set@>=0.1.4 <0.2.0",
+      "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+      "dependencies": {
+        "d": {
+          "version": "1.0.0",
+          "from": "d@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz"
+        },
+        "es5-ext": {
+          "version": "0.10.29",
+          "from": "es5-ext@>=0.10.14 <0.11.0",
+          "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.29.tgz"
+        },
+        "es6-iterator": {
+          "version": "2.0.1",
+          "from": "es6-iterator@>=2.0.1 <2.1.0",
+          "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz"
+        },
+        "es6-symbol": {
+          "version": "3.1.1",
+          "from": "es6-symbol@3.1.1",
+          "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+        },
+        "event-emitter": {
+          "version": "0.3.5",
+          "from": "event-emitter@>=0.3.5 <0.4.0",
+          "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
+        }
+      }
+    },
     "es6-symbol": {
       "version": "3.0.2",
       "from": "es6-symbol@>=3.0.2 <3.1.0",
@@ -3398,11 +4038,38 @@
       "from": "events@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz"
     },
+    "execa": {
+      "version": "0.7.0",
+      "from": "execa@>=0.7.0 <0.8.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+      "dependencies": {
+        "cross-spawn": {
+          "version": "5.1.0",
+          "from": "cross-spawn@>=5.0.1 <6.0.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz"
+        },
+        "lru-cache": {
+          "version": "4.1.1",
+          "from": "lru-cache@>=4.0.1 <5.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz"
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "from": "signal-exit@^3.0.0",
+          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+        }
+      }
+    },
     "exit": {
       "version": "0.1.2",
       "from": "exit@>=0.1.2 <0.2.0",
       "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
     },
+    "exit-code": {
+      "version": "1.0.2",
+      "from": "exit-code@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz"
+    },
     "exit-hook": {
       "version": "1.1.1",
       "from": "exit-hook@>=1.0.0 <2.0.0",
@@ -3445,6 +4112,138 @@
       "from": "expand-range@>=1.8.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz"
     },
+    "express": {
+      "version": "4.15.4",
+      "from": "express@4.15.4",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz",
+      "dependencies": {
+        "accepts": {
+          "version": "1.3.4",
+          "from": "accepts@>=1.3.3 <1.4.0",
+          "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz"
+        },
+        "content-type": {
+          "version": "1.0.2",
+          "from": "content-type@~1.0.2",
+          "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz"
+        },
+        "cookie": {
+          "version": "0.3.1",
+          "from": "cookie@0.3.1",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
+        },
+        "debug": {
+          "version": "2.6.8",
+          "from": "debug@2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz"
+        },
+        "depd": {
+          "version": "1.1.1",
+          "from": "depd@~1.1.1",
+          "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz"
+        },
+        "destroy": {
+          "version": "1.0.4",
+          "from": "destroy@>=1.0.4 <1.1.0",
+          "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
+        },
+        "escape-html": {
+          "version": "1.0.3",
+          "from": "escape-html@>=1.0.3 <1.1.0",
+          "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
+        },
+        "etag": {
+          "version": "1.8.0",
+          "from": "etag@>=1.8.0 <1.9.0",
+          "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz"
+        },
+        "finalhandler": {
+          "version": "1.0.4",
+          "from": "finalhandler@>=1.0.4 <1.1.0",
+          "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz"
+        },
+        "fresh": {
+          "version": "0.5.0",
+          "from": "fresh@0.5.0",
+          "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz"
+        },
+        "http-errors": {
+          "version": "1.6.2",
+          "from": "http-errors@~1.6.2",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "methods": {
+          "version": "1.1.2",
+          "from": "methods@>=1.1.2 <1.2.0",
+          "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.16",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "ms": {
+          "version": "2.0.0",
+          "from": "ms@2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+        },
+        "negotiator": {
+          "version": "0.6.1",
+          "from": "negotiator@0.6.1",
+          "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
+        },
+        "parseurl": {
+          "version": "1.3.1",
+          "from": "parseurl@>=1.3.1 <1.4.0",
+          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"
+        },
+        "qs": {
+          "version": "6.5.0",
+          "from": "qs@6.5.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz"
+        },
+        "range-parser": {
+          "version": "1.2.0",
+          "from": "range-parser@>=1.2.0 <1.3.0",
+          "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
+        },
+        "send": {
+          "version": "0.15.4",
+          "from": "send@0.15.4",
+          "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz"
+        },
+        "serve-static": {
+          "version": "1.12.4",
+          "from": "serve-static@1.12.4",
+          "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz"
+        },
+        "statuses": {
+          "version": "1.3.1",
+          "from": "statuses@~1.3.1",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+        },
+        "type-is": {
+          "version": "1.6.15",
+          "from": "type-is@~1.6.15",
+          "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz"
+        },
+        "vary": {
+          "version": "1.1.1",
+          "from": "vary@>=1.1.1 <1.2.0",
+          "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz"
+        }
+      }
+    },
     "express-session": {
       "version": "1.11.3",
       "from": "express-session@>=1.11.3 <1.12.0",
@@ -3519,6 +4318,16 @@
         }
       }
     },
+    "fast-deep-equal": {
+      "version": "1.0.0",
+      "from": "fast-deep-equal@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz"
+    },
+    "fast-url-parser": {
+      "version": "1.1.3",
+      "from": "fast-url-parser@>=1.1.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz"
+    },
     "faye-websocket": {
       "version": "0.10.0",
       "from": "faye-websocket@>=0.10.0 <0.11.0",
@@ -3558,6 +4367,11 @@
       "from": "filename-regex@>=2.0.0 <3.0.0",
       "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz"
     },
+    "filesize": {
+      "version": "3.5.10",
+      "from": "filesize@>=3.1.3 <4.0.0",
+      "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.10.tgz"
+    },
     "fill-range": {
       "version": "2.2.3",
       "from": "fill-range@>=2.1.0 <3.0.0",
@@ -3595,6 +4409,335 @@
         }
       }
     },
+    "firebase": {
+      "version": "2.4.2",
+      "from": "firebase@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/firebase/-/firebase-2.4.2.tgz",
+      "dependencies": {
+        "faye-websocket": {
+          "version": "0.9.3",
+          "from": "faye-websocket@>=0.6.0",
+          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.3.tgz",
+          "dependencies": {
+            "websocket-driver": {
+              "version": "0.5.2",
+              "from": "websocket-driver@>=0.5.1",
+              "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.5.2.tgz",
+              "dependencies": {
+                "websocket-extensions": {
+                  "version": "0.1.1",
+                  "from": "websocket-extensions@>=0.1.1",
+                  "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "firebase-tools": {
+      "version": "3.9.2",
+      "from": "firebase-tools@>=3.9.2 <4.0.0",
+      "resolved": "https://registry.npmjs.org/firebase-tools/-/firebase-tools-3.9.2.tgz",
+      "dependencies": {
+        "archiver": {
+          "version": "0.16.0",
+          "from": "archiver@>=0.16.0 <0.17.0",
+          "resolved": "https://registry.npmjs.org/archiver/-/archiver-0.16.0.tgz",
+          "dependencies": {
+            "glob": {
+              "version": "5.0.15",
+              "from": "glob@>=5.0.0 <5.1.0",
+              "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
+            },
+            "lodash": {
+              "version": "3.10.1",
+              "from": "lodash@>=3.10.0 <3.11.0",
+              "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+            }
+          }
+        },
+        "async": {
+          "version": "1.4.2",
+          "from": "async@>=1.4.2 <1.5.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz"
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "from": "balanced-match@^1.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+        },
+        "bl": {
+          "version": "1.2.1",
+          "from": "bl@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3",
+              "from": "inherits@~2.0.3",
+              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+            },
+            "isarray": {
+              "version": "1.0.0",
+              "from": "isarray@~1.0.0",
+              "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+            },
+            "readable-stream": {
+              "version": "2.3.3",
+              "from": "readable-stream@^2.0.5",
+              "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+            },
+            "string_decoder": {
+              "version": "1.0.3",
+              "from": "string_decoder@~1.0.3",
+              "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+            }
+          }
+        },
+        "brace-expansion": {
+          "version": "1.1.8",
+          "from": "brace-expansion@^1.1.7",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+        },
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "colors": {
+          "version": "1.0.3",
+          "from": "colors@1.0.x",
+          "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"
+        },
+        "compress-commons": {
+          "version": "0.3.0",
+          "from": "compress-commons@>=0.3.0 <0.4.0",
+          "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.3.0.tgz"
+        },
+        "configstore": {
+          "version": "1.4.0",
+          "from": "configstore@>=1.2.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
+          "dependencies": {
+            "uuid": {
+              "version": "2.0.3",
+              "from": "uuid@>=2.0.1 <3.0.0",
+              "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz"
+            }
+          }
+        },
+        "fs-extra": {
+          "version": "0.23.1",
+          "from": "fs-extra@>=0.23.1 <0.24.0",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz"
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@>=7.1.2 <8.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+          "dependencies": {
+            "minimatch": {
+              "version": "3.0.4",
+              "from": "minimatch@^3.0.4",
+              "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+            }
+          }
+        },
+        "got": {
+          "version": "3.3.1",
+          "from": "got@>=3.2.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
+          "dependencies": {
+            "object-assign": {
+              "version": "3.0.0",
+              "from": "object-assign@>=3.0.0 <4.0.0",
+              "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz"
+            }
+          }
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@^4.1.2",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "inquirer": {
+          "version": "0.12.0",
+          "from": "inquirer@>=0.12.0 <0.13.0",
+          "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz"
+        },
+        "JSONStream": {
+          "version": "1.3.1",
+          "from": "JSONStream@>=1.2.1 <2.0.0",
+          "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz"
+        },
+        "latest-version": {
+          "version": "1.0.1",
+          "from": "latest-version@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@>=4.6.1 <5.0.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "node-int64": {
+          "version": "0.4.0",
+          "from": "node-int64@>=0.4.0 <0.5.0",
+          "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
+        },
+        "package-json": {
+          "version": "1.2.0",
+          "from": "package-json@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz"
+        },
+        "progress": {
+          "version": "2.0.0",
+          "from": "progress@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "readable-stream": {
+          "version": "1.0.34",
+          "from": "readable-stream@>=1.0.26 <1.1.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+        },
+        "repeating": {
+          "version": "1.1.3",
+          "from": "repeating@>=1.1.2 <2.0.0",
+          "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz"
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@>=2.58.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "run-async": {
+          "version": "0.1.0",
+          "from": "run-async@>=0.1.0 <0.2.0",
+          "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@~5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "tar": {
+          "version": "3.2.1",
+          "from": "tar@>=3.1.5 <4.0.0",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-3.2.1.tgz"
+        },
+        "tar-stream": {
+          "version": "1.2.2",
+          "from": "tar-stream@>=1.2.1 <1.3.0",
+          "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.2.2.tgz",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3",
+              "from": "inherits@~2.0.3",
+              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+            },
+            "isarray": {
+              "version": "1.0.0",
+              "from": "isarray@~1.0.0",
+              "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+            },
+            "readable-stream": {
+              "version": "2.3.3",
+              "from": "readable-stream@^2.0.0",
+              "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+            },
+            "string_decoder": {
+              "version": "1.0.3",
+              "from": "string_decoder@~1.0.3",
+              "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+            }
+          }
+        },
+        "timed-out": {
+          "version": "2.0.0",
+          "from": "timed-out@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz"
+        },
+        "tmp": {
+          "version": "0.0.27",
+          "from": "tmp@0.0.27",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.27.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "update-notifier": {
+          "version": "0.5.0",
+          "from": "update-notifier@>=0.5.0 <0.6.0",
+          "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz"
+        },
+        "user-home": {
+          "version": "2.0.0",
+          "from": "user-home@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        },
+        "winston": {
+          "version": "1.1.2",
+          "from": "winston@>=1.0.1 <2.0.0",
+          "resolved": "https://registry.npmjs.org/winston/-/winston-1.1.2.tgz",
+          "dependencies": {
+            "async": {
+              "version": "1.0.0",
+              "from": "async@>=1.0.0 <1.1.0",
+              "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz"
+            }
+          }
+        },
+        "yallist": {
+          "version": "3.0.2",
+          "from": "yallist@>=3.0.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz"
+        },
+        "zip-stream": {
+          "version": "0.6.0",
+          "from": "zip-stream@>=0.6.0 <0.7.0",
+          "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.6.0.tgz",
+          "dependencies": {
+            "lodash": {
+              "version": "3.10.1",
+              "from": "lodash@>=3.10.1 <3.11.0",
+              "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+            }
+          }
+        }
+      }
+    },
     "firefox-profile": {
       "version": "0.3.11",
       "from": "firefox-profile@>=0.3.4 <0.4.0",
@@ -3627,6 +4770,35 @@
       "from": "flagged-respawn@>=0.3.1 <0.4.0",
       "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.1.tgz"
     },
+    "flat-arguments": {
+      "version": "1.0.2",
+      "from": "flat-arguments@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz",
+      "dependencies": {
+        "as-array": {
+          "version": "1.0.0",
+          "from": "as-array@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz",
+          "dependencies": {
+            "lodash.isarguments": {
+              "version": "2.4.1",
+              "from": "lodash.isarguments@>=2.4.0 <2.5.0",
+              "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz"
+            },
+            "lodash.isobject": {
+              "version": "2.4.1",
+              "from": "lodash.isobject@^2.4.1",
+              "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz"
+            }
+          }
+        },
+        "lodash.isobject": {
+          "version": "3.0.2",
+          "from": "lodash.isobject@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz"
+        }
+      }
+    },
     "for-in": {
       "version": "0.1.4",
       "from": "for-in@>=0.1.4 <0.2.0",
@@ -3659,6 +4831,11 @@
         }
       }
     },
+    "forwarded": {
+      "version": "0.1.0",
+      "from": "forwarded@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz"
+    },
     "fresh": {
       "version": "0.3.0",
       "from": "fresh@0.3.0",
@@ -4320,6 +5497,23 @@
       "from": "fstream@>=0.1.30 <1.0.0",
       "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz"
     },
+    "fstream-ignore": {
+      "version": "1.0.5",
+      "from": "fstream-ignore@>=1.0.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+      "dependencies": {
+        "fstream": {
+          "version": "1.0.11",
+          "from": "fstream@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz"
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@^4.1.2",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        }
+      }
+    },
     "fx-runner": {
       "version": "0.0.7",
       "from": "fx-runner@0.0.7",
@@ -4369,6 +5563,223 @@
       "from": "gaze@>=0.5.1 <0.6.0",
       "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz"
     },
+    "gcp-metadata": {
+      "version": "0.3.0",
+      "from": "gcp-metadata@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.3.0.tgz",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@>=0.12.0 <0.13.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@>=4.2.1 <4.3.0",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@>=1.29.0 <1.30.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@>=2.1.7 <2.2.0",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@>=6.4.0 <6.5.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.1",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.81.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "retry-request": {
+          "version": "3.0.0",
+          "from": "retry-request@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.0.0.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.0",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3",
+          "from": "through2@^2.0.0",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@>=2.3.0 <2.4.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@>=0.6.0 <0.7.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
+    "gcs-resumable-upload": {
+      "version": "0.8.1",
+      "from": "gcs-resumable-upload@>=0.8.0 <0.9.0",
+      "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.1.tgz",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "configstore": {
+          "version": "3.1.1",
+          "from": "configstore@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz"
+        },
+        "dot-prop": {
+          "version": "4.2.0",
+          "from": "dot-prop@>=4.1.0 <5.0.0",
+          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz"
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@>=4.1.2 <5.0.0",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.1",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.81.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "from": "signal-exit@>=3.0.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.0",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3",
+          "from": "through2@^2.0.0",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        },
+        "write-file-atomic": {
+          "version": "2.3.0",
+          "from": "write-file-atomic@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz"
+        },
+        "xdg-basedir": {
+          "version": "3.0.0",
+          "from": "xdg-basedir@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz"
+        }
+      }
+    },
     "generate-function": {
       "version": "2.0.0",
       "from": "generate-function@>=2.0.0 <3.0.0",
@@ -4379,6 +5790,11 @@
       "from": "generate-object-property@>=1.1.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"
     },
+    "get-caller-file": {
+      "version": "1.0.2",
+      "from": "get-caller-file@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz"
+    },
     "get-pkg-repo": {
       "version": "1.2.1",
       "from": "get-pkg-repo@>=1.0.0 <2.0.0",
@@ -4406,6 +5822,11 @@
       "from": "get-stdin@>=4.0.1 <5.0.0",
       "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
     },
+    "get-stream": {
+      "version": "3.0.0",
+      "from": "get-stream@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz"
+    },
     "getpass": {
       "version": "0.1.6",
       "from": "getpass@>=0.1.1 <0.2.0",
@@ -4492,6 +5913,16 @@
       "from": "glob-parent@>=2.0.0 <3.0.0",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz"
     },
+    "glob-slash": {
+      "version": "1.0.0",
+      "from": "glob-slash@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz"
+    },
+    "glob-slasher": {
+      "version": "1.0.1",
+      "from": "glob-slasher@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz"
+    },
     "glob-stream": {
       "version": "3.1.18",
       "from": "glob-stream@>=3.1.5 <4.0.0",
@@ -4575,6 +6006,147 @@
       "from": "glogg@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz"
     },
+    "google-auth-library": {
+      "version": "0.10.0",
+      "from": "google-auth-library@>=0.10.0 <0.11.0",
+      "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.10.0.tgz",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.74.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
+    "google-auto-auth": {
+      "version": "0.7.2",
+      "from": "google-auto-auth@>=0.7.1 <0.8.0",
+      "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.2.tgz",
+      "dependencies": {
+        "async": {
+          "version": "2.5.0",
+          "from": "async@^2.3.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz"
+        },
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@^4.14.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.79.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
+    "google-p12-pem": {
+      "version": "0.1.2",
+      "from": "google-p12-pem@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.2.tgz"
+    },
+    "google-proto-files": {
+      "version": "0.12.1",
+      "from": "google-proto-files@0.12.1",
+      "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.12.1.tgz"
+    },
+    "googleapis": {
+      "version": "20.1.0",
+      "from": "googleapis@20.1.0",
+      "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-20.1.0.tgz",
+      "dependencies": {
+        "async": {
+          "version": "2.3.0",
+          "from": "async@>=2.3.0 <2.4.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.3.0.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@^4.14.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        }
+      }
+    },
     "got": {
       "version": "5.7.1",
       "from": "got@>=5.0.0 <6.0.0",
@@ -4607,6 +6179,805 @@
       "from": "graceful-readlink@>=1.0.0",
       "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
     },
+    "grpc": {
+      "version": "1.4.1",
+      "from": "grpc@1.4.1",
+      "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.4.1.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@^4.15.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        },
+        "node-pre-gyp": {
+          "version": "0.6.36",
+          "from": "node-pre-gyp@0.6.36",
+          "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz",
+          "dependencies": {
+            "mkdirp": {
+              "version": "0.5.1",
+              "from": "mkdirp@>=0.5.1 <0.6.0",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+              "dependencies": {
+                "minimist": {
+                  "version": "0.0.8",
+                  "from": "minimist@0.0.8",
+                  "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+                }
+              }
+            },
+            "nopt": {
+              "version": "4.0.1",
+              "from": "nopt@>=4.0.1 <5.0.0",
+              "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+              "dependencies": {
+                "abbrev": {
+                  "version": "1.1.0",
+                  "from": "abbrev@>=1.0.0 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"
+                },
+                "osenv": {
+                  "version": "0.1.4",
+                  "from": "osenv@>=0.1.4 <0.2.0",
+                  "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+                  "dependencies": {
+                    "os-homedir": {
+                      "version": "1.0.2",
+                      "from": "os-homedir@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+                    },
+                    "os-tmpdir": {
+                      "version": "1.0.2",
+                      "from": "os-tmpdir@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+                    }
+                  }
+                }
+              }
+            },
+            "npmlog": {
+              "version": "4.1.2",
+              "from": "npmlog@>=4.0.2 <5.0.0",
+              "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+              "dependencies": {
+                "are-we-there-yet": {
+                  "version": "1.1.4",
+                  "from": "are-we-there-yet@>=1.1.2 <1.2.0",
+                  "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+                  "dependencies": {
+                    "delegates": {
+                      "version": "1.0.0",
+                      "from": "delegates@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
+                    },
+                    "readable-stream": {
+                      "version": "2.3.2",
+                      "from": "readable-stream@>=2.0.6 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz",
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "1.0.2",
+                          "from": "core-util-is@>=1.0.0 <1.1.0",
+                          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+                        },
+                        "inherits": {
+                          "version": "2.0.3",
+                          "from": "inherits@>=2.0.3 <2.1.0",
+                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+                        },
+                        "isarray": {
+                          "version": "1.0.0",
+                          "from": "isarray@>=1.0.0 <1.1.0",
+                          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+                        },
+                        "process-nextick-args": {
+                          "version": "1.0.7",
+                          "from": "process-nextick-args@>=1.0.6 <1.1.0",
+                          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
+                        },
+                        "safe-buffer": {
+                          "version": "5.1.1",
+                          "from": "safe-buffer@>=5.1.0 <5.2.0",
+                          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+                        },
+                        "string_decoder": {
+                          "version": "1.0.3",
+                          "from": "string_decoder@>=1.0.0 <1.1.0",
+                          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+                        },
+                        "util-deprecate": {
+                          "version": "1.0.2",
+                          "from": "util-deprecate@>=1.0.1 <1.1.0",
+                          "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+                        }
+                      }
+                    }
+                  }
+                },
+                "console-control-strings": {
+                  "version": "1.1.0",
+                  "from": "console-control-strings@>=1.1.0 <1.2.0",
+                  "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
+                },
+                "gauge": {
+                  "version": "2.7.4",
+                  "from": "gauge@>=2.7.3 <2.8.0",
+                  "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+                  "dependencies": {
+                    "aproba": {
+                      "version": "1.1.2",
+                      "from": "aproba@>=1.0.3 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz"
+                    },
+                    "has-unicode": {
+                      "version": "2.0.1",
+                      "from": "has-unicode@>=2.0.0 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
+                    },
+                    "object-assign": {
+                      "version": "4.1.1",
+                      "from": "object-assign@>=4.1.0 <5.0.0",
+                      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+                    },
+                    "signal-exit": {
+                      "version": "3.0.2",
+                      "from": "signal-exit@>=3.0.0 <4.0.0",
+                      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+                    },
+                    "string-width": {
+                      "version": "1.0.2",
+                      "from": "string-width@>=1.0.1 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+                      "dependencies": {
+                        "code-point-at": {
+                          "version": "1.1.0",
+                          "from": "code-point-at@>=1.0.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
+                        },
+                        "is-fullwidth-code-point": {
+                          "version": "1.0.0",
+                          "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+                          "dependencies": {
+                            "number-is-nan": {
+                              "version": "1.0.1",
+                              "from": "number-is-nan@>=1.0.0 <2.0.0",
+                              "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "strip-ansi": {
+                      "version": "3.0.1",
+                      "from": "strip-ansi@>=3.0.1 <4.0.0",
+                      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                      "dependencies": {
+                        "ansi-regex": {
+                          "version": "2.1.1",
+                          "from": "ansi-regex@>=2.0.0 <3.0.0",
+                          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+                        }
+                      }
+                    },
+                    "wide-align": {
+                      "version": "1.1.2",
+                      "from": "wide-align@>=1.1.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz"
+                    }
+                  }
+                },
+                "set-blocking": {
+                  "version": "2.0.0",
+                  "from": "set-blocking@>=2.0.0 <2.1.0",
+                  "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+                }
+              }
+            },
+            "rc": {
+              "version": "1.2.1",
+              "from": "rc@>=1.1.7 <2.0.0",
+              "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
+              "dependencies": {
+                "deep-extend": {
+                  "version": "0.4.2",
+                  "from": "deep-extend@>=0.4.0 <0.5.0",
+                  "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz"
+                },
+                "ini": {
+                  "version": "1.3.4",
+                  "from": "ini@>=1.3.0 <1.4.0",
+                  "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
+                },
+                "minimist": {
+                  "version": "1.2.0",
+                  "from": "minimist@>=1.2.0 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+                },
+                "strip-json-comments": {
+                  "version": "2.0.1",
+                  "from": "strip-json-comments@>=2.0.1 <2.1.0",
+                  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+                }
+              }
+            },
+            "request": {
+              "version": "2.81.0",
+              "from": "request@>=2.81.0 <3.0.0",
+              "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+              "dependencies": {
+                "aws-sign2": {
+                  "version": "0.6.0",
+                  "from": "aws-sign2@>=0.6.0 <0.7.0",
+                  "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
+                },
+                "aws4": {
+                  "version": "1.6.0",
+                  "from": "aws4@>=1.2.1 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"
+                },
+                "caseless": {
+                  "version": "0.12.0",
+                  "from": "caseless@>=0.12.0 <0.13.0",
+                  "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+                },
+                "combined-stream": {
+                  "version": "1.0.5",
+                  "from": "combined-stream@>=1.0.5 <1.1.0",
+                  "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+                  "dependencies": {
+                    "delayed-stream": {
+                      "version": "1.0.0",
+                      "from": "delayed-stream@>=1.0.0 <1.1.0",
+                      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+                    }
+                  }
+                },
+                "extend": {
+                  "version": "3.0.1",
+                  "from": "extend@>=3.0.0 <3.1.0",
+                  "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"
+                },
+                "forever-agent": {
+                  "version": "0.6.1",
+                  "from": "forever-agent@>=0.6.1 <0.7.0",
+                  "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+                },
+                "form-data": {
+                  "version": "2.1.4",
+                  "from": "form-data@>=2.1.1 <2.2.0",
+                  "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+                  "dependencies": {
+                    "asynckit": {
+                      "version": "0.4.0",
+                      "from": "asynckit@>=0.4.0 <0.5.0",
+                      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+                    }
+                  }
+                },
+                "har-validator": {
+                  "version": "4.2.1",
+                  "from": "har-validator@>=4.2.1 <4.3.0",
+                  "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+                  "dependencies": {
+                    "ajv": {
+                      "version": "4.11.8",
+                      "from": "ajv@>=4.9.1 <5.0.0",
+                      "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+                      "dependencies": {
+                        "co": {
+                          "version": "4.6.0",
+                          "from": "co@>=4.6.0 <5.0.0",
+                          "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+                        },
+                        "json-stable-stringify": {
+                          "version": "1.0.1",
+                          "from": "json-stable-stringify@>=1.0.1 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+                          "dependencies": {
+                            "jsonify": {
+                              "version": "0.0.0",
+                              "from": "jsonify@>=0.0.0 <0.1.0",
+                              "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "har-schema": {
+                      "version": "1.0.5",
+                      "from": "har-schema@>=1.0.5 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
+                    }
+                  }
+                },
+                "hawk": {
+                  "version": "3.1.3",
+                  "from": "hawk@>=3.1.3 <3.2.0",
+                  "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+                  "dependencies": {
+                    "boom": {
+                      "version": "2.10.1",
+                      "from": "boom@>=2.0.0 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+                    },
+                    "cryptiles": {
+                      "version": "2.0.5",
+                      "from": "cryptiles@>=2.0.0 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
+                    },
+                    "hoek": {
+                      "version": "2.16.3",
+                      "from": "hoek@>=2.0.0 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+                    },
+                    "sntp": {
+                      "version": "1.0.9",
+                      "from": "sntp@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+                    }
+                  }
+                },
+                "http-signature": {
+                  "version": "1.1.1",
+                  "from": "http-signature@>=1.1.0 <1.2.0",
+                  "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+                  "dependencies": {
+                    "assert-plus": {
+                      "version": "0.2.0",
+                      "from": "assert-plus@>=0.2.0 <0.3.0",
+                      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
+                    },
+                    "jsprim": {
+                      "version": "1.4.0",
+                      "from": "jsprim@>=1.2.2 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
+                      "dependencies": {
+                        "assert-plus": {
+                          "version": "1.0.0",
+                          "from": "assert-plus@1.0.0",
+                          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+                        },
+                        "extsprintf": {
+                          "version": "1.0.2",
+                          "from": "extsprintf@1.0.2",
+                          "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+                        },
+                        "json-schema": {
+                          "version": "0.2.3",
+                          "from": "json-schema@0.2.3",
+                          "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
+                        },
+                        "verror": {
+                          "version": "1.3.6",
+                          "from": "verror@1.3.6",
+                          "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
+                        }
+                      }
+                    },
+                    "sshpk": {
+                      "version": "1.13.1",
+                      "from": "sshpk@>=1.7.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+                      "dependencies": {
+                        "asn1": {
+                          "version": "0.2.3",
+                          "from": "asn1@>=0.2.3 <0.3.0",
+                          "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
+                        },
+                        "assert-plus": {
+                          "version": "1.0.0",
+                          "from": "assert-plus@>=1.0.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+                        },
+                        "bcrypt-pbkdf": {
+                          "version": "1.0.1",
+                          "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"
+                        },
+                        "dashdash": {
+                          "version": "1.14.1",
+                          "from": "dashdash@>=1.12.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
+                        },
+                        "ecc-jsbn": {
+                          "version": "0.1.1",
+                          "from": "ecc-jsbn@>=0.1.1 <0.2.0",
+                          "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"
+                        },
+                        "getpass": {
+                          "version": "0.1.7",
+                          "from": "getpass@>=0.1.1 <0.2.0",
+                          "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
+                        },
+                        "jsbn": {
+                          "version": "0.1.1",
+                          "from": "jsbn@>=0.1.0 <0.2.0",
+                          "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+                        },
+                        "tweetnacl": {
+                          "version": "0.14.5",
+                          "from": "tweetnacl@>=0.14.0 <0.15.0",
+                          "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+                        }
+                      }
+                    }
+                  }
+                },
+                "is-typedarray": {
+                  "version": "1.0.0",
+                  "from": "is-typedarray@>=1.0.0 <1.1.0",
+                  "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+                },
+                "isstream": {
+                  "version": "0.1.2",
+                  "from": "isstream@>=0.1.2 <0.2.0",
+                  "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+                },
+                "json-stringify-safe": {
+                  "version": "5.0.1",
+                  "from": "json-stringify-safe@>=5.0.1 <5.1.0",
+                  "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+                },
+                "mime-types": {
+                  "version": "2.1.15",
+                  "from": "mime-types@>=2.1.7 <2.2.0",
+                  "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
+                  "dependencies": {
+                    "mime-db": {
+                      "version": "1.27.0",
+                      "from": "mime-db@>=1.27.0 <1.28.0",
+                      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"
+                    }
+                  }
+                },
+                "oauth-sign": {
+                  "version": "0.8.2",
+                  "from": "oauth-sign@>=0.8.1 <0.9.0",
+                  "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"
+                },
+                "performance-now": {
+                  "version": "0.2.0",
+                  "from": "performance-now@>=0.2.0 <0.3.0",
+                  "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz"
+                },
+                "qs": {
+                  "version": "6.4.0",
+                  "from": "qs@>=6.4.0 <6.5.0",
+                  "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+                },
+                "safe-buffer": {
+                  "version": "5.1.1",
+                  "from": "safe-buffer@>=5.0.1 <6.0.0",
+                  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+                },
+                "stringstream": {
+                  "version": "0.0.5",
+                  "from": "stringstream@>=0.0.4 <0.1.0",
+                  "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
+                },
+                "tough-cookie": {
+                  "version": "2.3.2",
+                  "from": "tough-cookie@>=2.3.0 <2.4.0",
+                  "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+                  "dependencies": {
+                    "punycode": {
+                      "version": "1.4.1",
+                      "from": "punycode@>=1.4.1 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+                    }
+                  }
+                },
+                "tunnel-agent": {
+                  "version": "0.6.0",
+                  "from": "tunnel-agent@>=0.6.0 <0.7.0",
+                  "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+                },
+                "uuid": {
+                  "version": "3.1.0",
+                  "from": "uuid@>=3.0.0 <4.0.0",
+                  "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+                }
+              }
+            },
+            "rimraf": {
+              "version": "2.6.1",
+              "from": "rimraf@>=2.6.1 <3.0.0",
+              "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+              "dependencies": {
+                "glob": {
+                  "version": "7.1.2",
+                  "from": "glob@>=7.0.5 <8.0.0",
+                  "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+                  "dependencies": {
+                    "fs.realpath": {
+                      "version": "1.0.0",
+                      "from": "fs.realpath@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+                    },
+                    "inflight": {
+                      "version": "1.0.6",
+                      "from": "inflight@>=1.0.4 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2",
+                          "from": "wrappy@>=1.0.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+                        }
+                      }
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "from": "inherits@>=2.0.0 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+                    },
+                    "minimatch": {
+                      "version": "3.0.4",
+                      "from": "minimatch@>=3.0.0 <4.0.0",
+                      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+                      "dependencies": {
+                        "brace-expansion": {
+                          "version": "1.1.8",
+                          "from": "brace-expansion@>=1.1.7 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+                          "dependencies": {
+                            "balanced-match": {
+                              "version": "1.0.0",
+                              "from": "balanced-match@>=1.0.0 <2.0.0",
+                              "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+                            },
+                            "concat-map": {
+                              "version": "0.0.1",
+                              "from": "concat-map@0.0.1",
+                              "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "once": {
+                      "version": "1.4.0",
+                      "from": "once@>=1.3.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2",
+                          "from": "wrappy@>=1.0.0 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+                        }
+                      }
+                    },
+                    "path-is-absolute": {
+                      "version": "1.0.1",
+                      "from": "path-is-absolute@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+                    }
+                  }
+                }
+              }
+            },
+            "semver": {
+              "version": "5.3.0",
+              "from": "semver@>=5.3.0 <6.0.0",
+              "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+            },
+            "tar": {
+              "version": "2.2.1",
+              "from": "tar@>=2.2.1 <3.0.0",
+              "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+              "dependencies": {
+                "block-stream": {
+                  "version": "0.0.9",
+                  "from": "block-stream@*",
+                  "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
+                },
+                "fstream": {
+                  "version": "1.0.11",
+                  "from": "fstream@>=1.0.2 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+                  "dependencies": {
+                    "graceful-fs": {
+                      "version": "4.1.11",
+                      "from": "graceful-fs@>=4.1.2 <5.0.0",
+                      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+                    }
+                  }
+                },
+                "inherits": {
+                  "version": "2.0.3",
+                  "from": "inherits@>=2.0.0 <3.0.0",
+                  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+                }
+              }
+            },
+            "tar-pack": {
+              "version": "3.4.0",
+              "from": "tar-pack@>=3.4.0 <4.0.0",
+              "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz",
+              "dependencies": {
+                "debug": {
+                  "version": "2.6.8",
+                  "from": "debug@>=2.2.0 <3.0.0",
+                  "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+                  "dependencies": {
+                    "ms": {
+                      "version": "2.0.0",
+                      "from": "ms@2.0.0",
+                      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+                    }
+                  }
+                },
+                "fstream": {
+                  "version": "1.0.11",
+                  "from": "fstream@>=1.0.10 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+                  "dependencies": {
+                    "graceful-fs": {
+                      "version": "4.1.11",
+                      "from": "graceful-fs@>=4.1.2 <5.0.0",
+                      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "from": "inherits@>=2.0.0 <2.1.0",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+                    }
+                  }
+                },
+                "fstream-ignore": {
+                  "version": "1.0.5",
+                  "from": "fstream-ignore@>=1.0.5 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+                  "dependencies": {
+                    "inherits": {
+                      "version": "2.0.3",
+                      "from": "inherits@>=2.0.0 <3.0.0",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+                    },
+                    "minimatch": {
+                      "version": "3.0.4",
+                      "from": "minimatch@>=3.0.0 <4.0.0",
+                      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+                      "dependencies": {
+                        "brace-expansion": {
+                          "version": "1.1.8",
+                          "from": "brace-expansion@>=1.1.7 <2.0.0",
+                          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+                          "dependencies": {
+                            "balanced-match": {
+                              "version": "1.0.0",
+                              "from": "balanced-match@>=1.0.0 <2.0.0",
+                              "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+                            },
+                            "concat-map": {
+                              "version": "0.0.1",
+                              "from": "concat-map@0.0.1",
+                              "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "once": {
+                  "version": "1.4.0",
+                  "from": "once@>=1.0.0 <2.0.0",
+                  "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "1.0.2",
+                      "from": "wrappy@>=1.0.0 <2.0.0",
+                      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+                    }
+                  }
+                },
+                "readable-stream": {
+                  "version": "2.3.2",
+                  "from": "readable-stream@>=2.1.4 <3.0.0",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz",
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "from": "core-util-is@>=1.0.0 <1.1.0",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "from": "inherits@>=2.0.3 <2.1.0",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+                    },
+                    "isarray": {
+                      "version": "1.0.0",
+                      "from": "isarray@>=1.0.0 <1.1.0",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+                    },
+                    "process-nextick-args": {
+                      "version": "1.0.7",
+                      "from": "process-nextick-args@>=1.0.6 <1.1.0",
+                      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
+                    },
+                    "safe-buffer": {
+                      "version": "5.1.1",
+                      "from": "safe-buffer@>=5.1.0 <5.2.0",
+                      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+                    },
+                    "string_decoder": {
+                      "version": "1.0.3",
+                      "from": "string_decoder@>=1.0.0 <1.1.0",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+                    },
+                    "util-deprecate": {
+                      "version": "1.0.2",
+                      "from": "util-deprecate@>=1.0.1 <1.1.0",
+                      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+                    }
+                  }
+                },
+                "uid-number": {
+                  "version": "0.0.6",
+                  "from": "uid-number@>=0.0.6 <0.0.7",
+                  "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "gtoken": {
+      "version": "1.2.2",
+      "from": "gtoken@>=1.2.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-1.2.2.tgz",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.72.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
     "gulp": {
       "version": "3.9.0",
       "from": "gulp@>=3.8.8 <4.0.0",
@@ -4892,11 +7263,58 @@
       "from": "has-gulplog@>=0.1.0 <0.2.0",
       "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz"
     },
+    "has-symbol-support-x": {
+      "version": "1.4.0",
+      "from": "has-symbol-support-x@>=1.4.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.0.tgz"
+    },
+    "has-to-string-tag-x": {
+      "version": "1.4.0",
+      "from": "has-to-string-tag-x@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.0.tgz"
+    },
     "has-unicode": {
       "version": "2.0.1",
       "from": "has-unicode@>=2.0.0 <3.0.0",
       "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
     },
+    "hash-stream-validation": {
+      "version": "0.2.1",
+      "from": "hash-stream-validation@>=0.2.1 <0.3.0",
+      "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz",
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@~5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+        },
+        "through2": {
+          "version": "2.0.3",
+          "from": "through2@^2.0.0",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+        }
+      }
+    },
     "hashish": {
       "version": "0.0.4",
       "from": "hashish@>=0.0.2 <0.1.0",
@@ -4917,6 +7335,11 @@
       "from": "hoek@>=2.0.0 <3.0.0",
       "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
     },
+    "home-dir": {
+      "version": "1.0.0",
+      "from": "home-dir@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz"
+    },
     "hosted-git-info": {
       "version": "2.1.4",
       "from": "hosted-git-info@>=2.1.4 <3.0.0",
@@ -4981,6 +7404,11 @@
       "from": "https-proxy-agent@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz"
     },
+    "i": {
+      "version": "0.3.5",
+      "from": "i@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/i/-/i-0.3.5.tgz"
+    },
     "iconv-lite": {
       "version": "0.4.11",
       "from": "iconv-lite@0.4.11",
@@ -4991,6 +7419,590 @@
       "from": "ieee754@>=1.1.4 <2.0.0",
       "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz"
     },
+    "iltorb": {
+      "version": "1.3.4",
+      "from": "iltorb@1.3.4",
+      "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.4.tgz",
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.0",
+          "from": "abbrev@1.1.0",
+          "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"
+        },
+        "ajv": {
+          "version": "4.11.8",
+          "from": "ajv@4.11.8",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz"
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "from": "ansi-regex@2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+        },
+        "aproba": {
+          "version": "1.1.2",
+          "from": "aproba@1.1.2",
+          "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz"
+        },
+        "are-we-there-yet": {
+          "version": "1.1.4",
+          "from": "are-we-there-yet@1.1.4",
+          "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz"
+        },
+        "asn1": {
+          "version": "0.2.3",
+          "from": "asn1@0.2.3",
+          "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
+        },
+        "assert-plus": {
+          "version": "0.2.0",
+          "from": "assert-plus@0.2.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
+        },
+        "asynckit": {
+          "version": "0.4.0",
+          "from": "asynckit@0.4.0",
+          "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+        },
+        "aws-sign2": {
+          "version": "0.6.0",
+          "from": "aws-sign2@0.6.0",
+          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
+        },
+        "aws4": {
+          "version": "1.6.0",
+          "from": "aws4@1.6.0",
+          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "from": "balanced-match@1.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+        },
+        "bcrypt-pbkdf": {
+          "version": "1.0.1",
+          "from": "bcrypt-pbkdf@1.0.1",
+          "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"
+        },
+        "block-stream": {
+          "version": "0.0.9",
+          "from": "block-stream@0.0.9",
+          "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
+        },
+        "boom": {
+          "version": "2.10.1",
+          "from": "boom@2.10.1",
+          "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+        },
+        "brace-expansion": {
+          "version": "1.1.8",
+          "from": "brace-expansion@1.1.8",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+        },
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "co": {
+          "version": "4.6.0",
+          "from": "co@4.6.0",
+          "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "from": "code-point-at@1.1.0",
+          "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
+        },
+        "combined-stream": {
+          "version": "1.0.5",
+          "from": "combined-stream@1.0.5",
+          "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "from": "concat-map@0.0.1",
+          "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "from": "console-control-strings@1.1.0",
+          "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "from": "core-util-is@1.0.2",
+          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+        },
+        "cryptiles": {
+          "version": "2.0.5",
+          "from": "cryptiles@2.0.5",
+          "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
+        },
+        "dashdash": {
+          "version": "1.14.1",
+          "from": "dashdash@1.14.1",
+          "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0",
+              "from": "assert-plus@1.0.0",
+              "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+            }
+          }
+        },
+        "debug": {
+          "version": "2.6.8",
+          "from": "debug@2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz"
+        },
+        "deep-extend": {
+          "version": "0.4.2",
+          "from": "deep-extend@0.4.2",
+          "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz"
+        },
+        "delayed-stream": {
+          "version": "1.0.0",
+          "from": "delayed-stream@1.0.0",
+          "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "from": "delegates@1.0.0",
+          "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
+        },
+        "ecc-jsbn": {
+          "version": "0.1.1",
+          "from": "ecc-jsbn@0.1.1",
+          "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"
+        },
+        "extend": {
+          "version": "3.0.1",
+          "from": "extend@3.0.1",
+          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"
+        },
+        "extsprintf": {
+          "version": "1.0.2",
+          "from": "extsprintf@1.0.2",
+          "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+        },
+        "forever-agent": {
+          "version": "0.6.1",
+          "from": "forever-agent@0.6.1",
+          "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+        },
+        "form-data": {
+          "version": "2.1.4",
+          "from": "form-data@2.1.4",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz"
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "from": "fs.realpath@1.0.0",
+          "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+        },
+        "fstream": {
+          "version": "1.0.11",
+          "from": "fstream@1.0.11",
+          "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz"
+        },
+        "fstream-ignore": {
+          "version": "1.0.5",
+          "from": "fstream-ignore@1.0.5",
+          "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz"
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "from": "gauge@2.7.4",
+          "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"
+        },
+        "getpass": {
+          "version": "0.1.7",
+          "from": "getpass@0.1.7",
+          "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0",
+              "from": "assert-plus@1.0.0",
+              "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+            }
+          }
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@7.1.2",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@4.1.11",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        },
+        "har-schema": {
+          "version": "1.0.5",
+          "from": "har-schema@1.0.5",
+          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "from": "has-unicode@2.0.1",
+          "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
+        },
+        "hawk": {
+          "version": "3.1.3",
+          "from": "hawk@3.1.3",
+          "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz"
+        },
+        "hoek": {
+          "version": "2.16.3",
+          "from": "hoek@2.16.3",
+          "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+        },
+        "http-signature": {
+          "version": "1.1.1",
+          "from": "http-signature@1.1.1",
+          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz"
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "from": "inflight@1.0.6",
+          "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "ini": {
+          "version": "1.3.4",
+          "from": "ini@1.3.4",
+          "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "from": "is-fullwidth-code-point@1.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"
+        },
+        "is-typedarray": {
+          "version": "1.0.0",
+          "from": "is-typedarray@1.0.0",
+          "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "isstream": {
+          "version": "0.1.2",
+          "from": "isstream@0.1.2",
+          "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+        },
+        "jsbn": {
+          "version": "0.1.1",
+          "from": "jsbn@0.1.1",
+          "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+        },
+        "json-schema": {
+          "version": "0.2.3",
+          "from": "json-schema@0.2.3",
+          "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
+        },
+        "json-stable-stringify": {
+          "version": "1.0.1",
+          "from": "json-stable-stringify@1.0.1",
+          "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+        },
+        "json-stringify-safe": {
+          "version": "5.0.1",
+          "from": "json-stringify-safe@5.0.1",
+          "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+        },
+        "jsonify": {
+          "version": "0.0.0",
+          "from": "jsonify@0.0.0",
+          "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+        },
+        "jsprim": {
+          "version": "1.4.0",
+          "from": "jsprim@1.4.0",
+          "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0",
+              "from": "assert-plus@1.0.0",
+              "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+            }
+          }
+        },
+        "mime-db": {
+          "version": "1.27.0",
+          "from": "mime-db@1.27.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.15",
+          "from": "mime-types@2.1.15",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "from": "minimatch@3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "from": "minimist@0.0.8",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "from": "mkdirp@0.5.1",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+        },
+        "ms": {
+          "version": "2.0.0",
+          "from": "ms@2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+        },
+        "nan": {
+          "version": "2.6.2",
+          "from": "nan@>=2.6.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz"
+        },
+        "node-pre-gyp": {
+          "version": "0.6.36",
+          "from": "node-pre-gyp@0.6.36",
+          "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz"
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "from": "nopt@4.0.1",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"
+        },
+        "npmlog": {
+          "version": "4.1.0",
+          "from": "npmlog@4.1.0",
+          "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz"
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "from": "number-is-nan@1.0.1",
+          "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+        },
+        "oauth-sign": {
+          "version": "0.8.2",
+          "from": "oauth-sign@0.8.2",
+          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "from": "object-assign@4.1.1",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+        },
+        "once": {
+          "version": "1.4.0",
+          "from": "once@1.4.0",
+          "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "from": "os-homedir@1.0.2",
+          "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "from": "os-tmpdir@1.0.2",
+          "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+        },
+        "osenv": {
+          "version": "0.1.4",
+          "from": "osenv@0.1.4",
+          "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz"
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "from": "path-is-absolute@1.0.1",
+          "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+        },
+        "performance-now": {
+          "version": "0.2.0",
+          "from": "performance-now@0.2.0",
+          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz"
+        },
+        "process-nextick-args": {
+          "version": "1.0.7",
+          "from": "process-nextick-args@1.0.7",
+          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
+        },
+        "punycode": {
+          "version": "1.4.1",
+          "from": "punycode@1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "rc": {
+          "version": "1.2.1",
+          "from": "rc@1.2.1",
+          "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "from": "minimist@1.2.0",
+              "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.1",
+          "from": "readable-stream@2.3.1",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz"
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@2.81.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@2.6.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "semver": {
+          "version": "5.3.0",
+          "from": "semver@5.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "from": "set-blocking@2.0.0",
+          "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "from": "signal-exit@3.0.2",
+          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+        },
+        "sntp": {
+          "version": "1.0.9",
+          "from": "sntp@1.0.9",
+          "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+        },
+        "sshpk": {
+          "version": "1.13.1",
+          "from": "sshpk@1.13.1",
+          "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+          "dependencies": {
+            "assert-plus": {
+              "version": "1.0.0",
+              "from": "assert-plus@1.0.0",
+              "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+            }
+          }
+        },
+        "string_decoder": {
+          "version": "1.0.2",
+          "from": "string_decoder@1.0.2",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.0.1",
+              "from": "safe-buffer@5.0.1",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
+            }
+          }
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "from": "string-width@1.0.2",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+        },
+        "stringstream": {
+          "version": "0.0.5",
+          "from": "stringstream@0.0.5",
+          "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "from": "strip-ansi@3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "from": "strip-json-comments@2.0.1",
+          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+        },
+        "tar": {
+          "version": "2.2.1",
+          "from": "tar@2.2.1",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz"
+        },
+        "tar-pack": {
+          "version": "3.4.0",
+          "from": "tar-pack@3.4.0",
+          "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@2.3.2",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "tweetnacl": {
+          "version": "0.14.5",
+          "from": "tweetnacl@0.14.5",
+          "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+        },
+        "uid-number": {
+          "version": "0.0.6",
+          "from": "uid-number@0.0.6",
+          "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz"
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "from": "util-deprecate@1.0.2",
+          "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@3.1.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        },
+        "verror": {
+          "version": "1.3.6",
+          "from": "verror@1.3.6",
+          "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
+        },
+        "wide-align": {
+          "version": "1.1.2",
+          "from": "wide-align@1.1.2",
+          "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz"
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "from": "wrappy@1.0.2",
+          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+        }
+      }
+    },
     "imurmurhash": {
       "version": "0.1.4",
       "from": "imurmurhash@>=0.1.4 <0.2.0",
@@ -5011,6 +8023,11 @@
       "from": "indexof@0.0.1",
       "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
     },
+    "infinity-agent": {
+      "version": "2.0.3",
+      "from": "infinity-agent@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz"
+    },
     "inflight": {
       "version": "1.0.5",
       "from": "inflight@>=1.0.4 <2.0.0",
@@ -5058,6 +8075,16 @@
       "from": "invert-kv@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz"
     },
+    "ipaddr.js": {
+      "version": "1.4.0",
+      "from": "ipaddr.js@1.4.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz"
+    },
+    "is": {
+      "version": "3.2.1",
+      "from": "is@>=3.0.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz"
+    },
     "is-arrayish": {
       "version": "0.2.1",
       "from": "is-arrayish@>=0.2.1 <0.3.0",
@@ -5148,6 +8175,11 @@
       "from": "is-obj@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz"
     },
+    "is-object": {
+      "version": "1.0.1",
+      "from": "is-object@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz"
+    },
     "is-path-cwd": {
       "version": "1.0.0",
       "from": "is-path-cwd@>=1.0.0 <2.0.0",
@@ -5163,6 +8195,11 @@
       "from": "is-path-inside@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz"
     },
+    "is-plain-obj": {
+      "version": "1.1.0",
+      "from": "is-plain-obj@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz"
+    },
     "is-primitive": {
       "version": "2.0.0",
       "from": "is-primitive@>=2.0.0 <3.0.0",
@@ -5193,6 +8230,11 @@
       "from": "is-stream@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
     },
+    "is-stream-ended": {
+      "version": "0.1.3",
+      "from": "is-stream-ended@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz"
+    },
     "is-subset": {
       "version": "0.1.1",
       "from": "is-subset@>=0.1.1 <0.2.0",
@@ -5213,6 +8255,11 @@
       "from": "is-upper-case@>=1.1.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz"
     },
+    "is-url": {
+      "version": "1.2.2",
+      "from": "is-url@>=1.2.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz"
+    },
     "is-utf8": {
       "version": "0.2.1",
       "from": "is-utf8@>=0.2.0 <0.3.0",
@@ -5243,6 +8290,11 @@
       "from": "isstream@>=0.1.2 <0.2.0",
       "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
     },
+    "isurl": {
+      "version": "1.0.0",
+      "from": "isurl@>=1.0.0-alpha5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz"
+    },
     "jasmine": {
       "version": "2.4.1",
       "from": "jasmine@>=2.4.0 <2.5.0",
@@ -5297,11 +8349,21 @@
         }
       }
     },
+    "jju": {
+      "version": "1.3.0",
+      "from": "jju@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz"
+    },
     "jodid25519": {
       "version": "1.0.2",
       "from": "jodid25519@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"
     },
+    "join-path": {
+      "version": "1.1.1",
+      "from": "join-path@>=1.1.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz"
+    },
     "jpm": {
       "version": "1.0.0",
       "from": "jpm@1.0.0",
@@ -5371,11 +8433,21 @@
       "from": "jsbn@>=0.1.0 <0.2.0",
       "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"
     },
+    "json-parse-helpfulerror": {
+      "version": "1.0.3",
+      "from": "json-parse-helpfulerror@>=1.0.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz"
+    },
     "json-schema": {
       "version": "0.2.3",
       "from": "json-schema@0.2.3",
       "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
     },
+    "json-schema-traverse": {
+      "version": "0.3.1",
+      "from": "json-schema-traverse@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz"
+    },
     "json-stable-stringify": {
       "version": "1.0.1",
       "from": "json-stable-stringify@>=1.0.1 <2.0.0",
@@ -5416,6 +8488,11 @@
       "from": "jsonpointer@2.0.0",
       "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
     },
+    "jsonschema": {
+      "version": "1.2.0",
+      "from": "jsonschema@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.0.tgz"
+    },
     "JSONStream": {
       "version": "1.0.7",
       "from": "JSONStream@>=1.0.3 <2.0.0",
@@ -5426,6 +8503,11 @@
       "from": "jsontoxml@0.0.11",
       "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-0.0.11.tgz"
     },
+    "jsonwebtoken": {
+      "version": "5.7.0",
+      "from": "jsonwebtoken@>=5.4.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-5.7.0.tgz"
+    },
     "jsprim": {
       "version": "1.3.1",
       "from": "jsprim@>=1.2.2 <2.0.0",
@@ -5460,6 +8542,16 @@
       "from": "jszip@>=2.4.0 <3.0.0",
       "resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz"
     },
+    "jwa": {
+      "version": "1.1.5",
+      "from": "jwa@>=1.1.4 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz"
+    },
+    "jws": {
+      "version": "3.1.4",
+      "from": "jws@>=3.1.4 <4.0.0",
+      "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz"
+    },
     "karma": {
       "version": "0.13.20",
       "from": "karma@0.13.20",
@@ -5603,6 +8695,18 @@
       "from": "loader-utils@>=0.2.2 <0.3.0",
       "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz"
     },
+    "locate-path": {
+      "version": "2.0.0",
+      "from": "locate-path@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+      "dependencies": {
+        "path-exists": {
+          "version": "3.0.0",
+          "from": "path-exists@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+        }
+      }
+    },
     "lodash": {
       "version": "3.10.1",
       "from": "lodash@3.10.1",
@@ -5633,6 +8737,16 @@
       "from": "lodash._isiterateecall@>=3.0.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"
     },
+    "lodash._isnative": {
+      "version": "2.4.1",
+      "from": "lodash._isnative@>=2.4.1 <2.5.0",
+      "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz"
+    },
+    "lodash._objecttypes": {
+      "version": "2.4.1",
+      "from": "lodash._objecttypes@>=2.4.1 <2.5.0",
+      "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz"
+    },
     "lodash._reescape": {
       "version": "3.0.0",
       "from": "lodash._reescape@>=3.0.0 <4.0.0",
@@ -5648,6 +8762,11 @@
       "from": "lodash._reinterpolate@>=3.0.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
     },
+    "lodash._shimkeys": {
+      "version": "2.4.1",
+      "from": "lodash._shimkeys@>=2.4.1 <2.5.0",
+      "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz"
+    },
     "lodash.escape": {
       "version": "3.0.0",
       "from": "lodash.escape@>=3.0.0 <4.0.0",
@@ -5663,11 +8782,21 @@
       "from": "lodash.isarray@>=3.0.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz"
     },
+    "lodash.isobject": {
+      "version": "2.4.1",
+      "from": "lodash.isobject@>=2.4.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz"
+    },
     "lodash.keys": {
       "version": "3.1.2",
       "from": "lodash.keys@>=3.0.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz"
     },
+    "lodash.noop": {
+      "version": "3.0.1",
+      "from": "lodash.noop@>=3.0.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-3.0.1.tgz"
+    },
     "lodash.restparam": {
       "version": "3.6.1",
       "from": "lodash.restparam@>=3.0.0 <4.0.0",
@@ -5683,6 +8812,23 @@
       "from": "lodash.templatesettings@>=3.0.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.0.tgz"
     },
+    "lodash.values": {
+      "version": "2.4.1",
+      "from": "lodash.values@>=2.4.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz",
+      "dependencies": {
+        "lodash.keys": {
+          "version": "2.4.1",
+          "from": "lodash.keys@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz"
+        }
+      }
+    },
+    "log-driver": {
+      "version": "1.2.5",
+      "from": "log-driver@>=1.2.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz"
+    },
     "log4js": {
       "version": "0.6.36",
       "from": "log4js@>=0.6.31 <0.7.0",
@@ -5993,6 +9139,11 @@
       "from": "magic-string@>=0.16.0 <0.17.0",
       "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.16.0.tgz"
     },
+    "make-dir": {
+      "version": "1.0.0",
+      "from": "make-dir@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz"
+    },
     "map-obj": {
       "version": "1.0.1",
       "from": "map-obj@>=1.0.0 <2.0.0",
@@ -6025,6 +9176,11 @@
       "from": "media-typer@0.3.0",
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
     },
+    "mem": {
+      "version": "1.1.0",
+      "from": "mem@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz"
+    },
     "memoizeasync": {
       "version": "1.0.0",
       "from": "memoizeasync@1.0.0",
@@ -6059,6 +9215,16 @@
       "from": "meow@>=3.3.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/meow/-/meow-3.6.0.tgz"
     },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "from": "merge-descriptors@1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
+    },
+    "methmeth": {
+      "version": "1.1.0",
+      "from": "methmeth@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz"
+    },
     "method-override": {
       "version": "2.3.5",
       "from": "method-override@>=2.3.5 <2.4.0",
@@ -6089,6 +9255,16 @@
       "from": "mime-types@>=2.0.9 <2.1.0",
       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz"
     },
+    "mimic-fn": {
+      "version": "1.1.0",
+      "from": "mimic-fn@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz"
+    },
+    "mimic-response": {
+      "version": "1.0.0",
+      "from": "mimic-response@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz"
+    },
     "minimatch": {
       "version": "3.0.3",
       "from": "minimatch@>=3.0.0 <4.0.0",
@@ -6099,6 +9275,23 @@
       "from": "minimist@>=1.2.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
     },
+    "minipass": {
+      "version": "2.2.1",
+      "from": "minipass@>=2.0.2 <3.0.0",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz",
+      "dependencies": {
+        "yallist": {
+          "version": "3.0.2",
+          "from": "yallist@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz"
+        }
+      }
+    },
+    "minizlib": {
+      "version": "1.0.3",
+      "from": "minizlib@>=1.0.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.3.tgz"
+    },
     "mkdirp": {
       "version": "0.5.1",
       "from": "mkdirp@>=0.5.1 <0.6.0",
@@ -6116,6 +9309,11 @@
       "from": "mkdirp-promise@>=5.0.0 <6.0.0",
       "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz"
     },
+    "modelo": {
+      "version": "4.2.0",
+      "from": "modelo@>=4.2.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.0.tgz"
+    },
     "modify-values": {
       "version": "1.0.0",
       "from": "modify-values@>=1.0.0 <2.0.0",
@@ -6161,11 +9359,33 @@
       "from": "nan@latest",
       "resolved": "https://registry.npmjs.org/nan/-/nan-2.4.0.tgz"
     },
+    "nash": {
+      "version": "2.0.4",
+      "from": "nash@>=2.0.4 <3.0.0",
+      "resolved": "https://registry.npmjs.org/nash/-/nash-2.0.4.tgz",
+      "dependencies": {
+        "async": {
+          "version": "1.5.2",
+          "from": "async@>=1.3.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
+        }
+      }
+    },
+    "ncp": {
+      "version": "1.0.1",
+      "from": "ncp@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz"
+    },
     "negotiator": {
       "version": "0.5.3",
       "from": "negotiator@0.5.3",
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
     },
+    "nested-error-stacks": {
+      "version": "1.0.2",
+      "from": "nested-error-stacks@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz"
+    },
     "next-tick": {
       "version": "0.2.2",
       "from": "next-tick@>=0.2.2 <0.3.0",
@@ -6181,6 +9401,11 @@
       "from": "node-emoji@>=1.0.4 <2.0.0",
       "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.5.1.tgz"
     },
+    "node-forge": {
+      "version": "0.7.1",
+      "from": "node-forge@>=0.7.1 <0.8.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz"
+    },
     "node-gyp": {
       "version": "3.5.0",
       "from": "node-gyp@>=3.2.1 <4.0.0",
@@ -6218,6 +9443,108 @@
       "from": "node-libs-browser@0.6.0",
       "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz"
     },
+    "node-pre-gyp": {
+      "version": "0.6.36",
+      "from": "node-pre-gyp@>=0.6.4 <0.7.0",
+      "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz",
+      "dependencies": {
+        "balanced-match": {
+          "version": "1.0.0",
+          "from": "balanced-match@^1.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+        },
+        "brace-expansion": {
+          "version": "1.1.8",
+          "from": "brace-expansion@^1.1.7",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+        },
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@^7.0.5",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "from": "minimatch@^3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "from": "nopt@>=4.0.1 <5.0.0",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"
+        },
+        "osenv": {
+          "version": "0.1.4",
+          "from": "osenv@>=0.1.4 <0.2.0",
+          "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "rc": {
+          "version": "1.2.1",
+          "from": "rc@>=1.1.7 <2.0.0",
+          "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz"
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.81.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@^2.6.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        },
+        "semver": {
+          "version": "5.4.1",
+          "from": "semver@^5.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz"
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "from": "strip-json-comments@>=2.0.1 <2.1.0",
+          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
     "node-source-walk": {
       "version": "1.4.2",
       "from": "node-source-walk@>=1.4.0 <1.5.0",
@@ -6238,6 +9565,11 @@
       "from": "node-watch@0.3.4",
       "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.3.4.tgz"
     },
+    "node-zopfli": {
+      "version": "1.4.0",
+      "from": "node-zopfli@>=1.4.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/node-zopfli/-/node-zopfli-1.4.0.tgz"
+    },
     "nomnom": {
       "version": "1.8.1",
       "from": "nomnom@*",
@@ -6280,6 +9612,11 @@
       "from": "normalize-path@>=2.0.1 <3.0.0",
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz"
     },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "from": "npm-run-path@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
+    },
     "npmconf": {
       "version": "2.0.9",
       "from": "npmconf@2.0.9",
@@ -6374,6 +9711,11 @@
       "from": "onetime@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz"
     },
+    "open": {
+      "version": "0.0.5",
+      "from": "open@>=0.0.5 <0.0.6",
+      "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz"
+    },
     "optimist": {
       "version": "0.6.1",
       "from": "optimist@>=0.6.1 <0.7.0",
@@ -6396,6 +9738,11 @@
       "from": "optjs@>=3.2.2 <3.3.0",
       "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz"
     },
+    "ora": {
+      "version": "0.2.3",
+      "from": "ora@0.2.3",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz"
+    },
     "orchestrator": {
       "version": "0.3.7",
       "from": "orchestrator@>=0.3.0 <0.4.0",
@@ -6448,6 +9795,31 @@
       "from": "over@>=0.0.5 <1.0.0",
       "resolved": "https://registry.npmjs.org/over/-/over-0.0.5.tgz"
     },
+    "p-cancelable": {
+      "version": "0.3.0",
+      "from": "p-cancelable@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz"
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "from": "p-finally@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
+    },
+    "p-limit": {
+      "version": "1.1.0",
+      "from": "p-limit@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz"
+    },
+    "p-locate": {
+      "version": "2.0.0",
+      "from": "p-locate@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"
+    },
+    "p-timeout": {
+      "version": "1.2.0",
+      "from": "p-timeout@>=1.1.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.0.tgz"
+    },
     "package-json": {
       "version": "2.4.0",
       "from": "package-json@>=2.0.0 <3.0.0",
@@ -6545,6 +9917,16 @@
       "from": "path-is-inside@>=1.0.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
     },
+    "path-key": {
+      "version": "2.0.1",
+      "from": "path-key@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "from": "path-to-regexp@0.1.7",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
+    },
     "path-type": {
       "version": "1.1.0",
       "from": "path-type@>=1.0.0 <2.0.0",
@@ -6602,6 +9984,18 @@
       "from": "pkginfo@>=0.3.0 <0.4.0",
       "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz"
     },
+    "portfinder": {
+      "version": "0.4.0",
+      "from": "portfinder@>=0.4.0 <0.5.0",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-0.4.0.tgz",
+      "dependencies": {
+        "async": {
+          "version": "0.9.0",
+          "from": "async@0.9.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz"
+        }
+      }
+    },
     "prepend-http": {
       "version": "1.0.4",
       "from": "prepend-http@>=1.0.1 <2.0.0",
@@ -6637,6 +10031,30 @@
       "from": "promise@>=7.0.3 <8.0.0",
       "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz"
     },
+    "prompt": {
+      "version": "1.0.0",
+      "from": "prompt@1.0.0",
+      "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz",
+      "dependencies": {
+        "async": {
+          "version": "1.0.0",
+          "from": "async@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz"
+        },
+        "winston": {
+          "version": "2.1.1",
+          "from": "winston@>=2.1.0 <2.2.0",
+          "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
+          "dependencies": {
+            "colors": {
+              "version": "1.0.3",
+              "from": "colors@>=1.0.0 <1.1.0",
+              "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"
+            }
+          }
+        }
+      }
+    },
     "promzard": {
       "version": "0.3.0",
       "from": "promzard@0.3.0",
@@ -6671,6 +10089,11 @@
         }
       }
     },
+    "protochain": {
+      "version": "1.0.5",
+      "from": "protochain@>=1.0.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/protochain/-/protochain-1.0.5.tgz"
+    },
     "protractor": {
       "version": "4.0.14",
       "from": "protractor@4.0.14",
@@ -6763,11 +10186,21 @@
         }
       }
     },
+    "proxy-addr": {
+      "version": "1.1.5",
+      "from": "proxy-addr@>=1.1.5 <1.2.0",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz"
+    },
     "prr": {
       "version": "0.0.0",
       "from": "prr@>=0.0.0 <0.1.0",
       "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz"
     },
+    "pseudomap": {
+      "version": "1.0.2",
+      "from": "pseudomap@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
+    },
     "pullstream": {
       "version": "0.4.1",
       "from": "pullstream@>=0.4.1 <1.0.0",
@@ -6780,6 +10213,16 @@
         }
       }
     },
+    "pump": {
+      "version": "1.0.2",
+      "from": "pump@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz"
+    },
+    "pumpify": {
+      "version": "1.3.5",
+      "from": "pumpify@>=1.3.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz"
+    },
     "punycode": {
       "version": "1.4.1",
       "from": "punycode@>=1.2.4 <2.0.0",
@@ -6901,6 +10344,11 @@
         }
       }
     },
+    "readline2": {
+      "version": "1.0.1",
+      "from": "readline2@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz"
+    },
     "rechoir": {
       "version": "0.6.2",
       "from": "rechoir@>=0.6.0 <0.7.0",
@@ -7065,6 +10513,16 @@
       "from": "request-progress@0.3.1",
       "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz"
     },
+    "require-directory": {
+      "version": "2.1.1",
+      "from": "require-directory@>=2.1.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
+    },
+    "require-main-filename": {
+      "version": "1.0.1",
+      "from": "require-main-filename@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz"
+    },
     "requires-port": {
       "version": "1.0.0",
       "from": "requires-port@>=1.0.0 <2.0.0",
@@ -7090,6 +10548,102 @@
       "from": "retry@>=0.10.0 <0.11.0",
       "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz"
     },
+    "retry-request": {
+      "version": "2.0.5",
+      "from": "retry-request@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-2.0.5.tgz",
+      "dependencies": {
+        "caseless": {
+          "version": "0.12.0",
+          "from": "caseless@~0.12.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+        },
+        "har-validator": {
+          "version": "4.2.1",
+          "from": "har-validator@~4.2.1",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.7",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "qs": {
+          "version": "6.4.0",
+          "from": "qs@~6.4.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.1",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "request": {
+          "version": "2.81.0",
+          "from": "request@^2.81.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+          "dependencies": {
+            "safe-buffer": {
+              "version": "5.1.1",
+              "from": "safe-buffer@~5.1.0",
+              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+            }
+          }
+        },
+        "through2": {
+          "version": "2.0.3",
+          "from": "through2@^2.0.0",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+        },
+        "tough-cookie": {
+          "version": "2.3.2",
+          "from": "tough-cookie@~2.3.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "from": "tunnel-agent@^0.6.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+        },
+        "uuid": {
+          "version": "3.1.0",
+          "from": "uuid@^3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+        }
+      }
+    },
+    "revalidator": {
+      "version": "0.1.8",
+      "from": "revalidator@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz"
+    },
     "rewire": {
       "version": "2.5.1",
       "from": "rewire@>=2.3.3 <3.0.0",
@@ -7164,6 +10718,43 @@
       "from": "rollup-pluginutils@>=1.5.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz"
     },
+    "router": {
+      "version": "1.3.1",
+      "from": "router@>=1.3.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/router/-/router-1.3.1.tgz",
+      "dependencies": {
+        "array-flatten": {
+          "version": "2.1.1",
+          "from": "array-flatten@2.1.1",
+          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz"
+        },
+        "debug": {
+          "version": "2.6.8",
+          "from": "debug@2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz"
+        },
+        "methods": {
+          "version": "1.1.2",
+          "from": "methods@~1.1.2",
+          "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
+        },
+        "ms": {
+          "version": "2.0.0",
+          "from": "ms@2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+        },
+        "parseurl": {
+          "version": "1.3.1",
+          "from": "parseurl@~1.3.1",
+          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"
+        }
+      }
+    },
+    "rsvp": {
+      "version": "3.6.2",
+      "from": "rsvp@>=3.0.18 <4.0.0",
+      "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz"
+    },
     "run-async": {
       "version": "2.3.0",
       "from": "run-async@>=2.2.0 <3.0.0",
@@ -7174,6 +10765,11 @@
       "from": "rx@>=4.1.0 <5.0.0",
       "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz"
     },
+    "rx-lite": {
+      "version": "3.1.2",
+      "from": "rx-lite@>=3.1.2 <4.0.0",
+      "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz"
+    },
     "rxjs": {
       "version": "5.0.1",
       "from": "rxjs@5.0.1",
@@ -7317,6 +10913,11 @@
       "from": "sequencify@>=0.0.7 <0.1.0",
       "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz"
     },
+    "serializerr": {
+      "version": "1.0.3",
+      "from": "serializerr@1.0.3",
+      "resolved": "https://registry.npmjs.org/serializerr/-/serializerr-1.0.3.tgz"
+    },
     "serve-favicon": {
       "version": "2.3.0",
       "from": "serve-favicon@>=2.3.0 <2.4.0",
@@ -7354,11 +10955,26 @@
       "from": "setimmediate@>=1.0.1 <2.0.0",
       "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz"
     },
+    "setprototypeof": {
+      "version": "1.0.3",
+      "from": "setprototypeof@1.0.3",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz"
+    },
     "sha.js": {
       "version": "2.2.6",
       "from": "sha.js@2.2.6",
       "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz"
     },
+    "shebang-command": {
+      "version": "1.2.0",
+      "from": "shebang-command@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "from": "shebang-regex@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
+    },
     "shelljs": {
       "version": "0.7.6",
       "from": "shelljs@>=0.7.0 <0.8.0",
@@ -7376,6 +10992,88 @@
         }
       }
     },
+    "shrink-ray": {
+      "version": "0.1.3",
+      "from": "shrink-ray@>=0.1.3 <0.2.0",
+      "resolved": "https://registry.npmjs.org/shrink-ray/-/shrink-ray-0.1.3.tgz",
+      "dependencies": {
+        "accepts": {
+          "version": "1.3.4",
+          "from": "accepts@~1.3.1",
+          "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz"
+        },
+        "bytes": {
+          "version": "2.2.0",
+          "from": "bytes@2.2.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz"
+        },
+        "compressible": {
+          "version": "2.0.11",
+          "from": "compressible@~2.0.7",
+          "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz"
+        },
+        "duplexer2": {
+          "version": "0.1.4",
+          "from": "duplexer2@>=0.1.2 <0.2.0",
+          "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz"
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "from": "inherits@~2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "lru-cache": {
+          "version": "4.1.1",
+          "from": "lru-cache@^4.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@~2.1.16",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "multipipe": {
+          "version": "0.3.1",
+          "from": "multipipe@>=0.3.0 <0.4.0",
+          "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz"
+        },
+        "negotiator": {
+          "version": "0.6.1",
+          "from": "negotiator@0.6.1",
+          "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.0.2",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@~5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+        },
+        "vary": {
+          "version": "1.1.1",
+          "from": "vary@~1.1.0",
+          "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz"
+        }
+      }
+    },
     "sigmund": {
       "version": "1.0.1",
       "from": "sigmund@>=1.0.0 <1.1.0",
@@ -7540,6 +11238,23 @@
       "from": "split@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz"
     },
+    "split-array-stream": {
+      "version": "1.0.3",
+      "from": "split-array-stream@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz",
+      "dependencies": {
+        "async": {
+          "version": "2.5.0",
+          "from": "async@^2.4.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@^4.14.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        }
+      }
+    },
     "split2": {
       "version": "2.1.0",
       "from": "split2@>=2.0.0 <3.0.0",
@@ -7594,6 +11309,11 @@
       "from": "stream-browserify@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz"
     },
+    "stream-buffers": {
+      "version": "3.0.1",
+      "from": "stream-buffers@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.1.tgz"
+    },
     "stream-combiner": {
       "version": "0.0.4",
       "from": "stream-combiner@>=0.0.4 <0.1.0",
@@ -7614,11 +11334,36 @@
       "from": "stream-equal@0.1.6",
       "resolved": "https://registry.npmjs.org/stream-equal/-/stream-equal-0.1.6.tgz"
     },
+    "stream-events": {
+      "version": "1.0.2",
+      "from": "stream-events@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.2.tgz"
+    },
+    "stream-shift": {
+      "version": "1.0.0",
+      "from": "stream-shift@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz"
+    },
     "string_decoder": {
       "version": "0.10.31",
       "from": "string_decoder@>=0.10.0 <0.11.0",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
     },
+    "string-format-obj": {
+      "version": "1.1.0",
+      "from": "string-format-obj@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.0.tgz"
+    },
+    "string-length": {
+      "version": "1.0.1",
+      "from": "string-length@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz"
+    },
+    "string-template": {
+      "version": "1.0.0",
+      "from": "string-template@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz"
+    },
     "string-width": {
       "version": "1.0.1",
       "from": "string-width@>=1.0.1 <2.0.0",
@@ -7661,6 +11406,11 @@
       "from": "strip-bom@>=2.0.0 <3.0.0",
       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
     },
+    "strip-eof": {
+      "version": "1.0.0",
+      "from": "strip-eof@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
+    },
     "strip-indent": {
       "version": "1.0.1",
       "from": "strip-indent@>=1.0.1 <2.0.0",
@@ -7671,11 +11421,168 @@
       "from": "strip-json-comments@>=1.0.4 <1.1.0",
       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"
     },
+    "stubs": {
+      "version": "3.0.0",
+      "from": "stubs@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz"
+    },
     "success-symbol": {
       "version": "0.1.0",
       "from": "success-symbol@>=0.1.0 <0.2.0",
       "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz"
     },
+    "superstatic": {
+      "version": "4.3.0",
+      "from": "superstatic@>=4.1.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/superstatic/-/superstatic-4.3.0.tgz",
+      "dependencies": {
+        "accepts": {
+          "version": "1.3.4",
+          "from": "accepts@~1.3.3",
+          "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz"
+        },
+        "async": {
+          "version": "1.5.2",
+          "from": "async@>=1.5.2 <2.0.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "from": "balanced-match@^1.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+        },
+        "basic-auth": {
+          "version": "1.1.0",
+          "from": "basic-auth@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz"
+        },
+        "brace-expansion": {
+          "version": "1.1.8",
+          "from": "brace-expansion@^1.1.7",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+        },
+        "bytes": {
+          "version": "2.5.0",
+          "from": "bytes@2.5.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz"
+        },
+        "compressible": {
+          "version": "2.0.11",
+          "from": "compressible@>=2.0.10 <2.1.0",
+          "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz"
+        },
+        "compression": {
+          "version": "1.7.0",
+          "from": "compression@>=1.7.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz"
+        },
+        "connect": {
+          "version": "3.6.3",
+          "from": "connect@>=3.6.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz"
+        },
+        "debug": {
+          "version": "2.6.8",
+          "from": "debug@2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz"
+        },
+        "depd": {
+          "version": "1.1.1",
+          "from": "depd@~1.1.0",
+          "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz"
+        },
+        "destroy": {
+          "version": "1.0.4",
+          "from": "destroy@^1.0.4",
+          "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
+        },
+        "escape-html": {
+          "version": "1.0.3",
+          "from": "escape-html@~1.0.3",
+          "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
+        },
+        "finalhandler": {
+          "version": "1.0.4",
+          "from": "finalhandler@1.0.4",
+          "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz"
+        },
+        "fs-extra": {
+          "version": "0.30.0",
+          "from": "fs-extra@>=0.30.0 <0.31.0",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz"
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@^7.1.2",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@^4.1.2",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "from": "lodash@^4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+        },
+        "mime-db": {
+          "version": "1.29.0",
+          "from": "mime-db@~1.29.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.1.16",
+          "from": "mime-types@^2.1.16",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "from": "minimatch@^3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+        },
+        "morgan": {
+          "version": "1.8.2",
+          "from": "morgan@>=1.8.2 <2.0.0",
+          "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.2.tgz"
+        },
+        "ms": {
+          "version": "2.0.0",
+          "from": "ms@2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+        },
+        "negotiator": {
+          "version": "0.6.1",
+          "from": "negotiator@0.6.1",
+          "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
+        },
+        "parseurl": {
+          "version": "1.3.1",
+          "from": "parseurl@~1.3.1",
+          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"
+        },
+        "path-to-regexp": {
+          "version": "1.7.0",
+          "from": "path-to-regexp@>=1.7.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "statuses": {
+          "version": "1.3.1",
+          "from": "statuses@~1.3.1",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+        },
+        "vary": {
+          "version": "1.1.1",
+          "from": "vary@~1.1.1",
+          "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz"
+        }
+      }
+    },
     "supports-color": {
       "version": "2.0.0",
       "from": "supports-color@>=2.0.0 <3.0.0",
@@ -7718,6 +11625,80 @@
         }
       }
     },
+    "tar-pack": {
+      "version": "3.4.0",
+      "from": "tar-pack@>=3.4.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz",
+      "dependencies": {
+        "balanced-match": {
+          "version": "1.0.0",
+          "from": "balanced-match@^1.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+        },
+        "brace-expansion": {
+          "version": "1.1.8",
+          "from": "brace-expansion@^1.1.7",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+        },
+        "fstream": {
+          "version": "1.0.11",
+          "from": "fstream@^1.0.10",
+          "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz"
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@^7.0.5",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+        },
+        "graceful-fs": {
+          "version": "4.1.11",
+          "from": "graceful-fs@^4.1.2",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@~1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "from": "minimatch@^3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "from": "readable-stream@^2.1.4",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3",
+              "from": "inherits@~2.0.3",
+              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+            }
+          }
+        },
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@^2.5.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "from": "safe-buffer@~5.1.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@~1.0.3",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+        },
+        "uid-number": {
+          "version": "0.0.6",
+          "from": "uid-number@>=0.0.6 <0.0.7",
+          "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz"
+        }
+      }
+    },
     "tar-stream": {
       "version": "1.1.5",
       "from": "tar-stream@>=1.1.0 <1.2.0",
@@ -7836,6 +11817,18 @@
       "from": "tough-cookie@>=2.2.0 <2.3.0",
       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz"
     },
+    "toxic": {
+      "version": "1.0.0",
+      "from": "toxic@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/toxic/-/toxic-1.0.0.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
+        }
+      }
+    },
     "traverse": {
       "version": "0.3.9",
       "from": "traverse@>=0.3.0 <0.4.0",
@@ -7851,6 +11844,11 @@
       "from": "trim-off-newlines@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz"
     },
+    "try-require": {
+      "version": "1.2.1",
+      "from": "try-require@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz"
+    },
     "ts-api-guardian": {
       "version": "0.2.2",
       "from": "ts-api-guardian@0.2.2",
@@ -8063,6 +12061,11 @@
       "from": "unique-stream@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz"
     },
+    "unique-string": {
+      "version": "1.0.0",
+      "from": "unique-string@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz"
+    },
     "universal-analytics": {
       "version": "0.3.10",
       "from": "universal-analytics@>=0.3.9 <0.4.0",
@@ -8117,11 +12120,21 @@
         }
       }
     },
+    "url-join": {
+      "version": "0.0.1",
+      "from": "url-join@0.0.1",
+      "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz"
+    },
     "url-parse-lax": {
       "version": "1.0.0",
       "from": "url-parse-lax@>=1.0.0 <2.0.0",
       "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz"
     },
+    "url-to-options": {
+      "version": "1.0.1",
+      "from": "url-to-options@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz"
+    },
     "user-home": {
       "version": "1.1.1",
       "from": "user-home@>=1.1.1 <2.0.0",
@@ -8154,6 +12167,18 @@
       "from": "util-deprecate@>=1.0.1 <1.1.0",
       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
     },
+    "utile": {
+      "version": "0.3.0",
+      "from": "utile@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz",
+      "dependencies": {
+        "async": {
+          "version": "0.9.2",
+          "from": "async@>=0.9.0 <0.10.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz"
+        }
+      }
+    },
     "utils-merge": {
       "version": "1.0.0",
       "from": "utils-merge@1.0.0",
@@ -8169,6 +12194,11 @@
       "from": "v8flags@>=2.0.2 <3.0.0",
       "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.11.tgz"
     },
+    "valid-url": {
+      "version": "1.0.9",
+      "from": "valid-url@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz"
+    },
     "validate-npm-package-license": {
       "version": "3.0.1",
       "from": "validate-npm-package-license@>=3.0.1 <4.0.0",
@@ -8473,6 +12503,11 @@
       "from": "which@>=1.0.9 <2.0.0",
       "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz"
     },
+    "which-module": {
+      "version": "2.0.0",
+      "from": "which-module@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
+    },
     "wide-align": {
       "version": "1.1.0",
       "from": "wide-align@>=1.1.0 <2.0.0",
@@ -8592,11 +12627,28 @@
       "from": "y18n@>=3.2.0 <4.0.0",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.0.tgz"
     },
+    "yallist": {
+      "version": "2.1.2",
+      "from": "yallist@>=2.1.2 <3.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
+    },
     "yargs": {
       "version": "3.31.0",
       "from": "yargs@3.31.0",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.31.0.tgz"
     },
+    "yargs-parser": {
+      "version": "7.0.0",
+      "from": "yargs-parser@>=7.0.0 <8.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+      "dependencies": {
+        "camelcase": {
+          "version": "4.1.0",
+          "from": "camelcase@^4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz"
+        }
+      }
+    },
     "yarn": {
       "version": "0.19.1",
       "from": "yarn@latest",
diff --git a/package.json b/package.json
index ea35ff37f3..1b67d9bb3c 100644
--- a/package.json
+++ b/package.json
@@ -57,6 +57,7 @@
     "dgeni": "^0.4.2",
     "dgeni-packages": "^0.16.5",
     "entities": "^1.1.1",
+    "firebase-tools": "^3.9.2",
     "firefox-profile": "^0.3.4",
     "fs-extra": "^0.26.3",
     "glob": "^4.0.6",
diff --git a/scripts/ci/payload-size.sh b/scripts/ci/payload-size.sh
index dcc7890f7a..0bade287e5 100644
--- a/scripts/ci/payload-size.sh
+++ b/scripts/ci/payload-size.sh
@@ -39,7 +39,10 @@ addTimestamp() {
 
 # Write travis commit message to global variable $payloadData
 addMessage() {
-  message=$(git log --oneline $TRAVIS_COMMIT_RANGE)
+  # Grab the set of SHAs for the message. This can fail when you force push or do initial build
+  # because $TRAVIS_COMMIT_RANGE will contain the previous SHA which will not be in the
+  # force push or commit, hence we default to last commit.
+  message=$(git log --oneline $TRAVIS_COMMIT_RANGE -- || git log --oneline -n1)
   message=$(echo $message | sed 's/"/\\"/g' | sed 's/\\/\\\\/g')
   payloadData="$payloadData\"message\": \"$message\""
 }
@@ -85,7 +88,7 @@ uploadData() {
 
     # WARNING: FIREBASE_TOKEN should NOT be printed.
     set +x
-    firebase database:update --data "$payloadData" --project $PROJECT_NAME --confirm --token "$ANGULAR_PAYLOAD_FIREBASE_TOKEN" $dbPath
+    $PROJECT_ROOT/node_modules/.bin/firebase database:update --data "$payloadData" --project $PROJECT_NAME --confirm --token "$ANGULAR_PAYLOAD_FIREBASE_TOKEN" $dbPath
   fi
 }
 
diff --git a/scripts/ci/publish-build-artifacts.sh b/scripts/ci/publish-build-artifacts.sh
index 1cdf28ea51..9e7c006ee7 100755
--- a/scripts/ci/publish-build-artifacts.sh
+++ b/scripts/ci/publish-build-artifacts.sh
@@ -89,7 +89,7 @@ function publishRepo {
     git config user.name "${COMMITTER_USER_NAME}" && \
     git config user.email "${COMMITTER_USER_EMAIL}" && \
     git add --all && \
-    git commit -m "${COMMIT_MSG}" && \
+    git commit -m "${COMMIT_MSG}" --quiet && \
     git tag "${BUILD_VER}" && \
     git push origin "${BRANCH}" --tags --force
   )
@@ -101,7 +101,7 @@ function publishPackages {
   PKGS_DIST=$2
   BRANCH=$3
 
-  for dir in $PKGS_DIST/*/ 
+  for dir in $PKGS_DIST/*/
   do
     COMPONENT="$(basename ${dir})"