Module 353719

3,157 characters · in no known chunk
Dependencies
Required by (3)
Lazily required by (0)none
Requires (1)
Lazily requires (0)none
Source Raw
function(e,t,n){var r=n(271434);e.exports=g,e.exports.parse=s,e.exports.compile=a,e.exports.tokensToFunction=u,e.exports.tokensToRegExp=E;var i=RegExp("(\\\\.)|([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))","g");function s(e,t){for(var n,r=[],s=0,a=0,o="",l=t&&t.delimiter||"/";null!=(n=i.exec(e));){var u=n[0],_=n[1],f=n.index;if(o+=e.slice(a,f),a=f+u.length,_){o+=_[1];continue}var p=e[a],h=n[2],m=n[3],E=n[4],g=n[5],A=n[6],I=n[7];o&&(r.push(o),o="");var T=null!=h&&null!=p&&p!==h,S="+"===A||"*"===A,y="?"===A||"*"===A,v=n[2]||l,N=E||g;r.push({name:m||s++,prefix:h||"",delimiter:v,optional:y,repeat:S,partial:T,asterisk:!!I,pattern:N?d(N):I?".*":"[^"+c(v)+"]+?"})}return a<e.length&&(o+=e.substr(a)),o&&r.push(o),r}function a(e,t){return u(s(e,t))}function o(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function l(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function u(e){for(var t=Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=RegExp("^(?:"+e[n].pattern+")$"));return function(n,i){for(var s="",a=n||{},u=(i||{}).pretty?o:encodeURIComponent,c=0;c<e.length;c++){var d,_=e[c];if("string"==typeof _){s+=_;continue}var f=a[_.name];if(null==f)if(_.optional){_.partial&&(s+=_.prefix);continue}else throw TypeError('Expected "'+_.name+'" to be defined');if(r(f)){if(!_.repeat)throw TypeError('Expected "'+_.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length)if(_.optional)continue;else throw TypeError('Expected "'+_.name+'" to not be empty');for(var p=0;p<f.length;p++){if(d=u(f[p]),!t[c].test(d))throw TypeError('Expected all "'+_.name+'" to match "'+_.pattern+'", but received `'+JSON.stringify(d)+"`");s+=(0===p?_.prefix:_.delimiter)+d}continue}if(d=_.asterisk?l(f):u(f),!t[c].test(d))throw TypeError('Expected "'+_.name+'" to match "'+_.pattern+'", but received "'+d+'"');s+=_.prefix+d}return s}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function d(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function _(e,t){return e.keys=t,e}function f(e){return e.sensitive?"":"i"}function p(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return _(e,t)}function h(e,t,n){for(var r=[],i=0;i<e.length;i++)r.push(g(e[i],t,n).source);return _(RegExp("(?:"+r.join("|")+")",f(n)),t)}function m(e,t,n){return E(s(e,n),t,n)}function E(e,t,n){r(t)||(n=t||n,t=[]);for(var i=(n=n||{}).strict,s=!1!==n.end,a="",o=0;o<e.length;o++){var l=e[o];if("string"==typeof l)a+=c(l);else{var u=c(l.prefix),d="(?:"+l.pattern+")";t.push(l),l.repeat&&(d+="(?:"+u+d+")*"),a+=d=l.optional?l.partial?u+"("+d+")?":"(?:"+u+"("+d+"))?":u+"("+d+")"}}var p=c(n.delimiter||"/"),h=a.slice(-p.length)===p;return i||(a=(h?a.slice(0,-p.length):a)+"(?:"+p+"(?=$))?"),s?a+="$":a+=i&&h?"":"(?="+p+"|$)",_(RegExp("^"+a,f(n)),t)}function g(e,t,n){return(r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp)?p(e,t):r(e)?h(e,t,n):m(e,t,n)}}