Files
Gainsight/Scripts/node_modules/urlpattern-polyfill/dist/urlpattern.js

2 lines
16 KiB
JavaScript
Raw Normal View History

var k=class{type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(t,r,n,o,c,l){this.type=t,this.name=r,this.prefix=n,this.value=o,this.suffix=c,this.modifier=l}hasCustomName(){return this.name!==""&&typeof this.name!="number"}},Pe=/[$_\p{ID_Start}]/u,Se=/[$_\u200C\u200D\p{ID_Continue}]/u,M=".*";function ke(e,t){return(t?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(e)}function v(e,t=!1){let r=[],n=0;for(;n<e.length;){let o=e[n],c=function(l){if(!t)throw new TypeError(l);r.push({type:"INVALID_CHAR",index:n,value:e[n++]})};if(o==="*"){r.push({type:"ASTERISK",index:n,value:e[n++]});continue}if(o==="+"||o==="?"){r.push({type:"OTHER_MODIFIER",index:n,value:e[n++]});continue}if(o==="\\"){r.push({type:"ESCAPED_CHAR",index:n++,value:e[n++]});continue}if(o==="{"){r.push({type:"OPEN",index:n,value:e[n++]});continue}if(o==="}"){r.push({type:"CLOSE",index:n,value:e[n++]});continue}if(o===":"){let l="",s=n+1;for(;s<e.length;){let i=e.substr(s,1);if(s===n+1&&Pe.test(i)||s!==n+1&&Se.test(i)){l+=e[s++];continue}break}if(!l){c(`Missing parameter name at ${n}`);continue}r.push({type:"NAME",index:n,value:l}),n=s;continue}if(o==="("){let l=1,s="",i=n+1,a=!1;if(e[i]==="?"){c(`Pattern cannot start with "?" at ${i}`);continue}for(;i<e.length;){if(!ke(e[i],!1)){c(`Invalid character '${e[i]}' at ${i}.`),a=!0;break}if(e[i]==="\\"){s+=e[i++]+e[i++];continue}if(e[i]===")"){if(l--,l===0){i++;break}}else if(e[i]==="("&&(l++,e[i+1]!=="?")){c(`Capturing groups are not allowed at ${i}`),a=!0;break}s+=e[i++]}if(a)continue;if(l){c(`Unbalanced pattern at ${n}`);continue}if(!s){c(`Missing pattern at ${n}`);continue}r.push({type:"REGEX",index:n,value:s}),n=i;continue}r.push({type:"CHAR",index:n,value:e[n++]})}return r.push({type:"END",index:n,value:""}),r}function D(e,t={}){let r=v(e);t.delimiter??="/#?",t.prefixes??="./";let n=`[^${x(t.delimiter)}]+?`,o=[],c=0,l=0,s="",i=new Set,a=f=>{if(l<r.length&&r[l].type===f)return r[l++].value},h=()=>a("OTHER_MODIFIER")??a("ASTERISK"),p=f=>{let u=a(f);if(u!==void 0)return u;let{type:d,index:T}=r[l];throw new TypeError(`Unexpected ${d} at ${T}, expected ${f}`)},O=()=>{let f="",u;for(;u=a("CHAR")??a("ESCAPED_CHAR");)f+=u;return f},xe=f=>f,L=t.encodePart||xe,I="",H=f=>{I+=f},$=()=>{I.length&&(o.push(new k(3,"","",L(I),"",3)),I="")},G=(f,u,d,T,Y)=>{let g=3;switch(Y){case"?":g=1;break;case"*":g=0;break;case"+":g=2;break}if(!u&&!d&&g===3){H(f);return}if($(),!u&&!d){if(!f)return;o.push(new k(3,"","",L(f),"",g));return}let m;d?d==="*"?m=M:m=d:m=n;let R=2;m===n?(R=1,m=""):m===M&&(R=0,m="");let S;if(u?S=u:d&&(S=c++),i.has(S))throw new TypeError(`Duplicate name '${S}'.`);i.add(S),o.push(new k(R,S,L(f),m,L(T),g))};for(;l<r.length;){let f=a("CHAR"),u=a("NAME"),d=a("REGEX");if(!u&&!d&&(d=a("ASTERISK")),u||d){let g=f??"";t.prefixes.indexOf(g)===-1&&(H(g),g=""),$();let m=h();G(g,u,d,"",m);continue}let T=f??a("ESCAPED_CHAR");if(T){H(T);continue}if(a("OPEN")){let g=O(),m=a("NAME"),R=a("REGEX");!m&&!R&&(R=a("ASTERISK"));let S=O();p("CLOSE");let be=h();G(g,m,R,S,be);continue}$(),p("END")}return o}function x(e){return e.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}function X(e){return e&&e.ignoreCase?"ui":"u"}function Z(e,t,r){return F(D(e,r),t,r)}function y(e){switch(e){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}function F(e,t,r={}){r.delimiter??="/#?",r.prefixes??="./",r.sensitive??=!1,r.strict??=!1,r.end??=!0,r.start??=!0,r.endsWith="";let n=r.start?"^":"";for(let s of e){if(s.type===3){s.modifier===3?n+=x(s.value):n+=`(?:${x(s.value)})${y(s.modifier)}`;continue}t&&t.push(s.name);let i=`[^${x(r.delimiter)}]+?`,a=s.value;if(s.type===1?a=i:s.type===0&&(a=M),!s.prefix.length&&!s.suffix.length){s.modifier===3||s.modifier===1?n+=`(${a})${y(s.modifier)}`:n+=`((?:${a})${y(s.modifier)})`;continue}if(s.modifier===3||s.modifier===1){n+=`(?:${x(s.prefix)}(${a})${x(s.suffix)})`,n+=y(s.modifier);continue}n+=`(?:${x(s.prefix)}`,n+=`((?:${a})(?:`,n+=x(s.suffix),n+=x(s.prefix),n+=`(?:${a}))*)${x(s.suffix)})`,s.modifier===0&&(n+="?")}let o=`[${x(r.endsWith)}]|$`,c=`[${x(r.delimiter)}]`;if(r.end)return r.strict||(n+=`${c}?`)