Files

Return to Package Diff Home.
Brought to you by Intrinsic.

Package Diff: url-parse @ 1.4.4 .. 1.4.7

dist/url-parse.js

@@ -4,8 +4,20 @@
var required = require('requires-port')
, qs = require('querystringify')
+ , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//
, protocolre = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i
- , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//;
+ , whitespace = '[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]'
+ , left = new RegExp('^'+ whitespace +'+');
+
+/**
+ * Trim a given string.
+ *
+ * @param {String} str String to trim.
+ * @public
+ */
+function trimLeft(str) {
+ return (str ? str : '').toString().replace(left, '');
+}
/**
* These are the parse rules for the URL parser, it informs the parser
@@ -104,6 +116,7 @@
* @private
*/
function extractProtocol(address) {
+ address = trimLeft(address);
var match = protocolre.exec(address);
return {
@@ -122,6 +135,8 @@
* @private
*/
function resolve(relative, base) {
+ if (relative === '') return base;
+
var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))
, i = path.length
, last = path[i - 1]
@@ -162,6 +177,8 @@
* @private
*/
function Url(address, location, parser) {
+ address = trimLeft(address);
+
if (!(this instanceof Url)) {
return new Url(address, location, parser);
}
@@ -429,6 +446,7 @@
//
Url.extractProtocol = extractProtocol;
Url.location = lolcation;
+Url.trimLeft = trimLeft;
Url.qs = qs;
module.exports = Url;

dist/url-parse.min.js

@@ -1 +1 @@
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).URLParse=e()}}(function(){return function s(a,i,p){function f(t,e){if(!i[t]){if(!a[t]){var o="function"==typeof require&&require;if(!e&&o)return o(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var n=i[t]={exports:{}};a[t][0].call(n.exports,function(e){return f(a[t][1][e]||e)},n,n.exports,s,a,i,p)}return i[t].exports}for(var c="function"==typeof require&&require,e=0;e<p.length;e++)f(p[e]);return f}({1:[function(e,t,o){(function(s){"use strict";var h=e("requires-port"),d=e("querystringify"),o=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i,a=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,y=[["#","hash"],["?","query"],function(e){return e.replace("\\","/")},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],i={hash:1,query:1};function m(e){var t,o=("undefined"!=typeof window?window:void 0!==s?s:"undefined"!=typeof self?self:{}).location||{},r={},n=typeof(e=e||o);if("blob:"===e.protocol)r=new g(unescape(e.pathname),{});else if("string"===n)for(t in r=new g(e,{}),i)delete r[t];else if("object"===n){for(t in e)t in i||(r[t]=e[t]);void 0===r.slashes&&(r.slashes=a.test(e.href))}return r}function w(e){var t=o.exec(e);return{protocol:t[1]?t[1].toLowerCase():"",slashes:!!t[2],rest:t[3]}}function g(e,t,o){if(!(this instanceof g))return new g(e,t,o);var r,n,s,a,i,p,f=y.slice(),c=typeof t,u=this,l=0;for("object"!==c&&"string"!==c&&(o=t,t=null),o&&"function"!=typeof o&&(o=d.parse),t=m(t),r=!(n=w(e||"")).protocol&&!n.slashes,u.slashes=n.slashes||r&&t.slashes,u.protocol=n.protocol||t.protocol||"",e=n.rest,n.slashes||(f[3]=[/(.*)/,"pathname"]);l<f.length;l++)"function"!=typeof(a=f[l])?(s=a[0],p=a[1],s!=s?u[p]=e:"string"==typeof s?~(i=e.indexOf(s))&&("number"==typeof a[2]?(u[p]=e.slice(0,i),e=e.slice(i+a[2])):(u[p]=e.slice(i),e=e.slice(0,i))):(i=s.exec(e))&&(u[p]=i[1],e=e.slice(0,i.index)),u[p]=u[p]||r&&a[3]&&t[p]||"",a[4]&&(u[p]=u[p].toLowerCase())):e=a(e);o&&(u.query=o(u.query)),r&&t.slashes&&"/"!==u.pathname.charAt(0)&&(""!==u.pathname||""!==t.pathname)&&(u.pathname=function(e,t){for(var o=(t||"/").split("/").slice(0,-1).concat(e.split("/")),r=o.length,n=o[r-1],s=!1,a=0;r--;)"."===o[r]?o.splice(r,1):".."===o[r]?(o.splice(r,1),a++):a&&(0===r&&(s=!0),o.splice(r,1),a--);return s&&o.unshift(""),"."!==n&&".."!==n||o.push(""),o.join("/")}(u.pathname,t.pathname)),h(u.port,u.protocol)||(u.host=u.hostname,u.port=""),u.username=u.password="",u.auth&&(a=u.auth.split(":"),u.username=a[0]||"",u.password=a[1]||""),u.origin=u.protocol&&u.host&&"file:"!==u.protocol?u.protocol+"//"+u.host:"null",u.href=u.toString()}g.prototype={set:function(e,t,o){var r=this;switch(e){case"query":"string"==typeof t&&t.length&&(t=(o||d.parse)(t)),r[e]=t;break;case"port":r[e]=t,h(t,r.protocol)?t&&(r.host=r.hostname+":"+t):(r.host=r.hostname,r[e]="");break;case"hostname":r[e]=t,r.port&&(t+=":"+r.port),r.host=t;break;case"host":r[e]=t,/:\d+$/.test(t)?(t=t.split(":"),r.port=t.pop(),r.hostname=t.join(":")):(r.hostname=t,r.port="");break;case"protocol":r.protocol=t.toLowerCase(),r.slashes=!o;break;case"pathname":case"hash":if(t){var n="pathname"===e?"/":"#";r[e]=t.charAt(0)!==n?n+t:t}else r[e]=t;break;default:r[e]=t}for(var s=0;s<y.length;s++){var a=y[s];a[4]&&(r[a[1]]=r[a[1]].toLowerCase())}return r.origin=r.protocol&&r.host&&"file:"!==r.protocol?r.protocol+"//"+r.host:"null",r.href=r.toString(),r},toString:function(e){e&&"function"==typeof e||(e=d.stringify);var t,o=this,r=o.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var n=r+(o.slashes?"//":"");return o.username&&(n+=o.username,o.password&&(n+=":"+o.password),n+="@"),n+=o.host+o.pathname,(t="object"==typeof o.query?e(o.query):o.query)&&(n+="?"!==t.charAt(0)?"?"+t:t),o.hash&&(n+=o.hash),n}},g.extractProtocol=w,g.location=m,g.qs=d,t.exports=g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{querystringify:2,"requires-port":3}],2:[function(e,t,o){"use strict";var n=Object.prototype.hasOwnProperty;function a(e){return decodeURIComponent(e.replace(/\+/g," "))}o.stringify=function(e,t){t=t||"";var o=[];for(var r in"string"!=typeof t&&(t="?"),e)n.call(e,r)&&o.push(encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return o.length?t+o.join("&"):""},o.parse=function(e){for(var t,o=/([^=?&]+)=?([^&]*)/g,r={};t=o.exec(e);){var n=a(t[1]),s=a(t[2]);n in r||(r[n]=s)}return r}},{}],3:[function(e,t,o){"use strict";t.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},{}]},{},[1])(1)});
\ No newline at end of file
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).URLParse=e()}}(function(){return function s(a,i,u){function f(t,e){if(!i[t]){if(!a[t]){var o="function"==typeof require&&require;if(!e&&o)return o(t,!0);if(p)return p(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var n=i[t]={exports:{}};a[t][0].call(n.exports,function(e){return f(a[t][1][e]||e)},n,n.exports,s,a,i,u)}return i[t].exports}for(var p="function"==typeof require&&require,e=0;e<u.length;e++)f(u[e]);return f}({1:[function(e,r,t){(function(s){"use strict";var h=e("requires-port"),d=e("querystringify"),a=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,o=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i,t=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function y(e){return(e||"").toString().replace(t,"")}var m=[["#","hash"],["?","query"],function(e){return e.replace("\\","/")},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],i={hash:1,query:1};function w(e){var t,o=("undefined"!=typeof window?window:void 0!==s?s:"undefined"!=typeof self?self:{}).location||{},r={},n=typeof(e=e||o);if("blob:"===e.protocol)r=new v(unescape(e.pathname),{});else if("string"===n)for(t in r=new v(e,{}),i)delete r[t];else if("object"===n){for(t in e)t in i||(r[t]=e[t]);void 0===r.slashes&&(r.slashes=a.test(e.href))}return r}function g(e){e=y(e);var t=o.exec(e);return{protocol:t[1]?t[1].toLowerCase():"",slashes:!!t[2],rest:t[3]}}function v(e,t,o){if(e=y(e),!(this instanceof v))return new v(e,t,o);var r,n,s,a,i,u,f=m.slice(),p=typeof t,c=this,l=0;for("object"!==p&&"string"!==p&&(o=t,t=null),o&&"function"!=typeof o&&(o=d.parse),t=w(t),r=!(n=g(e||"")).protocol&&!n.slashes,c.slashes=n.slashes||r&&t.slashes,c.protocol=n.protocol||t.protocol||"",e=n.rest,n.slashes||(f[3]=[/(.*)/,"pathname"]);l<f.length;l++)"function"!=typeof(a=f[l])?(s=a[0],u=a[1],s!=s?c[u]=e:"string"==typeof s?~(i=e.indexOf(s))&&("number"==typeof a[2]?(c[u]=e.slice(0,i),e=e.slice(i+a[2])):(c[u]=e.slice(i),e=e.slice(0,i))):(i=s.exec(e))&&(c[u]=i[1],e=e.slice(0,i.index)),c[u]=c[u]||r&&a[3]&&t[u]||"",a[4]&&(c[u]=c[u].toLowerCase())):e=a(e);o&&(c.query=o(c.query)),r&&t.slashes&&"/"!==c.pathname.charAt(0)&&(""!==c.pathname||""!==t.pathname)&&(c.pathname=function(e,t){if(""===e)return t;for(var o=(t||"/").split("/").slice(0,-1).concat(e.split("/")),r=o.length,n=o[r-1],s=!1,a=0;r--;)"."===o[r]?o.splice(r,1):".."===o[r]?(o.splice(r,1),a++):a&&(0===r&&(s=!0),o.splice(r,1),a--);return s&&o.unshift(""),"."!==n&&".."!==n||o.push(""),o.join("/")}(c.pathname,t.pathname)),h(c.port,c.protocol)||(c.host=c.hostname,c.port=""),c.username=c.password="",c.auth&&(a=c.auth.split(":"),c.username=a[0]||"",c.password=a[1]||""),c.origin=c.protocol&&c.host&&"file:"!==c.protocol?c.protocol+"//"+c.host:"null",c.href=c.toString()}v.prototype={set:function(e,t,o){var r=this;switch(e){case"query":"string"==typeof t&&t.length&&(t=(o||d.parse)(t)),r[e]=t;break;case"port":r[e]=t,h(t,r.protocol)?t&&(r.host=r.hostname+":"+t):(r.host=r.hostname,r[e]="");break;case"hostname":r[e]=t,r.port&&(t+=":"+r.port),r.host=t;break;case"host":r[e]=t,/:\d+$/.test(t)?(t=t.split(":"),r.port=t.pop(),r.hostname=t.join(":")):(r.hostname=t,r.port="");break;case"protocol":r.protocol=t.toLowerCase(),r.slashes=!o;break;case"pathname":case"hash":if(t){var n="pathname"===e?"/":"#";r[e]=t.charAt(0)!==n?n+t:t}else r[e]=t;break;default:r[e]=t}for(var s=0;s<m.length;s++){var a=m[s];a[4]&&(r[a[1]]=r[a[1]].toLowerCase())}return r.origin=r.protocol&&r.host&&"file:"!==r.protocol?r.protocol+"//"+r.host:"null",r.href=r.toString(),r},toString:function(e){e&&"function"==typeof e||(e=d.stringify);var t,o=this,r=o.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var n=r+(o.slashes?"//":"");return o.username&&(n+=o.username,o.password&&(n+=":"+o.password),n+="@"),n+=o.host+o.pathname,(t="object"==typeof o.query?e(o.query):o.query)&&(n+="?"!==t.charAt(0)?"?"+t:t),o.hash&&(n+=o.hash),n}},v.extractProtocol=g,v.location=w,v.trimLeft=y,v.qs=d,r.exports=v}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{querystringify:2,"requires-port":3}],2:[function(e,t,o){"use strict";var n=Object.prototype.hasOwnProperty;function a(e){return decodeURIComponent(e.replace(/\+/g," "))}o.stringify=function(e,t){t=t||"";var o=[];for(var r in"string"!=typeof t&&(t="?"),e)n.call(e,r)&&o.push(encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return o.length?t+o.join("&"):""},o.parse=function(e){for(var t,o=/([^=?&]+)=?([^&]*)/g,r={};t=o.exec(e);){var n=a(t[1]),s=a(t[2]);n in r||(r[n]=s)}return r}},{}],3:[function(e,t,o){"use strict";t.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},{}]},{},[1])(1)});
\ No newline at end of file

dist/url-parse.min.js.map

@@ -1 +1 @@
-{"version":3,"sources":["dist/url-parse.js"],"names":["f","exports","module","define","amd","window","global","self","this","URLParse","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","required","qs","protocolre","slashes","rules","address","replace","NaN","undefined","ignore","hash","query","lolcation","loc","key","location","finaldestination","type","protocol","Url","unescape","pathname","test","href","extractProtocol","match","exec","toLowerCase","rest","parser","relative","extracted","parse","instruction","index","instructions","slice","url","indexOf","charAt","base","path","split","concat","last","unshift","up","splice","push","join","resolve","port","host","hostname","username","password","auth","origin","toString","prototype","set","part","value","fn","pop","char","ins","stringify","result","querystringify","requires-port","2","has","Object","hasOwnProperty","decode","input","decodeURIComponent","obj","prefix","pairs","encodeURIComponent","3"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"sources":["dist/url-parse.js"],"names":["f","exports","module","define","amd","window","global","self","this","URLParse","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","required","qs","slashes","protocolre","left","RegExp","trimLeft","str","toString","replace","rules","address","NaN","undefined","ignore","hash","query","lolcation","loc","key","location","finaldestination","type","protocol","Url","unescape","pathname","test","href","extractProtocol","match","exec","toLowerCase","rest","parser","relative","extracted","parse","instruction","index","instructions","slice","url","indexOf","charAt","base","path","split","concat","last","unshift","up","splice","push","join","resolve","port","host","hostname","username","password","auth","origin","prototype","set","part","value","fn","pop","char","ins","stringify","result","querystringify","requires-port","2","has","Object","hasOwnProperty","decode","input","decodeURIComponent","obj","prefix","pairs","encodeURIComponent","3"],"mappings":"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"}
\ No newline at end of file

index.js

@@ -2,8 +2,20 @@
var required = require('requires-port')
, qs = require('querystringify')
+ , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//
, protocolre = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i
- , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//;
+ , whitespace = '[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]'
+ , left = new RegExp('^'+ whitespace +'+');
+
+/**
+ * Trim a given string.
+ *
+ * @param {String} str String to trim.
+ * @public
+ */
+function trimLeft(str) {
+ return (str ? str : '').toString().replace(left, '');
+}
/**
* These are the parse rules for the URL parser, it informs the parser
@@ -102,6 +114,7 @@
* @private
*/
function extractProtocol(address) {
+ address = trimLeft(address);
var match = protocolre.exec(address);
return {
@@ -120,6 +133,8 @@
* @private
*/
function resolve(relative, base) {
+ if (relative === '') return base;
+
var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))
, i = path.length
, last = path[i - 1]
@@ -160,6 +175,8 @@
* @private
*/
function Url(address, location, parser) {
+ address = trimLeft(address);
+
if (!(this instanceof Url)) {
return new Url(address, location, parser);
}
@@ -427,6 +444,7 @@
//
Url.extractProtocol = extractProtocol;
Url.location = lolcation;
+Url.trimLeft = trimLeft;
Url.qs = qs;
module.exports = Url;

package.json

@@ -1,6 +1,6 @@
{
"name": "url-parse",
- "version": "1.4.4",
+ "version": "1.4.7",
"description": "Small footprint URL parser that works seamlessly across Node.js and browser environments",
"main": "index.js",
"scripts": {
@@ -33,17 +33,17 @@
"author": "Arnout Kazemier",
"license": "MIT",
"dependencies": {
- "querystringify": "^2.0.0",
+ "querystringify": "^2.1.1",
"requires-port": "^1.0.0"
},
"devDependencies": {
- "assume": "^1.5.2",
- "browserify": "^16.2.0",
- "mocha": "^5.1.1",
- "nyc": "^12.0.1",
- "pre-commit": "^1.2.0",
+ "assume": "^2.2.0",
+ "browserify": "^16.2.3",
+ "mocha": "^6.1.4",
+ "nyc": "^14.0.0",
+ "pre-commit": "^1.2.2",
"sauce-browsers": "^2.0.0",
"sauce-test": "^1.3.3",
- "uglify-js": "^3.3.21"
+ "uglify-js": "^3.5.7"
}
}