summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/url/parse_url.js.map
blob: 865fc8fba5a3fe203160a92a5493c8848c5777ba (plain) (blame)
1
{"version":3,"sources":["../../../src/php/url/parse_url.js"],"names":["module","exports","parse_url","str","component","query","mode","require","undefined","key","parser","php","RegExp","join","strict","loose","m","exec","uri","i","replace","toLowerCase","name","$0","$1","$2","source"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAoBC,GAApB,EAAyBC,SAAzB,EAAoC;AAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,KAAJ;;AAEA,MAAIC,OAAO,CAAC,OAAOC,OAAP,KAAmB,WAAnB,GAAiCA,QAAQ,iBAAR,EAA2B,wBAA3B,CAAjC,GAAwFC,SAAzF,KAAuG,KAAlH;;AAEA,MAAIC,MAAM,CACR,QADQ,EAER,QAFQ,EAGR,WAHQ,EAIR,UAJQ,EAKR,MALQ,EAMR,MANQ,EAOR,MAPQ,EAQR,MARQ,EASR,UATQ,EAUR,MAVQ,EAWR,WAXQ,EAYR,MAZQ,EAaR,OAbQ,EAcR,UAdQ,CAAV;;AAiBA;AACA,MAAIC,SAAS;AACXC,SAAK,IAAIC,MAAJ,CAAW,CACd,oBADc,EAEd,gFAFc,EAGd,IAHc,EAId,oEAJc,EAKdC,IALc,CAKT,EALS,CAAX,CADM;AAOXC,YAAQ,IAAIF,MAAJ,CAAW,CACjB,oBADiB,EAEjB,wEAFiB,EAGjB,0DAHiB,EAIjBC,IAJiB,CAIZ,EAJY,CAAX,CAPG;AAYXE,WAAO,IAAIH,MAAJ,CAAW,CAChB,0CADgB,EAEhB,iBAFgB,EAGhB,6DAHgB,EAIhB,wEAJgB,EAKhB,4BALgB,EAMhBC,IANgB,CAMX,EANW,CAAX;AAZI,GAAb;;AAqBA,MAAIG,IAAIN,OAAOJ,IAAP,EAAaW,IAAb,CAAkBd,GAAlB,CAAR;AACA,MAAIe,MAAM,EAAV;AACA,MAAIC,IAAI,EAAR;;AAEA,SAAOA,GAAP,EAAY;AACV,QAAIH,EAAEG,CAAF,CAAJ,EAAU;AACRD,UAAIT,IAAIU,CAAJ,CAAJ,IAAcH,EAAEG,CAAF,CAAd;AACD;AACF;;AAED,MAAIf,SAAJ,EAAe;AACb,WAAOc,IAAId,UAAUgB,OAAV,CAAkB,UAAlB,EAA8B,EAA9B,EAAkCC,WAAlC,EAAJ,CAAP;AACD;;AAED,MAAIf,SAAS,KAAb,EAAoB;AAClB,QAAIgB,OAAO,CAAC,OAAOf,OAAP,KAAmB,WAAnB,GAAiCA,QAAQ,iBAAR,EAA2B,4BAA3B,CAAjC,GAA4FC,SAA7F,KAA2G,UAAtH;AACAE,aAAS,2BAAT;AACAQ,QAAII,IAAJ,IAAY,EAAZ;AACAjB,YAAQa,IAAIT,IAAI,EAAJ,CAAJ,KAAgB,EAAxB;AACAJ,UAAMe,OAAN,CAAcV,MAAd,EAAsB,UAAUa,EAAV,EAAcC,EAAd,EAAkBC,EAAlB,EAAsB;AAC1C,UAAID,EAAJ,EAAQ;AACNN,YAAII,IAAJ,EAAUE,EAAV,IAAgBC,EAAhB;AACD;AACF,KAJD;AAKD;;AAED,SAAOP,IAAIQ,MAAX;AACA,SAAOR,GAAP;AACD,CAhGD","file":"parse_url.js","sourcesContent":["module.exports = function parse_url (str, component) { // eslint-disable-line camelcase\n  //       discuss at: http://locutus.io/php/parse_url/\n  //      original by: Steven Levithan (http://blog.stevenlevithan.com)\n  // reimplemented by: Brett Zamir (http://brett-zamir.me)\n  //         input by: Lorenzo Pisani\n  //         input by: Tony\n  //      improved by: Brett Zamir (http://brett-zamir.me)\n  //           note 1: original by http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js\n  //           note 1: blog post at http://blog.stevenlevithan.com/archives/parseuri\n  //           note 1: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js\n  //           note 1: Does not replace invalid characters with '_' as in PHP,\n  //           note 1: nor does it return false with\n  //           note 1: a seriously malformed URL.\n  //           note 1: Besides function name, is essentially the same as parseUri as\n  //           note 1: well as our allowing\n  //           note 1: an extra slash after the scheme/protocol (to allow file:/// as in PHP)\n  //        example 1: parse_url('http://user:pass@host/path?a=v#a')\n  //        returns 1: {scheme: 'http', host: 'host', user: 'user', pass: 'pass', path: '/path', query: 'a=v', fragment: 'a'}\n  //        example 2: parse_url('http://en.wikipedia.org/wiki/%22@%22_%28album%29')\n  //        returns 2: {scheme: 'http', host: 'en.wikipedia.org', path: '/wiki/%22@%22_%28album%29'}\n  //        example 3: parse_url('https://host.domain.tld/a@b.c/folder')\n  //        returns 3: {scheme: 'https', host: 'host.domain.tld', path: '/a@b.c/folder'}\n  //        example 4: parse_url('https://gooduser:secretpassword@www.example.com/a@b.c/folder?foo=bar')\n  //        returns 4: { scheme: 'https', host: 'www.example.com', path: '/a@b.c/folder', query: 'foo=bar', user: 'gooduser', pass: 'secretpassword' }\n\n  var query\n\n  var mode = (typeof require !== 'undefined' ? require('../info/ini_get')('locutus.parse_url.mode') : undefined) || 'php'\n\n  var key = [\n    'source',\n    'scheme',\n    'authority',\n    'userInfo',\n    'user',\n    'pass',\n    'host',\n    'port',\n    'relative',\n    'path',\n    'directory',\n    'file',\n    'query',\n    'fragment'\n  ]\n\n  // For loose we added one optional slash to post-scheme to catch file:/// (should restrict this)\n  var parser = {\n    php: new RegExp([\n      '(?:([^:\\\\/?#]+):)?',\n      '(?:\\\\/\\\\/()(?:(?:()(?:([^:@\\\\/]*):?([^:@\\\\/]*))?@)?([^:\\\\/?#]*)(?::(\\\\d*))?))?',\n      '()',\n      '(?:(()(?:(?:[^?#\\\\/]*\\\\/)*)()(?:[^?#]*))(?:\\\\?([^#]*))?(?:#(.*))?)'\n    ].join('')),\n    strict: new RegExp([\n      '(?:([^:\\\\/?#]+):)?',\n      '(?:\\\\/\\\\/((?:(([^:@\\\\/]*):?([^:@\\\\/]*))?@)?([^:\\\\/?#]*)(?::(\\\\d*))?))?',\n      '((((?:[^?#\\\\/]*\\\\/)*)([^?#]*))(?:\\\\?([^#]*))?(?:#(.*))?)'\n    ].join('')),\n    loose: new RegExp([\n      '(?:(?![^:@]+:[^:@\\\\/]*@)([^:\\\\/?#.]+):)?',\n      '(?:\\\\/\\\\/\\\\/?)?',\n      '((?:(([^:@\\\\/]*):?([^:@\\\\/]*))?@)?([^:\\\\/?#]*)(?::(\\\\d*))?)',\n      '(((\\\\/(?:[^?#](?![^?#\\\\/]*\\\\.[^?#\\\\/.]+(?:[?#]|$)))*\\\\/?)?([^?#\\\\/]*))',\n      '(?:\\\\?([^#]*))?(?:#(.*))?)'\n    ].join(''))\n  }\n\n  var m = parser[mode].exec(str)\n  var uri = {}\n  var i = 14\n\n  while (i--) {\n    if (m[i]) {\n      uri[key[i]] = m[i]\n    }\n  }\n\n  if (component) {\n    return uri[component.replace('PHP_URL_', '').toLowerCase()]\n  }\n\n  if (mode !== 'php') {\n    var name = (typeof require !== 'undefined' ? require('../info/ini_get')('locutus.parse_url.queryKey') : undefined) || 'queryKey'\n    parser = /(?:^|&)([^&=]*)=?([^&]*)/g\n    uri[name] = {}\n    query = uri[key[12]] || ''\n    query.replace(parser, function ($0, $1, $2) {\n      if ($1) {\n        uri[name][$1] = $2\n      }\n    })\n  }\n\n  delete uri.source\n  return uri\n}\n"]}