BearND has submitted this change and it was merged.

Change subject: Update mobileapps to 1da6bf0
......................................................................


Update mobileapps to 1da6bf0

List of changes:
b61b990 Stop stripping HTML markup from news story text
1f46112 Add content format versioning to Content-Type header
cb8cfb7 Remove (probable) inapplicable picture captions
bef7e18 Picture of the day
xxxxxxx Update node module dependencies

Change-Id: Id501d469dc4e20ddff65a2db23e640698d391e8c
---
M node_modules/on-finished/node_modules/ee-first/package.json
M node_modules/phpjs/node_modules/mocha/node_modules/mkdirp/package.json
M 
node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
D node_modules/service-runner/node_modules/semver/.npmignore
D node_modules/service-runner/node_modules/semver/.travis.yml
M node_modules/service-runner/node_modules/semver/package.json
M node_modules/service-runner/node_modules/semver/semver.js
D node_modules/service-runner/node_modules/semver/test/big-numbers.js
D node_modules/service-runner/node_modules/semver/test/clean.js
D node_modules/service-runner/node_modules/semver/test/gtr.js
D node_modules/service-runner/node_modules/semver/test/index.js
D node_modules/service-runner/node_modules/semver/test/ltr.js
D node_modules/service-runner/node_modules/semver/test/major-minor-patch.js
M src
14 files changed, 25 insertions(+), 1,213 deletions(-)

Approvals:
  BearND: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/node_modules/on-finished/node_modules/ee-first/package.json 
b/node_modules/on-finished/node_modules/ee-first/package.json
index 35ff70d..c67faf1 100644
--- a/node_modules/on-finished/node_modules/ee-first/package.json
+++ b/node_modules/on-finished/node_modules/ee-first/package.json
@@ -16,7 +16,7 @@
   "license": "MIT",
   "repository": {
     "type": "git",
-    "url": "https://github.com/jonathanong/ee-first";
+    "url": "git+https://github.com/jonathanong/ee-first.git";
   },
   "devDependencies": {
     "istanbul": "0.3.9",
@@ -59,5 +59,6 @@
     "tarball": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+  "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
+  "readme": "ERROR: No README data found!"
 }
diff --git 
a/node_modules/phpjs/node_modules/mocha/node_modules/mkdirp/package.json 
b/node_modules/phpjs/node_modules/mocha/node_modules/mkdirp/package.json
index 5957c1b..087c6e5 100644
--- a/node_modules/phpjs/node_modules/mocha/node_modules/mkdirp/package.json
+++ b/node_modules/phpjs/node_modules/mocha/node_modules/mkdirp/package.json
@@ -14,7 +14,7 @@
   ],
   "repository": {
     "type": "git",
-    "url": "git+ssh://g...@github.com/substack/node-mkdirp.git"
+    "url": "http://github.com/substack/node-mkdirp.git";
   },
   "scripts": {
     "test": "tap test/*.js"
@@ -42,10 +42,5 @@
   ],
   "directories": {},
   "_shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7",
-  "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";,
-  "bugs": {
-    "url": "https://github.com/substack/node-mkdirp/issues";
-  },
-  "readme": "ERROR: No README data found!",
-  "homepage": "https://github.com/substack/node-mkdirp#readme";
+  "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
 }
diff --git 
a/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
index 52aaaf2..092a083 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
@@ -75,7 +75,7 @@
   },
   "homepage": "https://github.com/kadtools/kad#readme";,
   "_id": "kad@1.3.6",
-  "_shasum": "9ae1c8252914b7e608eb0ee96f31e573e4b30064",
+  "_shasum": "68ef7011c89a022cd6171bb84487779b9a8b5fc9",
   "_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/semver/.npmignore 
b/node_modules/service-runner/node_modules/semver/.npmignore
deleted file mode 100644
index 534108e..0000000
--- a/node_modules/service-runner/node_modules/semver/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-node_modules/
-coverage/
-.nyc_output/
-nyc_output/
diff --git a/node_modules/service-runner/node_modules/semver/.travis.yml 
b/node_modules/service-runner/node_modules/semver/.travis.yml
deleted file mode 100644
index 9c1a7b6..0000000
--- a/node_modules/service-runner/node_modules/semver/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-sudo: false
-language: node_js
-node_js:
-  - '0.10'
-  - '0.12'
-  - '4'
-  - '5'
diff --git a/node_modules/service-runner/node_modules/semver/package.json 
b/node_modules/service-runner/node_modules/semver/package.json
index 2c8051c..f1f6b82 100644
--- a/node_modules/service-runner/node_modules/semver/package.json
+++ b/node_modules/service-runner/node_modules/semver/package.json
@@ -1,6 +1,6 @@
 {
   "name": "semver",
-  "version": "5.1.1",
+  "version": "5.2.0",
   "description": "The semantic version parser used by npm.",
   "main": "semver.js",
   "scripts": {
@@ -17,13 +17,18 @@
   "bin": {
     "semver": "./bin/semver"
   },
-  "gitHead": "ad1d3658a1b5749c38b9d21280c629f4fa2fee54",
+  "files": [
+    "bin",
+    "range.bnf",
+    "semver.js"
+  ],
+  "gitHead": "f7fef36765c53ebe237bf415c3ea002f24aa5621",
   "bugs": {
     "url": "https://github.com/npm/node-semver/issues";
   },
   "homepage": "https://github.com/npm/node-semver#readme";,
-  "_id": "semver@5.1.1",
-  "_shasum": "a3292a373e6f3e0798da0b20641b9a9c5bc47e19",
+  "_id": "semver@5.2.0",
+  "_shasum": "281995b80c1448209415ddbc4cf50c269cef55c5",
   "_from": "semver@>=5.1.0 <6.0.0",
   "_npmVersion": "3.10.2",
   "_nodeVersion": "4.4.4",
@@ -32,8 +37,8 @@
     "email": "i...@izs.me"
   },
   "dist": {
-    "shasum": "a3292a373e6f3e0798da0b20641b9a9c5bc47e19",
-    "tarball": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz";
+    "shasum": "281995b80c1448209415ddbc4cf50c269cef55c5",
+    "tarball": "https://registry.npmjs.org/semver/-/semver-5.2.0.tgz";
   },
   "maintainers": [
     {
@@ -47,8 +52,8 @@
   ],
   "_npmOperationalInternal": {
     "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/semver-5.1.1.tgz_1466704850953_0.017174890032038093"
+    "tmp": "tmp/semver-5.2.0.tgz_1467136841238_0.2250258030835539"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz";
+  "_resolved": "https://registry.npmjs.org/semver/-/semver-5.2.0.tgz";
 }
diff --git a/node_modules/service-runner/node_modules/semver/semver.js 
b/node_modules/service-runner/node_modules/semver/semver.js
index d9d8713..b2d7298 100644
--- a/node_modules/service-runner/node_modules/semver/semver.js
+++ b/node_modules/service-runner/node_modules/semver/semver.js
@@ -1186,3 +1186,9 @@
   }
   return true;
 }
+
+exports.prerelease = prerelease;
+function prerelease(version, loose) {
+  var parsed = parse(version, loose);
+  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null;
+}
diff --git 
a/node_modules/service-runner/node_modules/semver/test/big-numbers.js 
b/node_modules/service-runner/node_modules/semver/test/big-numbers.js
deleted file mode 100644
index c051864..0000000
--- a/node_modules/service-runner/node_modules/semver/test/big-numbers.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var test = require('tap').test
-var semver = require('../')
-
-test('long version is too long', function (t) {
-  var v = '1.2.' + new Array(256).join('1')
-  t.throws(function () {
-    new semver.SemVer(v)
-  })
-  t.equal(semver.valid(v, false), null)
-  t.equal(semver.valid(v, true), null)
-  t.equal(semver.inc(v, 'patch'), null)
-  t.end()
-})
-
-test('big number is like too long version', function (t) {
-  var v = '1.2.' + new Array(100).join('1')
-  t.throws(function () {
-    new semver.SemVer(v)
-  })
-  t.equal(semver.valid(v, false), null)
-  t.equal(semver.valid(v, true), null)
-  t.equal(semver.inc(v, 'patch'), null)
-  t.end()
-})
-
-test('parsing null does not throw', function (t) {
-  t.equal(semver.parse(null), null)
-  t.equal(semver.parse({}), null)
-  t.equal(semver.parse(new semver.SemVer('1.2.3')).version, '1.2.3')
-  t.end()
-})
diff --git a/node_modules/service-runner/node_modules/semver/test/clean.js 
b/node_modules/service-runner/node_modules/semver/test/clean.js
deleted file mode 100644
index 9e268de..0000000
--- a/node_modules/service-runner/node_modules/semver/test/clean.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-var semver = require('../semver.js');
-var clean = semver.clean;
-
-test('\nclean tests', function(t) {
-       // [range, version]
-       // Version should be detectable despite extra characters
-       [
-               ['1.2.3', '1.2.3'],
-               [' 1.2.3 ', '1.2.3'],
-               [' 1.2.3-4 ', '1.2.3-4'],
-               [' 1.2.3-pre ', '1.2.3-pre'],
-               ['  =v1.2.3   ', '1.2.3'],
-               ['v1.2.3', '1.2.3'],
-               [' v1.2.3 ', '1.2.3'],
-               ['\t1.2.3', '1.2.3'],
-               ['>1.2.3', null],
-               ['~1.2.3', null],
-               ['<=1.2.3', null],
-               ['1.2.x', null]
-       ].forEach(function(tuple) {
-                       var range = tuple[0];
-                       var version = tuple[1];
-                       var msg = 'clean(' + range + ') = ' + version;
-                       t.equal(clean(range), version, msg);
-               });
-       t.end();
-});
diff --git a/node_modules/service-runner/node_modules/semver/test/gtr.js 
b/node_modules/service-runner/node_modules/semver/test/gtr.js
deleted file mode 100644
index bbb8789..0000000
--- a/node_modules/service-runner/node_modules/semver/test/gtr.js
+++ /dev/null
@@ -1,173 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-var semver = require('../semver.js');
-var gtr = semver.gtr;
-
-test('\ngtr tests', function(t) {
-  // [range, version, loose]
-  // Version should be greater than range
-  [
-    ['~1.2.2', '1.3.0'],
-    ['~0.6.1-1', '0.7.1-1'],
-    ['1.0.0 - 2.0.0', '2.0.1'],
-    ['1.0.0', '1.0.1-beta1'],
-    ['1.0.0', '2.0.0'],
-    ['<=2.0.0', '2.1.1'],
-    ['<=2.0.0', '3.2.9'],
-    ['<2.0.0', '2.0.0'],
-    ['0.1.20 || 1.2.4', '1.2.5'],
-    ['2.x.x', '3.0.0'],
-    ['1.2.x', '1.3.0'],
-    ['1.2.x || 2.x', '3.0.0'],
-    ['2.*.*', '5.0.1'],
-    ['1.2.*', '1.3.3'],
-    ['1.2.* || 2.*', '4.0.0'],
-    ['2', '3.0.0'],
-    ['2.3', '2.4.2'],
-    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.5.5'],
-    ['~>3.2.1', '3.3.0'], // >=3.2.1 <3.3.0
-    ['~1', '2.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '2.2.4'],
-    ['~> 1', '3.2.3'],
-    ['~1.0', '1.1.2'], // >=1.0.0 <1.1.0
-    ['~ 1.0', '1.1.0'],
-    ['<1.2', '1.2.0'],
-    ['< 1.2', '1.2.1'],
-    ['1', '2.0.0beta', true],
-    ['~v0.5.4-pre', '0.6.0'],
-    ['~v0.5.4-pre', '0.6.1-pre'],
-    ['=0.7.x', '0.8.0'],
-    ['=0.7.x', '0.8.0-asdf'],
-    ['<0.7.x', '0.7.0'],
-    ['~1.2.2', '1.3.0'],
-    ['1.0.0 - 2.0.0', '2.2.3'],
-    ['1.0.0', '1.0.1'],
-    ['<=2.0.0', '3.0.0'],
-    ['<=2.0.0', '2.9999.9999'],
-    ['<=2.0.0', '2.2.9'],
-    ['<2.0.0', '2.9999.9999'],
-    ['<2.0.0', '2.2.9'],
-    ['2.x.x', '3.1.3'],
-    ['1.2.x', '1.3.3'],
-    ['1.2.x || 2.x', '3.1.3'],
-    ['2.*.*', '3.1.3'],
-    ['1.2.*', '1.3.3'],
-    ['1.2.* || 2.*', '3.1.3'],
-    ['2', '3.1.2'],
-    ['2.3', '2.4.1'],
-    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
-    ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0
-    ['~1', '2.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '2.2.3'],
-    ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0
-    ['<1', '1.0.0'],
-    ['1', '2.0.0beta', true],
-    ['<1', '1.0.0beta', true],
-    ['< 1', '1.0.0beta', true],
-    ['=0.7.x', '0.8.2'],
-    ['<0.7.x', '0.7.2']
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = 'gtr(' + version + ', ' + range + ', ' + loose + ')';
-    t.ok(gtr(version, range, loose), msg);
-  });
-  t.end();
-});
-
-test('\nnegative gtr tests', function(t) {
-  // [range, version, loose]
-  // Version should NOT be greater than range
-  [
-    ['~0.6.1-1', '0.6.1-1'],
-    ['1.0.0 - 2.0.0', '1.2.3'],
-    ['1.0.0 - 2.0.0', '0.9.9'],
-    ['1.0.0', '1.0.0'],
-    ['>=*', '0.2.4'],
-    ['', '1.0.0', true],
-    ['*', '1.2.3'],
-    ['*', 'v1.2.3-foo'],
-    ['>=1.0.0', '1.0.0'],
-    ['>=1.0.0', '1.0.1'],
-    ['>=1.0.0', '1.1.0'],
-    ['>1.0.0', '1.0.1'],
-    ['>1.0.0', '1.1.0'],
-    ['<=2.0.0', '2.0.0'],
-    ['<=2.0.0', '1.9999.9999'],
-    ['<=2.0.0', '0.2.9'],
-    ['<2.0.0', '1.9999.9999'],
-    ['<2.0.0', '0.2.9'],
-    ['>= 1.0.0', '1.0.0'],
-    ['>=  1.0.0', '1.0.1'],
-    ['>=   1.0.0', '1.1.0'],
-    ['> 1.0.0', '1.0.1'],
-    ['>  1.0.0', '1.1.0'],
-    ['<=   2.0.0', '2.0.0'],
-    ['<= 2.0.0', '1.9999.9999'],
-    ['<=  2.0.0', '0.2.9'],
-    ['<    2.0.0', '1.9999.9999'],
-    ['<\t2.0.0', '0.2.9'],
-    ['>=0.1.97', 'v0.1.97'],
-    ['>=0.1.97', '0.1.97'],
-    ['0.1.20 || 1.2.4', '1.2.4'],
-    ['0.1.20 || >1.2.4', '1.2.4'],
-    ['0.1.20 || 1.2.4', '1.2.3'],
-    ['0.1.20 || 1.2.4', '0.1.20'],
-    ['>=0.2.3 || <0.0.1', '0.0.0'],
-    ['>=0.2.3 || <0.0.1', '0.2.3'],
-    ['>=0.2.3 || <0.0.1', '0.2.4'],
-    ['||', '1.3.4'],
-    ['2.x.x', '2.1.3'],
-    ['1.2.x', '1.2.3'],
-    ['1.2.x || 2.x', '2.1.3'],
-    ['1.2.x || 2.x', '1.2.3'],
-    ['x', '1.2.3'],
-    ['2.*.*', '2.1.3'],
-    ['1.2.*', '1.2.3'],
-    ['1.2.* || 2.*', '2.1.3'],
-    ['1.2.* || 2.*', '1.2.3'],
-    ['1.2.* || 2.*', '1.2.3'],
-    ['*', '1.2.3'],
-    ['2', '2.1.2'],
-    ['2.3', '2.3.1'],
-    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.4.5'],
-    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0
-    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '1.2.3'],
-    ['~> 1', '1.2.3'],
-    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0
-    ['~ 1.0', '1.0.2'],
-    ['>=1', '1.0.0'],
-    ['>= 1', '1.0.0'],
-    ['<1.2', '1.1.1'],
-    ['< 1.2', '1.1.1'],
-    ['1', '1.0.0beta', true],
-    ['~v0.5.4-pre', '0.5.5'],
-    ['~v0.5.4-pre', '0.5.4'],
-    ['=0.7.x', '0.7.2'],
-    ['>=0.7.x', '0.7.2'],
-    ['=0.7.x', '0.7.0-asdf'],
-    ['>=0.7.x', '0.7.0-asdf'],
-    ['<=0.7.x', '0.6.2'],
-    ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'],
-    ['>=0.2.3 <=0.2.4', '0.2.4'],
-    ['1.0.0 - 2.0.0', '2.0.0'],
-    ['^1', '0.0.0-0'],
-    ['^3.0.0', '2.0.0'],
-    ['^1.0.0 || ~2.0.1', '2.0.0'],
-    ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'],
-    ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true],
-    ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true],
-    ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0']
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = '!gtr(' + version + ', ' + range + ', ' + loose + ')';
-    t.notOk(gtr(version, range, loose), msg);
-  });
-  t.end();
-});
diff --git a/node_modules/service-runner/node_modules/semver/test/index.js 
b/node_modules/service-runner/node_modules/semver/test/index.js
deleted file mode 100644
index 47c3f5f..0000000
--- a/node_modules/service-runner/node_modules/semver/test/index.js
+++ /dev/null
@@ -1,698 +0,0 @@
-'use strict';
-
-var tap = require('tap');
-var test = tap.test;
-var semver = require('../semver.js');
-var eq = semver.eq;
-var gt = semver.gt;
-var lt = semver.lt;
-var neq = semver.neq;
-var cmp = semver.cmp;
-var gte = semver.gte;
-var lte = semver.lte;
-var satisfies = semver.satisfies;
-var validRange = semver.validRange;
-var inc = semver.inc;
-var diff = semver.diff;
-var replaceStars = semver.replaceStars;
-var toComparators = semver.toComparators;
-var SemVer = semver.SemVer;
-var Range = semver.Range;
-
-test('\ncomparison tests', function(t) {
-  // [version1, version2]
-  // version1 should be greater than version2
-  [['0.0.0', '0.0.0-foo'],
-    ['0.0.1', '0.0.0'],
-    ['1.0.0', '0.9.9'],
-    ['0.10.0', '0.9.0'],
-    ['0.99.0', '0.10.0'],
-    ['2.0.0', '1.2.3'],
-    ['v0.0.0', '0.0.0-foo', true],
-    ['v0.0.1', '0.0.0', true],
-    ['v1.0.0', '0.9.9', true],
-    ['v0.10.0', '0.9.0', true],
-    ['v0.99.0', '0.10.0', true],
-    ['v2.0.0', '1.2.3', true],
-    ['0.0.0', 'v0.0.0-foo', true],
-    ['0.0.1', 'v0.0.0', true],
-    ['1.0.0', 'v0.9.9', true],
-    ['0.10.0', 'v0.9.0', true],
-    ['0.99.0', 'v0.10.0', true],
-    ['2.0.0', 'v1.2.3', true],
-    ['1.2.3', '1.2.3-asdf'],
-    ['1.2.3', '1.2.3-4'],
-    ['1.2.3', '1.2.3-4-foo'],
-    ['1.2.3-5-foo', '1.2.3-5'],
-    ['1.2.3-5', '1.2.3-4'],
-    ['1.2.3-5-foo', '1.2.3-5-Foo'],
-    ['3.0.0', '2.7.2+asdf'],
-    ['1.2.3-a.10', '1.2.3-a.5'],
-    ['1.2.3-a.b', '1.2.3-a.5'],
-    ['1.2.3-a.b', '1.2.3-a'],
-    ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100'],
-    ['1.2.3-r2', '1.2.3-r100'],
-    ['1.2.3-r100', '1.2.3-R2']
-  ].forEach(function(v) {
-    var v0 = v[0];
-    var v1 = v[1];
-    var loose = v[2];
-    t.ok(gt(v0, v1, loose), "gt('" + v0 + "', '" + v1 + "')");
-    t.ok(lt(v1, v0, loose), "lt('" + v1 + "', '" + v0 + "')");
-    t.ok(!gt(v1, v0, loose), "!gt('" + v1 + "', '" + v0 + "')");
-    t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')");
-    t.ok(eq(v0, v0, loose), "eq('" + v0 + "', '" + v0 + "')");
-    t.ok(eq(v1, v1, loose), "eq('" + v1 + "', '" + v1 + "')");
-    t.ok(neq(v0, v1, loose), "neq('" + v0 + "', '" + v1 + "')");
-    t.ok(cmp(v1, '==', v1, loose), "cmp('" + v1 + "' == '" + v1 + "')");
-    t.ok(cmp(v0, '>=', v1, loose), "cmp('" + v0 + "' >= '" + v1 + "')");
-    t.ok(cmp(v1, '<=', v0, loose), "cmp('" + v1 + "' <= '" + v0 + "')");
-    t.ok(cmp(v0, '!=', v1, loose), "cmp('" + v0 + "' != '" + v1 + "')");
-  });
-  t.end();
-});
-
-test('\nequality tests', function(t) {
-  // [version1, version2]
-  // version1 should be equivalent to version2
-  [['1.2.3', 'v1.2.3', true],
-    ['1.2.3', '=1.2.3', true],
-    ['1.2.3', 'v 1.2.3', true],
-    ['1.2.3', '= 1.2.3', true],
-    ['1.2.3', ' v1.2.3', true],
-    ['1.2.3', ' =1.2.3', true],
-    ['1.2.3', ' v 1.2.3', true],
-    ['1.2.3', ' = 1.2.3', true],
-    ['1.2.3-0', 'v1.2.3-0', true],
-    ['1.2.3-0', '=1.2.3-0', true],
-    ['1.2.3-0', 'v 1.2.3-0', true],
-    ['1.2.3-0', '= 1.2.3-0', true],
-    ['1.2.3-0', ' v1.2.3-0', true],
-    ['1.2.3-0', ' =1.2.3-0', true],
-    ['1.2.3-0', ' v 1.2.3-0', true],
-    ['1.2.3-0', ' = 1.2.3-0', true],
-    ['1.2.3-1', 'v1.2.3-1', true],
-    ['1.2.3-1', '=1.2.3-1', true],
-    ['1.2.3-1', 'v 1.2.3-1', true],
-    ['1.2.3-1', '= 1.2.3-1', true],
-    ['1.2.3-1', ' v1.2.3-1', true],
-    ['1.2.3-1', ' =1.2.3-1', true],
-    ['1.2.3-1', ' v 1.2.3-1', true],
-    ['1.2.3-1', ' = 1.2.3-1', true],
-    ['1.2.3-beta', 'v1.2.3-beta', true],
-    ['1.2.3-beta', '=1.2.3-beta', true],
-    ['1.2.3-beta', 'v 1.2.3-beta', true],
-    ['1.2.3-beta', '= 1.2.3-beta', true],
-    ['1.2.3-beta', ' v1.2.3-beta', true],
-    ['1.2.3-beta', ' =1.2.3-beta', true],
-    ['1.2.3-beta', ' v 1.2.3-beta', true],
-    ['1.2.3-beta', ' = 1.2.3-beta', true],
-    ['1.2.3-beta+build', ' = 1.2.3-beta+otherbuild', true],
-    ['1.2.3+build', ' = 1.2.3+otherbuild', true],
-    ['1.2.3-beta+build', '1.2.3-beta+otherbuild'],
-    ['1.2.3+build', '1.2.3+otherbuild'],
-    ['  v1.2.3+build', '1.2.3+otherbuild']
-  ].forEach(function(v) {
-    var v0 = v[0];
-    var v1 = v[1];
-    var loose = v[2];
-    t.ok(eq(v0, v1, loose), "eq('" + v0 + "', '" + v1 + "')");
-    t.ok(!neq(v0, v1, loose), "!neq('" + v0 + "', '" + v1 + "')");
-    t.ok(cmp(v0, '==', v1, loose), 'cmp(' + v0 + '==' + v1 + ')');
-    t.ok(!cmp(v0, '!=', v1, loose), '!cmp(' + v0 + '!=' + v1 + ')');
-    t.ok(!cmp(v0, '===', v1, loose), '!cmp(' + v0 + '===' + v1 + ')');
-    t.ok(cmp(v0, '!==', v1, loose), 'cmp(' + v0 + '!==' + v1 + ')');
-    t.ok(!gt(v0, v1, loose), "!gt('" + v0 + "', '" + v1 + "')");
-    t.ok(gte(v0, v1, loose), "gte('" + v0 + "', '" + v1 + "')");
-    t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')");
-    t.ok(lte(v0, v1, loose), "lte('" + v0 + "', '" + v1 + "')");
-  });
-  t.end();
-});
-
-
-test('\nrange tests', function(t) {
-  // [range, version]
-  // version should be included by range
-  [['1.0.0 - 2.0.0', '1.2.3'],
-    ['^1.2.3+build', '1.2.3'],
-    ['^1.2.3+build', '1.3.0'],
-    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3'],
-    ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', true],
-    ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', true],
-    ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', true],
-    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2'],
-    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha'],
-    ['1.2.3+asdf - 2.4.3+asdf', '1.2.3'],
-    ['1.0.0', '1.0.0'],
-    ['>=*', '0.2.4'],
-    ['', '1.0.0'],
-    ['*', '1.2.3'],
-    ['*', 'v1.2.3', true],
-    ['>=1.0.0', '1.0.0'],
-    ['>=1.0.0', '1.0.1'],
-    ['>=1.0.0', '1.1.0'],
-    ['>1.0.0', '1.0.1'],
-    ['>1.0.0', '1.1.0'],
-    ['<=2.0.0', '2.0.0'],
-    ['<=2.0.0', '1.9999.9999'],
-    ['<=2.0.0', '0.2.9'],
-    ['<2.0.0', '1.9999.9999'],
-    ['<2.0.0', '0.2.9'],
-    ['>= 1.0.0', '1.0.0'],
-    ['>=  1.0.0', '1.0.1'],
-    ['>=   1.0.0', '1.1.0'],
-    ['> 1.0.0', '1.0.1'],
-    ['>  1.0.0', '1.1.0'],
-    ['<=   2.0.0', '2.0.0'],
-    ['<= 2.0.0', '1.9999.9999'],
-    ['<=  2.0.0', '0.2.9'],
-    ['<    2.0.0', '1.9999.9999'],
-    ['<\t2.0.0', '0.2.9'],
-    ['>=0.1.97', 'v0.1.97', true],
-    ['>=0.1.97', '0.1.97'],
-    ['0.1.20 || 1.2.4', '1.2.4'],
-    ['>=0.2.3 || <0.0.1', '0.0.0'],
-    ['>=0.2.3 || <0.0.1', '0.2.3'],
-    ['>=0.2.3 || <0.0.1', '0.2.4'],
-    ['||', '1.3.4'],
-    ['2.x.x', '2.1.3'],
-    ['1.2.x', '1.2.3'],
-    ['1.2.x || 2.x', '2.1.3'],
-    ['1.2.x || 2.x', '1.2.3'],
-    ['x', '1.2.3'],
-    ['2.*.*', '2.1.3'],
-    ['1.2.*', '1.2.3'],
-    ['1.2.* || 2.*', '2.1.3'],
-    ['1.2.* || 2.*', '1.2.3'],
-    ['*', '1.2.3'],
-    ['2', '2.1.2'],
-    ['2.3', '2.3.1'],
-    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.4.5'],
-    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0,
-    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '1.2.3'],
-    ['~> 1', '1.2.3'],
-    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0,
-    ['~ 1.0', '1.0.2'],
-    ['~ 1.0.3', '1.0.12'],
-    ['>=1', '1.0.0'],
-    ['>= 1', '1.0.0'],
-    ['<1.2', '1.1.1'],
-    ['< 1.2', '1.1.1'],
-    ['~v0.5.4-pre', '0.5.5'],
-    ['~v0.5.4-pre', '0.5.4'],
-    ['=0.7.x', '0.7.2'],
-    ['<=0.7.x', '0.7.2'],
-    ['>=0.7.x', '0.7.2'],
-    ['<=0.7.x', '0.6.2'],
-    ['~1.2.1 >=1.2.3', '1.2.3'],
-    ['~1.2.1 =1.2.3', '1.2.3'],
-    ['~1.2.1 1.2.3', '1.2.3'],
-    ['~1.2.1 >=1.2.3 1.2.3', '1.2.3'],
-    ['~1.2.1 1.2.3 >=1.2.3', '1.2.3'],
-    ['~1.2.1 1.2.3', '1.2.3'],
-    ['>=1.2.1 1.2.3', '1.2.3'],
-    ['1.2.3 >=1.2.1', '1.2.3'],
-    ['>=1.2.3 >=1.2.1', '1.2.3'],
-    ['>=1.2.1 >=1.2.3', '1.2.3'],
-    ['>=1.2', '1.2.8'],
-    ['^1.2.3', '1.8.1'],
-    ['^0.1.2', '0.1.2'],
-    ['^0.1', '0.1.2'],
-    ['^1.2', '1.4.2'],
-    ['^1.2 ^1', '1.4.2'],
-    ['^1.2.3-alpha', '1.2.3-pre'],
-    ['^1.2.0-alpha', '1.2.0-pre'],
-    ['^0.0.1-alpha', '0.0.1-beta']
-  ].forEach(function(v) {
-    var range = v[0];
-    var ver = v[1];
-    var loose = v[2];
-    t.ok(satisfies(ver, range, loose), range + ' satisfied by ' + ver);
-  });
-  t.end();
-});
-
-test('\nnegative range tests', function(t) {
-  // [range, version]
-  // version should not be included by range
-  [['1.0.0 - 2.0.0', '2.2.3'],
-    ['1.2.3+asdf - 2.4.3+asdf', '1.2.3-pre.2'],
-    ['1.2.3+asdf - 2.4.3+asdf', '2.4.3-alpha'],
-    ['^1.2.3+build', '2.0.0'],
-    ['^1.2.3+build', '1.2.0'],
-    ['^1.2.3', '1.2.3-pre'],
-    ['^1.2', '1.2.0-pre'],
-    ['>1.2', '1.3.0-beta'],
-    ['<=1.2.3', '1.2.3-beta'],
-    ['^1.2.3', '1.2.3-beta'],
-    ['=0.7.x', '0.7.0-asdf'],
-    ['>=0.7.x', '0.7.0-asdf'],
-    ['1', '1.0.0beta', true],
-    ['<1', '1.0.0beta', true],
-    ['< 1', '1.0.0beta', true],
-    ['1.0.0', '1.0.1'],
-    ['>=1.0.0', '0.0.0'],
-    ['>=1.0.0', '0.0.1'],
-    ['>=1.0.0', '0.1.0'],
-    ['>1.0.0', '0.0.1'],
-    ['>1.0.0', '0.1.0'],
-    ['<=2.0.0', '3.0.0'],
-    ['<=2.0.0', '2.9999.9999'],
-    ['<=2.0.0', '2.2.9'],
-    ['<2.0.0', '2.9999.9999'],
-    ['<2.0.0', '2.2.9'],
-    ['>=0.1.97', 'v0.1.93', true],
-    ['>=0.1.97', '0.1.93'],
-    ['0.1.20 || 1.2.4', '1.2.3'],
-    ['>=0.2.3 || <0.0.1', '0.0.3'],
-    ['>=0.2.3 || <0.0.1', '0.2.2'],
-    ['2.x.x', '1.1.3'],
-    ['2.x.x', '3.1.3'],
-    ['1.2.x', '1.3.3'],
-    ['1.2.x || 2.x', '3.1.3'],
-    ['1.2.x || 2.x', '1.1.3'],
-    ['2.*.*', '1.1.3'],
-    ['2.*.*', '3.1.3'],
-    ['1.2.*', '1.3.3'],
-    ['1.2.* || 2.*', '3.1.3'],
-    ['1.2.* || 2.*', '1.1.3'],
-    ['2', '1.1.2'],
-    ['2.3', '2.4.1'],
-    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.3.9'],
-    ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0
-    ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0
-    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '2.2.3'],
-    ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0
-    ['<1', '1.0.0'],
-    ['>=1.2', '1.1.1'],
-    ['1', '2.0.0beta', true],
-    ['~v0.5.4-beta', '0.5.4-alpha'],
-    ['=0.7.x', '0.8.2'],
-    ['>=0.7.x', '0.6.2'],
-    ['<0.7.x', '0.7.2'],
-    ['<1.2.3', '1.2.3-beta'],
-    ['=1.2.3', '1.2.3-beta'],
-    ['>1.2', '1.2.8'],
-    ['^1.2.3', '2.0.0-alpha'],
-    ['^1.2.3', '1.2.2'],
-    ['^1.2', '1.1.9'],
-    ['*', 'v1.2.3-foo', true],
-    // invalid ranges never satisfied!
-    ['blerg', '1.2.3'],
-    ['git+https://user:password0...@github.com/foo', '123.0.0', true],
-    ['^1.2.3', '2.0.0-pre']
-  ].forEach(function(v) {
-    var range = v[0];
-    var ver = v[1];
-    var loose = v[2];
-    var found = satisfies(ver, range, loose);
-    t.ok(!found, ver + ' not satisfied by ' + range);
-  });
-  t.end();
-});
-
-test('\nincrement versions test', function(t) {
-//  [version, inc, result, identifier]
-//  inc(version, inc) -> result
-  [['1.2.3', 'major', '2.0.0'],
-    ['1.2.3', 'minor', '1.3.0'],
-    ['1.2.3', 'patch', '1.2.4'],
-    ['1.2.3tag', 'major', '2.0.0', true],
-    ['1.2.3-tag', 'major', '2.0.0'],
-    ['1.2.3', 'fake', null],
-    ['1.2.0-0', 'patch', '1.2.0'],
-    ['fake', 'major', null],
-    ['1.2.3-4', 'major', '2.0.0'],
-    ['1.2.3-4', 'minor', '1.3.0'],
-    ['1.2.3-4', 'patch', '1.2.3'],
-    ['1.2.3-alpha.0.beta', 'major', '2.0.0'],
-    ['1.2.3-alpha.0.beta', 'minor', '1.3.0'],
-    ['1.2.3-alpha.0.beta', 'patch', '1.2.3'],
-    ['1.2.4', 'prerelease', '1.2.5-0'],
-    ['1.2.3-0', 'prerelease', '1.2.3-1'],
-    ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'],
-    ['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'],
-    ['1.2.3-alpha.2', 'prerelease', '1.2.3-alpha.3'],
-    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta'],
-    ['1.2.3-alpha.1.beta', 'prerelease', '1.2.3-alpha.2.beta'],
-    ['1.2.3-alpha.2.beta', 'prerelease', '1.2.3-alpha.3.beta'],
-    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta'],
-    ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta'],
-    ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta'],
-    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1'],
-    ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2'],
-    ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'],
-    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'],
-    ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'],
-    ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta'],
-    ['1.2.0', 'prepatch', '1.2.1-0'],
-    ['1.2.0-1', 'prepatch', '1.2.1-0'],
-    ['1.2.0', 'preminor', '1.3.0-0'],
-    ['1.2.3-1', 'preminor', '1.3.0-0'],
-    ['1.2.0', 'premajor', '2.0.0-0'],
-    ['1.2.3-1', 'premajor', '2.0.0-0'],
-    ['1.2.0-1', 'minor', '1.2.0'],
-    ['1.0.0-1', 'major', '1.0.0'],
-
-    ['1.2.3', 'major', '2.0.0', false, 'dev'],
-    ['1.2.3', 'minor', '1.3.0', false, 'dev'],
-    ['1.2.3', 'patch', '1.2.4', false, 'dev'],
-    ['1.2.3tag', 'major', '2.0.0', true, 'dev'],
-    ['1.2.3-tag', 'major', '2.0.0', false, 'dev'],
-    ['1.2.3', 'fake', null, false, 'dev'],
-    ['1.2.0-0', 'patch', '1.2.0', false, 'dev'],
-    ['fake', 'major', null, false, 'dev'],
-    ['1.2.3-4', 'major', '2.0.0', false, 'dev'],
-    ['1.2.3-4', 'minor', '1.3.0', false, 'dev'],
-    ['1.2.3-4', 'patch', '1.2.3', false, 'dev'],
-    ['1.2.3-alpha.0.beta', 'major', '2.0.0', false, 'dev'],
-    ['1.2.3-alpha.0.beta', 'minor', '1.3.0', false, 'dev'],
-    ['1.2.3-alpha.0.beta', 'patch', '1.2.3', false, 'dev'],
-    ['1.2.4', 'prerelease', '1.2.5-dev.0', false, 'dev'],
-    ['1.2.3-0', 'prerelease', '1.2.3-dev.0', false, 'dev'],
-    ['1.2.3-alpha.0', 'prerelease', '1.2.3-dev.0', false, 'dev'],
-    ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1', false, 'alpha'],
-    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'],
-    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta', false, 'alpha'],
-    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'],
-    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta', false, 
'alpha'],
-    ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta', false, 
'alpha'],
-    ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta', false, 
'alpha'],
-    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-dev.0', false, 'dev'],
-    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1', false, 
'alpha'],
-    ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2', false, 
'alpha'],
-    ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3', false, 
'alpha'],
-    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'],
-    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta', false, 
'alpha'],
-    ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta', false, 
'alpha'],
-    ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta', false, 
'alpha'],
-    ['1.2.0', 'prepatch', '1.2.1-dev.0', false, 'dev'],
-    ['1.2.0-1', 'prepatch', '1.2.1-dev.0', false, 'dev'],
-    ['1.2.0', 'preminor', '1.3.0-dev.0', false, 'dev'],
-    ['1.2.3-1', 'preminor', '1.3.0-dev.0', false, 'dev'],
-    ['1.2.0', 'premajor', '2.0.0-dev.0', false, 'dev'],
-    ['1.2.3-1', 'premajor', '2.0.0-dev.0', false, 'dev'],
-    ['1.2.0-1', 'minor', '1.2.0', false, 'dev'],
-    ['1.0.0-1', 'major', '1.0.0', false, 'dev'],
-    ['1.2.3-dev.bar', 'prerelease', '1.2.3-dev.0', false, 'dev']
-
-  ].forEach(function(v) {
-    var pre = v[0];
-    var what = v[1];
-    var wanted = v[2];
-    var loose = v[3];
-    var id = v[4];
-    var found = inc(pre, what, loose, id);
-    var cmd = 'inc(' + pre + ', ' + what + ', ' + id + ')';
-    t.equal(found, wanted, cmd + ' === ' + wanted);
-
-    var parsed = semver.parse(pre, loose);
-    if (wanted) {
-      parsed.inc(what, id);
-      t.equal(parsed.version, wanted, cmd + ' object version updated');
-      t.equal(parsed.raw, wanted, cmd + ' object raw field updated');
-    } else if (parsed) {
-      t.throws(function () {
-        parsed.inc(what, id)
-      })
-    } else {
-      t.equal(parsed, null)
-    }
-  });
-
-  t.end();
-});
-
-test('\ndiff versions test', function(t) {
-//  [version1, version2, result]
-//  diff(version1, version2) -> result
-  [['1.2.3', '0.2.3', 'major'],
-    ['1.4.5', '0.2.3', 'major'],
-    ['1.2.3', '2.0.0-pre', 'premajor'],
-    ['1.2.3', '1.3.3', 'minor'],
-    ['1.0.1', '1.1.0-pre', 'preminor'],
-    ['1.2.3', '1.2.4', 'patch'],
-    ['1.2.3', '1.2.4-pre', 'prepatch'],
-    ['0.0.1', '0.0.1-pre', 'prerelease'],
-    ['0.0.1', '0.0.1-pre-2', 'prerelease'],
-    ['1.1.0', '1.1.0-pre', 'prerelease'],
-    ['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'],
-    ['1.0.0', '1.0.0', null]
-
-  ].forEach(function(v) {
-    var version1 = v[0];
-    var version2 = v[1];
-    var wanted = v[2];
-    var found = diff(version1, version2);
-    var cmd = 'diff(' + version1 + ', ' + version2 + ')';
-    t.equal(found, wanted, cmd + ' === ' + wanted);
-  });
-
-  t.end();
-});
-
-test('\nvalid range test', function(t) {
-  // [range, result]
-  // validRange(range) -> result
-  // translate ranges into their canonical form
-  [['1.0.0 - 2.0.0', '>=1.0.0 <=2.0.0'],
-    ['1.0.0', '1.0.0'],
-    ['>=*', '*'],
-    ['', '*'],
-    ['*', '*'],
-    ['*', '*'],
-    ['>=1.0.0', '>=1.0.0'],
-    ['>1.0.0', '>1.0.0'],
-    ['<=2.0.0', '<=2.0.0'],
-    ['1', '>=1.0.0 <2.0.0'],
-    ['<=2.0.0', '<=2.0.0'],
-    ['<=2.0.0', '<=2.0.0'],
-    ['<2.0.0', '<2.0.0'],
-    ['<2.0.0', '<2.0.0'],
-    ['>= 1.0.0', '>=1.0.0'],
-    ['>=  1.0.0', '>=1.0.0'],
-    ['>=   1.0.0', '>=1.0.0'],
-    ['> 1.0.0', '>1.0.0'],
-    ['>  1.0.0', '>1.0.0'],
-    ['<=   2.0.0', '<=2.0.0'],
-    ['<= 2.0.0', '<=2.0.0'],
-    ['<=  2.0.0', '<=2.0.0'],
-    ['<    2.0.0', '<2.0.0'],
-    ['<        2.0.0', '<2.0.0'],
-    ['>=0.1.97', '>=0.1.97'],
-    ['>=0.1.97', '>=0.1.97'],
-    ['0.1.20 || 1.2.4', '0.1.20||1.2.4'],
-    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'],
-    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'],
-    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'],
-    ['||', '||'],
-    ['2.x.x', '>=2.0.0 <3.0.0'],
-    ['1.2.x', '>=1.2.0 <1.3.0'],
-    ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'],
-    ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'],
-    ['x', '*'],
-    ['2.*.*', '>=2.0.0 <3.0.0'],
-    ['1.2.*', '>=1.2.0 <1.3.0'],
-    ['1.2.* || 2.*', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'],
-    ['*', '*'],
-    ['2', '>=2.0.0 <3.0.0'],
-    ['2.3', '>=2.3.0 <2.4.0'],
-    ['~2.4', '>=2.4.0 <2.5.0'],
-    ['~2.4', '>=2.4.0 <2.5.0'],
-    ['~>3.2.1', '>=3.2.1 <3.3.0'],
-    ['~1', '>=1.0.0 <2.0.0'],
-    ['~>1', '>=1.0.0 <2.0.0'],
-    ['~> 1', '>=1.0.0 <2.0.0'],
-    ['~1.0', '>=1.0.0 <1.1.0'],
-    ['~ 1.0', '>=1.0.0 <1.1.0'],
-    ['^0', '>=0.0.0 <1.0.0'],
-    ['^ 1', '>=1.0.0 <2.0.0'],
-    ['^0.1', '>=0.1.0 <0.2.0'],
-    ['^1.0', '>=1.0.0 <2.0.0'],
-    ['^1.2', '>=1.2.0 <2.0.0'],
-    ['^0.0.1', '>=0.0.1 <0.0.2'],
-    ['^0.0.1-beta', '>=0.0.1-beta <0.0.2'],
-    ['^0.1.2', '>=0.1.2 <0.2.0'],
-    ['^1.2.3', '>=1.2.3 <2.0.0'],
-    ['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0'],
-    ['<1', '<1.0.0'],
-    ['< 1', '<1.0.0'],
-    ['>=1', '>=1.0.0'],
-    ['>= 1', '>=1.0.0'],
-    ['<1.2', '<1.2.0'],
-    ['< 1.2', '<1.2.0'],
-    ['1', '>=1.0.0 <2.0.0'],
-    ['>01.02.03', '>1.2.3', true],
-    ['>01.02.03', null],
-    ['~1.2.3beta', '>=1.2.3-beta <1.3.0', true],
-    ['~1.2.3beta', null],
-    ['^ 1.2 ^ 1', '>=1.2.0 <2.0.0 >=1.0.0 <2.0.0']
-  ].forEach(function(v) {
-    var pre = v[0];
-    var wanted = v[1];
-    var loose = v[2];
-    var found = validRange(pre, loose);
-
-    t.equal(found, wanted, 'validRange(' + pre + ') === ' + wanted);
-  });
-
-  t.end();
-});
-
-test('\ncomparators test', function(t) {
-  // [range, comparators]
-  // turn range into a set of individual comparators
-  [['1.0.0 - 2.0.0', [['>=1.0.0', '<=2.0.0']]],
-    ['1.0.0', [['1.0.0']]],
-    ['>=*', [['']]],
-    ['', [['']]],
-    ['*', [['']]],
-    ['*', [['']]],
-    ['>=1.0.0', [['>=1.0.0']]],
-    ['>=1.0.0', [['>=1.0.0']]],
-    ['>=1.0.0', [['>=1.0.0']]],
-    ['>1.0.0', [['>1.0.0']]],
-    ['>1.0.0', [['>1.0.0']]],
-    ['<=2.0.0', [['<=2.0.0']]],
-    ['1', [['>=1.0.0', '<2.0.0']]],
-    ['<=2.0.0', [['<=2.0.0']]],
-    ['<=2.0.0', [['<=2.0.0']]],
-    ['<2.0.0', [['<2.0.0']]],
-    ['<2.0.0', [['<2.0.0']]],
-    ['>= 1.0.0', [['>=1.0.0']]],
-    ['>=  1.0.0', [['>=1.0.0']]],
-    ['>=   1.0.0', [['>=1.0.0']]],
-    ['> 1.0.0', [['>1.0.0']]],
-    ['>  1.0.0', [['>1.0.0']]],
-    ['<=   2.0.0', [['<=2.0.0']]],
-    ['<= 2.0.0', [['<=2.0.0']]],
-    ['<=  2.0.0', [['<=2.0.0']]],
-    ['<    2.0.0', [['<2.0.0']]],
-    ['<\t2.0.0', [['<2.0.0']]],
-    ['>=0.1.97', [['>=0.1.97']]],
-    ['>=0.1.97', [['>=0.1.97']]],
-    ['0.1.20 || 1.2.4', [['0.1.20'], ['1.2.4']]],
-    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]],
-    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]],
-    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]],
-    ['||', [[''], ['']]],
-    ['2.x.x', [['>=2.0.0', '<3.0.0']]],
-    ['1.2.x', [['>=1.2.0', '<1.3.0']]],
-    ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
-    ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
-    ['x', [['']]],
-    ['2.*.*', [['>=2.0.0', '<3.0.0']]],
-    ['1.2.*', [['>=1.2.0', '<1.3.0']]],
-    ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
-    ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
-    ['*', [['']]],
-    ['2', [['>=2.0.0', '<3.0.0']]],
-    ['2.3', [['>=2.3.0', '<2.4.0']]],
-    ['~2.4', [['>=2.4.0', '<2.5.0']]],
-    ['~2.4', [['>=2.4.0', '<2.5.0']]],
-    ['~>3.2.1', [['>=3.2.1', '<3.3.0']]],
-    ['~1', [['>=1.0.0', '<2.0.0']]],
-    ['~>1', [['>=1.0.0', '<2.0.0']]],
-    ['~> 1', [['>=1.0.0', '<2.0.0']]],
-    ['~1.0', [['>=1.0.0', '<1.1.0']]],
-    ['~ 1.0', [['>=1.0.0', '<1.1.0']]],
-    ['~ 1.0.3', [['>=1.0.3', '<1.1.0']]],
-    ['~> 1.0.3', [['>=1.0.3', '<1.1.0']]],
-    ['<1', [['<1.0.0']]],
-    ['< 1', [['<1.0.0']]],
-    ['>=1', [['>=1.0.0']]],
-    ['>= 1', [['>=1.0.0']]],
-    ['<1.2', [['<1.2.0']]],
-    ['< 1.2', [['<1.2.0']]],
-    ['1', [['>=1.0.0', '<2.0.0']]],
-    ['1 2', [['>=1.0.0', '<2.0.0', '>=2.0.0', '<3.0.0']]],
-    ['1.2 - 3.4.5', [['>=1.2.0', '<=3.4.5']]],
-    ['1.2.3 - 3.4', [['>=1.2.3', '<3.5.0']]],
-    ['1.2.3 - 3', [['>=1.2.3', '<4.0.0']]],
-    ['>*', [['<0.0.0']]],
-    ['<*', [['<0.0.0']]]
-  ].forEach(function(v) {
-    var pre = v[0];
-    var wanted = v[1];
-    var found = toComparators(v[0]);
-    var jw = JSON.stringify(wanted);
-    t.equivalent(found, wanted, 'toComparators(' + pre + ') === ' + jw);
-  });
-
-  t.end();
-});
-
-test('\ninvalid version numbers', function(t) {
-  ['1.2.3.4',
-   'NOT VALID',
-   1.2,
-   null,
-   'Infinity.NaN.Infinity'
-  ].forEach(function(v) {
-    t.throws(function() {
-      new SemVer(v);
-    }, {name:'TypeError', message:'Invalid Version: ' + v});
-  });
-
-  t.end();
-});
-
-test('\nstrict vs loose version numbers', function(t) {
-  [['=1.2.3', '1.2.3'],
-    ['01.02.03', '1.2.3'],
-    ['1.2.3-beta.01', '1.2.3-beta.1'],
-    ['   =1.2.3', '1.2.3'],
-    ['1.2.3foo', '1.2.3-foo']
-  ].forEach(function(v) {
-    var loose = v[0];
-    var strict = v[1];
-    t.throws(function() {
-      new SemVer(loose);
-    });
-    var lv = new SemVer(loose, true);
-    t.equal(lv.version, strict);
-    t.ok(eq(loose, strict, true));
-    t.throws(function() {
-      eq(loose, strict);
-    });
-    t.throws(function() {
-      new SemVer(strict).compare(loose);
-    });
-  });
-  t.end();
-});
-
-test('\nstrict vs loose ranges', function(t) {
-  [['>=01.02.03', '>=1.2.3'],
-    ['~1.02.03beta', '>=1.2.3-beta <1.3.0']
-  ].forEach(function(v) {
-    var loose = v[0];
-    var comps = v[1];
-    t.throws(function() {
-      new Range(loose);
-    });
-    t.equal(new Range(loose, true).range, comps);
-  });
-  t.end();
-});
-
-test('\nmax satisfying', function(t) {
-  [[['1.2.3', '1.2.4'], '1.2', '1.2.4'],
-    [['1.2.4', '1.2.3'], '1.2', '1.2.4'],
-    [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6'],
-    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', 
'2.0.0', '2.1.0'], '~2.0.0', '2.0.0', true]
-  ].forEach(function(v) {
-    var versions = v[0];
-    var range = v[1];
-    var expect = v[2];
-    var loose = v[3];
-    var actual = semver.maxSatisfying(versions, range, loose);
-    t.equal(actual, expect);
-  });
-  t.end();
-});
diff --git a/node_modules/service-runner/node_modules/semver/test/ltr.js 
b/node_modules/service-runner/node_modules/semver/test/ltr.js
deleted file mode 100644
index 0f7167d..0000000
--- a/node_modules/service-runner/node_modules/semver/test/ltr.js
+++ /dev/null
@@ -1,181 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-var semver = require('../semver.js');
-var ltr = semver.ltr;
-
-test('\nltr tests', function(t) {
-  // [range, version, loose]
-  // Version should be less than range
-  [
-    ['~1.2.2', '1.2.1'],
-    ['~0.6.1-1', '0.6.1-0'],
-    ['1.0.0 - 2.0.0', '0.0.1'],
-    ['1.0.0-beta.2', '1.0.0-beta.1'],
-    ['1.0.0', '0.0.0'],
-    ['>=2.0.0', '1.1.1'],
-    ['>=2.0.0', '1.2.9'],
-    ['>2.0.0', '2.0.0'],
-    ['0.1.20 || 1.2.4', '0.1.5'],
-    ['2.x.x', '1.0.0'],
-    ['1.2.x', '1.1.0'],
-    ['1.2.x || 2.x', '1.0.0'],
-    ['2.*.*', '1.0.1'],
-    ['1.2.*', '1.1.3'],
-    ['1.2.* || 2.*', '1.1.9999'],
-    ['2', '1.0.0'],
-    ['2.3', '2.2.2'],
-    ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.3.5'],
-    ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0
-    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '0.2.4'],
-    ['~> 1', '0.2.3'],
-    ['~1.0', '0.1.2'], // >=1.0.0 <1.1.0
-    ['~ 1.0', '0.1.0'],
-    ['>1.2', '1.2.0'],
-    ['> 1.2', '1.2.1'],
-    ['1', '0.0.0beta', true],
-    ['~v0.5.4-pre', '0.5.4-alpha'],
-    ['~v0.5.4-pre', '0.5.4-alpha'],
-    ['=0.7.x', '0.6.0'],
-    ['=0.7.x', '0.6.0-asdf'],
-    ['>=0.7.x', '0.6.0'],
-    ['~1.2.2', '1.2.1'],
-    ['1.0.0 - 2.0.0', '0.2.3'],
-    ['1.0.0', '0.0.1'],
-    ['>=2.0.0', '1.0.0'],
-    ['>=2.0.0', '1.9999.9999'],
-    ['>=2.0.0', '1.2.9'],
-    ['>2.0.0', '2.0.0'],
-    ['>2.0.0', '1.2.9'],
-    ['2.x.x', '1.1.3'],
-    ['1.2.x', '1.1.3'],
-    ['1.2.x || 2.x', '1.1.3'],
-    ['2.*.*', '1.1.3'],
-    ['1.2.*', '1.1.3'],
-    ['1.2.* || 2.*', '1.1.3'],
-    ['2', '1.9999.9999'],
-    ['2.3', '2.2.1'],
-    ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0
-    ['~>3.2.1', '2.3.2'], // >=3.2.1 <3.3.0
-    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '0.2.3'],
-    ['~1.0', '0.0.0'], // >=1.0.0 <1.1.0
-    ['>1', '1.0.0'],
-    ['2', '1.0.0beta', true],
-    ['>1', '1.0.0beta', true],
-    ['> 1', '1.0.0beta', true],
-    ['=0.7.x', '0.6.2'],
-    ['=0.7.x', '0.7.0-asdf'],
-    ['^1', '1.0.0-0'],
-    ['>=0.7.x', '0.7.0-asdf'],
-    ['1', '1.0.0beta', true],
-    ['>=0.7.x', '0.6.2'],
-    ['>1.2.3', '1.3.0-alpha']
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = 'ltr(' + version + ', ' + range + ', ' + loose + ')';
-    t.ok(ltr(version, range, loose), msg);
-  });
-  t.end();
-});
-
-test('\nnegative ltr tests', function(t) {
-  // [range, version, loose]
-  // Version should NOT be less than range
-  [
-    ['~ 1.0', '1.1.0'],
-    ['~0.6.1-1', '0.6.1-1'],
-    ['1.0.0 - 2.0.0', '1.2.3'],
-    ['1.0.0 - 2.0.0', '2.9.9'],
-    ['1.0.0', '1.0.0'],
-    ['>=*', '0.2.4'],
-    ['', '1.0.0', true],
-    ['*', '1.2.3'],
-    ['>=1.0.0', '1.0.0'],
-    ['>=1.0.0', '1.0.1'],
-    ['>=1.0.0', '1.1.0'],
-    ['>1.0.0', '1.0.1'],
-    ['>1.0.0', '1.1.0'],
-    ['<=2.0.0', '2.0.0'],
-    ['<=2.0.0', '1.9999.9999'],
-    ['<=2.0.0', '0.2.9'],
-    ['<2.0.0', '1.9999.9999'],
-    ['<2.0.0', '0.2.9'],
-    ['>= 1.0.0', '1.0.0'],
-    ['>=  1.0.0', '1.0.1'],
-    ['>=   1.0.0', '1.1.0'],
-    ['> 1.0.0', '1.0.1'],
-    ['>  1.0.0', '1.1.0'],
-    ['<=   2.0.0', '2.0.0'],
-    ['<= 2.0.0', '1.9999.9999'],
-    ['<=  2.0.0', '0.2.9'],
-    ['<    2.0.0', '1.9999.9999'],
-    ['<\t2.0.0', '0.2.9'],
-    ['>=0.1.97', 'v0.1.97'],
-    ['>=0.1.97', '0.1.97'],
-    ['0.1.20 || 1.2.4', '1.2.4'],
-    ['0.1.20 || >1.2.4', '1.2.4'],
-    ['0.1.20 || 1.2.4', '1.2.3'],
-    ['0.1.20 || 1.2.4', '0.1.20'],
-    ['>=0.2.3 || <0.0.1', '0.0.0'],
-    ['>=0.2.3 || <0.0.1', '0.2.3'],
-    ['>=0.2.3 || <0.0.1', '0.2.4'],
-    ['||', '1.3.4'],
-    ['2.x.x', '2.1.3'],
-    ['1.2.x', '1.2.3'],
-    ['1.2.x || 2.x', '2.1.3'],
-    ['1.2.x || 2.x', '1.2.3'],
-    ['x', '1.2.3'],
-    ['2.*.*', '2.1.3'],
-    ['1.2.*', '1.2.3'],
-    ['1.2.* || 2.*', '2.1.3'],
-    ['1.2.* || 2.*', '1.2.3'],
-    ['1.2.* || 2.*', '1.2.3'],
-    ['*', '1.2.3'],
-    ['2', '2.1.2'],
-    ['2.3', '2.3.1'],
-    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.4.5'],
-    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0
-    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '1.2.3'],
-    ['~> 1', '1.2.3'],
-    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0
-    ['~ 1.0', '1.0.2'],
-    ['>=1', '1.0.0'],
-    ['>= 1', '1.0.0'],
-    ['<1.2', '1.1.1'],
-    ['< 1.2', '1.1.1'],
-    ['~v0.5.4-pre', '0.5.5'],
-    ['~v0.5.4-pre', '0.5.4'],
-    ['=0.7.x', '0.7.2'],
-    ['>=0.7.x', '0.7.2'],
-    ['<=0.7.x', '0.6.2'],
-    ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'],
-    ['>=0.2.3 <=0.2.4', '0.2.4'],
-    ['1.0.0 - 2.0.0', '2.0.0'],
-    ['^3.0.0', '4.0.0'],
-    ['^1.0.0 || ~2.0.1', '2.0.0'],
-    ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'],
-    ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true],
-    ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true],
-    ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'],
-    ['^1.0.0alpha', '1.0.0beta', true],
-    ['~1.0.0alpha', '1.0.0beta', true],
-    ['^1.0.0-alpha', '1.0.0beta', true],
-    ['~1.0.0-alpha', '1.0.0beta', true],
-    ['^1.0.0-alpha', '1.0.0-beta'],
-    ['~1.0.0-alpha', '1.0.0-beta'],
-    ['=0.1.0', '1.0.0']
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = '!ltr(' + version + ', ' + range + ', ' + loose + ')';
-    t.notOk(ltr(version, range, loose), msg);
-  });
-  t.end();
-});
diff --git 
a/node_modules/service-runner/node_modules/semver/test/major-minor-patch.js 
b/node_modules/service-runner/node_modules/semver/test/major-minor-patch.js
deleted file mode 100644
index e9d4039..0000000
--- a/node_modules/service-runner/node_modules/semver/test/major-minor-patch.js
+++ /dev/null
@@ -1,72 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-var semver = require('../semver.js');
-
-test('\nmajor tests', function(t) {
-  // [range, version]
-  // Version should be detectable despite extra characters
-  [
-    ['1.2.3', 1],
-    [' 1.2.3 ', 1],
-    [' 2.2.3-4 ', 2],
-    [' 3.2.3-pre ', 3],
-    ['v5.2.3', 5],
-    [' v8.2.3 ', 8],
-    ['\t13.2.3', 13],
-    ['=21.2.3', 21, true],
-    ['v=34.2.3', 34, true]
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = 'major(' + range + ') = ' + version;
-    t.equal(semver.major(range, loose), version, msg);
-  });
-  t.end();
-});
-
-test('\nminor tests', function(t) {
-  // [range, version]
-  // Version should be detectable despite extra characters
-  [
-    ['1.1.3', 1],
-    [' 1.1.3 ', 1],
-    [' 1.2.3-4 ', 2],
-    [' 1.3.3-pre ', 3],
-    ['v1.5.3', 5],
-    [' v1.8.3 ', 8],
-    ['\t1.13.3', 13],
-    ['=1.21.3', 21, true],
-    ['v=1.34.3', 34, true]
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = 'minor(' + range + ') = ' + version;
-    t.equal(semver.minor(range, loose), version, msg);
-  });
-  t.end();
-});
-
-test('\npatch tests', function(t) {
-  // [range, version]
-  // Version should be detectable despite extra characters
-  [
-    ['1.2.1', 1],
-    [' 1.2.1 ', 1],
-    [' 1.2.2-4 ', 2],
-    [' 1.2.3-pre ', 3],
-    ['v1.2.5', 5],
-    [' v1.2.8 ', 8],
-    ['\t1.2.13', 13],
-    ['=1.2.21', 21, true],
-    ['v=1.2.34', 34, true]
-  ].forEach(function(tuple) {
-    var range = tuple[0];
-    var version = tuple[1];
-    var loose = tuple[2] || false;
-    var msg = 'patch(' + range + ') = ' + version;
-    t.equal(semver.patch(range, loose), version, msg);
-  });
-  t.end();
-});
diff --git a/src b/src
index 2df1951..1da6bf0 160000
--- a/src
+++ b/src
-Subproject commit 2df195147aa481667263d3b61fd1dcef4ce5be50
+Subproject commit 1da6bf083755edcbff24922763fe45de9ed15eb5

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Id501d469dc4e20ddff65a2db23e640698d391e8c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/mobileapps/deploy
Gerrit-Branch: master
Gerrit-Owner: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to