GWicke has uploaded a new change for review.

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

Change subject: Bump swagger-router dependency
......................................................................

Bump swagger-router dependency

Change-Id: I1f5830e99a44ff33ea0036de95eb805ff6ed6684
---
M node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
M node_modules/coveralls/node_modules/request/node_modules/hawk/package.json
M 
node_modules/coveralls/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
M 
node_modules/heapdump/build/Release/.deps/Release/obj.target/addon/src/heapdump.o.d
M node_modules/heapdump/package.json
M node_modules/heapdump/src/compat-inl.h
M node_modules/heapdump/src/compat.h
M node_modules/heapdump/src/heapdump.cc
M node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json
M node_modules/istanbul/node_modules/mkdirp/package.json
M node_modules/istanbul/node_modules/once/package.json
M node_modules/mocha-lcov-reporter/package.json
M node_modules/mocha/node_modules/debug/node_modules/ms/package.json
M node_modules/mocha/node_modules/diff/package.json
M node_modules/mocha/node_modules/glob/node_modules/inherits/package.json
M node_modules/mocha/node_modules/glob/package.json
M node_modules/mocha/node_modules/jade/package.json
M node_modules/mocha/node_modules/mkdirp/package.json
M node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
M node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
M 
node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/cassandra-codec/node_modules/bignum/node_modules/nan/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/connect-busboy/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/http-signature/node_modules/asn1/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json
M node_modules/restbase-mod-table-cassandra/package.json
A node_modules/swagger-router/.npmignore
M node_modules/swagger-router/index.js
M node_modules/swagger-router/package.json
M node_modules/swagger-router/test/index.js
M node_modules/swagger-ui/node_modules/shred/node_modules/cookiejar/package.json
M node_modules/url-template/package.json
M restbase
35 files changed, 163 insertions(+), 160 deletions(-)


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

diff --git 
a/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json 
b/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
index f3a4ada..c8bf016 100644
--- 
a/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
+++ 
b/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
@@ -52,5 +52,6 @@
   "_shasum": "808b9d0e56fc273d809ba57338e929919a1a9f1a",
   "bugs": {
     "url": "https://github.com/mscdex/streamsearch/issues";
-  }
+  },
+  "homepage": "https://github.com/mscdex/streamsearch";
 }
diff --git 
a/node_modules/coveralls/node_modules/request/node_modules/hawk/package.json 
b/node_modules/coveralls/node_modules/request/node_modules/hawk/package.json
index 5444edb..fadd7a9 100755
--- a/node_modules/coveralls/node_modules/request/node_modules/hawk/package.json
+++ b/node_modules/coveralls/node_modules/request/node_modules/hawk/package.json
@@ -65,5 +65,6 @@
   "directories": {},
   "_shasum": "87cd491f9b46e4e2aeaca335416766885d2d1ed9",
   "_resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";,
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/hueniverse/hawk";
 }
diff --git 
a/node_modules/coveralls/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
 
b/node_modules/coveralls/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
index 76d7422..ad8294e 100644
--- 
a/node_modules/coveralls/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
+++ 
b/node_modules/coveralls/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
@@ -58,5 +58,6 @@
   "bugs": {
     "url": "https://github.com/mcavage/node-asn1/issues";
   },
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/mcavage/node-asn1";
 }
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 be410d9..8c69930 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
@@ -10,8 +10,7 @@
  /usr/include/nodejs/src/node.h ../src/compat-inl.h ../src/compat.h \
  /usr/include/nodejs/src/node_version.h \
  /usr/include/nodejs/deps/v8/include/v8-profiler.h \
- /usr/include/nodejs/deps/v8/include/v8.h \
- /usr/include/nodejs/deps/v8/include/v8-debug.h ../src/heapdump-posix.h
+ /usr/include/nodejs/deps/v8/include/v8.h ../src/heapdump-posix.h
 ../src/heapdump.cc:
 /usr/include/nodejs/src/node.h:
 /usr/include/nodejs/deps/uv/include/uv.h:
@@ -27,5 +26,4 @@
 /usr/include/nodejs/src/node_version.h:
 /usr/include/nodejs/deps/v8/include/v8-profiler.h:
 /usr/include/nodejs/deps/v8/include/v8.h:
-/usr/include/nodejs/deps/v8/include/v8-debug.h:
 ../src/heapdump-posix.h:
diff --git a/node_modules/heapdump/package.json 
b/node_modules/heapdump/package.json
index 3aea89f..cd650b3 100644
--- a/node_modules/heapdump/package.json
+++ b/node_modules/heapdump/package.json
@@ -1,7 +1,7 @@
 {
   "name": "heapdump",
   "main": "./lib/main",
-  "version": "0.3.3",
+  "version": "0.3.5",
   "description": "Make a dump of the V8 heap for later inspection.",
   "homepage": "https://github.com/bnoordhuis/node-heapdump";,
   "author": {
@@ -26,14 +26,15 @@
     "tap": "~0.4.12"
   },
   "gypfile": true,
-  "gitHead": "aad9f78eec68e9d900a1fb37b810e976784cce15",
+  "gitHead": "b9a059df2cd4f3829b908adb04a4c5471ed9c275",
   "bugs": {
     "url": "https://github.com/bnoordhuis/node-heapdump/issues";
   },
-  "_id": "[email protected]",
-  "_shasum": "60fe0f33f68ff13c28813f0f31787b574890337b",
-  "_from": "[email protected]",
-  "_npmVersion": "1.4.28",
+  "_id": "[email protected]",
+  "_shasum": "19f8419277bffb59f931c9ad4a987225508888f5",
+  "_from": "heapdump@^0.3.3",
+  "_npmVersion": "2.3.0",
+  "_nodeVersion": "1.0.4",
   "_npmUser": {
     "name": "bnoordhuis",
     "email": "[email protected]"
@@ -45,10 +46,10 @@
     }
   ],
   "dist": {
-    "shasum": "60fe0f33f68ff13c28813f0f31787b574890337b",
-    "tarball": "http://registry.npmjs.org/heapdump/-/heapdump-0.3.3.tgz";
+    "shasum": "19f8419277bffb59f931c9ad4a987225508888f5",
+    "tarball": "http://registry.npmjs.org/heapdump/-/heapdump-0.3.5.tgz";
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.3.tgz";,
+  "_resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.5.tgz";,
   "readme": "ERROR: No README data found!"
 }
diff --git a/node_modules/heapdump/src/compat-inl.h 
b/node_modules/heapdump/src/compat-inl.h
index d355ac3..ca6d922 100644
--- a/node_modules/heapdump/src/compat-inl.h
+++ b/node_modules/heapdump/src/compat-inl.h
@@ -16,11 +16,10 @@
 #define COMPAT_INL_H_  // NOLINT(build/header_guard)
 
 #include "compat.h"
-#include "v8-debug.h"  // v8::BreakForCommand
 
 namespace compat {
 
-#if defined(COMPAT_NODE_VERSION_10)
+#if !NODE_VERSION_AT_LEAST(0, 11, 0)
 #define COMPAT_ISOLATE
 #define COMPAT_ISOLATE_
 #else
@@ -33,46 +32,12 @@
 template <typename T>
 inline void Use(const T&) {}
 
-// V8 doesn't export a version macro that we can #ifdef on so we apply
-// some SFINAE magic to figure out with what V8 version we are dealing.
-// v8::BreakForCommand == 7 going back all the way to 3.0.0 until it
-// was changed in 3.29 because of new microtask and promise debug APIs.
-// We only have to discern between 3.26 and 3.30 because those are the
-// V8 versions that joyent/node and node-forward/node ship respectively.
-static const bool AT_LEAST_V8_3_29 = (v8::BreakForCommand >= 9);
-
-template <bool AT_LEAST_V8_3_29, typename T, typename U>
-void SetAddHistogramSampleFunction(U*, v8::AddHistogramSampleCallback callback,
-                                   int (*)[AT_LEAST_V8_3_29 == false] = 0) {
-  T::SetAddHistogramSampleFunction(callback);
-}
-
-template <bool AT_LEAST_V8_3_29, typename T, typename U>
-void SetAddHistogramSampleFunction(U* isolate,
-                                   v8::AddHistogramSampleCallback callback,
-                                   int (*)[AT_LEAST_V8_3_29 == true] = 0) {
-  isolate->SetAddHistogramSampleFunction(callback);
-}
-
-template <bool AT_LEAST_V8_3_29, typename T, typename U>
-void SetCreateHistogramFunction(U*, v8::CreateHistogramCallback callback,
-                                int (*)[AT_LEAST_V8_3_29 == false] = 0) {
-  T::SetCreateHistogramFunction(callback);
-}
-
-template <bool AT_LEAST_V8_3_29, typename T, typename U>
-void SetCreateHistogramFunction(U* isolate,
-                                v8::CreateHistogramCallback callback,
-                                int (*)[AT_LEAST_V8_3_29 == true] = 0) {
-  isolate->SetCreateHistogramFunction(callback);
-}
-
 template <typename T>
 inline v8::Local<T> ToLocal(v8::Local<T> handle) {
   return handle;
 }
 
-#if defined(COMPAT_NODE_VERSION_10)
+#if !NODE_VERSION_AT_LEAST(0, 11, 0)
 template <typename T>
 inline v8::Local<T> ToLocal(v8::Handle<T> handle) {
   return v8::Local<T>(*handle);
@@ -130,13 +95,22 @@
 
 void Isolate::SetAddHistogramSampleFunction(
     v8::Isolate* isolate, v8::AddHistogramSampleCallback callback) {
-  I::SetAddHistogramSampleFunction<I::AT_LEAST_V8_3_29, v8::V8>(isolate,
-                                                                callback);
+#if !NODE_VERSION_AT_LEAST(0, 11, 15)
+  I::Use(isolate);
+  v8::V8::SetAddHistogramSampleFunction(callback);
+#else
+  isolate->SetAddHistogramSampleFunction(callback);
+#endif
 }
 
 void Isolate::SetCreateHistogramFunction(v8::Isolate* isolate,
                                          v8::CreateHistogramCallback callback) 
{
-  I::SetCreateHistogramFunction<I::AT_LEAST_V8_3_29, v8::V8>(isolate, 
callback);
+#if !NODE_VERSION_AT_LEAST(0, 11, 15)
+  I::Use(isolate);
+  v8::V8::SetCreateHistogramFunction(callback);
+#else
+  isolate->SetCreateHistogramFunction(callback);
+#endif
 }
 
 v8::Local<v8::Number> Number::New(v8::Isolate* isolate, double value) {
@@ -227,7 +201,7 @@
   return args_.GetIsolate();
 }
 
-#if defined(COMPAT_NODE_VERSION_10)
+#if !NODE_VERSION_AT_LEAST(0, 11, 0)
 
 void CpuProfiler::StartCpuProfiling(v8::Isolate* isolate,
                                     v8::Local<v8::String> title) {
@@ -305,7 +279,7 @@
   return handle_scope_.Close(value);
 }
 
-#elif defined(COMPAT_NODE_VERSION_12)
+#else
 
 void CpuProfiler::StartCpuProfiling(v8::Isolate* isolate,
                                     v8::Local<v8::String> title) {
diff --git a/node_modules/heapdump/src/compat.h 
b/node_modules/heapdump/src/compat.h
index 0f9efd3..3842dc1 100644
--- a/node_modules/heapdump/src/compat.h
+++ b/node_modules/heapdump/src/compat.h
@@ -19,21 +19,13 @@
 #include "v8.h"
 #include "v8-profiler.h"
 
-#if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION >= 11
-#define COMPAT_NODE_VERSION_12 1
-#endif
-
-#if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION == 10
-#define COMPAT_NODE_VERSION_10 1
-#endif
-
 namespace compat {
 
-#if defined(COMPAT_NODE_VERSION_10)
+#if !NODE_VERSION_AT_LEAST(0, 11, 0)
 typedef v8::Arguments ArgumentType;
 typedef v8::Handle<v8::Value> ReturnType;
 typedef v8::InvocationCallback FunctionCallback;
-#elif defined(COMPAT_NODE_VERSION_12)
+#else
 typedef v8::FunctionCallbackInfo<v8::Value> ArgumentType;
 typedef void ReturnType;
 typedef v8::FunctionCallback FunctionCallback;
diff --git a/node_modules/heapdump/src/heapdump.cc 
b/node_modules/heapdump/src/heapdump.cc
index 2637161..0dc0184 100644
--- a/node_modules/heapdump/src/heapdump.cc
+++ b/node_modules/heapdump/src/heapdump.cc
@@ -137,13 +137,11 @@
   Local<Value> argv[] = {C::Null(isolate),
                          C::String::NewFromUtf8(isolate, filename)};
   const int argc = sizeof(argv) / sizeof(*argv);
-#if defined(COMPAT_NODE_VERSION_10)
+#if !NODE_VERSION_AT_LEAST(0, 11, 0)
   node::MakeCallback(Context::GetCurrent()->Global(), callback, argc, argv);
-#elif defined(COMPAT_NODE_VERSION_12)
+#else
   node::MakeCallback(isolate, isolate->GetCurrentContext()->Global(), callback,
                      argc, argv);
-#else
-#error "Unsupported node.js version."
 #endif
 }
 
diff --git 
a/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json 
b/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json
index 46a04b1..915a365 100644
--- a/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json
+++ b/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json
@@ -36,7 +36,7 @@
   "homepage": "https://github.com/isaacs/node-glob";,
   "_id": "[email protected]",
   "_shasum": "4a973f635b9190f715d10987d5c00fd2815ebe3d",
-  "_from": "glob@~ 3.2.1",
+  "_from": "[email protected]",
   "_npmVersion": "1.4.10",
   "_npmUser": {
     "name": "isaacs",
diff --git a/node_modules/istanbul/node_modules/mkdirp/package.json 
b/node_modules/istanbul/node_modules/mkdirp/package.json
index a6de8f3..b7fe466 100644
--- a/node_modules/istanbul/node_modules/mkdirp/package.json
+++ b/node_modules/istanbul/node_modules/mkdirp/package.json
@@ -39,7 +39,7 @@
     "shasum": "1d73076a6df986cd9344e15e71fcc05a4c9abf12",
     "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
   },
-  "_from": "mkdirp@~0.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "1.4.3",
   "_npmUser": {
     "name": "substack",
diff --git a/node_modules/istanbul/node_modules/once/package.json 
b/node_modules/istanbul/node_modules/once/package.json
index 74d80e0..b74c1ca 100644
--- a/node_modules/istanbul/node_modules/once/package.json
+++ b/node_modules/istanbul/node_modules/once/package.json
@@ -38,7 +38,7 @@
   "homepage": "https://github.com/isaacs/once";,
   "_id": "[email protected]",
   "_shasum": "f3f3e4da5b7d27b5c732969ee3e67e729457b31f",
-  "_from": "once@^1.3.0",
+  "_from": "[email protected]",
   "_npmVersion": "2.0.0",
   "_nodeVersion": "0.10.31",
   "_npmUser": {
diff --git a/node_modules/mocha-lcov-reporter/package.json 
b/node_modules/mocha-lcov-reporter/package.json
index 63c53f5..b6c7591 100644
--- a/node_modules/mocha-lcov-reporter/package.json
+++ b/node_modules/mocha-lcov-reporter/package.json
@@ -49,5 +49,6 @@
   "_resolved": 
"https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-0.0.1.tgz";,
   "bugs": {
     "url": "https://github.com/StevenLooman/mocha-lcov-reporter/issues";
-  }
+  },
+  "homepage": "https://github.com/StevenLooman/mocha-lcov-reporter";
 }
diff --git a/node_modules/mocha/node_modules/debug/node_modules/ms/package.json 
b/node_modules/mocha/node_modules/debug/node_modules/ms/package.json
index 87ad70d..0839b59 100644
--- a/node_modules/mocha/node_modules/debug/node_modules/ms/package.json
+++ b/node_modules/mocha/node_modules/debug/node_modules/ms/package.json
@@ -40,5 +40,6 @@
   "directories": {},
   "_shasum": "d89c2124c6fdc1353d65a8b77bf1aac4b193708c",
   "_resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz";,
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/guille/ms.js";
 }
diff --git a/node_modules/mocha/node_modules/diff/package.json 
b/node_modules/mocha/node_modules/diff/package.json
index 5a6926d..2ba6a64 100644
--- a/node_modules/mocha/node_modules/diff/package.json
+++ b/node_modules/mocha/node_modules/diff/package.json
@@ -57,5 +57,6 @@
   "directories": {},
   "_shasum": "343276308ec991b7bc82267ed55bc1411f971666",
   "_resolved": "https://registry.npmjs.org/diff/-/diff-1.0.8.tgz";,
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/kpdecker/jsdiff";
 }
diff --git 
a/node_modules/mocha/node_modules/glob/node_modules/inherits/package.json 
b/node_modules/mocha/node_modules/glob/node_modules/inherits/package.json
index 3d69f4f..754a114 100644
--- a/node_modules/mocha/node_modules/glob/node_modules/inherits/package.json
+++ b/node_modules/mocha/node_modules/glob/node_modules/inherits/package.json
@@ -32,7 +32,7 @@
     "shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1",
     "tarball": "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
   },
-  "_from": "inherits@~2.0.1",
+  "_from": "inherits@2",
   "_npmVersion": "1.3.8",
   "_npmUser": {
     "name": "isaacs",
diff --git a/node_modules/mocha/node_modules/glob/package.json 
b/node_modules/mocha/node_modules/glob/package.json
index aa7a4e2..3ffcb1b 100644
--- a/node_modules/mocha/node_modules/glob/package.json
+++ b/node_modules/mocha/node_modules/glob/package.json
@@ -52,5 +52,6 @@
   "directories": {},
   "_shasum": "e313eeb249c7affaa5c475286b0e115b59839467",
   "_resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz";,
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/isaacs/node-glob";
 }
diff --git a/node_modules/mocha/node_modules/jade/package.json 
b/node_modules/mocha/node_modules/jade/package.json
index 191cb4d..1c79f30 100644
--- a/node_modules/mocha/node_modules/jade/package.json
+++ b/node_modules/mocha/node_modules/jade/package.json
@@ -56,5 +56,6 @@
   "bugs": {
     "url": "https://github.com/visionmedia/jade/issues";
   },
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/visionmedia/jade";
 }
diff --git a/node_modules/mocha/node_modules/mkdirp/package.json 
b/node_modules/mocha/node_modules/mkdirp/package.json
index a6de8f3..b7fe466 100644
--- a/node_modules/mocha/node_modules/mkdirp/package.json
+++ b/node_modules/mocha/node_modules/mkdirp/package.json
@@ -39,7 +39,7 @@
     "shasum": "1d73076a6df986cd9344e15e71fcc05a4c9abf12",
     "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
   },
-  "_from": "mkdirp@~0.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "1.4.3",
   "_npmUser": {
     "name": "substack",
diff --git 
a/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json 
b/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
index 0c3ca7b..7dbd84b 100644
--- a/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
+++ b/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
@@ -62,7 +62,7 @@
   "homepage": "https://github.com/rvagg/nan";,
   "_id": "[email protected]",
   "_shasum": "4cd0ecc133b7b0700a492a646add427ae8a318eb",
-  "_from": "nan@~1.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "2.1.18",
   "_nodeVersion": "1.0.3",
   "_npmUser": {
diff --git 
a/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json 
b/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
index 0c3ca7b..7dbd84b 100644
--- 
a/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
+++ 
b/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
@@ -62,7 +62,7 @@
   "homepage": "https://github.com/rvagg/nan";,
   "_id": "[email protected]",
   "_shasum": "4cd0ecc133b7b0700a492a646add427ae8a318eb",
-  "_from": "nan@~1.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "2.1.18",
   "_nodeVersion": "1.0.3",
   "_npmUser": {
diff --git 
a/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
 
b/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
index 76d7422..ad8294e 100644
--- 
a/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
+++ 
b/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json
@@ -58,5 +58,6 @@
   "bugs": {
     "url": "https://github.com/mcavage/node-asn1/issues";
   },
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/mcavage/node-asn1";
 }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-codec/node_modules/bignum/node_modules/nan/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-codec/node_modules/bignum/node_modules/nan/package.json
index 0c3ca7b..7dbd84b 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-codec/node_modules/bignum/node_modules/nan/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-codec/node_modules/bignum/node_modules/nan/package.json
@@ -62,7 +62,7 @@
   "homepage": "https://github.com/rvagg/nan";,
   "_id": "[email protected]",
   "_shasum": "4cd0ecc133b7b0700a492a646add427ae8a318eb",
-  "_from": "nan@~1.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "2.1.18",
   "_nodeVersion": "1.0.3",
   "_npmUser": {
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/connect-busboy/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/connect-busboy/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
index f3a4ada..c8bf016 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/connect-busboy/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/connect-busboy/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/package.json
@@ -52,5 +52,6 @@
   "_shasum": "808b9d0e56fc273d809ba57338e929919a1a9f1a",
   "bugs": {
     "url": "https://github.com/mscdex/streamsearch/issues";
-  }
+  },
+  "homepage": "https://github.com/mscdex/streamsearch";
 }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
index 0c3ca7b..7dbd84b 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/bignum/node_modules/nan/package.json
@@ -62,7 +62,7 @@
   "homepage": "https://github.com/rvagg/nan";,
   "_id": "[email protected]",
   "_shasum": "4cd0ecc133b7b0700a492a646add427ae8a318eb",
-  "_from": "nan@~1.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "2.1.18",
   "_nodeVersion": "1.0.3",
   "_npmUser": {
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
index 0c3ca7b..7dbd84b 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/node-uuid/node_modules/microtime/node_modules/nan/package.json
@@ -62,7 +62,7 @@
   "homepage": "https://github.com/rvagg/nan";,
   "_id": "[email protected]",
   "_shasum": "4cd0ecc133b7b0700a492a646add427ae8a318eb",
-  "_from": "nan@~1.5.0",
+  "_from": "[email protected]",
   "_npmVersion": "2.1.18",
   "_nodeVersion": "1.0.3",
   "_npmUser": {
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/http-signature/node_modules/asn1/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/http-signature/node_modules/asn1/package.json
index 76d7422..ad8294e 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/http-signature/node_modules/asn1/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/http-signature/node_modules/asn1/package.json
@@ -58,5 +58,6 @@
   "bugs": {
     "url": "https://github.com/mcavage/node-asn1/issues";
   },
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/mcavage/node-asn1";
 }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json
index be2cfc9..2474729 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json
@@ -31,7 +31,7 @@
     "shasum": "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb",
     "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz";
   },
-  "_from": "lru-cache@^2.5.0",
+  "_from": "lru-cache@2",
   "_npmVersion": "1.3.15",
   "_npmUser": {
     "name": "isaacs",
diff --git a/node_modules/restbase-mod-table-cassandra/package.json 
b/node_modules/restbase-mod-table-cassandra/package.json
index 8ef2b0c..6a629c2 100644
--- a/node_modules/restbase-mod-table-cassandra/package.json
+++ b/node_modules/restbase-mod-table-cassandra/package.json
@@ -39,5 +39,6 @@
   },
   "_id": "[email protected]",
   "_shasum": "5832aaa1a3c12a23ef52870404da6794264dd6a9",
-  "_from": "restbase-mod-table-cassandra@~0.4.1"
+  "_from": "restbase-mod-table-cassandra@~0.4.1",
+  "homepage": "https://github.com/wikimedia/restbase-mod-table-cassandra";
 }
diff --git a/node_modules/swagger-router/.npmignore 
b/node_modules/swagger-router/.npmignore
new file mode 100644
index 0000000..f7a1490
--- /dev/null
+++ b/node_modules/swagger-router/.npmignore
@@ -0,0 +1,2 @@
+coverage/
+node_modules
diff --git a/node_modules/swagger-router/index.js 
b/node_modules/swagger-router/index.js
index 07c16c4..358e786 100644
--- a/node_modules/swagger-router/index.js
+++ b/node_modules/swagger-router/index.js
@@ -27,49 +27,62 @@
 
 //               / (   {pattern} or {+pattern}                      )|( 
{/pattern}
 var splitRe = 
/(\/)(?:\{([\+])?([^:\}\/]+)(?::([^}]+))?\}|([^\/\{]*))|(?:{([\/\+]))([^:\}\/]+)(?::([^}]+))?\}/g;
-function parsePattern (pattern, isPattern) {
-    if (Array.isArray(pattern)) {
-        return pattern;
-    } else if (!isPattern) {
-        return pattern.replace(/^\//, '').split(/\//).map(function(bit) {
-            return robustDecodeURIComponent(bit);
-        });
-    } else {
-        var res = [];
-        splitRe.lastIndex = 0;
-        var m;
-        do {
-            m = splitRe.exec(pattern);
-            if (m) {
-                if (m[1] === '/') {
-                    if (m[5] !== undefined) {
-                        // plain path segment
-                        res.push(robustDecodeURIComponent(m[5]));
-                    } else if (m[3]) {
-                        // templated path segment
-                        res.push({
-                            name: m[3],
-                            modifier: m[2],
-                            pattern: m[4]
-                        });
-                    }
-                } else if (m[7]) {
-                    // Optional path segment:
-                    // - {/foo} or {/foo:bar}
-                    // - {+foo}
+function parsePattern (pattern) {
+    var res = [];
+    splitRe.lastIndex = 0;
+    var m;
+    do {
+        m = splitRe.exec(pattern);
+        if (m) {
+            if (m[1] === '/') {
+                if (m[5] !== undefined) {
+                    // plain path segment
+                    res.push(robustDecodeURIComponent(m[5]));
+                } else if (m[3]) {
+                    // templated path segment
                     res.push({
-                        name: m[7],
-                        modifier: m[6],
-                        pattern: m[8]
+                        name: m[3],
+                        modifier: m[2],
+                        pattern: m[4]
                     });
-                } else {
-                    throw new Error('The impossible happened!');
                 }
+            } else if (m[7]) {
+                // Optional path segment:
+                // - {/foo} or {/foo:bar}
+                // - {+foo}
+                res.push({
+                    name: m[7],
+                    modifier: m[6],
+                    pattern: m[8]
+                });
+            } else {
+                throw new Error('The impossible happened!');
             }
-        } while (m);
-        return res;
+        }
+    } while (m);
+    return res;
+}
+
+// Parse a path or pattern
+function parsePath (path, isPattern) {
+    if (Array.isArray(path)) {
+        return path;
+    } else if (!isPattern) {
+        var bits = path.replace(/^\//, '').split(/\//);
+        if (!/%/.test(path)) {
+            // fast path
+            return bits;
+        } else {
+            return bits.map(function(bit) {
+                return robustDecodeURIComponent(bit);
+            });
+        }
+    } else {
+        return parsePattern(path);
     }
 }
+
+
 
 
 /***
@@ -95,7 +108,7 @@
         // instances
         this.path = uri.path;
     } else if (uri && (uri.constructor === String || Array.isArray(uri))) {
-        this.path = parsePattern(uri, asPattern);
+        this.path = parsePath(uri, asPattern);
     } else if (uri !== '') {
         throw new Error('Invalid path passed into URI constructor: ' + uri);
     }
@@ -154,20 +167,24 @@
  * @return {URI}
  */
 URI.prototype.expand = function() {
-    var res = [];
+    var res = new Array(this.path.length);
     for (var i = 0; i < this.path.length; i++) {
         var segment = this.path[i];
         if (segment && segment.constructor === Object) {
             var segmentValue = this.params[segment.name];
             if (segmentValue === undefined) {
                 segmentValue = segment.pattern;
-            }
-            if (segmentValue === undefined) {
-                if (segment.modifier) {
-                    // Okay to end the URI here
-                    return new URI(res);
-                } else {
-                    throw new Error('URI.expand: parameter ' + segment.name + 
' not defined!');
+                if (segmentValue === undefined) {
+                    if (segment.modifier) {
+                        // Okay to end the URI here
+                        // Pop over-allocated entries
+                        while (res[res.length - 1] === undefined) {
+                            res.pop();
+                        }
+                        return new URI(res);
+                    } else {
+                        throw new Error('URI.expand: parameter ' + 
segment.name + ' not defined!');
+                    }
                 }
             }
             res[i] = segmentValue;
@@ -248,6 +265,7 @@
     // Internal properties.
     this._children = {};
     this._paramName = null;
+    this._parent = null;
 }
 
 Node.prototype._keyPrefix = '/';
@@ -276,28 +294,33 @@
 Node.prototype.getChild = function(segment, params) {
     if (segment.constructor === String) {
         // Fast path
-        if (segment !== '') {
-            var res = this._children[this._keyPrefix + segment]
-                // Fall back to the wildcard match
-                || this._children['*']
-                || this._children['**']
-                || null;
-            if (res && res._paramName) {
-                if (this._children['**'] === res) {
+        var res = this._children[this._keyPrefix + segment];
+        if (!res) {
+            if (segment !== '') {
+                // Fall back to the wildcard match, but only if the segment is
+                // non-empty.
+                res = this._children['*'];
+                if (!res && this._children['**']) {
+                    res = this._children['**'];
                     // Build up an array for ** matches ({+foo})
                     if (!Array.isArray(params[res._paramName])) {
                         params[res._paramName] = [segment];
                     } else {
                         params[res._paramName].push(segment);
                     }
-                } else {
-                    params[res._paramName] = segment;
+                    // We are done.
+                    return res;
                 }
+            }
+        }
+
+        if (res) {
+            if (res._paramName) {
+                params[res._paramName] = segment;
             }
             return res;
         } else {
-            // Don't match the wildcards with an empty segment.
-            return this._children[this._keyPrefix + segment];
+            return null;
         }
 
     // Fall-back cases for internal use during tree construction. These cases
@@ -318,7 +341,7 @@
 
 Node.prototype.keys = function () {
     var self = this;
-    if (this._children['*']) {
+    if (this._children['*'] || this._children['**']) {
         return [];
     } else {
         var res = [];
@@ -442,7 +465,7 @@
 Router.prototype.specToTree = function (spec) {
     var root = new Node();
     for (var pathPattern in spec.paths) {
-        var path = parsePattern(pathPattern, true);
+        var path = parsePath(pathPattern, true);
         this._extend(path, root, spec.paths[pathPattern]);
     }
     return root;
@@ -528,7 +551,7 @@
     if (!path) {
         throw new Error('Path expected!');
     } else if (path.constructor === String) {
-        path = parsePattern(path);
+        path = parsePath(path);
     } else if (path.constructor === URI) {
         path = path.path;
     }
diff --git a/node_modules/swagger-router/package.json 
b/node_modules/swagger-router/package.json
index f3fdb04..98c8782 100644
--- a/node_modules/swagger-router/package.json
+++ b/node_modules/swagger-router/package.json
@@ -1,6 +1,6 @@
 {
   "name": "swagger-router",
-  "version": "0.0.2",
+  "version": "0.0.3",
   "description": "An efficient swagger 2 based router with support for 
multiple APIs. For use in RESTBase.",
   "main": "index.js",
   "scripts": {
@@ -40,8 +40,9 @@
   },
   "readme": "# Swagger 2 
router\n[![Build\nStatus](https://travis-ci.org/gwicke/swagger-router.svg?branch=master)](https://travis-ci.org/gwicke/swagger-router)\n\n##
 Features\n- `O(path element)` lookup complexity, monomorphic design with 
simple fast path.\n- Support for prefix-based 'mounting' of swagger specs. 
Example: Mount the\n    same spec fragments at `/en.wikipedia.org/v1/` and\n    
`/de.wikipedia.org/v1/`.\n- Support for capture of fixed path segments. 
Example:\n    `/{domain:en.wikipedia.org}/v1/`. This feature is especially 
useful in\n    prefixes, as it enables the consistent construction of sensible 
params.\n- Support for static (purely spec-based) listings. Matching requests 
ending on\n    a slash are passed an array of matching child paths in the spec 
in the\n    `_ls` parameter.\n\n## Installation\n`npm install 
swagger-router`\n\n## Usage\n```javascript\nvar Router = 
require('swagger-router');\nvar router = new Router();\n\n// The main 
requirement is that each spec has a 'paths' member with some URL\n// 
patterns\nvar swaggerSpec = {\n    paths: {\n        '/': {\n            get: 
{\n                hello: 'A listing'\n            }\n        },\n        
'/some/{name}': { // This object is returned as 'value'\n            get: {\n   
             hello: 'world'\n            }\n        }\n    
}\n};\n\nrouter.addSpec(swaggerSpec);\n\n// Perform some 
lookups\nconsole.log(router.lookup('/some/title'));\n/* \n{\n    params: {\n    
    name: 'title'\n    },\n    value: { get: { hello: 'world' } }\n}\n*/\n\n// 
Use arrays internally for speed (no escaping / 
parsing)\nrouter.lookup(['some','path']);\n\n// Trailing slashes set an 
additional _ls param:\nrouter.lookup(['']); // equivalent: router.lookup('/'); 
\n/*\n{\n    params: {\n        _ls: ['some'],\n        name: 'title'\n    },\n 
   value: { get: { hello: 'A listing' } }\n}\n*/\n\n```\n",
   "readmeFilename": "README.md",
-  "_id": "[email protected]",
-  "_shasum": "1c44b08d4fbf7217ce8b169be7beb2a6b9979845",
-  "_resolved": 
"git+https://github.com/wikimedia/swagger-router#3674a0377f9b94752d9d9fcf96b8f0789bcdc25e";,
-  "_from": 
"swagger-router@git+https://github.com/wikimedia/swagger-router#master";
+  "gitHead": "b79b88f03f254c8382a9837b6bca64c8758f0069",
+  "_id": "[email protected]",
+  "_shasum": "a518cc70c83b3020e31e897ca152fcf1fa84017d",
+  "_from": "swagger-router@^0.0.3",
+  "homepage": "https://github.com/gwicke/swagger-router";
 }
diff --git a/node_modules/swagger-router/test/index.js 
b/node_modules/swagger-router/test/index.js
index 3f71dcb..cf0596b 100644
--- a/node_modules/swagger-router/test/index.js
+++ b/node_modules/swagger-router/test/index.js
@@ -204,7 +204,7 @@
     '/en.wikipedia.org/v1/optional/': {
         params: {
             domain: 'en.wikipedia.org',
-            _ls: ['**']
+            _ls: []
         },
         value: null
     },
diff --git 
a/node_modules/swagger-ui/node_modules/shred/node_modules/cookiejar/package.json
 
b/node_modules/swagger-ui/node_modules/shred/node_modules/cookiejar/package.json
index 9894bab..393ee18 100644
--- 
a/node_modules/swagger-ui/node_modules/shred/node_modules/cookiejar/package.json
+++ 
b/node_modules/swagger-ui/node_modules/shred/node_modules/cookiejar/package.json
@@ -34,5 +34,6 @@
   "bugs": {
     "url": "https://github.com/bmeck/node-cookiejar/issues";
   },
-  "readme": "ERROR: No README data found!"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/bmeck/node-cookiejar";
 }
diff --git a/node_modules/url-template/package.json 
b/node_modules/url-template/package.json
index 15d8ed5..a5d754d 100644
--- a/node_modules/url-template/package.json
+++ b/node_modules/url-template/package.json
@@ -55,5 +55,6 @@
   "_resolved": 
"https://registry.npmjs.org/url-template/-/url-template-2.0.4.tgz";,
   "bugs": {
     "url": "https://github.com/bramstein/url-template/issues";
-  }
+  },
+  "homepage": "https://github.com/bramstein/url-template";
 }
diff --git a/restbase b/restbase
index e3f9f35..db09ebb 160000
--- a/restbase
+++ b/restbase
-Subproject commit e3f9f3534e07dddb576154b768cabb7bf7c300fa
+Subproject commit db09ebb7150f9c5ffaf4b51eb283b84aa67b38da

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

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

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

Reply via email to