Mobrovac has uploaded a new change for review.

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

Change subject: Update restbase to f3d2c11
......................................................................

Update restbase to f3d2c11

List of changes:
b9c3681 Mathoid: Add purging and the /math/formula/{hash} endpoint
7ef766c Do access checks sequentially (#627)
f3d2c11 Release v0.14.1 (#629)
xxxxxxx Update node module dependencies

Change-Id: Ia1beb76db9f050850aba5f6b2112bfbb896970e6
---
M node_modules/content-type/package.json
M node_modules/hyperswitch/lib/filters/ratelimit_route.js
M node_modules/hyperswitch/lib/router.js
M 
node_modules/hyperswitch/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json
M node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
M 
node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js
M 
node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
M node_modules/hyperswitch/node_modules/swagger-ui/package.json
M node_modules/hyperswitch/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/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/restbase-mod-table-cassandra/package.json
D node_modules/service-runner/node_modules/hot-shots/CHANGES.md~
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
D 
node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
M node_modules/service-runner/package.json
M restbase
22 files changed, 83 insertions(+), 340 deletions(-)


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

diff --git a/node_modules/content-type/package.json 
b/node_modules/content-type/package.json
index 1d4b257..1e3b99d 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": "[email protected]",
-  "_shasum": "af353d5991784749680b7e3f14c7c5caba9e83ef",
+  "_shasum": "15b91ad1af9ecec7f1688b26e404a26cf50714ef",
   "_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/hyperswitch/lib/filters/ratelimit_route.js 
b/node_modules/hyperswitch/lib/filters/ratelimit_route.js
index a145b9d..120186e 100644
--- a/node_modules/hyperswitch/lib/filters/ratelimit_route.js
+++ b/node_modules/hyperswitch/lib/filters/ratelimit_route.js
@@ -21,13 +21,12 @@
 
     var key = pathKey + '|' + hyper._rootReq.headers['x-client-ip'];
     if (hyper.ratelimiter.isAboveLimit(key, options.limits[requestClass])) {
-        if (options.log_only) {
-            hyper.log('warn/ratelimit/' + pathKey, {
-                key: key,
-                rate_limit_per_second: options.limits[requestClass],
-                message: 'Rate limit exceeded'
-            });
-        } else {
+        hyper.log('warn/ratelimit/' + pathKey, {
+            key: key,
+            rate_limit_per_second: options.limits[requestClass],
+            message: 'Rate limit exceeded'
+        });
+        if (!options.log_only) {
             throw new HTTPError({
                 status: 429,
                 body: {
diff --git a/node_modules/hyperswitch/lib/router.js 
b/node_modules/hyperswitch/lib/router.js
index af2104f..bda294b 100644
--- a/node_modules/hyperswitch/lib/router.js
+++ b/node_modules/hyperswitch/lib/router.js
@@ -578,11 +578,15 @@
         }
     });
 
-    // First load default request filters
+    // First load default request filters. The order of the stack matters.
     // TODO: Do that in a cleaner way
-    spec['x-route-filters'] = spec['x-route-filters'] || [];
-    spec['x-route-filters'].push({ type: 'default', name: 'validator' });
-    spec['x-route-filters'].push({ type: 'default', name: 'metrics' });
+    spec['x-route-filters'] = [{
+            type: 'default', name: 'metrics'
+        },
+        {
+            type: 'default', name: 'validator'
+        }
+    ].concat(spec['x-route-filters'] || []);
     return self._handleSwaggerSpec(rootNode, spec, scope)
     .then(function() {
         (spec['x-request-filters'] || []).forEach(function(filterDef) {
@@ -619,4 +623,4 @@
     return this.router.lookup(uri);
 };
 
-module.exports = Router;
\ No newline at end of file
+module.exports = Router;
diff --git 
a/node_modules/hyperswitch/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json
 
b/node_modules/hyperswitch/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json
index 02af46a..63db6f0 100644
--- 
a/node_modules/hyperswitch/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json
+++ 
b/node_modules/hyperswitch/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json
@@ -30,7 +30,7 @@
     "shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1",
     "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
   },
-  "_from": "inherits@>=2.0.1 <2.1.0",
+  "_from": "inherits@>=2.0.1 <3.0.0",
   "_npmVersion": "1.3.8",
   "_npmUser": {
     "name": "isaacs",
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 ca71f8c..f47d488 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": "[email protected]",
-  "_shasum": "58fdcf5538bee09def8d0d43cc7bd8bb7ebb5aa0",
+  "_shasum": "c89d1ecfd91b2e892b30f14cb5303b3539f4c0e5",
   "_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/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js
 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js
index 882bb3f..adb6f13 100644
--- 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js
+++ 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js
@@ -999,12 +999,45 @@
 }
 
 
+/**
+ * Return a synopsis string for the given option spec.
+ *
+ * Examples:
+ *      > synopsisFromOpt({names: ['help', 'h'], type: 'bool'});
+ *      '[ --help | -h ]'
+ *      > synopsisFromOpt({name: 'file', type: 'string', helpArg: 'FILE'});
+ *      '[ --file=FILE ]'
+ */
+function synopsisFromOpt(o) {
+    assert.object(o, 'o');
+
+    if (o.hasOwnProperty('group')) {
+        return null;
+    }
+    var names = o.names || [o.name];
+    // `type` here could be undefined if, for example, the command has a
+    // dashdash option spec with a bogus 'type'.
+    var type = getOptionType(o.type);
+    var helpArg = o.helpArg || (type && type.helpArg) || 'ARG';
+    var parts = [];
+    names.forEach(function (name) {
+        var part = (name.length === 1 ? '-' : '--') + name;
+        if (type && type.takesArg) {
+            part += (name.length === 1 ? ' ' + helpArg : '=' + helpArg);
+        }
+        parts.push(part);
+    });
+    return ('[ ' + parts.join(' | ') + ' ]');
+};
+
+
 module.exports = {
     createParser: createParser,
     Parser: Parser,
     parse: parse,
     addOptionType: addOptionType,
     getOptionType: getOptionType,
+    synopsisFromOpt: synopsisFromOpt,
 
     // Bash completion-related exports
     BASH_COMPLETION_TEMPLATE_PATH: BASH_COMPLETION_TEMPLATE_PATH,
diff --git 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
index eb05627..1a91a40 100644
--- 
a/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
+++ 
b/node_modules/hyperswitch/node_modules/preq/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
@@ -1,7 +1,7 @@
 {
   "name": "dashdash",
   "description": "A light, featureful and explicit option parsing library.",
-  "version": "1.13.1",
+  "version": "1.14.0",
   "author": {
     "name": "Trent Mick",
     "email": "[email protected]",
@@ -58,13 +58,13 @@
       "url": "https://github.com/davepacheco";
     }
   ],
-  "gitHead": "aabf8a7e71ce7ed3d24c3c57d64a57b78c1a8546",
+  "gitHead": "2f70d248a509418e4473922ee034faf9cd91b3f8",
   "bugs": {
     "url": "https://github.com/trentm/node-dashdash/issues";
   },
   "homepage": "https://github.com/trentm/node-dashdash";,
-  "_id": "[email protected]",
-  "_shasum": "3530ed38b9026be9af05c83423c9154122e3d47c",
+  "_id": "[email protected]",
+  "_shasum": "29e486c5418bf0f356034a993d51686a33e84141",
   "_from": "dashdash@>=1.12.0 <2.0.0",
   "_npmVersion": "1.4.29",
   "_npmUser": {
@@ -78,13 +78,13 @@
     }
   ],
   "dist": {
-    "shasum": "3530ed38b9026be9af05c83423c9154122e3d47c",
-    "tarball": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz";
+    "shasum": "29e486c5418bf0f356034a993d51686a33e84141",
+    "tarball": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz";
   },
   "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/dashdash-1.13.1.tgz_1461355198185_0.31851457548327744"
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/dashdash-1.14.0.tgz_1464847169030_0.07120498712174594"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz";
+  "_resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz";
 }
diff --git a/node_modules/hyperswitch/node_modules/swagger-ui/package.json 
b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
index f41f4de..1a5ca89 100644
--- a/node_modules/hyperswitch/node_modules/swagger-ui/package.json
+++ b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
@@ -60,7 +60,7 @@
     "url": "https://github.com/swagger-api/swagger-ui/issues";
   },
   "_id": "[email protected]",
-  "_shasum": "af0a93e9cb5da25ef020ade4ac0f6e46f7246807",
+  "_shasum": "7c6f273f2c85f6158b274528c2229b1d15fb5397",
   "_from": "git+https://github.com/wikimedia/swagger-ui.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/swagger-ui.git#7bef30a93a3b81c55cb95d3ce9e0f9f53d5d8262";
 }
diff --git a/node_modules/hyperswitch/package.json 
b/node_modules/hyperswitch/package.json
index 9385144..8c347f6 100644
--- a/node_modules/hyperswitch/package.json
+++ b/node_modules/hyperswitch/package.json
@@ -1,6 +1,6 @@
 {
   "name": "hyperswitch",
-  "version": "0.5.1",
+  "version": "0.5.2",
   "description": "REST API creation framework",
   "main": "index.js",
   "scripts": {
@@ -49,10 +49,10 @@
     "nock": "^8.0.0",
     "service-runner": "^1.1.7"
   },
-  "gitHead": "d9dec225221d306a1fc3984d511b1b57804077c5",
-  "_id": "[email protected]",
-  "_shasum": "a102d404f6c59073c98b270118502c37a1c2264c",
-  "_from": "hyperswitch@>=0.5.0 <0.6.0",
+  "gitHead": "3198d693778b98b364fc72983f22319a68e59382",
+  "_id": "[email protected]",
+  "_shasum": "ec7128820bc8925e4f8d140bc7ed158dee6cfdde",
+  "_from": "hyperswitch@>=0.5.2 <0.6.0",
   "_npmVersion": "2.14.12",
   "_nodeVersion": "4.3.0",
   "_npmUser": {
@@ -60,8 +60,8 @@
     "email": "[email protected]"
   },
   "dist": {
-    "shasum": "a102d404f6c59073c98b270118502c37a1c2264c",
-    "tarball": "https://registry.npmjs.org/hyperswitch/-/hyperswitch-0.5.1.tgz";
+    "shasum": "ec7128820bc8925e4f8d140bc7ed158dee6cfdde",
+    "tarball": "https://registry.npmjs.org/hyperswitch/-/hyperswitch-0.5.2.tgz";
   },
   "maintainers": [
     {
@@ -82,9 +82,9 @@
     }
   ],
   "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/hyperswitch-0.5.1.tgz_1464354653001_0.3558160688262433"
+    "host": "packages-12-west.internal.npmjs.com",
+    "tmp": "tmp/hyperswitch-0.5.2.tgz_1464853384667_0.9254146392922848"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/hyperswitch/-/hyperswitch-0.5.1.tgz";
+  "_resolved": "https://registry.npmjs.org/hyperswitch/-/hyperswitch-0.5.2.tgz";
 }
diff --git a/node_modules/json-stable-stringify/package.json 
b/node_modules/json-stable-stringify/package.json
index 1831a98..6b41444 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": "[email protected]",
-  "_shasum": "d662c1fea6cc45c576d5789a1910e021d9253f12",
+  "_shasum": "1f765372835a4890ef63fcd1e5c3619346b9460c",
   "_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 f65d83f..19fb859 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,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/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 fdf923e..8e8b77d 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,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!"
 }
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 cc2d472..f9a0a41 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
@@ -50,7 +50,7 @@
   "readmeFilename": "README.md",
   "homepage": "https://github.com/datastax/nodejs-driver#readme";,
   "_id": "[email protected]",
-  "_shasum": "c4f5e380036d2b8878d61f98c21342a366a0f0fa",
+  "_shasum": "3c97c0d7ee5f7dc9ac78eb55d5996c1a463da17d",
   "_from": "git+https://github.com/wikimedia/nodejs-driver.git#neo-async";,
   "_resolved": 
"git+https://github.com/wikimedia/nodejs-driver.git#b2ac1407506c6c369341f0e1e2a567c799afef5e";
 }
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 ca71f8c..f47d488 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": "[email protected]",
-  "_shasum": "58fdcf5538bee09def8d0d43cc7bd8bb7ebb5aa0",
+  "_shasum": "c89d1ecfd91b2e892b30f14cb5303b3539f4c0e5",
   "_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/restbase-mod-table-cassandra/package.json 
b/node_modules/restbase-mod-table-cassandra/package.json
index eade554..e8bb63a 100644
--- a/node_modules/restbase-mod-table-cassandra/package.json
+++ b/node_modules/restbase-mod-table-cassandra/package.json
@@ -37,7 +37,7 @@
   },
   "_id": "[email protected]",
   "_shasum": "f47df4c01d4f17887b5969e495e9b0e6840cebb3",
-  "_from": "restbase-mod-table-cassandra@>=0.9.1 <0.10.0",
+  "_from": "restbase-mod-table-cassandra@>=0.9.3 <0.10.0",
   "_npmVersion": "1.4.21",
   "_npmUser": {
     "name": "gwicke",
diff --git a/node_modules/service-runner/node_modules/hot-shots/CHANGES.md~ 
b/node_modules/service-runner/node_modules/hot-shots/CHANGES.md~
deleted file mode 100644
index a8a5829..0000000
--- a/node_modules/service-runner/node_modules/hot-shots/CHANGES.md~
+++ /dev/null
@@ -1,40 +0,0 @@
-CHANGELOG
-=========
-
-## HEAD (Unreleased)
-none
-
---------------------
-
-## 2.3.1 (2015-1-17)
-* @Pchelolo Ensure messages not larger then maxBufferSize
-
-## 2.3.0 (2015-1-17)
-* @bdeitte Fix increment(name, 0) to send a 0 count instead of 1
-* @bdeitte Flush the queue when needed on close()
-
-## 2.2.0 (2015-1-10)
-* @bdeitte Document and expand on close API
-* @bdeitte Catch more error cases for callbacks
-
-## 2.1.2 (2015-12-9)
-* @bdeitte Even more doc updates
-* @mmoulton Fix multiple tags with Telegraf
-
-## 2.1.1 (2015-12-9)
-* @bdeitte Doc updates
-
-## 2.1.0 (2015-12-9)
-* @mmoulton Add options.telegraf to enable support for Telegraf's StatsD line 
protocol format
-* @mmoulton Ensure message callback is sent in buffered case, even when we 
just buffer.
-
-## 2.0.0 (2015-10-22)
-* @jjofseattle Add options.maxBufferSize and optinons.bufferFlushInterval
-* @bdeitte Change options.global_tags to options.globalTags for conistency
-
-## 1.0.2 (2015-09-25)
-* @ainsleyc Thrown error when cacheDNS flag fails to resolve DNS name
-
-## 1.0.1 (2015-09-24)
-* @bdeitte Add the event API used by DogStatsD
-* @sivy Start from the base of https://github.com/sivy/node-statsd
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 d8a16ac..72047c4 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": "[email protected]",
-  "_shasum": "3f231507c4eea1a7351488813dd737a27678efbf",
+  "_shasum": "e482ba624c19e6b43ae67058b834d31ae8d249ba",
   "_from": "git+https://github.com/gwicke/kad.git#master";,
   "_resolved": 
"git+https://github.com/gwicke/kad.git#31449a27a289b6f0ecbeec193d8bac9db8b9f513";
 }
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 19fb859..f65d83f 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,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/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 8e8b77d..fdf923e 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,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/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
 
b/node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
deleted file mode 100644
index de6f1ce..0000000
--- 
a/node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
+++ /dev/null
@@ -1,253 +0,0 @@
-var tap = require("tap")
-var fs = require("fs")
-var path = require("path")
-
-var globals = Object.keys(global)
-
-var normalize = require("../lib/normalize")
-var warningMessages = require("../lib/warning_messages.json")
-var safeFormat = require("../lib/safe_format")
-
-var rpjPath = path.resolve(__dirname,"./fixtures/read-package-json.json")
-
-tap.test("normalize some package data", function(t) {
-  var packageData = require(rpjPath)
-  var warnings = []
-  normalize(packageData, function(warning) {
-    warnings.push(warning)
-  })
-  // there's no readme data in this particular object
-  t.equal( warnings.length, 1, "There's exactly one warning.")
-  fs.readFile(rpjPath, function(err, data) {
-    if(err) throw err
-    // Various changes have been made
-    t.notEqual(packageData, JSON.parse(data), "Output is different from 
input.")
-    t.end()
-  })
-})
-
-tap.test("runs without passing warning function", function(t) {
-  var packageData = require(rpjPath)
-  fs.readFile(rpjPath, function(err, data) {
-    if(err) throw err
-    normalize(JSON.parse(data))
-    t.ok(true, "If you read this, this means I'm still alive.")
-    t.end()
-  })
-})
-
-tap.test("empty object", function(t) {
-  var packageData = {}
-  var expect =
-    { name: '',
-      version: '',
-      readme: 'ERROR: No README data found!',
-      _id: '@' }
-
-  var warnings = []
-  function warn(m) {
-    warnings.push(m)
-  }
-  normalize(packageData, warn)
-  t.same(packageData, expect)
-  t.same(warnings, [
-    warningMessages.missingDescription,
-    warningMessages.missingRepository,
-    warningMessages.missingReadme,
-    warningMessages.missingLicense
-  ])
-  t.end()
-})
-
-tap.test("core module name", function(t) {
-  var warnings = []
-  function warn(m) {
-    warnings.push(m)
-  }
-  var a
-  normalize(a={
-    name: "http",
-    readme: "read yourself how about",
-    homepage: 123,
-    bugs: "what is this i don't even",
-    repository: "Hello."
-  }, warn)
-
-  var expect = [
-      safeFormat(warningMessages.conflictingName, 'http'),
-      warningMessages.nonEmailUrlBugsString,
-      warningMessages.emptyNormalizedBugs,
-      warningMessages.nonUrlHomepage,
-      warningMessages.missingLicense
-      ]
-  t.same(warnings, expect)
-  t.end()
-})
-
-tap.test("urls required", function(t) {
-  var warnings = []
-  function warn(w) {
-    warnings.push(w)
-  }
-  normalize({
-    bugs: {
-      url: "/1",
-      email: "not an email address"
-    }
-  }, warn)
-  var a
-  normalize(a={
-    readme: "read yourself how about",
-    homepage: 123,
-    bugs: "what is this i don't even",
-    repository: "Hello."
-  }, warn)
-
-  console.error(a)
-
-  var expect =
-    [ warningMessages.missingDescription,
-      warningMessages.missingRepository,
-      warningMessages.nonUrlBugsUrlField,
-      warningMessages.nonEmailBugsEmailField,
-      warningMessages.emptyNormalizedBugs,
-      warningMessages.missingReadme,
-      warningMessages.missingLicense,
-      warningMessages.nonEmailUrlBugsString,
-      warningMessages.emptyNormalizedBugs,
-      warningMessages.nonUrlHomepage,
-      warningMessages.missingLicense]
-  t.same(warnings, expect)
-  t.end()
-})
-
-tap.test("homepage field must start with a protocol.", function(t) {
-  var warnings = []
-  function warn(w) {
-    warnings.push(w)
-  }
-  var a
-  normalize(a={
-    homepage: 'example.org'
-  }, warn)
-
-  console.error(a)
-
-  var expect =
-    [ warningMessages.missingDescription,
-      warningMessages.missingRepository,
-      warningMessages.missingReadme,
-      warningMessages.missingProtocolHomepage,
-      warningMessages.missingLicense]
-  t.same(warnings, expect)
-  t.same(a.homepage, 'http://example.org')
-  t.end()
-})
-
-tap.test("license field should be a valid SPDX expression", function(t) {
-  var warnings = []
-  function warn(w) {
-    warnings.push(w)
-  }
-  var a
-  normalize(a={
-    license: 'Apache 2'
-  }, warn)
-
-  console.error(a)
-
-  var expect =
-    [ warningMessages.missingDescription,
-      warningMessages.missingRepository,
-      warningMessages.missingReadme,
-      warningMessages.invalidLicense]
-  t.same(warnings, expect)
-  t.end()
-})
-
-tap.test("gist bugs url", function(t) {
-  var d = {
-    repository: "[email protected]:123456.git"
-  }
-  normalize(d)
-  t.same(d.repository, { type: 'git', url: 
'git+ssh://[email protected]/123456.git' })
-  t.same(d.bugs, { url: 'https://gist.github.com/123456' })
-  t.end();
-});
-
-tap.test("singularize repositories", function(t) {
-  var d = {repositories:["[email protected]:123456.git"]}
-  normalize(d)
-  t.same(d.repository, { type: 'git', url: 
'git+ssh://[email protected]/123456.git' })
-  t.end()
-});
-
-tap.test("treat visionmedia/express as github repo", function(t) {
-  var d = {repository: {type: "git", url: "visionmedia/express"}}
-  normalize(d)
-  t.same(d.repository, { type: "git", url: 
"git+https://github.com/visionmedia/express.git"; })
-  t.end()
-});
-
-tap.test("treat isaacs/node-graceful-fs as github repo", function(t) {
-  var d = {repository: {type: "git", url: "isaacs/node-graceful-fs"}}
-  normalize(d)
-  t.same(d.repository, { type: "git", url: 
"git+https://github.com/isaacs/node-graceful-fs.git"; })
-  t.end()
-});
-
-tap.test("homepage field will set to github url if repository is a github 
repo", function(t) {
-  var a
-  normalize(a={
-    repository: { type: "git", url: 
"https://github.com/isaacs/node-graceful-fs"; }
-  })
-  t.same(a.homepage, 'https://github.com/isaacs/node-graceful-fs#readme')
-  t.end()
-})
-
-tap.test("homepage field will set to github gist url if repository is a gist", 
function(t) {
-  var a
-  normalize(a={
-    repository: { type: "git", url: "[email protected]:123456.git" }
-  })
-  t.same(a.homepage, 'https://gist.github.com/123456')
-  t.end()
-})
-
-tap.test("homepage field will set to github gist url if repository is a 
shorthand reference", function(t) {
-  var a
-  normalize(a={
-    repository: { type: "git", url: "sindresorhus/chalk" }
-  })
-  t.same(a.homepage, 'https://github.com/sindresorhus/chalk#readme')
-  t.end()
-})
-
-tap.test("don't mangle github shortcuts in dependencies", function(t) {
-  var d = {dependencies: {"node-graceful-fs": "isaacs/node-graceful-fs"}}
-  normalize(d)
-  t.same(d.dependencies, {"node-graceful-fs": "github:isaacs/node-graceful-fs" 
})
-  t.end()
-});
-
-tap.test("deprecation warning for array in dependencies fields", function(t) {
-  var a
-  var warnings = []
-  function warn(w) {
-    warnings.push(w)
-  }
-  normalize(a={
-    dependencies: [],
-    devDependencies: [],
-    optionalDependencies: []
-  }, warn)
-  
t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 
'dependencies')), "deprecation warning")
-  
t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 
'devDependencies')), "deprecation warning")
-  
t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 
'optionalDependencies')), "deprecation warning")
-  t.end()
-})
-
-tap.test('no new globals', function(t) {
-  t.same(Object.keys(global), globals)
-  t.end()
-})
diff --git a/node_modules/service-runner/package.json 
b/node_modules/service-runner/package.json
index 2f5f47c..7c4ed6b 100644
--- a/node_modules/service-runner/package.json
+++ b/node_modules/service-runner/package.json
@@ -51,7 +51,7 @@
   "gitHead": "a2acd051c345f54172d63e74ad3ee578f9f44e67",
   "_id": "[email protected]",
   "_shasum": "715aaad93cb2b24f14c7d142ac5af0f55f454a91",
-  "_from": "service-runner@>=1.2.1 <2.0.0",
+  "_from": "service-runner@>=1.3.1 <2.0.0",
   "_npmVersion": "2.14.12",
   "_nodeVersion": "4.3.0",
   "_npmUser": {
diff --git a/restbase b/restbase
index f05b66f..f3d2c11 160000
--- a/restbase
+++ b/restbase
-Subproject commit f05b66f6c80a6cf99c3350a314475f72701899f8
+Subproject commit f3d2c11857294641a400bff1ae9427a427cc4ba2

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia1beb76db9f050850aba5f6b2112bfbb896970e6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/restbase/deploy
Gerrit-Branch: master
Gerrit-Owner: Mobrovac <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to