Mobrovac has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/315714

Change subject: Update restbase to 66f3831
......................................................................

Update restbase to 66f3831

List of changes:
xxxxxxx Update node module dependencies

Change-Id: Ie4c8e3e319d50f0619a7cb6d545bbd6d282cb90b
---
M node_modules/content-type/package.json
M node_modules/heapdump/build/Makefile
M 
node_modules/heapdump/build/Release/.deps/Release/obj.target/addon/src/heapdump.o.d
M node_modules/heapdump/build/addon.target.mk
M node_modules/heapdump/build/config.gypi
M node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
M node_modules/hyperswitch/node_modules/preq/index.js
M 
node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/aws4.js
M 
node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/package.json
M node_modules/hyperswitch/node_modules/preq/package.json
M node_modules/hyperswitch/node_modules/swagger-ui/package.json
M node_modules/json-stable-stringify/package.json
M 
node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
M 
node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
M node_modules/mediawiki-title/lib/index.js
M node_modules/mediawiki-title/package.json
M node_modules/mediawiki-title/test/index.js
M 
node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/connection.js
M 
node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/request-handler.js
M 
node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/writers.js
M 
node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
M 
node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js
M 
node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json
M 
node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
M 
node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/core-util-is/package.json
M 
node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/string_decoder/package.json
27 files changed, 262 insertions(+), 155 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/restbase/deploy 
refs/changes/14/315714/1

diff --git a/node_modules/content-type/package.json 
b/node_modules/content-type/package.json
index 0526ef9..3fce6d9 100644
--- a/node_modules/content-type/package.json
+++ b/node_modules/content-type/package.json
@@ -44,7 +44,7 @@
   },
   "homepage": "https://github.com/jshttp/content-type#readme";,
   "_id": "content-type@1.0.1",
-  "_shasum": "ad8c9483a48c242604b4ec7602123ea3f270fa73",
+  "_shasum": "8e9159d35ab9f2a064a52b91cb279a9f4bcee022",
   "_from": "git+https://github.com/wikimedia/content-type.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/content-type.git#47b2632d0a2ee79a7d67268e2f6621becd95d05b";
 }
diff --git a/node_modules/heapdump/build/Makefile 
b/node_modules/heapdump/build/Makefile
index 71b2b2b..c9d9d51 100644
--- a/node_modules/heapdump/build/Makefile
+++ b/node_modules/heapdump/build/Makefile
@@ -57,7 +57,7 @@
 CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host)
 CXX.host ?= g++
 CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host)
-LINK.host ?= $(CXX.host)
+LINK.host ?= g++
 LDFLAGS.host ?=
 AR.host ?= ar
 
@@ -308,8 +308,8 @@
 endif
 
 quiet_cmd_regen_makefile = ACTION Regenerating $@
-cmd_regen_makefile = cd $(srcdir); 
/usr/local/nvm/versions/node/v4.4.6/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py
 -fmake --ignore-environment "--toplevel-dir=." 
-I/opt/service/node_modules/heapdump/build/config.gypi 
-I/usr/local/nvm/versions/node/v4.4.6/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
 -I/home/runuser/.node-gyp/4.4.6/include/node/common.gypi "--depth=." 
"-Goutput_dir=." "--generator-output=build" "-Dlibrary=shared_library" 
"-Dvisibility=default" "-Dnode_root_dir=/home/runuser/.node-gyp/4.4.6" 
"-Dnode_gyp_dir=/usr/local/nvm/versions/node/v4.4.6/lib/node_modules/npm/node_modules/node-gyp"
 "-Dnode_lib_file=node.lib" 
"-Dmodule_root_dir=/opt/service/node_modules/heapdump" binding.gyp
-Makefile: 
$(srcdir)/../../../../usr/local/nvm/versions/node/v4.4.6/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
 $(srcdir)/build/config.gypi $(srcdir)/binding.gyp 
$(srcdir)/../../../../home/runuser/.node-gyp/4.4.6/include/node/common.gypi
+cmd_regen_makefile = cd $(srcdir); 
/usr/local/nvm/versions/node/v4.6.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py
 -fmake --ignore-environment "--toplevel-dir=." 
-I/opt/service/node_modules/heapdump/build/config.gypi 
-I/usr/local/nvm/versions/node/v4.6.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
 -I/home/runuser/.node-gyp/4.6.0/include/node/common.gypi "--depth=." 
"-Goutput_dir=." "--generator-output=build" "-Dlibrary=shared_library" 
"-Dvisibility=default" "-Dnode_root_dir=/home/runuser/.node-gyp/4.6.0" 
"-Dnode_gyp_dir=/usr/local/nvm/versions/node/v4.6.0/lib/node_modules/npm/node_modules/node-gyp"
 "-Dnode_lib_file=node.lib" 
"-Dmodule_root_dir=/opt/service/node_modules/heapdump" binding.gyp
+Makefile: 
$(srcdir)/../../../../home/runuser/.node-gyp/4.6.0/include/node/common.gypi 
$(srcdir)/../../../../usr/local/nvm/versions/node/v4.6.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
 $(srcdir)/build/config.gypi $(srcdir)/binding.gyp
        $(call do_cmd,regen_makefile)
 
 # "all" is a concatenation of the "all" targets from all the included
diff --git 
a/node_modules/heapdump/build/Release/.deps/Release/obj.target/addon/src/heapdump.o.d
 
b/node_modules/heapdump/build/Release/.deps/Release/obj.target/addon/src/heapdump.o.d
index c044ce4..9af41a7 100644
--- 
a/node_modules/heapdump/build/Release/.deps/Release/obj.target/addon/src/heapdump.o.d
+++ 
b/node_modules/heapdump/build/Release/.deps/Release/obj.target/addon/src/heapdump.o.d
@@ -1,36 +1,36 @@
-cmd_Release/obj.target/addon/src/heapdump.o := g++ 
'-DNODE_GYP_MODULE_NAME=addon' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' 
'-DBUILDING_NODE_EXTENSION' -I/home/runuser/.node-gyp/4.4.6/include/node 
-I/home/runuser/.node-gyp/4.4.6/src 
-I/home/runuser/.node-gyp/4.4.6/deps/uv/include 
-I/home/runuser/.node-gyp/4.4.6/deps/v8/include  -fPIC -pthread -Wall -Wextra 
-Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections 
-fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++0x -MMD -MF 
./Release/.deps/Release/obj.target/addon/src/heapdump.o.d.raw   -c -o 
Release/obj.target/addon/src/heapdump.o ../src/heapdump.cc
+cmd_Release/obj.target/addon/src/heapdump.o := g++ 
'-DNODE_GYP_MODULE_NAME=addon' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' 
'-DV8_DEPRECATION_WARNINGS=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' 
'-DBUILDING_NODE_EXTENSION' -I/home/runuser/.node-gyp/4.6.0/include/node 
-I/home/runuser/.node-gyp/4.6.0/src 
-I/home/runuser/.node-gyp/4.6.0/deps/uv/include 
-I/home/runuser/.node-gyp/4.6.0/deps/v8/include  -fPIC -pthread -Wall -Wextra 
-Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections 
-fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++0x -MMD -MF 
./Release/.deps/Release/obj.target/addon/src/heapdump.o.d.raw   -c -o 
Release/obj.target/addon/src/heapdump.o ../src/heapdump.cc
 Release/obj.target/addon/src/heapdump.o: ../src/heapdump.cc \
- /home/runuser/.node-gyp/4.4.6/include/node/node.h \
- /home/runuser/.node-gyp/4.4.6/include/node/v8.h \
- /home/runuser/.node-gyp/4.4.6/include/node/v8-version.h \
- /home/runuser/.node-gyp/4.4.6/include/node/v8config.h \
- /home/runuser/.node-gyp/4.4.6/include/node/node_version.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/node.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/v8.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/v8-version.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/v8config.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/node_version.h \
  ../src/compat-inl.h ../src/compat.h \
- /home/runuser/.node-gyp/4.4.6/include/node/node_version.h \
- /home/runuser/.node-gyp/4.4.6/include/node/v8.h \
- /home/runuser/.node-gyp/4.4.6/include/node/v8-profiler.h \
- /home/runuser/.node-gyp/4.4.6/include/node/uv.h \
- /home/runuser/.node-gyp/4.4.6/include/node/uv-errno.h \
- /home/runuser/.node-gyp/4.4.6/include/node/uv-version.h \
- /home/runuser/.node-gyp/4.4.6/include/node/uv-unix.h \
- /home/runuser/.node-gyp/4.4.6/include/node/uv-threadpool.h \
- /home/runuser/.node-gyp/4.4.6/include/node/uv-linux.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/node_version.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/v8.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/v8-profiler.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/uv.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/uv-errno.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/uv-version.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/uv-unix.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/uv-threadpool.h \
+ /home/runuser/.node-gyp/4.6.0/include/node/uv-linux.h \
  ../src/heapdump-posix.h
 ../src/heapdump.cc:
-/home/runuser/.node-gyp/4.4.6/include/node/node.h:
-/home/runuser/.node-gyp/4.4.6/include/node/v8.h:
-/home/runuser/.node-gyp/4.4.6/include/node/v8-version.h:
-/home/runuser/.node-gyp/4.4.6/include/node/v8config.h:
-/home/runuser/.node-gyp/4.4.6/include/node/node_version.h:
+/home/runuser/.node-gyp/4.6.0/include/node/node.h:
+/home/runuser/.node-gyp/4.6.0/include/node/v8.h:
+/home/runuser/.node-gyp/4.6.0/include/node/v8-version.h:
+/home/runuser/.node-gyp/4.6.0/include/node/v8config.h:
+/home/runuser/.node-gyp/4.6.0/include/node/node_version.h:
 ../src/compat-inl.h:
 ../src/compat.h:
-/home/runuser/.node-gyp/4.4.6/include/node/node_version.h:
-/home/runuser/.node-gyp/4.4.6/include/node/v8.h:
-/home/runuser/.node-gyp/4.4.6/include/node/v8-profiler.h:
-/home/runuser/.node-gyp/4.4.6/include/node/uv.h:
-/home/runuser/.node-gyp/4.4.6/include/node/uv-errno.h:
-/home/runuser/.node-gyp/4.4.6/include/node/uv-version.h:
-/home/runuser/.node-gyp/4.4.6/include/node/uv-unix.h:
-/home/runuser/.node-gyp/4.4.6/include/node/uv-threadpool.h:
-/home/runuser/.node-gyp/4.4.6/include/node/uv-linux.h:
+/home/runuser/.node-gyp/4.6.0/include/node/node_version.h:
+/home/runuser/.node-gyp/4.6.0/include/node/v8.h:
+/home/runuser/.node-gyp/4.6.0/include/node/v8-profiler.h:
+/home/runuser/.node-gyp/4.6.0/include/node/uv.h:
+/home/runuser/.node-gyp/4.6.0/include/node/uv-errno.h:
+/home/runuser/.node-gyp/4.6.0/include/node/uv-version.h:
+/home/runuser/.node-gyp/4.6.0/include/node/uv-unix.h:
+/home/runuser/.node-gyp/4.6.0/include/node/uv-threadpool.h:
+/home/runuser/.node-gyp/4.6.0/include/node/uv-linux.h:
 ../src/heapdump-posix.h:
diff --git a/node_modules/heapdump/build/addon.target.mk 
b/node_modules/heapdump/build/addon.target.mk
index 1368a66..8f21dcd 100644
--- a/node_modules/heapdump/build/addon.target.mk
+++ b/node_modules/heapdump/build/addon.target.mk
@@ -4,6 +4,9 @@
 TARGET := addon
 DEFS_Debug := \
        '-DNODE_GYP_MODULE_NAME=addon' \
+       '-DUSING_UV_SHARED=1' \
+       '-DUSING_V8_SHARED=1' \
+       '-DV8_DEPRECATION_WARNINGS=1' \
        '-D_LARGEFILE_SOURCE' \
        '-D_FILE_OFFSET_BITS=64' \
        '-DBUILDING_NODE_EXTENSION' \
@@ -31,13 +34,16 @@
        -std=gnu++0x
 
 INCS_Debug := \
-       -I/home/runuser/.node-gyp/4.4.6/include/node \
-       -I/home/runuser/.node-gyp/4.4.6/src \
-       -I/home/runuser/.node-gyp/4.4.6/deps/uv/include \
-       -I/home/runuser/.node-gyp/4.4.6/deps/v8/include
+       -I/home/runuser/.node-gyp/4.6.0/include/node \
+       -I/home/runuser/.node-gyp/4.6.0/src \
+       -I/home/runuser/.node-gyp/4.6.0/deps/uv/include \
+       -I/home/runuser/.node-gyp/4.6.0/deps/v8/include
 
 DEFS_Release := \
        '-DNODE_GYP_MODULE_NAME=addon' \
+       '-DUSING_UV_SHARED=1' \
+       '-DUSING_V8_SHARED=1' \
+       '-DV8_DEPRECATION_WARNINGS=1' \
        '-D_LARGEFILE_SOURCE' \
        '-D_FILE_OFFSET_BITS=64' \
        '-DBUILDING_NODE_EXTENSION'
@@ -65,10 +71,10 @@
        -std=gnu++0x
 
 INCS_Release := \
-       -I/home/runuser/.node-gyp/4.4.6/include/node \
-       -I/home/runuser/.node-gyp/4.4.6/src \
-       -I/home/runuser/.node-gyp/4.4.6/deps/uv/include \
-       -I/home/runuser/.node-gyp/4.4.6/deps/v8/include
+       -I/home/runuser/.node-gyp/4.6.0/include/node \
+       -I/home/runuser/.node-gyp/4.6.0/src \
+       -I/home/runuser/.node-gyp/4.6.0/deps/uv/include \
+       -I/home/runuser/.node-gyp/4.6.0/deps/v8/include
 
 OBJS := \
        $(obj).target/$(TARGET)/src/heapdump.o
diff --git a/node_modules/heapdump/build/config.gypi 
b/node_modules/heapdump/build/config.gypi
index 2182d3f..fd4c1dc 100644
--- a/node_modules/heapdump/build/config.gypi
+++ b/node_modules/heapdump/build/config.gypi
@@ -20,6 +20,7 @@
     "icu_small": "true",
     "icu_ver_major": "56",
     "node_byteorder": "little",
+    "node_enable_v8_vtunejit": "false",
     "node_install_npm": "true",
     "node_prefix": "/",
     "node_release_urlbase": "https://nodejs.org/download/release/";,
@@ -45,12 +46,12 @@
     "v8_random_seed": 0,
     "v8_use_snapshot": "true",
     "want_separate_host_toolset": 0,
-    "nodedir": "/home/runuser/.node-gyp/4.4.6",
+    "nodedir": "/home/runuser/.node-gyp/4.6.0",
     "copy_dev_lib": "true",
     "standalone_static_library": 1,
     "cache_lock_stale": "60000",
     "sign_git_tag": "",
-    "user_agent": "npm/2.15.5 node/v4.4.6 linux x64",
+    "user_agent": "npm/2.15.9 node/v4.6.0 linux x64",
     "always_auth": "",
     "bin_links": "true",
     "key": "",
@@ -80,7 +81,7 @@
     "rebuild_bundle": "true",
     "save_bundle": "",
     "shell": "bash",
-    "prefix": "/usr/local/nvm/versions/node/v4.4.6",
+    "prefix": "/usr/local/nvm/versions/node/v4.6.0",
     "browser": "",
     "cache_lock_wait": "10000",
     "registry": "https://registry.npmjs.org/";,
@@ -110,7 +111,7 @@
     "long": "",
     "production": "",
     "unsafe_perm": "true",
-    "node_version": "4.4.6",
+    "node_version": "4.6.0",
     "tag": "latest",
     "git_tag_version": "true",
     "shrinkwrap": "true",
@@ -120,10 +121,10 @@
     "save_exact": "",
     "strict_ssl": "true",
     "dev": "",
-    "globalconfig": "/usr/local/nvm/versions/node/v4.4.6/etc/npmrc",
+    "globalconfig": "/usr/local/nvm/versions/node/v4.6.0/etc/npmrc",
     "init_module": "/home/runuser/.npm-init.js",
     "parseable": "",
-    "globalignorefile": "/usr/local/nvm/versions/node/v4.4.6/etc/npmignore",
+    "globalignorefile": "/usr/local/nvm/versions/node/v4.6.0/etc/npmignore",
     "cache_lock_retries": "10",
     "save_prefix": "^",
     "group": "1000",
diff --git 
a/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json 
b/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
index 3d8eb06..94526dc 100644
--- a/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
+++ b/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
@@ -50,7 +50,7 @@
     "url": "https://github.com/substack/json-stable-stringify/issues";
   },
   "_id": "json-stable-stringify@1.0.0",
-  "_shasum": "b1fdc7caf4d802f274244ae5d36933207344e7c5",
+  "_shasum": "6fba4254ccaf8054fb74a04cea0fe014c3f777c8",
   "_from": "git+https://github.com/wikimedia/json-stable-stringify.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/json-stable-stringify.git#c05178e4dfc3834017f017732934c1c52ba3dd8f";
 }
diff --git a/node_modules/hyperswitch/node_modules/preq/index.js 
b/node_modules/hyperswitch/node_modules/preq/index.js
index ec65eed..d52350f 100644
--- a/node_modules/hyperswitch/node_modules/preq/index.js
+++ b/node_modules/hyperswitch/node_modules/preq/index.js
@@ -178,13 +178,14 @@
 
             if (body && response.headers && !self.options._encodingProvided) {
                 var contentType = response.headers['content-type'];
-                if (/^text\/|application\/json\b/.test(contentType)) {
+                // Decodes:  "text/...", "application/json...", 
"application/vnd.geo+json..."
+                if 
(/^text\/|application\/([^+;]+\+)?json\b/.test(contentType)) {
                     // Convert buffer to string
                     body = body.toString();
                     delete response.headers['content-length'];
                 }
 
-                if (/^application\/(?:problem\+)?json\b/.test(contentType)) {
+                if (/^application\/([^+;]+\+)?json\b/.test(contentType)) {
                     body = JSON.parse(body);
                 }
             }
diff --git 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/aws4.js
 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/aws4.js
index cbe5dc9..a543180 100644
--- 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/aws4.js
+++ 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/aws4.js
@@ -52,6 +52,8 @@
   }
   if (!request.hostname && !request.host)
     request.hostname = headers.Host || headers.host
+
+  this.isCodeCommitGit = this.service === 'codecommit' && request.method === 
'GIT'
 }
 
 RequestSigner.prototype.matchHost = function(host) {
@@ -109,7 +111,7 @@
 
   } else {
 
-    if (!request.doNotModifyHeaders) {
+    if (!request.doNotModifyHeaders && !this.isCodeCommitGit) {
       if (request.body && !headers['Content-Type'] && !headers['content-type'])
         headers['Content-Type'] = 'application/x-www-form-urlencoded; 
charset=utf-8'
 
@@ -153,6 +155,9 @@
       date = new Date(headers.Date || headers.date || new Date)
 
     this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, '')
+
+    // Remove the trailing 'Z' on the timestamp string for CodeCommit git 
access
+    if (this.isCodeCommitGit) this.datetime = this.datetime.slice(0, -1)
   }
   return this.datetime
 }
@@ -202,8 +207,8 @@
       decodePath = this.service === 's3' || this.request.doNotEncodePath,
       decodeSlashesInPath = this.service === 's3',
       firstValOnly = this.service === 's3',
-      bodyHash = this.service === 's3' && this.request.signQuery ?
-        'UNSIGNED-PAYLOAD' : hash(this.request.body || '', 'hex')
+      bodyHash = this.service === 's3' && this.request.signQuery ? 
'UNSIGNED-PAYLOAD' :
+        (this.isCodeCommitGit ? '' : hash(this.request.body || '', 'hex'))
 
   if (query) {
     queryStr = 
encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce(function(obj,
 key) {
diff --git 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/package.json
 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/package.json
index 2ce9a28..a009a74 100644
--- 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/package.json
+++ 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/aws4/package.json
@@ -1,6 +1,6 @@
 {
   "name": "aws4",
-  "version": "1.4.1",
+  "version": "1.5.0",
   "description": "Signs and prepares requests using AWS Signature Version 4",
   "author": {
     "name": "Michael Hart",
@@ -72,16 +72,16 @@
   "scripts": {
     "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list"
   },
-  "gitHead": "f126d3ff80be1ddde0fc6b50bb51a7f199547e81",
+  "gitHead": "ba136334ee08884c6042c8578a22e376233eef34",
   "bugs": {
     "url": "https://github.com/mhart/aws4/issues";
   },
   "homepage": "https://github.com/mhart/aws4#readme";,
-  "_id": "aws4@1.4.1",
-  "_shasum": "fde7d5292466d230e5ee0f4e038d9dfaab08fc61",
+  "_id": "aws4@1.5.0",
+  "_shasum": "0a29ffb79c31c9e712eeb087e8e7a64b4a56d755",
   "_from": "aws4@>=1.2.1 <2.0.0",
-  "_npmVersion": "2.15.4",
-  "_nodeVersion": "4.4.3",
+  "_npmVersion": "2.15.11",
+  "_nodeVersion": "4.5.0",
   "_npmUser": {
     "name": "hichaelmart",
     "email": "michael.hart...@gmail.com"
@@ -93,13 +93,13 @@
     }
   ],
   "dist": {
-    "shasum": "fde7d5292466d230e5ee0f4e038d9dfaab08fc61",
-    "tarball": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz";
+    "shasum": "0a29ffb79c31c9e712eeb087e8e7a64b4a56d755",
+    "tarball": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz";
   },
   "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/aws4-1.4.1.tgz_1462643218465_0.6527479749638587"
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/aws4-1.5.0.tgz_1476226259635_0.2796843808609992"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz";
+  "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz";
 }
diff --git a/node_modules/hyperswitch/node_modules/preq/package.json 
b/node_modules/hyperswitch/node_modules/preq/package.json
index 0376567..16670f8 100644
--- a/node_modules/hyperswitch/node_modules/preq/package.json
+++ b/node_modules/hyperswitch/node_modules/preq/package.json
@@ -1,6 +1,6 @@
 {
   "name": "preq",
-  "version": "0.4.10",
+  "version": "0.4.11",
   "description": "Yet another promising request wrapper",
   "main": "index.js",
   "scripts": {
@@ -23,22 +23,22 @@
     "url": "git://github.com/wikimedia/preq.git"
   },
   "homepage": "https://github.com/wikimedia/preq";,
-  "gitHead": "7c19ddfb354696f9ebb523f43e74616887aab96c",
+  "gitHead": "bad7241b6cd993b354491ede2a5800df9905dbc9",
   "bugs": {
     "url": "https://github.com/wikimedia/preq/issues";
   },
-  "_id": "preq@0.4.10",
-  "_shasum": "e1dd9b332ea18292ed986a00e969c507686a68e9",
+  "_id": "preq@0.4.11",
+  "_shasum": "fabc73f402507b9c654b9e9efe2ba48cc0380f12",
   "_from": "preq@>=0.4.8 <0.5.0",
-  "_npmVersion": "2.14.12",
-  "_nodeVersion": "4.3.0",
+  "_npmVersion": "2.15.9",
+  "_nodeVersion": "4.6.0",
   "_npmUser": {
     "name": "doorman",
     "email": "marko.obro...@gmail.com"
   },
   "dist": {
-    "shasum": "e1dd9b332ea18292ed986a00e969c507686a68e9",
-    "tarball": "https://registry.npmjs.org/preq/-/preq-0.4.10.tgz";
+    "shasum": "fabc73f402507b9c654b9e9efe2ba48cc0380f12",
+    "tarball": "https://registry.npmjs.org/preq/-/preq-0.4.11.tgz";
   },
   "maintainers": [
     {
@@ -52,8 +52,8 @@
   ],
   "_npmOperationalInternal": {
     "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/preq-0.4.10.tgz_1466786370198_0.0399467081297189"
+    "tmp": "tmp/preq-0.4.11.tgz_1476265204748_0.12369609624147415"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/preq/-/preq-0.4.10.tgz";
+  "_resolved": "https://registry.npmjs.org/preq/-/preq-0.4.11.tgz";
 }
diff --git a/node_modules/hyperswitch/node_modules/swagger-ui/package.json 
b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
index 6f58a5f..19db5aa 100644
--- a/node_modules/hyperswitch/node_modules/swagger-ui/package.json
+++ b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
@@ -70,7 +70,7 @@
     "url": "https://github.com/swagger-api/swagger-ui/issues";
   },
   "_id": "swagger-ui@2.2.2",
-  "_shasum": "eeb72f3cb88de02bdf28291521b1e597e459d961",
+  "_shasum": "81a5e8b39e66340ebc676a3292b3cbd703210832",
   "_from": "git+https://github.com/wikimedia/swagger-ui.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/swagger-ui.git#f89ca3d27111bde918492db6d7eaca37302407f6";
 }
diff --git a/node_modules/json-stable-stringify/package.json 
b/node_modules/json-stable-stringify/package.json
index 5b584ad..e20fbd2 100644
--- a/node_modules/json-stable-stringify/package.json
+++ b/node_modules/json-stable-stringify/package.json
@@ -50,7 +50,7 @@
     "url": "https://github.com/substack/json-stable-stringify/issues";
   },
   "_id": "json-stable-stringify@1.0.0",
-  "_shasum": "8f1364e97f23965907580d4f6b5905a289ce8be2",
+  "_shasum": "3de173e9dae6c2a8ba1c3549a283c1428aa8c470",
   "_from": "git+https://github.com/wikimedia/json-stable-stringify.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/json-stable-stringify.git#c05178e4dfc3834017f017732934c1c52ba3dd8f";
 }
diff --git 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
index 19fb859..f65d83f 100644
--- 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
@@ -55,6 +55,5 @@
     }
   ],
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";,
-  "readme": "ERROR: No README data found!"
+  "_resolved": 
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
 }
diff --git 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
index 8e8b77d..fdf923e 100644
--- 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
@@ -49,6 +49,5 @@
     "tarball": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";,
-  "readme": "ERROR: No README data found!"
+  "_resolved": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
 }
diff --git a/node_modules/mediawiki-title/lib/index.js 
b/node_modules/mediawiki-title/lib/index.js
index 5b56159..78afb0f 100644
--- a/node_modules/mediawiki-title/lib/index.js
+++ b/node_modules/mediawiki-title/lib/index.js
@@ -201,12 +201,17 @@
                 || siteInfo.general.lang === 'kk')) {
             result.title = 'İ' +  result.title.substr(1);
         } else if (!/^[A-Z]/.test(result.title)) {
-            result.title = result.title.substr(0, 1).toUpperCase() + 
result.title.substr(1);
+            var firstCharacter = result.title.charAt(0);
+            var upperCasedFirstLetter = firstCharacter.toUpperCase();
+            // PHP is only capable of upper-casing letters that end up
+            // as a single character, however JS upper-cases German 'ß' to SS
+            if (upperCasedFirstLetter.length === firstCharacter.length) {
+                result.title = upperCasedFirstLetter + result.title.substr(1);
+            }
         }
     }
     return result;
 }
-
 
 function _splitNamespace(title, siteInfo, defaultNs) {
     var prefixRegex = /^(.+?)_*:_*(.*)$/;
diff --git a/node_modules/mediawiki-title/package.json 
b/node_modules/mediawiki-title/package.json
index ac532f4..d9157d0 100644
--- a/node_modules/mediawiki-title/package.json
+++ b/node_modules/mediawiki-title/package.json
@@ -1,6 +1,6 @@
 {
   "name": "mediawiki-title",
-  "version": "0.5.5",
+  "version": "0.5.6",
   "description": "Title normalization library for mediawiki",
   "main": "lib/index.js",
   "scripts": {
@@ -35,20 +35,20 @@
     "mocha-lcov-reporter": "^1.0.0",
     "preq": "^0.4.8"
   },
-  "gitHead": "d55858a2a5fcf17a89853709438d8d07063ac509",
+  "gitHead": "4705414672ded47482d8b462bcd48bd97b7441db",
   "homepage": "https://github.com/wikimedia/mediawiki-title#readme";,
-  "_id": "mediawiki-title@0.5.5",
-  "_shasum": "e50884369b846d7d4584c816451631d5ce43e1cf",
+  "_id": "mediawiki-title@0.5.6",
+  "_shasum": "549069294e27728a1f13bed3d705d6beecf4ea24",
   "_from": "mediawiki-title@>=0.5.5 <0.6.0",
-  "_npmVersion": "2.15.5",
-  "_nodeVersion": "4.4.6",
+  "_npmVersion": "2.15.8",
+  "_nodeVersion": "4.4.7",
   "_npmUser": {
-    "name": "doorman",
-    "email": "marko.obro...@gmail.com"
+    "name": "pchelolo",
+    "email": "petrpche...@gmail.com"
   },
   "dist": {
-    "shasum": "e50884369b846d7d4584c816451631d5ce43e1cf",
-    "tarball": 
"https://registry.npmjs.org/mediawiki-title/-/mediawiki-title-0.5.5.tgz";
+    "shasum": "549069294e27728a1f13bed3d705d6beecf4ea24",
+    "tarball": 
"https://registry.npmjs.org/mediawiki-title/-/mediawiki-title-0.5.6.tgz";
   },
   "maintainers": [
     {
@@ -70,8 +70,8 @@
   ],
   "_npmOperationalInternal": {
     "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/mediawiki-title-0.5.5.tgz_1470830362872_0.9119927498977631"
+    "tmp": "tmp/mediawiki-title-0.5.6.tgz_1475876196872_0.036138371331617236"
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/mediawiki-title/-/mediawiki-title-0.5.5.tgz";
+  "_resolved": 
"https://registry.npmjs.org/mediawiki-title/-/mediawiki-title-0.5.6.tgz";
 }
diff --git a/node_modules/mediawiki-title/test/index.js 
b/node_modules/mediawiki-title/test/index.js
index c163178..a601dc2 100644
--- a/node_modules/mediawiki-title/test/index.js
+++ b/node_modules/mediawiki-title/test/index.js
@@ -151,6 +151,7 @@
             [ 'en.wikipedia.org', ':Test', 'Test'],
             [ 'en.wikipedia.org', ': Test', 'Test'],
             [ 'en.wikipedia.org', ':_Test_', 'Test'],
+            [ 'en.wikipedia.org', '💩', '💩'],
             [ 'en.wikipedia.org', 'Foo:bar', 'Foo:bar'],
             [ 'en.wikipedia.org', 'Talk: foo', 'Talk:Foo'],
             [ 'en.wikipedia.org', 'int:eger', 'Int:eger'],
@@ -188,8 +189,58 @@
             [ 'en.wikipedia.org', 'user:pchelolo', 'User:Pchelolo'],
             [ 'en.wikipedia.org',
                 'list of Neighbours characters (2016)#Tom Quill',
-                'List_of_Neighbours_characters_(2016)']
-
+                'List_of_Neighbours_characters_(2016)'],
+            [ 'en.wikipedia.org', 'ß', 'ß' ],
+            [ 'en.wikipedia.org', 'ʼn', 'ʼn' ],
+            [ 'en.wikipedia.org', 'ǰ', 'ǰ' ],
+            [ 'en.wikipedia.org', 'ΐ', 'ΐ' ],
+            [ 'en.wikipedia.org', 'ΰ', 'ΰ' ],
+            [ 'en.wikipedia.org', 'և', 'և' ],
+            [ 'en.wikipedia.org', 'ẖ', 'ẖ' ],
+            [ 'en.wikipedia.org', 'ẗ', 'ẗ' ],
+            [ 'en.wikipedia.org', 'ẘ', 'ẘ' ],
+            [ 'en.wikipedia.org', 'ẙ', 'ẙ' ],
+            [ 'en.wikipedia.org', 'ẚ', 'ẚ' ],
+            [ 'en.wikipedia.org', 'ὐ', 'ὐ' ],
+            [ 'en.wikipedia.org', 'ὒ', 'ὒ' ],
+            [ 'en.wikipedia.org', 'ὔ', 'ὔ' ],
+            [ 'en.wikipedia.org', 'ὖ', 'ὖ' ],
+            [ 'en.wikipedia.org', 'ᾀ', 'ᾀ' ],
+            [ 'en.wikipedia.org', 'ᾁ', 'ᾁ' ],
+            [ 'en.wikipedia.org', 'ᾂ', 'ᾂ' ],
+            [ 'en.wikipedia.org', 'ᾃ', 'ᾃ' ],
+            [ 'en.wikipedia.org', 'ᾄ', 'ᾄ' ],
+            [ 'en.wikipedia.org', 'ᾅ', 'ᾅ' ],
+            [ 'en.wikipedia.org', 'ᾆ', 'ᾆ' ],
+            [ 'en.wikipedia.org', 'ᾇ', 'ᾇ' ],
+            [ 'en.wikipedia.org', 'ᾐ', 'ᾐ' ],
+            [ 'en.wikipedia.org', 'ᾑ', 'ᾑ' ],
+            [ 'en.wikipedia.org', 'ᾒ', 'ᾒ' ],
+            [ 'en.wikipedia.org', 'ᾓ', 'ᾓ' ],
+            [ 'en.wikipedia.org', 'ᾔ', 'ᾔ' ],
+            [ 'en.wikipedia.org', 'ᾕ', 'ᾕ' ],
+            [ 'en.wikipedia.org', 'ᾖ', 'ᾖ' ],
+            [ 'en.wikipedia.org', 'ᾗ', 'ᾗ' ],
+            [ 'en.wikipedia.org', 'ᾠ', 'ᾠ' ],
+            [ 'en.wikipedia.org', 'ᾡ', 'ᾡ' ],
+            [ 'en.wikipedia.org', 'ᾢ', 'ᾢ' ],
+            [ 'en.wikipedia.org', 'ᾣ', 'ᾣ' ],
+            [ 'en.wikipedia.org', 'ᾤ', 'ᾤ' ],
+            [ 'en.wikipedia.org', 'ᾥ', 'ᾥ' ],
+            [ 'en.wikipedia.org', 'ᾦ', 'ᾦ' ],
+            [ 'en.wikipedia.org', 'ᾧ', 'ᾧ' ],
+            [ 'en.wikipedia.org', 'ff', 'ff' ],
+            [ 'en.wikipedia.org', 'fi', 'fi' ],
+            [ 'en.wikipedia.org', 'fl', 'fl' ],
+            [ 'en.wikipedia.org', 'ffi', 'ffi' ],
+            [ 'en.wikipedia.org', 'ffl', 'ffl' ],
+            [ 'en.wikipedia.org', 'ſt', 'ſt' ],
+            [ 'en.wikipedia.org', 'st', 'st' ],
+            [ 'en.wikipedia.org', 'ﬓ', 'ﬓ' ],
+            [ 'en.wikipedia.org', 'ﬔ', 'ﬔ' ],
+            [ 'en.wikipedia.org', 'ﬕ', 'ﬕ' ],
+            [ 'en.wikipedia.org', 'ﬖ', 'ﬖ' ],
+            [ 'en.wikipedia.org', 'ﬗ', 'ﬗ' ]
         ];
 
         testCases.forEach(function (test) {
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/connection.js
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/connection.js
index bf6af38..fc70da7 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/connection.js
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/connection.js
@@ -249,7 +249,6 @@
   }
   var err = new types.DriverError('Socket was closed');
   err.isSocketError = true;
-  err.wasRequestWritten = true;
   if (innerError) {
     err.innerError = innerError;
   }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/request-handler.js
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/request-handler.js
index ce42c03..e0ccd31 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/request-handler.js
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/request-handler.js
@@ -341,7 +341,7 @@
     return self.retryPolicy.onRequestError(requestInfo, 
self.request.consistency, err);
   }
   if (err.isSocketError) {
-    if (!err.wasRequestWritten) {
+    if (err.requestNotWritten) {
       // the request was definitely not applied, it's safe to retry
       return retryOnNextHostDecision;
     }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/writers.js
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/writers.js
index 63a1c96..27d3c40 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/writers.js
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/lib/writers.js
@@ -154,14 +154,17 @@
  * @param {Socket} netClient
  * @param {Encoder} encoder
  * @param {ClientOptions} options
+ * @extends {EventEmitter}
  */
 function WriteQueue (netClient, encoder, options) {
   WriteQueue.super_.call(this);
   this.netClient = netClient;
   this.encoder = encoder;
   this.isRunning = false;
+  /** @type {Array<{request: Request, callback: Function}>} */
   this.queue = [];
   this.coalescingThreshold = options.socketOptions.coalescingThreshold;
+  this.error = null;
 }
 
 util.inherits(WriteQueue, events.EventEmitter);
@@ -171,6 +174,13 @@
  * @param {Function} callback
  */
 WriteQueue.prototype.push = function (request, callback) {
+  var self = this;
+  if (this.error) {
+    // There was a write error, there is no point in further trying to write 
to the socket.
+    return process.nextTick(function writePushError() {
+      callback(self.error);
+    });
+  }
   this.queue.push({ request: request, callback: callback});
   this.run();
 };
@@ -184,16 +194,15 @@
 WriteQueue.prototype.process = function () {
   var self = this;
   utils.whilst(
-    function () {
+    function condition() {
       return self.queue.length > 0;
     },
-    function (next) {
+    function whileProcess(next) {
       self.isRunning = true;
       var buffers = [];
       var callbacks = [];
       var totalLength = 0;
       while (totalLength < self.coalescingThreshold && self.queue.length > 0) {
-        /** @type {{request: Request, callback: Function}} */
         var writeItem = self.queue.shift();
         try {
           var data = writeItem.request.write(self.encoder);
@@ -208,28 +217,48 @@
         }
       }
       if (buffers.length === 0) {
-        next();
+        // No need to invoke socket.write()
+        return next();
       }
-      self.netClient.write(Buffer.concat(buffers, totalLength), function (err) 
{
+      // Before invoking socket.write(), mark that the request has been 
written to avoid race conditions.
+      for (var i = 0; i < callbacks.length; i++) {
+        callbacks[i]();
+      }
+      self.netClient.write(Buffer.concat(buffers, totalLength), function 
socketWriteCallback(err) {
         if (err) {
-          // it's not possible to determine if the request was actual 
received, but stating that it was written
-          // we state that the mutation could have been applied
-          err.isSocketError = true;
-          err.wasRequestWritten = true;
+          self.setWriteError(err);
         }
-        for (var i = 0; i < callbacks.length; i++) {
-          callbacks[i](err);
-        }
-        //allow IO between writes
+        // Allow IO between writes
         setImmediate(next);
       });
     },
-    function () {
-      //the queue is empty
+    function loopFinished() {
+      // The queue is now empty
       self.isRunning = false;
     }
   );
 };
 
+/**
+ * Emits the 'error' event and callbacks items that haven't been written and 
clears them from the queue.
+ * @param err
+ */
+WriteQueue.prototype.setWriteError = function (err) {
+  err.isSocketError = true;
+  this.error = new types.DriverError('Socket was closed');
+  this.error.isSocketError = true;
+  // Use an special flag for items that haven't been written
+  this.error.requestNotWritten = true;
+  this.error.innerError = err;
+  var q = this.queue;
+  // Not more items can be added to the queue.
+  this.queue = utils.emptyArray;
+  for (var i = 0; i < q.length; i++) {
+    var item = q[i];
+    // Use the error marking that it was not written
+    item.callback(this.error);
+  }
+};
+
 exports.WriteQueue = WriteQueue;
 exports.FrameWriter = FrameWriter;
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
index 14412b3..4d25501 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cassandra-driver",
-  "version": "3.1.4",
+  "version": "3.1.5",
   "description": "DataStax Node.js Driver for Apache Cassandra",
   "author": {
     "name": "DataStax"
@@ -42,13 +42,13 @@
   "engines": {
     "node": ">=0.10.0"
   },
-  "gitHead": "6627216a2472272de7b7982e9a7d6d17d43e5088",
+  "gitHead": "bea234dd54590ccd1b9a0e9ef207a345f496d179",
   "homepage": "https://github.com/datastax/nodejs-driver#readme";,
-  "_id": "cassandra-driver@3.1.4",
-  "_shasum": "76f2608f50798838e37a0df2737616f4d4a66908",
+  "_id": "cassandra-driver@3.1.5",
+  "_shasum": "c179ab1731d345287209bfa49e5a2d11a77b13cf",
   "_from": "cassandra-driver@>=3.1.4 <4.0.0",
-  "_npmVersion": "3.10.5",
-  "_nodeVersion": "4.4.0",
+  "_npmVersion": "2.15.9",
+  "_nodeVersion": "4.6.0",
   "_npmUser": {
     "name": "jorgebay",
     "email": "jorgebaygon...@gmail.com"
@@ -60,13 +60,13 @@
     }
   ],
   "dist": {
-    "shasum": "76f2608f50798838e37a0df2737616f4d4a66908",
-    "tarball": 
"https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-3.1.4.tgz";
+    "shasum": "c179ab1731d345287209bfa49e5a2d11a77b13cf",
+    "tarball": 
"https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-3.1.5.tgz";
   },
   "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/cassandra-driver-3.1.4.tgz_1474470854300_0.7406644942238927"
+    "host": "packages-12-west.internal.npmjs.com",
+    "tmp": "tmp/cassandra-driver-3.1.5.tgz_1475862155470_0.27701483736746013"
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-3.1.4.tgz";
+  "_resolved": 
"https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-3.1.5.tgz";
 }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
index 3d8eb06..94526dc 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
@@ -50,7 +50,7 @@
     "url": "https://github.com/substack/json-stable-stringify/issues";
   },
   "_id": "json-stable-stringify@1.0.0",
-  "_shasum": "b1fdc7caf4d802f274244ae5d36933207344e7c5",
+  "_shasum": "6fba4254ccaf8054fb74a04cea0fe014c3f777c8",
   "_from": "git+https://github.com/wikimedia/json-stable-stringify.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/json-stable-stringify.git#c05178e4dfc3834017f017732934c1c52ba3dd8f";
 }
diff --git 
a/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js
 
b/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js
index 8bc96cb..48202b3 100644
--- 
a/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js
+++ 
b/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js
@@ -19,18 +19,28 @@
     var cbs = reqs[key]
     var len = cbs.length
     var args = slice(arguments)
-    for (var i = 0; i < len; i++) {
-      cbs[i].apply(null, args)
-    }
-    if (cbs.length > len) {
-      // added more in the interim.
-      // de-zalgo, just in case, but don't call again.
-      cbs.splice(0, len)
-      process.nextTick(function () {
-        RES.apply(null, args)
-      })
-    } else {
-      delete reqs[key]
+
+    // XXX It's somewhat ambiguous whether a new callback added in this
+    // pass should be queued for later execution if something in the
+    // list of callbacks throws, or if it should just be discarded.
+    // However, it's such an edge case that it hardly matters, and either
+    // choice is likely as surprising as the other.
+    // As it happens, we do go ahead and schedule it for later execution.
+    try {
+      for (var i = 0; i < len; i++) {
+        cbs[i].apply(null, args)
+      }
+    } finally {
+      if (cbs.length > len) {
+        // added more in the interim.
+        // de-zalgo, just in case, but don't call again.
+        cbs.splice(0, len)
+        process.nextTick(function () {
+          RES.apply(null, args)
+        })
+      } else {
+        delete reqs[key]
+      }
     }
   })
 }
diff --git 
a/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json
 
b/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json
index 4010d03..e1822f1 100644
--- 
a/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json
+++ 
b/node_modules/service-runner/node_modules/bunyan/node_modules/mv/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json
@@ -1,6 +1,6 @@
 {
   "name": "inflight",
-  "version": "1.0.5",
+  "version": "1.0.6",
   "description": "Add callbacks to requests in flight to avoid async 
duplication",
   "main": "inflight.js",
   "files": [
@@ -11,10 +11,10 @@
     "wrappy": "1"
   },
   "devDependencies": {
-    "tap": "^1.2.0"
+    "tap": "^7.1.2"
   },
   "scripts": {
-    "test": "tap test.js"
+    "test": "tap test.js --100"
   },
   "repository": {
     "type": "git",
@@ -30,19 +30,19 @@
   },
   "homepage": "https://github.com/isaacs/inflight";,
   "license": "ISC",
-  "gitHead": "559e37b4f6327fca797fe8d7fe8ed6d9cae08821",
-  "_id": "inflight@1.0.5",
-  "_shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a",
+  "gitHead": "a547881738c8f57b27795e584071d67cf6ac1a57",
+  "_id": "inflight@1.0.6",
+  "_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9",
   "_from": "inflight@>=1.0.4 <2.0.0",
-  "_npmVersion": "3.9.1",
-  "_nodeVersion": "5.10.1",
+  "_npmVersion": "3.10.7",
+  "_nodeVersion": "6.5.0",
   "_npmUser": {
-    "name": "zkat",
-    "email": "k...@sykosomatic.org"
+    "name": "isaacs",
+    "email": "i...@izs.me"
   },
   "dist": {
-    "shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a",
-    "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz";
+    "shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9",
+    "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
   },
   "maintainers": [
     {
@@ -63,9 +63,9 @@
     }
   ],
   "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/inflight-1.0.5.tgz_1463529611443_0.00041943578980863094"
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/inflight-1.0.6.tgz_1476330807696_0.10388551792129874"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz";
+  "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
 }
diff --git 
a/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
index 93b9381..58a5828 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
@@ -75,7 +75,7 @@
   },
   "homepage": "https://github.com/kadtools/kad#readme";,
   "_id": "kad@1.3.6",
-  "_shasum": "824d0efb6f2d03dd5130d9643880c9f88003fde0",
+  "_shasum": "14c477b1535b5d34ba4b7fb9a8ca28896f41f56d",
   "_from": "git+https://github.com/gwicke/kad.git#master";,
   "_resolved": 
"git+https://github.com/gwicke/kad.git#f35971036f43814043245da82b12d035b7bbfd16";
 }
diff --git 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/core-util-is/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/core-util-is/package.json
index f65d83f..19fb859 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/core-util-is/package.json
@@ -55,5 +55,6 @@
     }
   ],
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+  "_resolved": 
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";,
+  "readme": "ERROR: No README data found!"
 }
diff --git 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/string_decoder/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/string_decoder/package.json
index fdf923e..8e8b77d 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/string_decoder/package.json
@@ -49,5 +49,6 @@
     "tarball": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+  "_resolved": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";,
+  "readme": "ERROR: No README data found!"
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/315714
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie4c8e3e319d50f0619a7cb6d545bbd6d282cb90b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/restbase/deploy
Gerrit-Branch: master
Gerrit-Owner: Mobrovac <mobro...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to