Mobrovac has submitted this change and it was merged. Change subject: Update citoid submodule to master (b32713b) ......................................................................
Update citoid submodule to master (b32713b) New changes: 168578b Fix global memory leak when scraping OG data 0a8a9df Update front page to use /api endpoint 01d8f6a Add field "websiteTitle" in itemType "webpage" 26ca7db Don't add openGraph 'locale' to language field b32713b Validate language codes in mediawiki format Change-Id: I601f005da53d845194280d9026b21031ef8e938c --- M node_modules/body-parser/package.json M node_modules/cheerio/node_modules/htmlparser2/package.json M node_modules/cheerio/package.json M node_modules/express/node_modules/cookie/package.json M node_modules/express/node_modules/proxy-addr/HISTORY.md M node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js M node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js M node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json M node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee M node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee M node_modules/express/node_modules/proxy-addr/package.json M node_modules/express/node_modules/send/node_modules/mime/package.json M node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/htmlparser2/package.json M node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/commander/package.json M node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/mkdirp/package.json M node_modules/grunt/node_modules/dateformat/package.json M node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json M node_modules/grunt/node_modules/grunt-legacy-log/node_modules/lodash/package.json M node_modules/grunt/package.json A node_modules/html-metadata/.jshintignore A node_modules/html-metadata/.jshintrc A node_modules/html-metadata/.npmignore M node_modules/html-metadata/index.js M node_modules/html-metadata/node_modules/microdata-node/node_modules/htmlparser2/package.json M node_modules/html-metadata/package.json A node_modules/html-metadata/test/index.js M node_modules/node-txstatsd/package.json M node_modules/path/package.json M node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/inherits/package.json M node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json M node_modules/request/node_modules/http-signature/node_modules/asn1/package.json M node_modules/request/node_modules/http-signature/node_modules/ctype/package.json M src 33 files changed, 150 insertions(+), 50 deletions(-) Approvals: Mobrovac: Verified; Looks good to me, approved diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json index e602960..57d0158 100644 --- a/node_modules/body-parser/package.json +++ b/node_modules/body-parser/package.json @@ -92,5 +92,6 @@ "tarball": "http://registry.npmjs.org/body-parser/-/body-parser-1.10.0.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.10.0.tgz" + "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.10.0.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/cheerio/node_modules/htmlparser2/package.json b/node_modules/cheerio/node_modules/htmlparser2/package.json index c3374b0..7596b24 100644 --- a/node_modules/cheerio/node_modules/htmlparser2/package.json +++ b/node_modules/cheerio/node_modules/htmlparser2/package.json @@ -75,7 +75,7 @@ "homepage": "https://github.com/fb55/htmlparser2", "_id": "htmlparser2@3.8.2", "_shasum": "0d6bc3471d01e9766fc2c274cbac1d55b36c009c", - "_from": "htmlparser2@>=3.8.0 <3.9.0", + "_from": "htmlparser2@>=3.8.1 <3.9.0", "_npmVersion": "2.1.5", "_nodeVersion": "0.10.32", "_npmUser": { diff --git a/node_modules/cheerio/package.json b/node_modules/cheerio/package.json index 251cbf9..406cc0f 100644 --- a/node_modules/cheerio/package.json +++ b/node_modules/cheerio/package.json @@ -76,5 +76,6 @@ "tarball": "http://registry.npmjs.org/cheerio/-/cheerio-0.18.0.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.18.0.tgz" + "_resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.18.0.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/express/node_modules/cookie/package.json b/node_modules/express/node_modules/cookie/package.json index 80aecf4..7dbb395 100644 --- a/node_modules/express/node_modules/cookie/package.json +++ b/node_modules/express/node_modules/cookie/package.json @@ -49,5 +49,6 @@ ], "directories": {}, "_shasum": "72fec3d24e48a3432073d90c12642005061004b1", - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz" + "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/express/node_modules/proxy-addr/HISTORY.md b/node_modules/express/node_modules/proxy-addr/HISTORY.md index 319b2ad..0a695fd 100644 --- a/node_modules/express/node_modules/proxy-addr/HISTORY.md +++ b/node_modules/express/node_modules/proxy-addr/HISTORY.md @@ -1,3 +1,9 @@ +1.0.7 / 2015-03-16 +================== + + * deps: ipaddr.js@0.1.9 + - Fix OOM on certain inputs to `isValid` + 1.0.6 / 2015-02-01 ================== diff --git a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js index 9d5c657..59634ff 100644 --- a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js +++ b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js @@ -1 +1 @@ -(function(){var t,r,n,e,i,o,a,s;r={},s=this,"undefined"!=typeof module&&null!==module&&module.exports?module.exports=r:s.ipaddr=r,a=function(t,r,n,e){var i,o;if(t.length!==r.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;e>0;){if(o=n-e,0>o&&(o=0),t[i]>>o!==r[i]>>o)return!1;e-=n,i+=1}return!0},r.subnetMatch=function(t,r,n){var e,i,o,a,s;null==n&&(n="unicast");for(e in r)for(i=r[e],"[object Array]"!==toString.call(i[0])&&(i=[i]),a=0,s=i.length;s>a;a++)if(o=i[a],t.match.apply(t,o))return e;return n},r.IPv4=function(){function t(t){var r,n,e;if(4!==t.length)throw new Error("ipaddr: ipv4 octet count should be 4");for(n=0,e=t.length;e>n;n++)if(r=t[n],!(r>=0&&255>=r))throw new Error("ipaddr: ipv4 octet is a byte");this.octets=t}return t.prototype.kind=function(){return"ipv4"},t.prototype.toString=function(){return this.octets.join(".")},t.prototype.toByteArray=function(){return this.octets.slice(0)},t.prototype.match=function(t,r){if("ipv4"!==t.kind())throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return a(this.octets,t.octets,8,r)},t.prototype.SpecialRanges={unspecified:[[new t([0,0,0,0]),8]],broadcast:[[new t([255,255,255,255]),32]],multicast:[[new t([224,0,0,0]),4]],linkLocal:[[new t([169,254,0,0]),16]],loopback:[[new t([127,0,0,0]),8]],"private":[[new t([10,0,0,0]),8],[new t([172,16,0,0]),12],[new t([192,168,0,0]),16]],reserved:[[new t([192,0,0,0]),24],[new t([192,0,2,0]),24],[new t([192,88,99,0]),24],[new t([198,51,100,0]),24],[new t([203,0,113,0]),24],[new t([240,0,0,0]),4]]},t.prototype.range=function(){return r.subnetMatch(this,this.SpecialRanges)},t.prototype.toIPv4MappedAddress=function(){return r.IPv6.parse("::ffff:"+this.toString())},t}(),n="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp("^"+n+"\\."+n+"\\."+n+"\\."+n+"$","i"),longValue:new RegExp("^"+n+"$","i")},r.IPv4.parser=function(t){var r,n,i,o,a;if(n=function(t){return"0"===t[0]&&"x"!==t[1]?parseInt(t,8):parseInt(t)},r=t.match(e.fourOctet))return function(){var t,e,o,a;for(o=r.slice(1,6),a=[],t=0,e=o.length;e>t;t++)i=o[t],a.push(n(i));return a}();if(r=t.match(e.longValue)){if(a=n(r[1]),a>4294967295||0>a)throw new Error("ipaddr: address outside defined range");return function(){var t,r;for(r=[],o=t=0;24>=t;o=t+=8)r.push(a>>o&255);return r}().reverse()}return null},r.IPv6=function(){function t(t){var r,n,e;if(8!==t.length)throw new Error("ipaddr: ipv6 part count should be 8");for(n=0,e=t.length;e>n;n++)if(r=t[n],!(r>=0&&65535>=r))throw new Error("ipaddr: ipv6 part should fit to two octets");this.parts=t}return t.prototype.kind=function(){return"ipv6"},t.prototype.toString=function(){var t,r,n,e,i,o,a;for(i=function(){var t,n,e,i;for(e=this.parts,i=[],t=0,n=e.length;n>t;t++)r=e[t],i.push(r.toString(16));return i}.call(this),t=[],n=function(r){return t.push(r)},e=0,o=0,a=i.length;a>o;o++)switch(r=i[o],e){case 0:n("0"===r?"":r),e=1;break;case 1:"0"===r?e=2:n(r);break;case 2:"0"!==r&&(n(""),n(r),e=3);break;case 3:n(r)}return 2===e&&(n(""),n("")),t.join(":")},t.prototype.toByteArray=function(){var t,r,n,e,i;for(t=[],i=this.parts,n=0,e=i.length;e>n;n++)r=i[n],t.push(r>>8),t.push(255&r);return t},t.prototype.toNormalizedString=function(){var t;return function(){var r,n,e,i;for(e=this.parts,i=[],r=0,n=e.length;n>r;r++)t=e[r],i.push(t.toString(16));return i}.call(this).join(":")},t.prototype.match=function(t,r){if("ipv6"!==t.kind())throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return a(this.parts,t.parts,16,r)},t.prototype.SpecialRanges={unspecified:[new t([0,0,0,0,0,0,0,0]),128],linkLocal:[new t([65152,0,0,0,0,0,0,0]),10],multicast:[new t([65280,0,0,0,0,0,0,0]),8],loopback:[new t([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new t([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new t([0,0,0,0,0,65535,0,0]),96],rfc6145:[new t([0,0,0,0,65535,0,0,0]),96],rfc6052:[new t([100,65435,0,0,0,0,0,0]),96],"6to4":[new t([8194,0,0,0,0,0,0,0]),16],teredo:[new t([8193,0,0,0,0,0,0,0]),32],reserved:[[new t([8193,3512,0,0,0,0,0,0]),32]]},t.prototype.range=function(){return r.subnetMatch(this,this.SpecialRanges)},t.prototype.isIPv4MappedAddress=function(){return"ipv4Mapped"===this.range()},t.prototype.toIPv4Address=function(){var t,n,e;if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");return e=this.parts.slice(-2),t=e[0],n=e[1],new r.IPv4([t>>8,255&t,n>>8,255&n])},t}(),i="(?:[0-9a-f]+::?)+",o={"native":new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+(""+n+"\\."+n+"\\."+n+"\\."+n+"$"),"i")},t=function(t,r){var n,e,i,o,a;if(t.indexOf("::")!==t.lastIndexOf("::"))return null;for(n=0,e=-1;(e=t.indexOf(":",e+1))>=0;)n++;for(":"===t[0]&&n--,":"===t[t.length-1]&&n--,a=r-n,o=":";a--;)o+="0:";return t=t.replace("::",o),":"===t[0]&&(t=t.slice(1)),":"===t[t.length-1]&&(t=t.slice(0,-1)),function(){var r,n,e,o;for(e=t.split(":"),o=[],r=0,n=e.length;n>r;r++)i=e[r],o.push(parseInt(i,16));return o}()},r.IPv6.parser=function(r){var n,e;return r.match(o["native"])?t(r,8):(n=r.match(o.transitional))&&(e=t(n[1].slice(0,-1),6))?(e.push(parseInt(n[2])<<8|parseInt(n[3])),e.push(parseInt(n[4])<<8|parseInt(n[5])),e):null},r.IPv4.isIPv4=r.IPv6.isIPv6=function(t){return null!==this.parser(t)},r.IPv4.isValid=r.IPv6.isValid=function(t){var r;try{return new this(this.parser(t)),!0}catch(n){return r=n,!1}},r.IPv4.parse=r.IPv6.parse=function(t){var r;if(r=this.parser(t),null===r)throw new Error("ipaddr: string is not formatted like ip address");return new this(r)},r.isValid=function(t){return r.IPv6.isValid(t)||r.IPv4.isValid(t)},r.parse=function(t){if(r.IPv6.isValid(t))return r.IPv6.parse(t);if(r.IPv4.isValid(t))return r.IPv4.parse(t);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},r.process=function(t){var r;return r=this.parse(t),"ipv6"===r.kind()&&r.isIPv4MappedAddress()?r.toIPv4Address():r}}).call(this); \ No newline at end of file +(function(){var t,r,n,e,i,o,a,s;r={},s=this,"undefined"!=typeof module&&null!==module&&module.exports?module.exports=r:s.ipaddr=r,a=function(t,r,n,e){var i,o;if(t.length!==r.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;e>0;){if(o=n-e,0>o&&(o=0),t[i]>>o!==r[i]>>o)return!1;e-=n,i+=1}return!0},r.subnetMatch=function(t,r,n){var e,i,o,a,s;null==n&&(n="unicast");for(e in r)for(i=r[e],"[object Array]"!==toString.call(i[0])&&(i=[i]),a=0,s=i.length;s>a;a++)if(o=i[a],t.match.apply(t,o))return e;return n},r.IPv4=function(){function t(t){var r,n,e;if(4!==t.length)throw new Error("ipaddr: ipv4 octet count should be 4");for(n=0,e=t.length;e>n;n++)if(r=t[n],!(r>=0&&255>=r))throw new Error("ipaddr: ipv4 octet is a byte");this.octets=t}return t.prototype.kind=function(){return"ipv4"},t.prototype.toString=function(){return this.octets.join(".")},t.prototype.toByteArray=function(){return this.octets.slice(0)},t.prototype.match=function(t,r){if("ipv4"!==t.kind())throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return a(this.octets,t.octets,8,r)},t.prototype.SpecialRanges={unspecified:[[new t([0,0,0,0]),8]],broadcast:[[new t([255,255,255,255]),32]],multicast:[[new t([224,0,0,0]),4]],linkLocal:[[new t([169,254,0,0]),16]],loopback:[[new t([127,0,0,0]),8]],"private":[[new t([10,0,0,0]),8],[new t([172,16,0,0]),12],[new t([192,168,0,0]),16]],reserved:[[new t([192,0,0,0]),24],[new t([192,0,2,0]),24],[new t([192,88,99,0]),24],[new t([198,51,100,0]),24],[new t([203,0,113,0]),24],[new t([240,0,0,0]),4]]},t.prototype.range=function(){return r.subnetMatch(this,this.SpecialRanges)},t.prototype.toIPv4MappedAddress=function(){return r.IPv6.parse("::ffff:"+this.toString())},t}(),n="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp("^"+n+"\\."+n+"\\."+n+"\\."+n+"$","i"),longValue:new RegExp("^"+n+"$","i")},r.IPv4.parser=function(t){var r,n,i,o,a;if(n=function(t){return"0"===t[0]&&"x"!==t[1]?parseInt(t,8):parseInt(t)},r=t.match(e.fourOctet))return function(){var t,e,o,a;for(o=r.slice(1,6),a=[],t=0,e=o.length;e>t;t++)i=o[t],a.push(n(i));return a}();if(r=t.match(e.longValue)){if(a=n(r[1]),a>4294967295||0>a)throw new Error("ipaddr: address outside defined range");return function(){var t,r;for(r=[],o=t=0;24>=t;o=t+=8)r.push(a>>o&255);return r}().reverse()}return null},r.IPv6=function(){function t(t){var r,n,e;if(8!==t.length)throw new Error("ipaddr: ipv6 part count should be 8");for(n=0,e=t.length;e>n;n++)if(r=t[n],!(r>=0&&65535>=r))throw new Error("ipaddr: ipv6 part should fit to two octets");this.parts=t}return t.prototype.kind=function(){return"ipv6"},t.prototype.toString=function(){var t,r,n,e,i,o,a;for(i=function(){var t,n,e,i;for(e=this.parts,i=[],t=0,n=e.length;n>t;t++)r=e[t],i.push(r.toString(16));return i}.call(this),t=[],n=function(r){return t.push(r)},e=0,o=0,a=i.length;a>o;o++)switch(r=i[o],e){case 0:n("0"===r?"":r),e=1;break;case 1:"0"===r?e=2:n(r);break;case 2:"0"!==r&&(n(""),n(r),e=3);break;case 3:n(r)}return 2===e&&(n(""),n("")),t.join(":")},t.prototype.toByteArray=function(){var t,r,n,e,i;for(t=[],i=this.parts,n=0,e=i.length;e>n;n++)r=i[n],t.push(r>>8),t.push(255&r);return t},t.prototype.toNormalizedString=function(){var t;return function(){var r,n,e,i;for(e=this.parts,i=[],r=0,n=e.length;n>r;r++)t=e[r],i.push(t.toString(16));return i}.call(this).join(":")},t.prototype.match=function(t,r){if("ipv6"!==t.kind())throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return a(this.parts,t.parts,16,r)},t.prototype.SpecialRanges={unspecified:[new t([0,0,0,0,0,0,0,0]),128],linkLocal:[new t([65152,0,0,0,0,0,0,0]),10],multicast:[new t([65280,0,0,0,0,0,0,0]),8],loopback:[new t([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new t([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new t([0,0,0,0,0,65535,0,0]),96],rfc6145:[new t([0,0,0,0,65535,0,0,0]),96],rfc6052:[new t([100,65435,0,0,0,0,0,0]),96],"6to4":[new t([8194,0,0,0,0,0,0,0]),16],teredo:[new t([8193,0,0,0,0,0,0,0]),32],reserved:[[new t([8193,3512,0,0,0,0,0,0]),32]]},t.prototype.range=function(){return r.subnetMatch(this,this.SpecialRanges)},t.prototype.isIPv4MappedAddress=function(){return"ipv4Mapped"===this.range()},t.prototype.toIPv4Address=function(){var t,n,e;if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");return e=this.parts.slice(-2),t=e[0],n=e[1],new r.IPv4([t>>8,255&t,n>>8,255&n])},t}(),i="(?:[0-9a-f]+::?)+",o={"native":new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+(""+n+"\\."+n+"\\."+n+"\\."+n+"$"),"i")},t=function(t,r){var n,e,i,o,a;if(t.indexOf("::")!==t.lastIndexOf("::"))return null;for(n=0,e=-1;(e=t.indexOf(":",e+1))>=0;)n++;if(":"===t[0]&&n--,":"===t[t.length-1]&&n--,n>r)return null;for(a=r-n,o=":";a--;)o+="0:";return t=t.replace("::",o),":"===t[0]&&(t=t.slice(1)),":"===t[t.length-1]&&(t=t.slice(0,-1)),function(){var r,n,e,o;for(e=t.split(":"),o=[],r=0,n=e.length;n>r;r++)i=e[r],o.push(parseInt(i,16));return o}()},r.IPv6.parser=function(r){var n,e;return r.match(o["native"])?t(r,8):(n=r.match(o.transitional))&&(e=t(n[1].slice(0,-1),6))?(e.push(parseInt(n[2])<<8|parseInt(n[3])),e.push(parseInt(n[4])<<8|parseInt(n[5])),e):null},r.IPv4.isIPv4=r.IPv6.isIPv6=function(t){return null!==this.parser(t)},r.IPv4.isValid=r.IPv6.isValid=function(t){var r;try{return new this(this.parser(t)),!0}catch(n){return r=n,!1}},r.IPv4.parse=r.IPv6.parse=function(t){var r;if(r=this.parser(t),null===r)throw new Error("ipaddr: string is not formatted like ip address");return new this(r)},r.isValid=function(t){return r.IPv6.isValid(t)||r.IPv4.isValid(t)},r.parse=function(t){if(r.IPv6.isValid(t))return r.IPv6.parse(t);if(r.IPv4.isValid(t))return r.IPv4.parse(t);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},r.process=function(t){var r;return r=this.parse(t),"ipv6"===r.kind()&&r.isIPv4MappedAddress()?r.toIPv4Address():r}}).call(this); \ No newline at end of file diff --git a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js index 8b1ed5d..00620a8 100644 --- a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js +++ b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js @@ -315,6 +315,9 @@ if (string[string.length - 1] === ':') { colonCount--; } + if (colonCount > parts) { + return null; + } replacementCount = parts - colonCount; replacement = ':'; while (replacementCount--) { diff --git a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json index 929d45a..90ba8b5 100644 --- a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json +++ b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json @@ -1,7 +1,7 @@ { "name": "ipaddr.js", "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", - "version": "0.1.8", + "version": "0.1.9", "author": { "name": "Peter Zotov", "email": "whitequ...@whitequark.org" @@ -32,13 +32,13 @@ "node": ">= 0.2.5" }, "license": "MIT", - "gitHead": "3099dba20984caa73a83864ee582548413a425d8", + "gitHead": "d51df7aa41ef1875215ae4ffbd324c486f8c2799", "bugs": { "url": "https://github.com/whitequark/ipaddr.js/issues" }, - "_id": "ipaddr.js@0.1.8", - "_shasum": "27442eda77b626c44724b4aa8a1867e8410579ee", - "_from": "ipaddr.js@0.1.8", + "_id": "ipaddr.js@0.1.9", + "_shasum": "a9c78ccc12dc9010f296ab9aef2f61f432d69efa", + "_from": "ipaddr.js@0.1.9", "_npmVersion": "1.4.21", "_npmUser": { "name": "whitequark", @@ -51,10 +51,10 @@ } ], "dist": { - "shasum": "27442eda77b626c44724b4aa8a1867e8410579ee", - "tarball": "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.8.tgz" + "shasum": "a9c78ccc12dc9010f296ab9aef2f61f432d69efa", + "tarball": "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.9.tgz" }, - "_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.8.tgz", + "_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.9.tgz", "readme": "ERROR: No README data found!", "homepage": "https://github.com/whitequark/ipaddr.js" } diff --git a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee index 0172bfd..a6d358e 100644 --- a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee +++ b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee @@ -276,6 +276,10 @@ colonCount-- if string[0] == ':' colonCount-- if string[string.length-1] == ':' + # The following loop would hang if colonCount > parts + if colonCount > parts + return null + # replacement = ':' + '0:' * (parts - colonCount) replacementCount = parts - colonCount replacement = ':' diff --git a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee index c6ba1a9..627503d 100644 --- a/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee +++ b/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee @@ -220,3 +220,7 @@ test.equal(ipaddr.isValid('4999999999'), false) test.equal(ipaddr.isValid('-1'), false) test.done() + + 'does not hang on ::8:8:8:8:8:8:8:8:8': (test) -> + test.equal(ipaddr.IPv6.isValid('::8:8:8:8:8:8:8:8:8'), false) + test.done() diff --git a/node_modules/express/node_modules/proxy-addr/package.json b/node_modules/express/node_modules/proxy-addr/package.json index bbc4f21..ad8fa6f 100644 --- a/node_modules/express/node_modules/proxy-addr/package.json +++ b/node_modules/express/node_modules/proxy-addr/package.json @@ -1,7 +1,7 @@ { "name": "proxy-addr", "description": "Determine address of proxied request", - "version": "1.0.6", + "version": "1.0.7", "author": { "name": "Douglas Christopher Wilson", "email": "d...@somethingdoug.com" @@ -18,12 +18,12 @@ }, "dependencies": { "forwarded": "~0.1.0", - "ipaddr.js": "0.1.8" + "ipaddr.js": "0.1.9" }, "devDependencies": { "benchmark": "1.0.0", "beautify-benchmark": "0.2.4", - "istanbul": "0.3.5", + "istanbul": "0.3.8", "mocha": "~1.21.5" }, "files": [ @@ -41,13 +41,13 @@ "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" }, - "gitHead": "550cade433f7a7d7cbcdebbd0f9e1cb94aed5e26", + "gitHead": "917fa69ae1a4c3e2962d89461b6945538b763b28", "bugs": { "url": "https://github.com/jshttp/proxy-addr/issues" }, "homepage": "https://github.com/jshttp/proxy-addr", - "_id": "proxy-addr@1.0.6", - "_shasum": "fce3a4c486bf2e188ad1e76e18399a79d02c0e72", + "_id": "proxy-addr@1.0.7", + "_shasum": "6e2655aa9c56b014f09734a7e6d558cc77751939", "_from": "proxy-addr@>=1.0.4 <1.1.0", "_npmVersion": "1.4.28", "_npmUser": { @@ -81,10 +81,10 @@ } ], "dist": { - "shasum": "fce3a4c486bf2e188ad1e76e18399a79d02c0e72", - "tarball": "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.6.tgz" + "shasum": "6e2655aa9c56b014f09734a7e6d558cc77751939", + "tarball": "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.7.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.6.tgz", + "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.7.tgz", "readme": "ERROR: No README data found!" } diff --git a/node_modules/express/node_modules/send/node_modules/mime/package.json b/node_modules/express/node_modules/send/node_modules/mime/package.json index ab6beca..b666b72 100644 --- a/node_modules/express/node_modules/send/node_modules/mime/package.json +++ b/node_modules/express/node_modules/send/node_modules/mime/package.json @@ -35,7 +35,7 @@ "shasum": "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10", "tarball": "http://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, - "_from": "mime@1.2.11", + "_from": "mime@>=1.2.11 <1.3.0", "_npmVersion": "1.3.6", "_npmUser": { "name": "broofa", diff --git a/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/htmlparser2/package.json b/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/htmlparser2/package.json index c3374b0..7596b24 100644 --- a/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/htmlparser2/package.json +++ b/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/htmlparser2/package.json @@ -75,7 +75,7 @@ "homepage": "https://github.com/fb55/htmlparser2", "_id": "htmlparser2@3.8.2", "_shasum": "0d6bc3471d01e9766fc2c274cbac1d55b36c009c", - "_from": "htmlparser2@>=3.8.0 <3.9.0", + "_from": "htmlparser2@>=3.8.1 <3.9.0", "_npmVersion": "2.1.5", "_nodeVersion": "0.10.32", "_npmUser": { diff --git a/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/commander/package.json b/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/commander/package.json index f2b43dd..de917f5 100644 --- a/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/commander/package.json +++ b/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/commander/package.json @@ -66,5 +66,6 @@ "tarball": "http://registry.npmjs.org/commander/-/commander-2.3.0.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz" + "_resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/mkdirp/package.json b/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/mkdirp/package.json index 54d87e7..a915c51 100644 --- a/node_modules/grunt-simple-mocha/node_modules/mocha/node_modules/mkdirp/package.json +++ b/node_modules/grunt-simple-mocha/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 <0.6.0", + "_from": "mkdirp@0.5.0", "_npmVersion": "1.4.3", "_npmUser": { "name": "substack", diff --git a/node_modules/grunt/node_modules/dateformat/package.json b/node_modules/grunt/node_modules/dateformat/package.json index 47cf725..288716e 100644 --- a/node_modules/grunt/node_modules/dateformat/package.json +++ b/node_modules/grunt/node_modules/dateformat/package.json @@ -36,7 +36,7 @@ "scripts": {}, "directories": {}, "_shasum": "b0220c02de98617433b72851cf47de3df2cdbee9", - "_from": "dateformat@1.0.2-1.2.3", "_resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "_from": "dateformat@1.0.2-1.2.3", "readme": "ERROR: No README data found!" } diff --git a/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json b/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json index 85045f1..44f3f21 100644 --- a/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json +++ b/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json @@ -127,5 +127,6 @@ "directories": {}, "_shasum": "5b7723034dda4d262e5a46fb2c58d7cc22f71420", "_resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz", - "readme": "ERROR: No README data found!" + "readme": "ERROR: No README data found!", + "scripts": {} } diff --git a/node_modules/grunt/node_modules/grunt-legacy-log/node_modules/lodash/package.json b/node_modules/grunt/node_modules/grunt-legacy-log/node_modules/lodash/package.json index 85045f1..44f3f21 100644 --- a/node_modules/grunt/node_modules/grunt-legacy-log/node_modules/lodash/package.json +++ b/node_modules/grunt/node_modules/grunt-legacy-log/node_modules/lodash/package.json @@ -127,5 +127,6 @@ "directories": {}, "_shasum": "5b7723034dda4d262e5a46fb2c58d7cc22f71420", "_resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz", - "readme": "ERROR: No README data found!" + "readme": "ERROR: No README data found!", + "scripts": {} } diff --git a/node_modules/grunt/package.json b/node_modules/grunt/package.json index d3ffc10..2e76065 100644 --- a/node_modules/grunt/package.json +++ b/node_modules/grunt/package.json @@ -100,5 +100,6 @@ ], "directories": {}, "_shasum": "56937cd5194324adff6d207631832a9d6ba4e7f0", - "_resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz" + "_resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/html-metadata/.jshintignore b/node_modules/html-metadata/.jshintignore new file mode 100644 index 0000000..1c69eee --- /dev/null +++ b/node_modules/html-metadata/.jshintignore @@ -0,0 +1,3 @@ +coverage +node_modules +test diff --git a/node_modules/html-metadata/.jshintrc b/node_modules/html-metadata/.jshintrc new file mode 100644 index 0000000..1a71ddb --- /dev/null +++ b/node_modules/html-metadata/.jshintrc @@ -0,0 +1,22 @@ +{ + "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 +} diff --git a/node_modules/html-metadata/.npmignore b/node_modules/html-metadata/.npmignore new file mode 100644 index 0000000..df9af16 --- /dev/null +++ b/node_modules/html-metadata/.npmignore @@ -0,0 +1,3 @@ +coverage +node_modules +npm-debug.log diff --git a/node_modules/html-metadata/index.js b/node_modules/html-metadata/index.js index 4876d0d..6fd96fa 100644 --- a/node_modules/html-metadata/index.js +++ b/node_modules/html-metadata/index.js @@ -3,6 +3,8 @@ * https://github.com/wikimedia/html-metadata */ +'use strict'; + var async = require('async'), cheerio = require('cheerio'), request = require('request'), @@ -11,7 +13,7 @@ // Default exported function exports = module.exports = function(urlOrOpts, callback){ request(urlOrOpts, function(error, response, html){ - chtml = cheerio.load(html); + var chtml = cheerio.load(html); exports.parseAll(chtml, function(err, results){ callback(err, results); }); @@ -40,7 +42,7 @@ // Merge results into larger object for (var key in results){ merged = allMetadata[key]; - value = results[key]; + var value = results[key]; if (!merged){ merged = []; @@ -178,9 +180,9 @@ } // If the element isn't in namespace, exit - if (!typeof namespace.indexOf(propertyValue[0]) === 'number'){return; } + if (typeof namespace.indexOf(propertyValue[0]) !== 'number'){return; } - content = element.attr('content'); + var content = element.attr('content'); if (propertyValue.length === 2){ property = propertyValue[1]; // Set property to value after namespace @@ -260,7 +262,7 @@ scrape = exports; console.log('Parser running on test file'); - $ = cheerio.load(fs.readFileSync('./test_files/turtle_movie.html')); + var $ = cheerio.load(fs.readFileSync('./test_files/turtle_movie.html')); exports.parseAll($, function(err, results){ console.log(JSON.stringify(results)); }); diff --git a/node_modules/html-metadata/node_modules/microdata-node/node_modules/htmlparser2/package.json b/node_modules/html-metadata/node_modules/microdata-node/node_modules/htmlparser2/package.json index c3374b0..7596b24 100644 --- a/node_modules/html-metadata/node_modules/microdata-node/node_modules/htmlparser2/package.json +++ b/node_modules/html-metadata/node_modules/microdata-node/node_modules/htmlparser2/package.json @@ -75,7 +75,7 @@ "homepage": "https://github.com/fb55/htmlparser2", "_id": "htmlparser2@3.8.2", "_shasum": "0d6bc3471d01e9766fc2c274cbac1d55b36c009c", - "_from": "htmlparser2@>=3.8.0 <3.9.0", + "_from": "htmlparser2@>=3.8.1 <3.9.0", "_npmVersion": "2.1.5", "_nodeVersion": "0.10.32", "_npmUser": { diff --git a/node_modules/html-metadata/package.json b/node_modules/html-metadata/package.json index bf129d8..7ebb095 100644 --- a/node_modules/html-metadata/package.json +++ b/node_modules/html-metadata/package.json @@ -1,6 +1,6 @@ { "name": "html-metadata", - "version": "0.1.0", + "version": "0.1.1", "description": "Scrapes metadata of several different standards", "main": "index.js", "dependencies": { @@ -9,8 +9,15 @@ "microdata-node": "0.1.2", "request": "2.49.0" }, + "devDependencies": { + "mocha": "~1.x.x", + "mocha-jshint": "0.0.9", + "istanbul": "0.3.5", + "mocha-lcov-reporter": "0.0.1" + }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "mocha", + "coverage": "istanbul cover _mocha -- -R spec" }, "keywords": [ "open graph", @@ -32,12 +39,12 @@ "url": "https://github.com/wikimedia/html-metadata/issues" }, "homepage": "https://github.com/wikimedia/html-metadata", - "_id": "html-metadata@0.1.0", + "_id": "html-metadata@0.1.1", "dist": { - "shasum": "7891ddba1c8189da94a0a59d4c553ad3bab27703", - "tarball": "http://registry.npmjs.org/html-metadata/-/html-metadata-0.1.0.tgz" + "shasum": "7b9f7db93f5e14fac4e51b292c6fb12a68447bfc", + "tarball": "http://registry.npmjs.org/html-metadata/-/html-metadata-0.1.1.tgz" }, - "_from": "html-metadata@0.1.0", + "_from": "html-metadata@0.1.1", "_npmVersion": "1.4.3", "_npmUser": { "name": "mvolz", @@ -50,7 +57,7 @@ } ], "directories": {}, - "_shasum": "7891ddba1c8189da94a0a59d4c553ad3bab27703", - "_resolved": "https://registry.npmjs.org/html-metadata/-/html-metadata-0.1.0.tgz", + "_shasum": "7b9f7db93f5e14fac4e51b292c6fb12a68447bfc", + "_resolved": "https://registry.npmjs.org/html-metadata/-/html-metadata-0.1.1.tgz", "readme": "ERROR: No README data found!" } diff --git a/node_modules/html-metadata/test/index.js b/node_modules/html-metadata/test/index.js new file mode 100644 index 0000000..a82a854 --- /dev/null +++ b/node_modules/html-metadata/test/index.js @@ -0,0 +1,33 @@ +'use strict'; + +var meta = require('../index'); +var cheerio = require('cheerio'); +var request = require('request'); + +// Run jshint as part of normal testing +require('mocha-jshint')(); + +// mocha defines to avoid JSHint breakage +/* global describe, it, before, beforeEach, after, afterEach */ + +describe('scraping', function() { + + var url = 'http://fortune.com/2015/02/20/nobel-prize-economics-for-sale/'; + + it('should get OpenGraph info', function(done) { + request(url, function(error, response) { + var ch = cheerio.load(response.body); + meta.parseOpenGraph(ch, function(res) { + // check for some properties + ['title', 'description', 'author'].forEach(function(key) { + if(!res[key]) { + throw new Error('Expected to find the ' + key + ' key in the reponse!'); + } + }); + done(); + }); + }); + }); + +}); + diff --git a/node_modules/node-txstatsd/package.json b/node_modules/node-txstatsd/package.json index 6648d11..5074d5a 100644 --- a/node_modules/node-txstatsd/package.json +++ b/node_modules/node-txstatsd/package.json @@ -43,5 +43,7 @@ "tarball": "http://registry.npmjs.org/node-txstatsd/-/node-txstatsd-0.1.5.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/node-txstatsd/-/node-txstatsd-0.1.5.tgz" + "_resolved": "https://registry.npmjs.org/node-txstatsd/-/node-txstatsd-0.1.5.tgz", + "readme": "ERROR: No README data found!", + "homepage": "https://github.com/wikimedia/node-txstatsd" } diff --git a/node_modules/path/package.json b/node_modules/path/package.json index 084ec9e..d6788f2 100644 --- a/node_modules/path/package.json +++ b/node_modules/path/package.json @@ -43,5 +43,9 @@ "scripts": {}, "_shasum": "380c68d01273e43f9368d7ad50fee5e3e8d477f0", "_resolved": "https://registry.npmjs.org/path/-/path-0.4.9.tgz", - "_from": "path@0.4.9" + "_from": "path@0.4.9", + "bugs": { + "url": "https://github.com/coolaj86/nodejs-libs-4-browser/issues" + }, + "readme": "ERROR: No README data found!" } diff --git a/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/inherits/package.json b/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/inherits/package.json index 15d6b42..235833b 100644 --- a/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/inherits/package.json +++ b/node_modules/request/node_modules/bl/node_modules/readable-stream/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 <2.1.0", + "_from": "inherits@>=2.0.0 <3.0.0", "_npmVersion": "1.3.8", "_npmUser": { "name": "isaacs", diff --git a/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json b/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json index cbafd00..3324a13 100644 --- a/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json +++ b/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json @@ -33,8 +33,8 @@ "scripts": {}, "directories": {}, "_shasum": "d4b1f43a93e8296dfe02694f4680bc37a313c73f", - "_from": "delayed-stream@0.0.5", "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "_from": "delayed-stream@0.0.5", "bugs": { "url": "https://github.com/felixge/node-delayed-stream/issues" }, 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 ad8294e..8c68193 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 @@ -53,8 +53,8 @@ ], "directories": {}, "_shasum": "559be18376d08a4ec4dbe80877d27818639b2df7", - "_from": "asn1@0.1.11", "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "_from": "asn1@0.1.11", "bugs": { "url": "https://github.com/mcavage/node-asn1/issues" }, diff --git a/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json b/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json index 2d6990c..30321c9 100644 --- a/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json +++ b/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json @@ -33,8 +33,8 @@ ], "directories": {}, "_shasum": "82c18c2461f74114ef16c135224ad0b9144ca12f", - "_from": "ctype@0.5.3", "_resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "_from": "ctype@0.5.3", "bugs": { "url": "https://github.com/rmustacc/node-ctype/issues" }, diff --git a/src b/src index 6152c80..b32713b 160000 --- a/src +++ b/src -Subproject commit 6152c80c5ca28022ac0e4aed0003139e6ebf6efe +Subproject commit b32713ba196a25a763eb65cbcff24e93bd1a7ede -- To view, visit https://gerrit.wikimedia.org/r/198648 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I601f005da53d845194280d9026b21031ef8e938c Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/citoid/deploy Gerrit-Branch: master Gerrit-Owner: Mobrovac <mobro...@wikimedia.org> Gerrit-Reviewer: Mobrovac <mobro...@wikimedia.org> Gerrit-Reviewer: Mvolz <mv...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits