Mobrovac has uploaded a new change for review.

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

Change subject: Update restbase to 911eb82
......................................................................

Update restbase to 911eb82

List of changes:
911eb82 Remove Varnish purging and release v0.14.0 (#621)
xxxxxxx Update node module dependencies

Change-Id: I661f97e11cd0985aa82974cf52d661aeb69db7eb
---
M node_modules/content-type/package.json
D node_modules/htcp-purge/.jshintignore
D node_modules/htcp-purge/.jshintrc
D node_modules/htcp-purge/.npmignore
D node_modules/htcp-purge/.travis.yml
D node_modules/htcp-purge/index.js
D node_modules/htcp-purge/maintenance/purge.js
D node_modules/htcp-purge/package.json
D node_modules/htcp-purge/test/index.js
M node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
M node_modules/hyperswitch/node_modules/swagger-router/lib/reqTemplate.js
M node_modules/hyperswitch/node_modules/swagger-router/lib/utils.js
M node_modules/hyperswitch/node_modules/swagger-router/package.json
M 
node_modules/hyperswitch/node_modules/swagger-router/test/features/reqTemplate.js
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/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/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/inherits/package.json
M 
node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/string_decoder/package.json
M 
node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/index.js
M 
node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/package.json
M restbase
27 files changed, 128 insertions(+), 458 deletions(-)


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

diff --git a/node_modules/content-type/package.json 
b/node_modules/content-type/package.json
index 921cddc..a60e830 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": "3c644490f50d7b7da76ca8f05e1548aa12f8cdf6",
+  "_shasum": "bbff44a6c10face0ca9f18ebe7b807470e950096",
   "_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/htcp-purge/.jshintignore 
b/node_modules/htcp-purge/.jshintignore
deleted file mode 100644
index 1c69eee..0000000
--- a/node_modules/htcp-purge/.jshintignore
+++ /dev/null
@@ -1,3 +0,0 @@
-coverage
-node_modules
-test
diff --git a/node_modules/htcp-purge/.jshintrc 
b/node_modules/htcp-purge/.jshintrc
deleted file mode 100644
index 1ce76ec..0000000
--- a/node_modules/htcp-purge/.jshintrc
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-       "predef": [
-               "ve",
-
-               "setImmediate",
-
-               "QUnit",
-
-               "Map",
-               "Set"
-       ],
-
-       "bitwise": true,
-       "laxbreak": true,
-       "curly": true,
-       "eqeqeq": true,
-       "immed": true,
-       "latedef": "nofunc",
-       "newcap": true,
-       "noarg": true,
-       "noempty": true,
-       "nonew": true,
-       "regexp": false,
-       "undef": true,
-       "strict": true,
-       "trailing": true,
-
-       "smarttabs": true,
-       "multistr": true,
-
-       "node": true,
-
-       "nomen": false,
-       "loopfunc": true,
-        "esnext": true
-       //"onevar": true
-}
diff --git a/node_modules/htcp-purge/.npmignore 
b/node_modules/htcp-purge/.npmignore
deleted file mode 100644
index 48b175e..0000000
--- a/node_modules/htcp-purge/.npmignore
+++ /dev/null
@@ -1,7 +0,0 @@
-restbase
-coverage
-config.yaml
-node_modules
-npm-debug.log
-# WebStorm IDE files
-.idea/*
diff --git a/node_modules/htcp-purge/.travis.yml 
b/node_modules/htcp-purge/.travis.yml
deleted file mode 100644
index 54b3afa..0000000
--- a/node_modules/htcp-purge/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-language: node_js
-node_js:
-    - "0.10"
-    - "0.12"
-    - "iojs"
-
-before_script:
-  - sleep 5
-
-notifications:
-  email:
-    - [email protected]
-
-script: npm run-script coverage && (npm run-script coveralls || exit 0)
diff --git a/node_modules/htcp-purge/index.js b/node_modules/htcp-purge/index.js
deleted file mode 100644
index f4144a4..0000000
--- a/node_modules/htcp-purge/index.js
+++ /dev/null
@@ -1,144 +0,0 @@
-"use strict";
-
-require('core-js/shim');
-
-var P = require('bluebird');
-var dgram = P.promisifyAll(require('dgram'));
-
-/**
- * Creates a new cache purger instance
- *
- * @param options object containing options for a cache purger:
- *  - log:    logging function (default no-op)
- *  - routes: array of route objects to map a resource url to the cache 
endpoint
- *      - rule: ether regex for a resource url, or 'undefined' if it's a 
default endpoint
- *      - host: cache endpoint host
- *      - port: cache endpount port
- *  - multicast_ttl: standard UDP multicast TTL option (default 8)
- * @constructor
- */
-function HTCPPurger(options) {
-    var self = this;
-    self.options = options || {};
-    self.log = self.options.log || function() {};
-
-    if (!self.options.routes) {
-       throw new Error('Config error. At least one route must be specified');
-    }
-
-    self.options.routes.forEach(function(routeSpec) {
-        if (routeSpec.rule && /^\/.+\/$/.test(routeSpec.rule)) {
-            var regExp = new RegExp(routeSpec.rule.substring(1, 
routeSpec.rule.length - 1));
-            routeSpec.rule = function(url) {
-                return regExp.test(url);
-            };
-        } else {
-            routeSpec.rule = function() { return true; };
-        }
-    });
-
-    self.options.multicast_ttl = self.options.multicast_ttl || 8;
-
-    self.seqReqId = 1;
-}
-
-/**
- * Construct a UDP datagram with HTCP packet for Varnish flush of the url
- * @param url a url of the resource that should be flushed
- * @returns {Buffer} resulting HTCP packet bytes
- * @private
- */
-HTCPPurger.prototype._constructHTCPRequest = function(url) {
-    var self = this;
-    var urlByteLen = Buffer.byteLength(url);
-    var htcpSpecifierLen = 2 + 4 + 2 + urlByteLen + 2 + 8 + 2;
-    var htcpDataLen = 8 + 2 + htcpSpecifierLen;
-    var htcpLen = 4 + htcpDataLen + 2;
-
-    var result = new Buffer(htcpLen);
-    // Length
-    result.writeInt16BE(htcpLen, 0);
-    // Major-minor version
-    result.writeInt16BE(0, 2);
-    // Data length
-    result.writeInt16BE(htcpDataLen, 4);
-    // Op code & response
-    result.writeInt8(4, 6);
-    // Reserved & flags
-    result.writeInt8(0, 7);
-    // Transaction Id - seq number of a a request
-    result.writeInt32BE(self.seqReqId++, 8);
-
-    // HTCP packet contents - CLR specifier
-    // Reserved & reason
-    result.writeInt16BE(0, 12);
-    // COUNTSTR method: length + method (HEAD & GET are equivalent)
-    result.writeInt16BE(4, 14);
-    result.write('HEAD', 16, 4);
-    // COUNTSTR uri: length + URI
-    result.writeInt16BE(urlByteLen, 20);
-    result.write(url, 22, urlByteLen);
-    // COUNTSTR version: length + http version
-    result.writeInt16BE(8, 22 + urlByteLen);
-    result.write('HTTP/1.0', 24 + urlByteLen, 8);
-    // COUNTSTR headers: empty, use just as padding
-    result.writeInt16BE(0, 32 + urlByteLen);
-    result.writeInt16BE(2, 14 + htcpSpecifierLen);
-
-    return result;
-};
-
-/**
- * Lookup a cache endpoint for a concrete URL, based on options
- * supplied in constructor
- * @param url URL to lookup cache endpoint for
- * @returns {Object} an opbject with host and port keys
- * @private
- */
-HTCPPurger.prototype._lookupRoute = function(url) {
-    var self = this;
-    var route = self.options.routes.find(function(route) {
-        return route.rule(url);
-    });
-    if (!route) {
-        self.log('error/htcp-purge', {
-            msg: 'Could not find route for ' + url
-        });
-        return undefined;
-    }
-    return {
-        host: route.host,
-        port: route.port
-    };
-};
-
-/**
- * Purge a list of resources cahced under provided URLs
- *
- * @param urls array of urls to purge
- */
-HTCPPurger.prototype.purge = function(urls) {
-    var self = this;
-    var socket = dgram.createSocket('udp4');
-    return socket.bindAsync()
-    .then(function() {
-        socket.setMulticastLoopback(false);
-        socket.setMulticastTTL(self.options.multicast_ttl);
-    })
-    .then(function() {
-        return P.all(urls.map(function(url) {
-            var datagram = self._constructHTCPRequest(url);
-            var route = self._lookupRoute(url);
-            if (route) {
-                return socket.sendAsync(datagram, 0, datagram.length, 
route.port, route.host);
-            } else {
-                return P.resolve();
-            }
-        }));
-    })
-    .then(function() {
-        socket.close();
-    });
-};
-
-module.exports = HTCPPurger;
\ No newline at end of file
diff --git a/node_modules/htcp-purge/maintenance/purge.js 
b/node_modules/htcp-purge/maintenance/purge.js
deleted file mode 100644
index 6c5b036..0000000
--- a/node_modules/htcp-purge/maintenance/purge.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-
-var HTCPPurger = require('../index.js');
-
-function validateArgs() {
-    if (process.argv.length !== 4) {
-        return false;
-    }
-    var varnishIP = process.argv[2];
-    return /(?:\d{1,3}\.){3}\d{1,3}:\d{4}/.test(varnishIP);
-
-}
-if (!validateArgs()) {
-    console.log('Usage: node purge.js <varnish ip:port> <resource uri>');
-    process.exit(1);
-}
-
-var varnishIP = process.argv[2];
-var purgeURL = process.argv[3];
-var hostPortMatch = varnishIP.match(/((?:\d{1,3}\.){3}\d{1,3}):(\d{4})/);
-var varnishHostIp = hostPortMatch[1];
-var varnishPort = parseInt(hostPortMatch[2]);
-
-var purger = new HTCPPurger({
-    log: console.log.bind(console),
-    routes: [{
-            host: varnishHostIp,
-            port: varnishPort
-        }]
-});
-
-console.log('Sending a datagram to ' + varnishHostIp + ':' + varnishPort + ' 
for uri ' + purgeURL);
-purger.purge([purgeURL]);
-
diff --git a/node_modules/htcp-purge/package.json 
b/node_modules/htcp-purge/package.json
deleted file mode 100644
index 01f9df5..0000000
--- a/node_modules/htcp-purge/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "name": "htcp-purge",
-  "version": "0.1.2",
-  "description": "Varnish caches purging method",
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha",
-    "coverage": "istanbul cover _mocha -- -R spec",
-    "coveralls": "cat ./coverage/lcov.info | coveralls"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/wikimedia/htcp-purge.git"
-  },
-  "keywords": [
-    "varnish",
-    "cache",
-    "mediawiki"
-  ],
-  "author": {
-    "name": "Wikimedia Service Team",
-    "email": "[email protected]"
-  },
-  "license": "Apache-2.0",
-  "dependencies": {
-    "core-js": "^2.0.3",
-    "bluebird": "^3.1.1"
-  },
-  "devDependencies": {
-    "istanbul": "^0.4.2",
-    "mocha": "^2.3.4",
-    "mocha-jshint": "^2.2.6",
-    "mocha-lcov-reporter": "^1.0.0"
-  },
-  "gitHead": "3dfcd840ef64da70bb07163f34aa0e25749b7ca9",
-  "bugs": {
-    "url": "https://github.com/wikimedia/htcp-purge/issues";
-  },
-  "homepage": "https://github.com/wikimedia/htcp-purge#readme";,
-  "_id": "[email protected]",
-  "_shasum": "ab7f9841eae35c4be9bac76b002fcd5eea0ec059",
-  "_from": "htcp-purge@>=0.1.2 <0.2.0",
-  "_npmVersion": "2.14.3",
-  "_nodeVersion": "0.10.37",
-  "_npmUser": {
-    "name": "doorman",
-    "email": "[email protected]"
-  },
-  "maintainers": [
-    {
-      "name": "doorman",
-      "email": "[email protected]"
-    },
-    {
-      "name": "eevans",
-      "email": "[email protected]"
-    },
-    {
-      "name": "gwicke",
-      "email": "[email protected]"
-    },
-    {
-      "name": "pchelolo",
-      "email": "[email protected]"
-    }
-  ],
-  "dist": {
-    "shasum": "ab7f9841eae35c4be9bac76b002fcd5eea0ec059",
-    "tarball": "https://registry.npmjs.org/htcp-purge/-/htcp-purge-0.1.2.tgz";
-  },
-  "directories": {},
-  "_resolved": "https://registry.npmjs.org/htcp-purge/-/htcp-purge-0.1.2.tgz";
-}
diff --git a/node_modules/htcp-purge/test/index.js 
b/node_modules/htcp-purge/test/index.js
deleted file mode 100644
index 868a73d..0000000
--- a/node_modules/htcp-purge/test/index.js
+++ /dev/null
@@ -1,107 +0,0 @@
-"use strict";
-
-require('mocha-jshint')();
-
-var HTCPPurger = require('../index');
-var assert = require('assert');
-var dgram = require('dgram');
-
-describe('Protocol tests', function() {
-    var referenceBuffer = new Buffer([0, 44, 0, 0, 0, 38, 4, 0,
-        0, 0, 0, 1, 0, 0, 0, 4, 72, 69, 65, 68, 0, 8,
-        116, 101, 115, 116, 46, 99, 111, 109, 0, 8, 72,
-        84, 84, 80, 47, 49, 46, 48, 0, 0, 0, 2]);
-    var referenceBuffer2 = new Buffer([0, 44, 0, 0, 0, 38, 4, 0,
-        0, 0, 0, 2, 0, 0, 0, 4, 72, 69, 65, 68, 0, 8,
-        116, 101, 115, 116, 46, 99, 111, 109, 0, 8, 72,
-        84, 84, 80, 47, 49, 46, 48, 0, 0, 0, 2]);
-
-    it('should construct correct datagram', function() {
-        var purger = new HTCPPurger({
-            routes: [
-                {
-                    host: 'default',
-                    port: 4827
-                }
-            ]
-        });
-        var resultDatagram = purger._constructHTCPRequest('test.com');
-        assert.deepEqual(referenceBuffer, resultDatagram);
-    });
-
-    it ('should lookup route by regex', function() {
-        var purger = new HTCPPurger({
-            routes: [
-                {
-                    rule: '/https?:\\/\\/test\\.com/',
-                    host: '123.123.123.123',
-                    port: 1234
-                },
-                {
-                    host: 'default',
-                    port: 1234
-                }
-            ]
-        });
-        var route = purger._lookupRoute('http://test.com');
-        assert.deepEqual('123.123.123.123', route.host);
-        assert.deepEqual(1234, route.port);
-        var route2 = purger._lookupRoute('http://test2.com');
-        assert.deepEqual('default', route2.host);
-        assert.deepEqual(1234, route2.port);
-    });
-
-    it ('should send datagrams' ,function(done) {
-        this.timeout(5000);
-        var purger = new HTCPPurger({
-            routes: [
-                {
-                    host: 'localhost',
-                    port: 12345
-                }
-            ]
-        });
-        var server = dgram.createSocket('udp4');
-        server.on("message", function (msg) {
-            assert.deepEqual(referenceBuffer, msg);
-            done();
-        });
-        server.bind(12345);
-        return purger.purge(['test.com'])
-        .delay(100)
-        .then(function() {
-            server.close();
-        });
-    });
-
-    it ('should increase seq num of datagrams' ,function(done) {
-        var purger = new HTCPPurger({
-            routes: [
-                {
-                    host: 'localhost',
-                    port: 12346
-                }
-            ]
-        });
-        var server = dgram.createSocket('udp4');
-        var msgIdx = 1;
-        server.on("message", function (msg) {
-            if (msgIdx === 1) {
-                assert.deepEqual(referenceBuffer, msg);
-                msgIdx++;
-            } else {
-                assert.deepEqual(referenceBuffer2, msg);
-                done();
-            }
-        });
-        server.bind(12346);
-
-        return purger.purge(['test.com'])
-        .delay(100)
-        .then(function() {
-            return purger.purge(['test.com']);
-        })
-        .delay(100)
-        .then(function() { server.close(); })
-    });
-});
\ No newline at end of file
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 9c69155..e141fbc 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": "683df0c1af58b08b91f9ee232525dca4c33c73c4",
+  "_shasum": "e26306d6f9a6aa33ad0276e8ca9282536bf16b0e",
   "_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/swagger-router/lib/reqTemplate.js 
b/node_modules/hyperswitch/node_modules/swagger-router/lib/reqTemplate.js
index a63bc28..2aff35f 100644
--- a/node_modules/hyperswitch/node_modules/swagger-router/lib/reqTemplate.js
+++ b/node_modules/hyperswitch/node_modules/swagger-router/lib/reqTemplate.js
@@ -5,6 +5,7 @@
 var url = require('url');
 var TAssembly = require('tassembly');
 var expressionCompiler = require('template-expression-compiler');
+var utils = require('./utils');
 
 var compilerOptions = {
     ctxMap: {
@@ -95,6 +96,51 @@
         };
     },
 
+    /**
+     * Formats a date in a requested format
+     *
+     * @param date date to format
+     * @param [format] optional format, defaults to RFC 822 format
+     */
+    date: function(date, format) {
+
+        function isValidDate(d) {
+            if (d.constructor !== Date) {
+                return false;
+            }
+            return !isNaN(d.getTime());
+        }
+
+        format = format || 'rfc822';
+
+        if (!isValidDate(date)) {
+            var origDate = date;
+
+            if (typeof date === 'string') {
+                // It's a string, but may be it's just a stringified timestamp.
+                // Check if it actually is.
+                var tempNumDate = parseInt(date);
+                if (!Number.isNaN(tempNumDate)) {
+                    date = tempNumDate;
+                }
+            }
+            date = new Date(date);
+
+            if (!isValidDate(date)) {
+                throw new Error('Invalid date: ' + origDate);
+            }
+        }
+
+        switch (format) {
+            case 'rfc822':
+                return utils.toRFC822Date(date);
+            case 'iso':
+                return date.toISOString();
+            default:
+                throw new Error('Unsupported date format: ' + format);
+        }
+    },
+
     // Private helpers
     _optionalPath: function(element) {
         if (element !== undefined) {
diff --git a/node_modules/hyperswitch/node_modules/swagger-router/lib/utils.js 
b/node_modules/hyperswitch/node_modules/swagger-router/lib/utils.js
index 46db0d7..9c10dda 100644
--- a/node_modules/hyperswitch/node_modules/swagger-router/lib/utils.js
+++ b/node_modules/hyperswitch/node_modules/swagger-router/lib/utils.js
@@ -110,4 +110,25 @@
     }
 };
 
-module.exports = utils;
+utils.toRFC822Date = function(date) {
+    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
+    var days   = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
+
+    function numpad(x, digits) {
+        var result = Math.floor(x).toString();
+        while (result.length < digits) {
+            result = '0' + result;
+        }
+        return result;
+    }
+    return days[date.getUTCDay()] + ", "
+        + numpad(date.getUTCDate(), 2) + " "
+        + months[date.getUTCMonth()] + " "
+        + date.getUTCFullYear() + " "
+        + numpad(date.getUTCHours(), 2) + ":"
+        + numpad(date.getUTCMinutes(), 2) + ":"
+        + numpad(date.getUTCSeconds(), 2) + " +0000";
+};
+
+module.exports = utils;
\ No newline at end of file
diff --git a/node_modules/hyperswitch/node_modules/swagger-router/package.json 
b/node_modules/hyperswitch/node_modules/swagger-router/package.json
index ea207b9..6157357 100644
--- a/node_modules/hyperswitch/node_modules/swagger-router/package.json
+++ b/node_modules/hyperswitch/node_modules/swagger-router/package.json
@@ -1,6 +1,6 @@
 {
   "name": "swagger-router",
-  "version": "0.4.2",
+  "version": "0.4.3",
   "description": "An efficient swagger 2 based router with support for 
multiple APIs. For use in RESTBase.",
   "main": "index.js",
   "scripts": {
@@ -42,16 +42,20 @@
     "coveralls": "^2.11.6",
     "mocha-jscs": "^4.0.0"
   },
-  "gitHead": "edddfa0b9319a0dc162e5db0ddf010515c3e9fd0",
+  "gitHead": "24ea18026347232209d53d32dccb1d30e92256f9",
   "homepage": "https://github.com/gwicke/swagger-router#readme";,
-  "_id": "[email protected]",
-  "_shasum": "6885929d65888680629a9fcda1fcb7eeeaab0efa",
+  "_id": "[email protected]",
+  "_shasum": "9058ab41412c5b608f113b116e5dbac7d8be75be",
   "_from": "swagger-router@>=0.4.1 <0.5.0",
   "_npmVersion": "2.14.12",
   "_nodeVersion": "4.3.0",
   "_npmUser": {
     "name": "doorman",
     "email": "[email protected]"
+  },
+  "dist": {
+    "shasum": "9058ab41412c5b608f113b116e5dbac7d8be75be",
+    "tarball": 
"https://registry.npmjs.org/swagger-router/-/swagger-router-0.4.3.tgz";
   },
   "maintainers": [
     {
@@ -67,14 +71,10 @@
       "email": "[email protected]"
     }
   ],
-  "dist": {
-    "shasum": "6885929d65888680629a9fcda1fcb7eeeaab0efa",
-    "tarball": 
"https://registry.npmjs.org/swagger-router/-/swagger-router-0.4.2.tgz";
-  },
   "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/swagger-router-0.4.2.tgz_1461191308436_0.6459144277032465"
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/swagger-router-0.4.3.tgz_1464189425544_0.7810743984300643"
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/swagger-router/-/swagger-router-0.4.2.tgz";
+  "_resolved": 
"https://registry.npmjs.org/swagger-router/-/swagger-router-0.4.3.tgz";
 }
diff --git 
a/node_modules/hyperswitch/node_modules/swagger-router/test/features/reqTemplate.js
 
b/node_modules/hyperswitch/node_modules/swagger-router/test/features/reqTemplate.js
index 6634a01..47e0740 100644
--- 
a/node_modules/hyperswitch/node_modules/swagger-router/test/features/reqTemplate.js
+++ 
b/node_modules/hyperswitch/node_modules/swagger-router/test/features/reqTemplate.js
@@ -547,4 +547,26 @@
             headers: 'test_0'
         });
     });
+
+    it('should support date formats', function() {
+        var template = new Template({
+            body: {
+                date_iso: '{{date(request.body.date, "iso")}}',
+                date_rfc822: '{{date(request.body.date)}}'
+            }
+        });
+        var result = template.expand({
+            request: {
+                body: {
+                    date: '1234'
+                }
+            }
+        });
+        assert.deepEqual(result, {
+            body: {
+                date_iso: '1970-01-01T00:00:01.234Z',
+                date_rfc822: 'Thu, 01 Jan 1970 00:00:01 +0000'
+            }
+        });
+    });
 });
diff --git a/node_modules/hyperswitch/node_modules/swagger-ui/package.json 
b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
index f03e8c0..f951a55 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": "0cabf59df9b94f39ecf29eeea6218d72cd71c800",
+  "_shasum": "e3d4285474ed1838fae4cab9473ba0ad56e5ef02",
   "_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/json-stable-stringify/package.json 
b/node_modules/json-stable-stringify/package.json
index f567f79..919d522 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": "1868343a209ebdb84aef97af1623ded53c578a89",
+  "_shasum": "b2c696a5c800ec132a8d1ee76b7aa6bf81c81216",
   "_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/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
index a1e7d30..e3205ec 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": "b38156fc0182c6933f765136f241ed7cd6095844",
+  "_shasum": "3cc6267440213b635f5bc3edc9ecd1ef0b921da7",
   "_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 9c69155..e141fbc 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": "683df0c1af58b08b91f9ee232525dca4c33c73c4",
+  "_shasum": "e26306d6f9a6aa33ad0276e8ca9282536bf16b0e",
   "_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/limitation/node_modules/kad/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
index 1f2b391..c7a34a4 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": "feef458bbb8eb9147d6e7c88a0960582b3f042f3",
+  "_shasum": "a4270914aa7703d414c0c40e23e051ac07e1a346",
   "_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 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/inherits/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
index 67d2c29..02af46a 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
@@ -16,7 +16,7 @@
   "browser": "./inherits_browser.js",
   "repository": {
     "type": "git",
-    "url": "git://github.com/isaacs/inherits"
+    "url": "git://github.com/isaacs/inherits.git"
   },
   "license": "ISC",
   "scripts": {
@@ -44,5 +44,7 @@
   ],
   "directories": {},
   "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1",
-  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";,
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/isaacs/inherits#readme";
 }
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!"
 }
diff --git 
a/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/index.js
 
b/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/index.js
index 33715dd..fd64d5a 100644
--- 
a/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/index.js
+++ 
b/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/index.js
@@ -2,11 +2,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-var crypto = require('crypto');
-
 var defineProperty = Object.defineProperty;
 function next() {
-  return "@@symbol:" + crypto.randomBytes(8).toString('hex');
+  return "@@symbol:" + String(Math.random()).slice(2);
 }
 
 
diff --git 
a/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/package.json
 
b/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/package.json
index 2819424..5e58dd4 100644
--- 
a/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/package.json
+++ 
b/node_modules/service-runner/node_modules/yargs/node_modules/pkg-conf/node_modules/symbol/package.json
@@ -1,6 +1,6 @@
 {
   "name": "symbol",
-  "version": "0.2.2",
+  "version": "0.2.3",
   "description": "ES6 Symbols in your ES5.",
   "repository": {
     "type": "git",
@@ -24,13 +24,13 @@
     "url": "http://seanmonstar.com";
   },
   "license": "MPLv2.0",
-  "gitHead": "bc8ebe70be8b2312aaee3277012d7b3a0244dd7f",
+  "gitHead": "353aa3eb55757349739bfa641b33b639e8bafd0b",
   "bugs": {
     "url": "https://github.com/seanmonstar/symbol/issues";
   },
   "homepage": "https://github.com/seanmonstar/symbol#readme";,
-  "_id": "[email protected]",
-  "_shasum": "cbd9090e77f755d2c250e271ffdffd5975b53afe",
+  "_id": "[email protected]",
+  "_shasum": "3b9873b8a901e47c6efe21526a3ac372ef28bbc7",
   "_from": "symbol@>=0.2.1 <0.3.0",
   "_npmVersion": "2.14.11",
   "_nodeVersion": "0.10.40",
@@ -39,8 +39,8 @@
     "email": "[email protected]"
   },
   "dist": {
-    "shasum": "cbd9090e77f755d2c250e271ffdffd5975b53afe",
-    "tarball": "https://registry.npmjs.org/symbol/-/symbol-0.2.2.tgz";
+    "shasum": "3b9873b8a901e47c6efe21526a3ac372ef28bbc7",
+    "tarball": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz";
   },
   "maintainers": [
     {
@@ -49,9 +49,9 @@
     }
   ],
   "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/symbol-0.2.2.tgz_1462399095017_0.4419984635896981"
+    "host": "packages-12-west.internal.npmjs.com",
+    "tmp": "tmp/symbol-0.2.3.tgz_1464212306138_0.6560427669901401"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.2.tgz";
+  "_resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz";
 }
diff --git a/restbase b/restbase
index 188c286..911eb82 160000
--- a/restbase
+++ b/restbase
-Subproject commit 188c2861158554d7fcaeee740b519ce5da281563
+Subproject commit 911eb822617cb58177a9c0011bcc870ac2b2e6e6

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I661f97e11cd0985aa82974cf52d661aeb69db7eb
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