importmap-rails 1.0.2 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +47 -7
- data/app/assets/javascripts/es-module-shims.js +468 -337
- data/app/assets/javascripts/es-module-shims.js.map +1 -1
- data/app/assets/javascripts/es-module-shims.min.js +2 -2
- data/app/helpers/importmap/importmap_tags_helper.rb +11 -11
- data/lib/importmap/commands.rb +65 -1
- data/lib/importmap/engine.rb +7 -5
- data/lib/importmap/map.rb +19 -24
- data/lib/importmap/npm.rb +122 -0
- data/lib/importmap/packager.rb +2 -2
- data/lib/importmap/version.rb +1 -1
- metadata +4 -3
@@ -1,3 +1,3 @@
|
|
1
|
-
(function(){const e=navigator.userAgent.match(/(Edge|Safari)\/\d+\.\d+/);const r=e&&"Edge"===e[1];const t=e&&"Safari"===e[1];let s;function createBlob(e,r="text/javascript"){return URL.createObjectURL(new Blob([e],{type:r}))}const noop=()=>{};const a=document.querySelector("base[href]");a&&(s=a.href);if(!s&&"undefined"!==typeof location){s=location.href.split("#")[0].split("?")[0];const e=s.lastIndexOf("/");-1!==e&&(s=s.slice(0,e+1))}function isURL(e){try{new URL(e);return true}catch{return false}}const i=/\\/g;function resolveIfNotPlainOrUrl(e,r){r=r&&r.split("#")[0].split("?")[0];-1!==e.indexOf("\\")&&(e=e.replace(i,"/"));if("/"===e[0]&&"/"===e[1])return r.slice(0,r.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const t=r.slice(0,r.indexOf(":")+1);let s;if("/"===r[t.length+1])if("file:"!==t){s=r.slice(t.length+2);s=s.slice(s.indexOf("/")+1)}else s=r.slice(8);else s=r.slice(t.length+("/"===r[t.length]));if("/"===e[0])return r.slice(0,r.length-s.length-1)+e;const a=s.slice(0,s.lastIndexOf("/")+1)+e;const i=[];let c=-1;for(let e=0;e<a.length;e++)if(-1!==c){if("/"===a[e]){i.push(a.slice(c,e+1));c=-1}}else if("."===a[e])if("."!==a[e+1]||"/"!==a[e+2]&&e+2!==a.length)"/"===a[e+1]||e+1===a.length?e+=1:c=e;else{i.pop();e+=2}else c=e;-1!==c&&i.push(a.slice(c));return r.slice(0,r.length-s.length)+i.join("")}}function resolveUrl(e,r){return resolveIfNotPlainOrUrl(e,r)||(-1!==e.indexOf(":")?e:resolveIfNotPlainOrUrl("./"+e,r))}function resolveAndComposePackages(e,r,t,s){for(let a in e){const i=resolveIfNotPlainOrUrl(a,t)||a;if(r[i])throw Error(`Rejected map override "${i}" from ${r[i]} to ${e[i]}.`);let c=e[a];if("string"!==typeof c)continue;const f=resolveImportMap(s,resolveIfNotPlainOrUrl(c,t)||c,t);f?r[i]=f:console.warn(`Mapping "${a}" -> "${e[a]}" does not resolve`)}}function resolveAndComposeImportMap(e,r,t){const s={imports:Object.assign({},t.imports),scopes:Object.assign({},t.scopes)};e.imports&&resolveAndComposePackages(e.imports,s.imports,r,t);if(e.scopes)for(let a in e.scopes){const i=resolveUrl(a,r);resolveAndComposePackages(e.scopes[a],s.scopes[i]||(s.scopes[i]={}),r,t)}return s}function getMatch(e,r){if(r[e])return e;let t=e.length;do{const s=e.slice(0,t+1);if(s in r)return s}while(-1!==(t=e.lastIndexOf("/",t-1)))}function applyPackages(e,r){const t=getMatch(e,r);if(t){const s=r[t];if(null===s)return;return s+e.slice(t.length)}}function resolveImportMap(e,r,t){let s=t&&getMatch(t,e.scopes);while(s){const t=applyPackages(r,e.scopes[s]);if(t)return t;s=getMatch(s.slice(0,s.lastIndexOf("/")),e.scopes)}return applyPackages(r,e.imports)||-1!==r.indexOf(":")&&r}const c=document.querySelector("script[type=esms-options]");const f=c?JSON.parse(c.innerHTML):self.esmsInitOptions?self.esmsInitOptions:{};let oe=!!f.shimMode;const le=globalHook(oe&&f.resolve);const de=f.skip?new RegExp(f.skip):null;let pe=f.nonce;if(!pe){const e=document.querySelector("script[nonce]");e&&(pe=e.nonce||e.getAttribute("nonce"))}const he=globalHook(f.onerror||noop);const ke=f.onpolyfill?globalHook(f.onpolyfill):()=>console.info('OK: "Uncaught TypeError" module failure has been polyfilled');const{revokeBlobURLs:me,noLoadEventRetriggers:we,enforceIntegrity:ve}=f;const ye=f.fetch?globalHook(f.fetch):fetch;function globalHook(e){return"string"===typeof e?self[e]:e}const ge=Array.isArray(f.polyfillEnable)?f.polyfillEnable:[];const $e=ge.includes("css-modules");const Se=ge.includes("json-modules");function setShimMode(){oe=true}let Ae;window.addEventListener("error",(e=>Ae=e));function dynamicImportScript(e,{errUrl:r=e}={}){Ae=void 0;const t=createBlob(`import*as m from'${e}';self._esmsi=m`);const a=Object.assign(document.createElement("script"),{type:"module",src:t});a.setAttribute("nonce",pe);a.setAttribute("noshim","");const i=new Promise(((e,i)=>{a.addEventListener("error",cb);a.addEventListener("load",cb);function cb(c){document.head.removeChild(a);if(self._esmsi){e(self._esmsi,s);self._esmsi=void 0}else{i(!(c instanceof Event)&&c||Ae&&Ae.error||new Error(`Error loading or executing the graph of ${r} (check the console for ${t}).`));Ae=void 0}}}));document.head.appendChild(a);return i}let Ce=dynamicImportScript;const Oe=dynamicImportScript(createBlob("export default u=>import(u)")).then((e=>{e&&(Ce=e.default);return!!e}),noop);let Ie=false;let Le=false;let Ue=false;let Pe=false;let xe=false;const Me=Promise.resolve(Oe).then((e=>{if(e){xe=true;return Promise.all([Ce(createBlob("import.meta")).then((()=>Ue=true),noop),$e&&Ce(createBlob('import"data:text/css,{}"assert{type:"css"}')).then((()=>Le=true),noop),Se&&Ce(createBlob('import"data:text/json,{}"assert{type:"json"}')).then((()=>Ie=true),noop),new Promise((e=>{self._$s=t=>{document.head.removeChild(r);t&&(Pe=true);delete self._$s;e()};const r=document.createElement("iframe");r.style.display="none";document.head.appendChild(r);r.src=createBlob(`<script type=importmap nonce="${pe}">{"imports":{"x":"data:text/javascript,"}}<\/script><script nonce="${pe}">import('x').then(()=>1,()=>0).then(v=>parent._$s(v))<\/script>`,"text/html")}))])}}));let Ee,je,Re,_e=4194304;const Be=1===new Uint8Array(new Uint16Array([1]).buffer)[0];let Fe,Ne,He;function parse(e,r="@"){if(Fe=e,Ne=r,Fe.length>_e||!Ee){for(;Fe.length>_e;)_e*=2;je=new ArrayBuffer(4*_e),Ee=function(e,r,t){"use asm";var s=new e.Int8Array(t),a=new e.Int16Array(t),i=new e.Int32Array(t),c=new e.Uint8Array(t),f=new e.Uint16Array(t),oe=816;function b(e){e=e|0;var r=0,t=0,c=0,le=0,de=0;de=oe;oe=oe+14336|0;le=de;s[589]=1;a[291]=0;a[292]=0;a[293]=-1;i[15]=i[2];s[590]=0;i[14]=0;s[588]=0;i[16]=de+10240;i[17]=de+2048;s[591]=0;e=(i[3]|0)+-2|0;i[18]=e;r=e+(i[12]<<1)|0;i[19]=r;e:while(1){t=e+2|0;i[18]=t;if(e>>>0>=r>>>0){c=18;break}r:do{switch(a[t>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((a[292]|0)==0?R(t)|0:0)?B(e+4|0,120,112,111,114,116)|0:0)?(u(),(s[589]|0)==0):0){c=9;break e}else c=17;break}case 105:{if(R(t)|0?B(e+4|0,109,112,111,114,116)|0:0){k();c=17}else c=17;break}case 59:{c=17;break}case 47:switch(a[e+4>>1]|0){case 47:{G();break r}case 42:{p(1);break r}default:{c=16;break e}}default:{c=16;break e}}}while(0);if((c|0)==17){c=0;i[15]=i[18]}e=i[18]|0;r=i[19]|0}if((c|0)==9){e=i[18]|0;i[15]=e;c=19}else if((c|0)==16){s[589]=0;i[18]=e;c=19}else if((c|0)==18)if(!(s[588]|0)){e=t;c=19}else e=0;do{if((c|0)==19){e:while(1){r=e+2|0;i[18]=r;t=r;if(e>>>0>=(i[19]|0)>>>0){c=75;break}r:do{switch(a[r>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((a[292]|0)==0?R(r)|0:0)?B(e+4|0,120,112,111,114,116)|0:0){u();c=74}else c=74;break}case 105:{if(R(r)|0?B(e+4|0,109,112,111,114,116)|0:0){k();c=74}else c=74;break}case 99:{if((R(r)|0?z(e+4|0,108,97,115,115)|0:0)?Z(a[e+12>>1]|0)|0:0){s[591]=1;c=74}else c=74;break}case 40:{r=i[15]|0;t=i[17]|0;c=a[292]|0;a[292]=c+1<<16>>16;i[t+((c&65535)<<2)>>2]=r;c=74;break}case 41:{e=a[292]|0;if(!(e<<16>>16)){c=36;break e}c=e+-1<<16>>16;a[292]=c;e=i[11]|0;if((e|0)!=0?(i[e+20>>2]|0)==(i[(i[17]|0)+((c&65535)<<2)>>2]|0):0){r=e+4|0;if(!(i[r>>2]|0))i[r>>2]=t;i[e+12>>2]=t;i[11]=0;c=74}else c=74;break}case 123:{c=i[15]|0;t=i[8]|0;e=c;do{if((a[c>>1]|0)==41&(t|0)!=0?(i[t+4>>2]|0)==(c|0):0){r=i[9]|0;i[8]=r;if(!r){i[4]=0;break}else{i[r+28>>2]=0;break}}}while(0);r=a[292]|0;c=r&65535;s[le+c>>0]=s[591]|0;s[591]=0;t=i[17]|0;a[292]=r+1<<16>>16;i[t+(c<<2)>>2]=e;c=74;break}case 125:{e=a[292]|0;if(!(e<<16>>16)){c=49;break e}t=e+-1<<16>>16;a[292]=t;r=a[293]|0;if(e<<16>>16!=r<<16>>16)if(r<<16>>16!=-1&(t&65535)<(r&65535)){c=53;break e}else{c=74;break r}else{t=i[16]|0;c=(a[291]|0)+-1<<16>>16;a[291]=c;a[293]=a[t+((c&65535)<<1)>>1]|0;h();c=74;break r}}case 39:{d(39);c=74;break}case 34:{d(34);c=74;break}case 47:switch(a[e+4>>1]|0){case 47:{G();break r}case 42:{p(1);break r}default:{r=i[15]|0;t=a[r>>1]|0;t:do{if(!(x(t)|0)){switch(t<<16>>16){case 41:if(L(i[(i[17]|0)+(f[292]<<2)>>2]|0)|0){c=71;break t}else{c=68;break t}case 125:break;default:{c=68;break t}}e=f[292]|0;if(!(y(i[(i[17]|0)+(e<<2)>>2]|0)|0)?(s[le+e>>0]|0)==0:0)c=68;else c=71}else switch(t<<16>>16){case 46:if(((a[r+-2>>1]|0)+-48&65535)<10){c=68;break t}else{c=71;break t}case 43:if((a[r+-2>>1]|0)==43){c=68;break t}else{c=71;break t}case 45:if((a[r+-2>>1]|0)==45){c=68;break t}else{c=71;break t}default:{c=71;break t}}}while(0);t:do{if((c|0)==68){c=0;if(!(o(r)|0)){switch(t<<16>>16){case 0:{c=71;break t}case 47:break;default:{e=1;break t}}if(!(s[590]|0))e=1;else c=71}else c=71}}while(0);if((c|0)==71){I();e=0}s[590]=e;c=74;break r}}case 96:{h();c=74;break}default:c=74}}while(0);if((c|0)==74){c=0;i[15]=i[18]}e=i[18]|0}if((c|0)==36){Y();e=0;break}else if((c|0)==49){Y();e=0;break}else if((c|0)==53){Y();e=0;break}else if((c|0)==75){e=(a[293]|0)==-1&(a[292]|0)==0&(s[588]|0)==0;break}}}while(0);oe=de;return e|0}function u(){var e=0,r=0,t=0,c=0,f=0,oe=0;f=i[18]|0;oe=f+12|0;i[18]=oe;r=w(1)|0;e=i[18]|0;if(!((e|0)==(oe|0)?!(S(r)|0):0))c=3;e:do{if((c|0)==3){r:do{switch(r<<16>>16){case 100:{J(e,e+14|0);break e}case 97:{i[18]=e+10;w(1)|0;e=i[18]|0;c=6;break}case 102:{c=6;break}case 99:{if(z(e+2|0,108,97,115,115)|0?(t=e+10|0,F(a[t>>1]|0)|0):0){i[18]=t;f=w(1)|0;oe=i[18]|0;H(f)|0;J(oe,i[18]|0);i[18]=(i[18]|0)+-2;break e}e=e+4|0;i[18]=e;c=13;break}case 108:case 118:{c=13;break}case 123:{i[18]=e+2;e=w(1)|0;t=i[18]|0;while(1){if(_(e)|0){d(e);e=(i[18]|0)+2|0;i[18]=e}else{H(e)|0;e=i[18]|0}w(1)|0;e=g(t,e)|0;if(e<<16>>16==44){i[18]=(i[18]|0)+2;e=w(1)|0}r=t;t=i[18]|0;if(e<<16>>16==125){c=32;break}if((t|0)==(r|0)){c=29;break}if(t>>>0>(i[19]|0)>>>0){c=31;break}}if((c|0)==29){Y();break e}else if((c|0)==31){Y();break e}else if((c|0)==32){i[18]=t+2;c=34;break r}break}case 42:{i[18]=e+2;w(1)|0;c=i[18]|0;g(c,c)|0;c=34;break}default:{}}}while(0);if((c|0)==6){i[18]=e+16;e=w(1)|0;if(e<<16>>16==42){i[18]=(i[18]|0)+2;e=w(1)|0}oe=i[18]|0;H(e)|0;J(oe,i[18]|0);i[18]=(i[18]|0)+-2;break}else if((c|0)==13){e=e+4|0;i[18]=e;s[589]=0;r:while(1){i[18]=e+2;oe=w(1)|0;e=i[18]|0;switch((H(oe)|0)<<16>>16){case 91:case 123:{c=15;break r}default:{}}r=i[18]|0;if((r|0)==(e|0))break e;J(e,r);switch((w(1)|0)<<16>>16){case 61:{c=19;break r}case 44:break;default:{c=20;break r}}e=i[18]|0}if((c|0)==15){i[18]=(i[18]|0)+-2;break}else if((c|0)==19){i[18]=(i[18]|0)+-2;break}else if((c|0)==20){i[18]=(i[18]|0)+-2;break}}else if((c|0)==34)r=w(1)|0;e=i[18]|0;if(r<<16>>16==102?K(e+2|0,114,111,109)|0:0){i[18]=e+8;l(f,w(1)|0);break}i[18]=e+-2}}while(0);return}function k(){var e=0,r=0,t=0,c=0,f=0;f=i[18]|0;r=f+12|0;i[18]=r;e:do{switch((w(1)|0)<<16>>16){case 40:{r=i[17]|0;t=a[292]|0;a[292]=t+1<<16>>16;i[r+((t&65535)<<2)>>2]=f;if((a[i[15]>>1]|0)!=46){v(f,(i[18]|0)+2|0,0,f);i[11]=i[8];i[18]=(i[18]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{i[18]=(i[18]|0)+-2;break e}}i[18]=(i[18]|0)+2;switch((w(1)|0)<<16>>16){case 44:{f=i[18]|0;i[(i[8]|0)+4>>2]=f;i[18]=f+2;w(1)|0;f=i[18]|0;t=i[8]|0;i[t+16>>2]=f;s[t+24>>0]=1;i[18]=f+-2;break e}case 41:{a[292]=(a[292]|0)+-1<<16>>16;t=i[18]|0;f=i[8]|0;i[f+4>>2]=t;i[f+12>>2]=t;s[f+24>>0]=1;break e}default:{i[18]=(i[18]|0)+-2;break e}}}break}case 46:{i[18]=(i[18]|0)+2;if(((w(1)|0)<<16>>16==109?(e=i[18]|0,K(e+2|0,101,116,97)|0):0)?(a[i[15]>>1]|0)!=46:0)v(f,f,e+8|0,2);break}case 42:case 39:case 34:{c=16;break}case 123:{e=i[18]|0;if(a[292]|0){i[18]=e+-2;break e}while(1){if(e>>>0>=(i[19]|0)>>>0)break;e=w(1)|0;if(!(_(e)|0)){if(e<<16>>16==125){c=31;break}}else d(e);e=(i[18]|0)+2|0;i[18]=e}if((c|0)==31)i[18]=(i[18]|0)+2;w(1)|0;e=i[18]|0;if(!(z(e,102,114,111,109)|0)){Y();break e}i[18]=e+8;e=w(1)|0;if(_(e)|0){l(f,e);break e}else{Y();break e}}default:if((i[18]|0)!=(r|0))c=16}}while(0);do{if((c|0)==16){if(a[292]|0){i[18]=(i[18]|0)+-2;break}e=i[19]|0;r=i[18]|0;while(1){if(r>>>0>=e>>>0){c=23;break}t=a[r>>1]|0;if(_(t)|0){c=21;break}c=r+2|0;i[18]=c;r=c}if((c|0)==21){l(f,t);break}else if((c|0)==23){Y();break}}}while(0);return}function l(e,r){e=e|0;r=r|0;var t=0,s=0;t=(i[18]|0)+2|0;switch(r<<16>>16){case 39:{d(39);s=5;break}case 34:{d(34);s=5;break}default:Y()}do{if((s|0)==5){v(e,t,i[18]|0,1);i[18]=(i[18]|0)+2;s=(w(0)|0)<<16>>16==97;r=i[18]|0;if(s?B(r+2|0,115,115,101,114,116)|0:0){i[18]=r+12;if((w(1)|0)<<16>>16!=123){i[18]=r;break}e=i[18]|0;t=e;e:while(1){i[18]=t+2;t=w(1)|0;switch(t<<16>>16){case 39:{d(39);i[18]=(i[18]|0)+2;t=w(1)|0;break}case 34:{d(34);i[18]=(i[18]|0)+2;t=w(1)|0;break}default:t=H(t)|0}if(t<<16>>16!=58){s=16;break}i[18]=(i[18]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{s=20;break e}}i[18]=(i[18]|0)+2;switch((w(1)|0)<<16>>16){case 125:{s=25;break e}case 44:break;default:{s=24;break e}}i[18]=(i[18]|0)+2;if((w(1)|0)<<16>>16==125){s=25;break}t=i[18]|0}if((s|0)==16){i[18]=r;break}else if((s|0)==20){i[18]=r;break}else if((s|0)==24){i[18]=r;break}else if((s|0)==25){s=i[8]|0;i[s+16>>2]=e;i[s+12>>2]=(i[18]|0)+2;break}}i[18]=r+-2}}while(0);return}function o(e){e=e|0;e:do{switch(a[e>>1]|0){case 100:switch(a[e+-2>>1]|0){case 105:{e=q(e+-4|0,118,111)|0;break e}case 108:{e=P(e+-4|0,121,105,101)|0;break e}default:{e=0;break e}}case 101:{switch(a[e+-2>>1]|0){case 115:break;case 116:{e=E(e+-4|0,100,101,108,101)|0;break e}default:{e=0;break e}}switch(a[e+-4>>1]|0){case 108:{e=D(e+-6|0,101)|0;break e}case 97:{e=D(e+-6|0,99)|0;break e}default:{e=0;break e}}}case 102:{if((a[e+-2>>1]|0)==111?(a[e+-4>>1]|0)==101:0)switch(a[e+-6>>1]|0){case 99:{e=O(e+-8|0,105,110,115,116,97,110)|0;break e}case 112:{e=q(e+-8|0,116,121)|0;break e}default:{e=0;break e}}else e=0;break}case 110:{e=e+-2|0;if(D(e,105)|0)e=1;else e=$(e,114,101,116,117,114)|0;break}case 111:{e=D(e+-2|0,100)|0;break}case 114:{e=m(e+-2|0,100,101,98,117,103,103,101)|0;break}case 116:{e=E(e+-2|0,97,119,97,105)|0;break}case 119:switch(a[e+-2>>1]|0){case 101:{e=D(e+-4|0,110)|0;break e}case 111:{e=P(e+-4|0,116,104,114)|0;break e}default:{e=0;break e}}default:e=0}}while(0);return e|0}function h(){var e=0,r=0,t=0;r=i[19]|0;t=i[18]|0;e:while(1){e=t+2|0;if(t>>>0>=r>>>0){r=8;break}switch(a[e>>1]|0){case 96:{r=9;break e}case 36:{if((a[t+4>>1]|0)==123){r=6;break e}break}case 92:{e=t+4|0;break}default:{}}t=e}if((r|0)==6){i[18]=t+4;e=a[293]|0;r=i[16]|0;t=a[291]|0;a[291]=t+1<<16>>16;a[r+((t&65535)<<1)>>1]=e;t=(a[292]|0)+1<<16>>16;a[292]=t;a[293]=t}else if((r|0)==8){i[18]=e;Y()}else if((r|0)==9)i[18]=e;return}function w(e){e=e|0;var r=0,t=0,s=0;t=i[18]|0;e:do{r=a[t>>1]|0;r:do{if(r<<16>>16!=47)if(e)if(Z(r)|0)break;else break e;else if(Q(r)|0)break;else break e;else switch(a[t+2>>1]|0){case 47:{G();break r}case 42:{p(e);break r}default:{r=47;break e}}}while(0);s=i[18]|0;t=s+2|0;i[18]=t}while(s>>>0<(i[19]|0)>>>0);return r|0}function d(e){e=e|0;var r=0,t=0,s=0,c=0;c=i[19]|0;r=i[18]|0;while(1){s=r+2|0;if(r>>>0>=c>>>0){r=9;break}t=a[s>>1]|0;if(t<<16>>16==e<<16>>16){r=10;break}if(t<<16>>16==92){t=r+4|0;if((a[t>>1]|0)==13){r=r+6|0;r=(a[r>>1]|0)==10?r:t}else r=t}else if(ae(t)|0){r=9;break}else r=s}if((r|0)==9){i[18]=s;Y()}else if((r|0)==10)i[18]=s;return}function v(e,r,t,a){e=e|0;r=r|0;t=t|0;a=a|0;var c=0,f=0;c=i[13]|0;i[13]=c+32;f=i[8]|0;i[((f|0)==0?16:f+28|0)>>2]=c;i[9]=f;i[8]=c;i[c+8>>2]=e;do{if(2!=(a|0))if(1==(a|0)){i[c+12>>2]=t+2;break}else{i[c+12>>2]=i[3];break}else i[c+12>>2]=t}while(0);i[c>>2]=r;i[c+4>>2]=t;i[c+16>>2]=0;i[c+20>>2]=a;s[c+24>>0]=1==(a|0)&1;i[c+28>>2]=0;return}function A(){var e=0,r=0,t=0;t=i[19]|0;r=i[18]|0;e:while(1){e=r+2|0;if(r>>>0>=t>>>0){r=6;break}switch(a[e>>1]|0){case 13:case 10:{r=6;break e}case 93:{r=7;break e}case 92:{e=r+4|0;break}default:{}}r=e}if((r|0)==6){i[18]=e;Y();e=0}else if((r|0)==7){i[18]=e;e=93}return e|0}function C(e,r,t,s,i,c,f,oe){e=e|0;r=r|0;t=t|0;s=s|0;i=i|0;c=c|0;f=f|0;oe=oe|0;if((((((a[e+12>>1]|0)==oe<<16>>16?(a[e+10>>1]|0)==f<<16>>16:0)?(a[e+8>>1]|0)==c<<16>>16:0)?(a[e+6>>1]|0)==i<<16>>16:0)?(a[e+4>>1]|0)==s<<16>>16:0)?(a[e+2>>1]|0)==t<<16>>16:0)r=(a[e>>1]|0)==r<<16>>16;else r=0;return r|0}function y(e){e=e|0;switch(a[e>>1]|0){case 62:{e=(a[e+-2>>1]|0)==61;break}case 41:case 59:{e=1;break}case 104:{e=E(e+-2|0,99,97,116,99)|0;break}case 121:{e=O(e+-2|0,102,105,110,97,108,108)|0;break}case 101:{e=P(e+-2|0,101,108,115)|0;break}default:e=0}return e|0}function g(e,r){e=e|0;r=r|0;var t=0,s=0;t=i[18]|0;s=a[t>>1]|0;if(s<<16>>16==97){i[18]=t+4;t=w(1)|0;e=i[18]|0;if(_(t)|0){d(t);r=(i[18]|0)+2|0;i[18]=r}else{H(t)|0;r=i[18]|0}s=w(1)|0;t=i[18]|0}if((t|0)!=(e|0))J(e,r);return s|0}function I(){var e=0,r=0,t=0;e:while(1){e=i[18]|0;r=e+2|0;i[18]=r;if(e>>>0>=(i[19]|0)>>>0){t=7;break}switch(a[r>>1]|0){case 13:case 10:{t=7;break e}case 47:break e;case 91:{A()|0;break}case 92:{i[18]=e+4;break}default:{}}}if((t|0)==7)Y();return}function p(e){e=e|0;var r=0,t=0,s=0,c=0,f=0;c=(i[18]|0)+2|0;i[18]=c;t=i[19]|0;while(1){r=c+2|0;if(c>>>0>=t>>>0)break;s=a[r>>1]|0;if(!e?ae(s)|0:0)break;if(s<<16>>16==42?(a[c+4>>1]|0)==47:0){f=8;break}c=r}if((f|0)==8){i[18]=r;r=c+4|0}i[18]=r;return}function U(e,r,t,s,i,c,f){e=e|0;r=r|0;t=t|0;s=s|0;i=i|0;c=c|0;f=f|0;if(((((a[e+10>>1]|0)==f<<16>>16?(a[e+8>>1]|0)==c<<16>>16:0)?(a[e+6>>1]|0)==i<<16>>16:0)?(a[e+4>>1]|0)==s<<16>>16:0)?(a[e+2>>1]|0)==t<<16>>16:0)r=(a[e>>1]|0)==r<<16>>16;else r=0;return r|0}function m(e,r,t,s,c,f,oe,le){e=e|0;r=r|0;t=t|0;s=s|0;c=c|0;f=f|0;oe=oe|0;le=le|0;var de=0,pe=0;pe=e+-12|0;de=i[3]|0;if(pe>>>0>=de>>>0?C(pe,r,t,s,c,f,oe,le)|0:0)if((pe|0)==(de|0))de=1;else de=F(a[e+-14>>1]|0)|0;else de=0;return de|0}function S(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:{e=1;break}default:if((e&-8)<<16>>16==40|(e+-58&65535)<6)e=1;else{switch(e<<16>>16){case 91:case 93:case 94:{e=1;break e}default:{}}e=(e+-123&65535)<4}}}while(0);return e|0}function x(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:break;default:if(!((e+-58&65535)<6|(e+-40&65535)<7&e<<16>>16!=41)){switch(e<<16>>16){case 91:case 94:break e;default:{}}return e<<16>>16!=125&(e+-123&65535)<4|0}}}while(0);return 1}function O(e,r,t,s,c,f,oe){e=e|0;r=r|0;t=t|0;s=s|0;c=c|0;f=f|0;oe=oe|0;var le=0,de=0;de=e+-10|0;le=i[3]|0;if(de>>>0>=le>>>0?U(de,r,t,s,c,f,oe)|0:0)if((de|0)==(le|0))le=1;else le=F(a[e+-12>>1]|0)|0;else le=0;return le|0}function $(e,r,t,s,c,f){e=e|0;r=r|0;t=t|0;s=s|0;c=c|0;f=f|0;var oe=0,le=0;le=e+-8|0;oe=i[3]|0;if(le>>>0>=oe>>>0?B(le,r,t,s,c,f)|0:0)if((le|0)==(oe|0))oe=1;else oe=F(a[e+-10>>1]|0)|0;else oe=0;return oe|0}function j(e){e=e|0;var r=0,t=0,s=0,c=0;t=oe;oe=oe+16|0;s=t;i[s>>2]=0;i[12]=e;r=i[3]|0;c=r+(e<<1)|0;e=c+2|0;a[c>>1]=0;i[s>>2]=e;i[13]=e;i[4]=0;i[8]=0;i[6]=0;i[5]=0;i[10]=0;i[7]=0;oe=t;return r|0}function B(e,r,t,s,i,c){e=e|0;r=r|0;t=t|0;s=s|0;i=i|0;c=c|0;if((((a[e+8>>1]|0)==c<<16>>16?(a[e+6>>1]|0)==i<<16>>16:0)?(a[e+4>>1]|0)==s<<16>>16:0)?(a[e+2>>1]|0)==t<<16>>16:0)r=(a[e>>1]|0)==r<<16>>16;else r=0;return r|0}function E(e,r,t,s,c){e=e|0;r=r|0;t=t|0;s=s|0;c=c|0;var f=0,oe=0;oe=e+-6|0;f=i[3]|0;if(oe>>>0>=f>>>0?z(oe,r,t,s,c)|0:0)if((oe|0)==(f|0))f=1;else f=F(a[e+-8>>1]|0)|0;else f=0;return f|0}function P(e,r,t,s){e=e|0;r=r|0;t=t|0;s=s|0;var c=0,f=0;f=e+-4|0;c=i[3]|0;if(f>>>0>=c>>>0?K(f,r,t,s)|0:0)if((f|0)==(c|0))c=1;else c=F(a[e+-6>>1]|0)|0;else c=0;return c|0}function q(e,r,t){e=e|0;r=r|0;t=t|0;var s=0,c=0;c=e+-2|0;s=i[3]|0;if(c>>>0>=s>>>0?N(c,r,t)|0:0)if((c|0)==(s|0))s=1;else s=F(a[e+-4>>1]|0)|0;else s=0;return s|0}function z(e,r,t,s,i){e=e|0;r=r|0;t=t|0;s=s|0;i=i|0;if(((a[e+6>>1]|0)==i<<16>>16?(a[e+4>>1]|0)==s<<16>>16:0)?(a[e+2>>1]|0)==t<<16>>16:0)r=(a[e>>1]|0)==r<<16>>16;else r=0;return r|0}function D(e,r){e=e|0;r=r|0;var t=0;t=i[3]|0;if(t>>>0<=e>>>0?(a[e>>1]|0)==r<<16>>16:0)if((t|0)==(e|0))t=1;else t=F(a[e+-2>>1]|0)|0;else t=0;return t|0}function F(e){e=e|0;e:do{if((e+-9&65535)<5)e=1;else{switch(e<<16>>16){case 32:case 160:{e=1;break e}default:{}}e=e<<16>>16!=46&(S(e)|0)}}while(0);return e|0}function G(){var e=0,r=0,t=0;e=i[19]|0;t=i[18]|0;e:while(1){r=t+2|0;if(t>>>0>=e>>>0)break;switch(a[r>>1]|0){case 13:case 10:break e;default:t=r}}i[18]=r;return}function H(e){e=e|0;while(1){if(Z(e)|0)break;if(S(e)|0)break;e=(i[18]|0)+2|0;i[18]=e;e=a[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function J(e,r){e=e|0;r=r|0;var t=0,s=0;t=i[13]|0;i[13]=t+12;s=i[10]|0;i[((s|0)==0?20:s+8|0)>>2]=t;i[10]=t;i[t>>2]=e;i[t+4>>2]=r;i[t+8>>2]=0;return}function K(e,r,t,s){e=e|0;r=r|0;t=t|0;s=s|0;if((a[e+4>>1]|0)==s<<16>>16?(a[e+2>>1]|0)==t<<16>>16:0)r=(a[e>>1]|0)==r<<16>>16;else r=0;return r|0}function L(e){e=e|0;if(!($(e,119,104,105,108,101)|0)?!(P(e,102,111,114)|0):0)e=q(e,105,102)|0;else e=1;return e|0}function M(){var e=0;e=i[(i[6]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(i[3]|0)>>1}return e|0}function N(e,r,t){e=e|0;r=r|0;t=t|0;if((a[e+2>>1]|0)==t<<16>>16)r=(a[e>>1]|0)==r<<16>>16;else r=0;return r|0}function Q(e){e=e|0;switch(e<<16>>16){case 160:case 32:case 12:case 11:case 9:{e=1;break}default:e=0}return e|0}function R(e){e=e|0;if((i[3]|0)==(e|0))e=1;else e=F(a[e+-2>>1]|0)|0;return e|0}function T(){var e=0;e=i[(i[6]|0)+16>>2]|0;if(!e)e=-1;else e=e-(i[3]|0)>>1;return e|0}function V(){var e=0;e=i[6]|0;e=i[((e|0)==0?16:e+28|0)>>2]|0;i[6]=e;return(e|0)!=0|0}function W(){var e=0;e=i[7]|0;e=i[((e|0)==0?20:e+8|0)>>2]|0;i[7]=e;return(e|0)!=0|0}function X(e){e=e|0;var r=0;r=oe;oe=oe+e|0;oe=oe+15&-16;return r|0}function Y(){s[588]=1;i[14]=(i[18]|0)-(i[3]|0)>>1;i[18]=(i[19]|0)+2;return}function Z(e){e=e|0;return(e|128)<<16>>16==160|(e+-9&65535)<5|0}function _(e){e=e|0;return e<<16>>16==39|e<<16>>16==34|0}function ee(){return(i[(i[6]|0)+12>>2]|0)-(i[3]|0)>>1|0}function re(){return(i[(i[6]|0)+8>>2]|0)-(i[3]|0)>>1|0}function ae(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function ie(){return(i[(i[6]|0)+4>>2]|0)-(i[3]|0)>>1|0}function se(){return(i[(i[7]|0)+4>>2]|0)-(i[3]|0)>>1|0}function te(){return(i[i[6]>>2]|0)-(i[3]|0)>>1|0}function fe(){return(i[i[7]>>2]|0)-(i[3]|0)>>1|0}function ce(){return c[(i[6]|0)+24>>0]|0|0}function ne(e){e=e|0;i[3]=e;return}function be(){return(s[589]|0)!=0|0}function ue(){return i[14]|0}return{ai:T,e:ue,ee:se,es:fe,f:be,id:M,ie:ie,ip:ce,is:te,p:b,re:W,ri:V,sa:j,se:ee,ses:ne,ss:re,sta:X}}({Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array},{},je),Re=Ee.sta(2*_e)}const t=Fe.length+1;Ee.ses(Re),Ee.sa(t-1),(Be?b:n)(Fe,new Uint16Array(je,Re,t)),Ee.p()||(He=Ee.e(),h());const s=[],a=[];for(;Ee.ri();){const e=Ee.is(),r=Ee.ie(),t=Ee.ai(),a=Ee.id(),i=Ee.ss(),c=Ee.se();let f;Ee.ip()&&(f=u(-1===a?e:e+1,Fe.charCodeAt(-1===a?e-1:e))),s.push({n:f,s:e,e:r,ss:i,se:c,d:a,a:t})}for(;Ee.re();){const e=Ee.es(),r=Fe.charCodeAt(e);a.push(34===r||39===r?u(e+1,r):Fe.slice(Ee.es(),Ee.ee()))}return[s,a,!!Ee.f()]}function n(e,r){const t=e.length;let s=0;for(;s<t;){const t=e.charCodeAt(s);r[s++]=(255&t)<<8|t>>>8}}function b(e,r){const t=e.length;let s=0;for(;s<t;)r[s]=e.charCodeAt(s++)}function u(e,r){He=e;let t="",s=He;for(;;){He>=Fe.length&&h();const e=Fe.charCodeAt(He);if(e===r)break;92===e?(t+=Fe.slice(s,He),t+=k(),s=He):(8232===e||8233===e||o(e)&&h(),++He)}return t+=Fe.slice(s,He++),t}function k(){let e=Fe.charCodeAt(++He);switch(++He,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(l(2));case 117:return function(){let e;123===Fe.charCodeAt(He)?(++He,e=l(Fe.indexOf("}",He)-He),++He,e>1114111&&h()):e=l(4);return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}();case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===Fe.charCodeAt(He)&&++He;case 10:return"";case 56:case 57:h();default:if(e>=48&&e<=55){let r=Fe.substr(He-1,3).match(/^[0-7]+/)[0],t=parseInt(r,8);return t>255&&(r=r.slice(0,-1),t=parseInt(r,8)),He+=r.length-1,e=Fe.charCodeAt(He),"0"===r&&56!==e&&57!==e||h(),String.fromCharCode(t)}return o(e)?"":String.fromCharCode(e)}}function l(e){const r=He;let t=0,s=0;for(let r=0;r<e;++r,++He){let e,a=Fe.charCodeAt(He);if(95!==a){if(a>=97)e=a-97+10;else if(a>=65)e=a-65+10;else{if(!(a>=48&&a<=57))break;e=a-48}if(e>=16)break;s=a,t=16*t+e}else 95!==s&&0!==r||h(),s=a}return 95!==s&&He-r===e||h(),t}function o(e){return 13===e||10===e}function h(){throw Object.assign(new Error(`Parse error ${Ne}:${Fe.slice(0,He).split("\n").length}:${He-Fe.lastIndexOf("\n",He-1)}`),{idx:He})}async function defaultResolve(e,r){return resolveImportMap(Te,resolveIfNotPlainOrUrl(e,r)||e,r)}async function _resolve(e,r){const t=resolveIfNotPlainOrUrl(e,r);return{r:resolveImportMap(Te,t||e,r),b:!t&&!isURL(e)}}const qe=le?async(e,r)=>({r:await le(e,r,defaultResolve),b:false}):_resolve;let Je=0;const Ye={};async function loadAll(e,r){if(!e.b&&!r[e.u]){r[e.u]=1;await e.L;await Promise.all(e.d.map((e=>loadAll(e,r))));e.n||(e.n=e.d.some((e=>e.n)))}}let Te={imports:{},scopes:{}};let De=false;let Ke;const ze=Me.then((()=>{if(!oe)if(document.querySelectorAll("script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]").length)setShimMode();else{let e=false;for(const r of document.querySelectorAll("script[type=module],script[type=importmap]"))if(e){if("importmap"===r.type){De=true;break}}else"module"===r.type&&(e=true)}Ke=xe&&Ue&&Pe&&(!Se||Ie)&&(!$e||Le)&&!De&&true;if(!oe&&Ke);else{new MutationObserver((e=>{for(const r of e)if("childList"===r.type)for(const e of r.addedNodes)if("SCRIPT"===e.tagName){e.type===(oe?"module-shim":"module")&&processScript(e);e.type===(oe?"importmap-shim":"importmap")&&processImportMap(e)}else"LINK"===e.tagName&&e.rel===(oe?"modulepreload-shim":"modulepreload")&&processPreload(e)})).observe(document,{childList:true,subtree:true});processImportMaps();processScriptsAndPreloads()}}));let Ge=ze;let Ze=true;let Qe=true;async function topLevelLoad(e,r,t,s,a){oe||(Qe=false);await Ge;if(!oe&&Ke){if(s)return null;await a;return Ce(t?createBlob(t):e,{errUrl:e||t})}const i=getOrCreateLoad(e,r,t);const c={};await loadAll(i,c);We=void 0;resolveDeps(i,c);await a;if(t&&!oe&&!i.n&&true){const e=await Ce(createBlob(t),{errUrl:t});me&&revokeObjectURLs(Object.keys(c));return e}if(Ze&&!oe&&i.n&&s){ke();Ze=false}const f=await Ce(oe||i.n||!s?i.b:i.u,{errUrl:i.u});i.s&&(await Ce(i.s)).u$_(f);me&&revokeObjectURLs(Object.keys(c));return f}function revokeObjectURLs(e){let r=0;const t=e.length;const s=self.requestIdleCallback?self.requestIdleCallback:self.requestAnimationFrame;s(cleanup);function cleanup(){const a=100*r;if(!(a>t)){for(const r of e.slice(a,a+100)){const e=Ye[r];e&&URL.revokeObjectURL(e.b)}r++;s(cleanup)}}}async function importShim(e,r=s,t){await ze;if(Qe||oe||!Ke){processImportMaps();oe||(Qe=false)}await Ge;return topLevelLoad((await qe(e,r)).r||throwUnresolved(e,r),{credentials:"same-origin"})}self.importShim=importShim;oe&&(importShim.getImportMap=()=>JSON.parse(JSON.stringify(Te)));const Ve={};async function importMetaResolve(e,r=this.url){return(await qe(e,`${r}`)).r||throwUnresolved(e,r)}self._esmsm=Ve;function urlJsString(e){return`'${e.replace(/'/g,"\\'")}'`}let We;function resolveDeps(e,t){if(e.b||!t[e.u])return;t[e.u]=0;for(const r of e.d)resolveDeps(r,t);const[s]=e.a;const a=e.S;let i=r&&We?`import '${We}';`:"";if(s.length){let r=0,t=0;for(const{s:c,se:f,d:oe}of s)if(-1===oe){const s=e.d[t++];let oe=s.b;if(oe){if(s.s){i+=`${a.slice(r,c-1)}/*${a.slice(c-1,f)}*/${urlJsString(oe)};import*as m$_${t} from'${s.b}';import{u$_ as u$_${t}}from'${s.s}';u$_${t}(m$_${t})`;r=f;s.s=void 0;continue}}else(oe=s.s)||(oe=s.s=createBlob(`export function u$_(m){${s.a[1].map((e=>"default"===e?"$_default=m.default":`${e}=m.${e}`)).join(",")}}${s.a[1].map((e=>"default"===e?"let $_default;export{$_default as default}":`export let ${e}`)).join(";")}\n//# sourceURL=${s.r}?cycle`));i+=`${a.slice(r,c-1)}/*${a.slice(c-1,f)}*/${urlJsString(oe)}`;r=f}else if(-2===oe){Ve[e.r]={url:e.r,resolve:importMetaResolve};i+=`${a.slice(r,c)}self._esmsm[${urlJsString(e.r)}]`;r=f}else{i+=`${a.slice(r,oe+6)}Shim(${a.slice(c,f)}, ${e.r&&urlJsString(e.r)}`;r=f}i+=a.slice(r)}else i+=a;let c=false;i=i.replace(Xe,((r,t,s)=>(c=!t,r.replace(s,(()=>new URL(s,e.r))))));c||(i+="\n//# sourceURL="+e.r);e.b=We=createBlob(i);e.S=void 0}const Xe=/\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;const er=/^(text|application)\/(x-)?javascript(;|$)/;const rr=/^(text|application)\/json(;|$)/;const tr=/^(text|application)\/css(;|$)/;const sr=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;let ar=[];let nr=0;function pushFetchPool(){if(++nr>100)return new Promise((e=>ar.push(e)))}function popFetchPool(){nr--;ar.length&&ar.shift()()}async function doFetch(e,r){if(ve&&!r.integrity)throw Error(`No integrity for ${e}`);const t=pushFetchPool();t&&await t;try{var s=await ye(e,r)}finally{popFetchPool()}if(!s.ok)throw Error(`${s.status} ${s.statusText} ${s.url}`);const a=s.headers.get("content-type");if(er.test(a))return{r:s.url,s:await s.text(),t:"js"};if(rr.test(a))return{r:s.url,s:`export default ${await s.text()}`,t:"json"};if(tr.test(a))return{r:s.url,s:`var s=new CSSStyleSheet();s.replaceSync(${JSON.stringify((await s.text()).replace(sr,((r,t,s,a)=>`url(${t}${resolveUrl(s||a,e)}${t})`)))});export default s;`,t:"css"};throw Error(`Unsupported Content-Type "${a}"`)}function getOrCreateLoad(e,r,t){let s=Ye[e];if(s)return s;s=Ye[e]={u:e,r:void 0,f:void 0,S:void 0,L:void 0,a:void 0,d:void 0,b:void 0,s:void 0,n:false,t:null};s.f=(async()=>{if(!t){let a;({r:s.r,s:t,t:a}=await(lr[e]||doFetch(e,r)));if(a&&!oe){if("css"===a&&!$e||"json"===a&&!Se)throw Error(`${a}-modules require <script type="esms-options">{ "polyfillEnable": ["${a}-modules"] }<\/script>`);("css"===a&&!Le||"json"===a&&!Ie)&&(s.n=true)}}try{s.a=parse(t,s.u)}catch(e){console.warn(e);s.a=[[],[]]}s.S=t;return s})();s.L=s.f.then((async()=>{let e=r;s.d=(await Promise.all(s.a[0].map((async({n:r,d:t})=>{(t>=0&&!xe||2===t&&!Ue)&&(s.n=true);if(!r)return;const{r:a,b:i}=await qe(r,s.r||s.u);!i||Pe&&!De||(s.n=true);if(-1===t){a||throwUnresolved(r,s.r||s.u);if(de&&de.test(a))return{b:a};e.integrity&&(e=Object.assign({},e,{integrity:void 0}));return getOrCreateLoad(a,e).f}})))).filter((e=>e))}));return s}function processScriptsAndPreloads(){for(const e of document.querySelectorAll(oe?"script[type=module-shim]":"script[type=module]"))processScript(e);for(const e of document.querySelectorAll(oe?"link[rel=modulepreload-shim]":"link[rel=modulepreload]"))processPreload(e)}function processImportMaps(){for(const e of document.querySelectorAll(oe?'script[type="importmap-shim"]':'script[type="importmap"]'))processImportMap(e)}function getFetchOpts(e){const r={};e.integrity&&(r.integrity=e.integrity);e.referrerpolicy&&(r.referrerPolicy=e.referrerpolicy);"use-credentials"===e.crossorigin?r.credentials="include":"anonymous"===e.crossorigin?r.credentials="omit":r.credentials="same-origin";return r}let ir=Promise.resolve();let or=1;function domContentLoadedCheck(){0!==--or||we||document.dispatchEvent(new Event("DOMContentLoaded"))}document.addEventListener("DOMContentLoaded",(async()=>{await ze;domContentLoadedCheck();if(oe||!Ke){processImportMaps();processScriptsAndPreloads()}}));let cr=1;"complete"===document.readyState?readyStateCompleteCheck():document.addEventListener("readystatechange",(async()=>{processImportMaps();await ze;readyStateCompleteCheck()}));function readyStateCompleteCheck(){0!==--cr||we||document.dispatchEvent(new Event("readystatechange"))}function processImportMap(e){if(!e.ep&&(e.src||e.innerHTML)){e.ep=true;if(e.src){if(!oe)return;De=true}if(Qe){Ge=Ge.then((async()=>{Te=resolveAndComposeImportMap(e.src?await(await ye(e.src)).json():JSON.parse(e.innerHTML),e.src||s,Te)})).catch((e=>setTimeout((()=>{throw e}))));oe||(Qe=false)}}}function processScript(e){if(e.ep)return;if(null!==e.getAttribute("noshim"))return;if(!e.src&&!e.innerHTML)return;e.ep=true;const r=cr>0;const a=or>0;r&&cr++;a&&or++;const i=null===e.getAttribute("async")&&r;const c=topLevelLoad(e.src||`${s}?${Je++}`,getFetchOpts(e),!e.src&&e.innerHTML,!oe,i&&ir).catch((e=>{t?console.error(e):setTimeout((()=>{throw e}));he(e)}));i&&(ir=c.then(readyStateCompleteCheck));a&&c.then(domContentLoadedCheck)}const lr={};function processPreload(e){if(!e.ep){e.ep=true;lr[e.href]||(lr[e.href]=doFetch(e.href,getFetchOpts(e)))}}function throwUnresolved(e,r){throw Error("Unable to resolve specifier '"+e+(r?"' from "+r:"'"))}})();
|
1
|
+
(function(){const e="undefined"!==typeof window;const t="undefined"!==typeof document;const noop=()=>{};const r=t?document.querySelector("script[type=esms-options]"):void 0;const s=r?JSON.parse(r.innerHTML):{};Object.assign(s,self.esmsInitOptions||{});let n=!t||!!s.shimMode;const a=globalHook(n&&s.onimport);const i=globalHook(n&&s.resolve);let c=s.fetch?globalHook(s.fetch):fetch;const f=s.meta?globalHook(n&&s.meta):noop;const ne=s.mapOverrides;let oe=s.nonce;if(!oe&&t){const e=document.querySelector("script[nonce]");e&&(oe=e.nonce||e.getAttribute("nonce"))}const ce=globalHook(s.onerror||noop);const le=s.onpolyfill?globalHook(s.onpolyfill):()=>{console.log("%c^^ Module TypeError above is polyfilled and can be ignored ^^","font-weight:900;color:#391")};const{revokeBlobURLs:fe,noLoadEventRetriggers:ue,enforceIntegrity:de}=s;function globalHook(e){return"string"===typeof e?self[e]:e}const pe=Array.isArray(s.polyfillEnable)?s.polyfillEnable:[];const he=pe.includes("css-modules");const be=pe.includes("json-modules");const me=!navigator.userAgentData&&!!navigator.userAgent.match(/Edge\/\d+\.\d+/);const ke=t?document.baseURI:`${location.protocol}//${location.host}${location.pathname.includes("/")?location.pathname.slice(0,location.pathname.lastIndexOf("/")+1):location.pathname}`;const createBlob=(e,t="text/javascript")=>URL.createObjectURL(new Blob([e],{type:t}));let{skip:we}=s;if(Array.isArray(we)){const e=we.map((e=>new URL(e,ke).href));we=t=>e.some((e=>"/"===e[e.length-1]&&t.startsWith(e)||t===e))}else if("string"===typeof we){const e=new RegExp(we);we=t=>e.test(t)}const eoop=e=>setTimeout((()=>{throw e}));const throwError=t=>{(self.reportError||e&&window.safari&&console.error||eoop)(t),void ce(t)};function fromParent(e){return e?` imported from ${e}`:""}let ge=false;function setImportMapSrcOrLazy(){ge=true}if(!n)if(document.querySelectorAll("script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]").length)n=true;else{let e=false;for(const t of document.querySelectorAll("script[type=module],script[type=importmap]"))if(e){if("importmap"===t.type&&e){ge=true;break}}else"module"!==t.type||t.ep||(e=true)}const ve=/\\/g;function isURL(e){if(-1===e.indexOf(":"))return false;try{new URL(e);return true}catch(e){return false}}function resolveUrl(e,t){return resolveIfNotPlainOrUrl(e,t)||(isURL(e)?e:resolveIfNotPlainOrUrl("./"+e,t))}function resolveIfNotPlainOrUrl(e,t){const r=t.indexOf("#"),s=t.indexOf("?");r+s>-2&&(t=t.slice(0,-1===r?s:-1===s||s>r?r:s));-1!==e.indexOf("\\")&&(e=e.replace(ve,"/"));if("/"===e[0]&&"/"===e[1])return t.slice(0,t.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const r=t.slice(0,t.indexOf(":")+1);let s;if("/"===t[r.length+1])if("file:"!==r){s=t.slice(r.length+2);s=s.slice(s.indexOf("/")+1)}else s=t.slice(8);else s=t.slice(r.length+("/"===t[r.length]));if("/"===e[0])return t.slice(0,t.length-s.length-1)+e;const n=s.slice(0,s.lastIndexOf("/")+1)+e;const a=[];let i=-1;for(let e=0;e<n.length;e++)if(-1===i){if("."===n[e]){if("."===n[e+1]&&("/"===n[e+2]||e+2===n.length)){a.pop();e+=2;continue}if("/"===n[e+1]||e+1===n.length){e+=1;continue}}while("/"===n[e])e++;i=e}else if("/"===n[e]){a.push(n.slice(i,e+1));i=-1}-1!==i&&a.push(n.slice(i));return t.slice(0,t.length-s.length)+a.join("")}}function resolveAndComposeImportMap(e,t,r){const s={imports:Object.assign({},r.imports),scopes:Object.assign({},r.scopes)};e.imports&&resolveAndComposePackages(e.imports,s.imports,t,r);if(e.scopes)for(let n in e.scopes){const a=resolveUrl(n,t);resolveAndComposePackages(e.scopes[n],s.scopes[a]||(s.scopes[a]={}),t,r)}return s}function getMatch(e,t){if(t[e])return e;let r=e.length;do{const s=e.slice(0,r+1);if(s in t)return s}while(-1!==(r=e.lastIndexOf("/",r-1)))}function applyPackages(e,t){const r=getMatch(e,t);if(r){const s=t[r];if(null===s)return;return s+e.slice(r.length)}}function resolveImportMap(e,t,r){let s=r&&getMatch(r,e.scopes);while(s){const r=applyPackages(t,e.scopes[s]);if(r)return r;s=getMatch(s.slice(0,s.lastIndexOf("/")),e.scopes)}return applyPackages(t,e.imports)||-1!==t.indexOf(":")&&t}function resolveAndComposePackages(e,t,r,s){for(let a in e){const i=resolveIfNotPlainOrUrl(a,r)||a;if((!n||!ne)&&t[i]&&t[i]!==e[i])throw Error(`Rejected map override "${i}" from ${t[i]} to ${e[i]}.`);let c=e[a];if("string"!==typeof c)continue;const f=resolveImportMap(s,resolveIfNotPlainOrUrl(c,r)||c,r);f?t[i]=f:console.warn(`Mapping "${a}" -> "${e[a]}" does not resolve`)}}let ye=!t&&(0,eval)("u=>import(u)");let $e;const Oe=t&&new Promise((e=>{const t=Object.assign(document.createElement("script"),{src:createBlob("self._d=u=>import(u)"),ep:true});t.setAttribute("nonce",oe);t.addEventListener("load",(()=>{if(!($e=!!(ye=self._d))){let e;window.addEventListener("error",(t=>e=t));ye=(t,r)=>new Promise(((s,n)=>{const a=Object.assign(document.createElement("script"),{type:"module",src:createBlob(`import*as m from'${t}';self._esmsi=m`)});e=void 0;a.ep=true;oe&&a.setAttribute("nonce",oe);a.addEventListener("error",cb);a.addEventListener("load",cb);function cb(i){document.head.removeChild(a);if(self._esmsi){s(self._esmsi,ke);self._esmsi=void 0}else{n(!(i instanceof Event)&&i||e&&e.error||new Error(`Error loading ${r&&r.errUrl||t} (${a.src}).`));e=void 0}}document.head.appendChild(a)}))}document.head.removeChild(t);delete self._d;e()}));document.head.appendChild(t)}));let Se=false;let Le=false;const Ce=t&&HTMLScriptElement.supports;let Ae=Ce&&"supports"===Ce.name&&Ce("importmap");let xe=$e;const Ue="import.meta";const Ee='import"x"assert{type:"css"}';const Pe='import"x"assert{type:"json"}';let Ie=Promise.resolve(Oe).then((()=>{if($e)return t?new Promise((e=>{const t=document.createElement("iframe");t.style.display="none";t.setAttribute("nonce",oe);function cb({data:r}){const s=Array.isArray(r)&&"esms"===r[0];if(s){Ae=r[1];xe=r[2];Le=r[3];Se=r[4];e();document.head.removeChild(t);window.removeEventListener("message",cb,false)}}window.addEventListener("message",cb,false);const r=`<script nonce=${oe||""}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${oe}",innerText:\`{"imports":{"x":"\${b('')}"}}\`}));Promise.all([${Ae?"true,true":`'x',b('${Ue}')`}, ${he?`b('${Ee}'.replace('x',b('','text/css')))`:"false"}, ${be?`b('${Pe}'.replace('x',b('{}','text/json')))`:"false"}].map(x =>typeof x==='string'?import(x).then(x =>!!x,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<\/script>`;let s=false,n=false;function doOnload(){if(!s){n=true;return}const e=t.contentDocument;if(e&&0===e.head.childNodes.length){const t=e.createElement("script");oe&&t.setAttribute("nonce",oe);t.innerHTML=r.slice(15+(oe?oe.length:0),-9);e.head.appendChild(t)}}t.onload=doOnload;document.head.appendChild(t);s=true;"srcdoc"in t?t.srcdoc=r:t.contentDocument.write(r);n&&doOnload()})):Promise.all([Ae||ye(createBlob(Ue)).then((()=>xe=true),noop),he&&ye(createBlob(Ee.replace("x",createBlob("","text/css")))).then((()=>Le=true),noop),be&&ye(createBlob(jsonModulescheck.replace("x",createBlob("{}","text/json")))).then((()=>Se=true),noop)])}));let Me,je,Te,Re=2<<19;const _e=1===new Uint8Array(new Uint16Array([1]).buffer)[0]?function(e,t){const r=e.length;let s=0;for(;s<r;)t[s]=e.charCodeAt(s++)}:function(e,t){const r=e.length;let s=0;for(;s<r;){const r=e.charCodeAt(s);t[s++]=(255&r)<<8|r>>>8}},Ne="xportmportlassetaromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileforifcatcfinallels";let He,qe,Fe;function parse(e,t="@"){He=e,qe=t;const r=2*He.length+(2<<18);if(r>Re||!Me){for(;r>Re;)Re*=2;je=new ArrayBuffer(Re),_e(Ne,new Uint16Array(je,16,105)),Me=function(e,t,r){"use asm";var s=new e.Int8Array(r),n=new e.Int16Array(r),a=new e.Int32Array(r),i=new e.Uint8Array(r),c=new e.Uint16Array(r),f=1024;function b(){var e=0,t=0,r=0,i=0,ne=0,oe=0,ce=0;ce=f;f=f+10240|0;s[795]=1;n[395]=0;n[396]=0;a[67]=a[2];s[796]=0;a[66]=0;s[794]=0;a[68]=ce+2048;a[69]=ce;s[797]=0;e=(a[3]|0)+-2|0;a[70]=e;t=e+(a[64]<<1)|0;a[71]=t;e:while(1){r=e+2|0;a[70]=r;if(e>>>0>=t>>>0){ne=18;break}t:do{switch(n[r>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((n[396]|0)==0?H(r)|0:0)?(m(e+4|0,16,10)|0)==0:0)?(l(),(s[795]|0)==0):0){ne=9;break e}else ne=17;break}case 105:{if(H(r)|0?(m(e+4|0,26,10)|0)==0:0){k();ne=17}else ne=17;break}case 59:{ne=17;break}case 47:switch(n[e+4>>1]|0){case 47:{P();break t}case 42:{y(1);break t}default:{ne=16;break e}}default:{ne=16;break e}}}while(0);if((ne|0)==17){ne=0;a[67]=a[70]}e=a[70]|0;t=a[71]|0}if((ne|0)==9){e=a[70]|0;a[67]=e;ne=19}else if((ne|0)==16){s[795]=0;a[70]=e;ne=19}else if((ne|0)==18)if(!(s[794]|0)){e=r;ne=19}else e=0;do{if((ne|0)==19){e:while(1){t=e+2|0;a[70]=t;i=t;if(e>>>0>=(a[71]|0)>>>0){ne=82;break}t:do{switch(n[t>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((n[396]|0)==0?H(t)|0:0)?(m(e+4|0,16,10)|0)==0:0){l();ne=81}else ne=81;break}case 105:{if(H(t)|0?(m(e+4|0,26,10)|0)==0:0){k();ne=81}else ne=81;break}case 99:{if((H(t)|0?(m(e+4|0,36,8)|0)==0:0)?V(n[e+12>>1]|0)|0:0){s[797]=1;ne=81}else ne=81;break}case 40:{i=a[68]|0;t=n[396]|0;ne=t&65535;a[i+(ne<<3)>>2]=1;r=a[67]|0;n[396]=t+1<<16>>16;a[i+(ne<<3)+4>>2]=r;ne=81;break}case 41:{t=n[396]|0;if(!(t<<16>>16)){ne=36;break e}t=t+-1<<16>>16;n[396]=t;r=n[395]|0;if(r<<16>>16!=0?(oe=a[(a[69]|0)+((r&65535)+-1<<2)>>2]|0,(a[oe+20>>2]|0)==(a[(a[68]|0)+((t&65535)<<3)+4>>2]|0)):0){t=oe+4|0;if(!(a[t>>2]|0))a[t>>2]=i;a[oe+12>>2]=e+4;n[395]=r+-1<<16>>16;ne=81}else ne=81;break}case 123:{ne=a[67]|0;i=a[61]|0;e=ne;do{if((n[ne>>1]|0)==41&(i|0)!=0?(a[i+4>>2]|0)==(ne|0):0){t=a[62]|0;a[61]=t;if(!t){a[57]=0;break}else{a[t+28>>2]=0;break}}}while(0);i=a[68]|0;r=n[396]|0;ne=r&65535;a[i+(ne<<3)>>2]=(s[797]|0)==0?2:6;n[396]=r+1<<16>>16;a[i+(ne<<3)+4>>2]=e;s[797]=0;ne=81;break}case 125:{e=n[396]|0;if(!(e<<16>>16)){ne=49;break e}i=a[68]|0;ne=e+-1<<16>>16;n[396]=ne;if((a[i+((ne&65535)<<3)>>2]|0)==4){h();ne=81}else ne=81;break}case 39:{d(39);ne=81;break}case 34:{d(34);ne=81;break}case 47:switch(n[e+4>>1]|0){case 47:{P();break t}case 42:{y(1);break t}default:{e=a[67]|0;i=n[e>>1]|0;r:do{if(!(U(i)|0)){switch(i<<16>>16){case 41:if(D(a[(a[68]|0)+(c[396]<<3)+4>>2]|0)|0){ne=69;break r}else{ne=66;break r}case 125:break;default:{ne=66;break r}}t=a[68]|0;r=c[396]|0;if(!(p(a[t+(r<<3)+4>>2]|0)|0)?(a[t+(r<<3)>>2]|0)!=6:0)ne=66;else ne=69}else switch(i<<16>>16){case 46:if(((n[e+-2>>1]|0)+-48&65535)<10){ne=66;break r}else{ne=69;break r}case 43:if((n[e+-2>>1]|0)==43){ne=66;break r}else{ne=69;break r}case 45:if((n[e+-2>>1]|0)==45){ne=66;break r}else{ne=69;break r}default:{ne=69;break r}}}while(0);r:do{if((ne|0)==66){ne=0;if(!(o(e)|0)){switch(i<<16>>16){case 0:{ne=69;break r}case 47:{if(s[796]|0){ne=69;break r}break}default:{}}r=a[3]|0;t=i;do{if(e>>>0<=r>>>0)break;e=e+-2|0;a[67]=e;t=n[e>>1]|0}while(!(E(t)|0));if(F(t)|0){do{if(e>>>0<=r>>>0)break;e=e+-2|0;a[67]=e}while(F(n[e>>1]|0)|0);if(j(e)|0){g();s[796]=0;ne=81;break t}else e=1}else e=1}else ne=69}}while(0);if((ne|0)==69){g();e=0}s[796]=e;ne=81;break t}}case 96:{i=a[68]|0;r=n[396]|0;ne=r&65535;a[i+(ne<<3)+4>>2]=a[67];n[396]=r+1<<16>>16;a[i+(ne<<3)>>2]=3;h();ne=81;break}default:ne=81}}while(0);if((ne|0)==81){ne=0;a[67]=a[70]}e=a[70]|0}if((ne|0)==36){T();e=0;break}else if((ne|0)==49){T();e=0;break}else if((ne|0)==82){e=(s[794]|0)==0?(n[395]|n[396])<<16>>16==0:0;break}}}while(0);f=ce;return e|0}function l(){var e=0,t=0,r=0,i=0,c=0,f=0,ne=0,oe=0,ce=0,le=0,fe=0,ue=0,de=0,pe=0;oe=a[70]|0;ce=a[63]|0;pe=oe+12|0;a[70]=pe;r=w(1)|0;e=a[70]|0;if(!((e|0)==(pe|0)?!(I(r)|0):0))de=3;e:do{if((de|0)==3){t:do{switch(r<<16>>16){case 123:{a[70]=e+2;e=w(1)|0;r=a[70]|0;while(1){if(W(e)|0){d(e);e=(a[70]|0)+2|0;a[70]=e}else{q(e)|0;e=a[70]|0}w(1)|0;e=v(r,e)|0;if(e<<16>>16==44){a[70]=(a[70]|0)+2;e=w(1)|0}t=r;r=a[70]|0;if(e<<16>>16==125){de=15;break}if((r|0)==(t|0)){de=12;break}if(r>>>0>(a[71]|0)>>>0){de=14;break}}if((de|0)==12){T();break e}else if((de|0)==14){T();break e}else if((de|0)==15){a[70]=r+2;break t}break}case 42:{a[70]=e+2;w(1)|0;pe=a[70]|0;v(pe,pe)|0;break}default:{s[795]=0;switch(r<<16>>16){case 100:{oe=e+14|0;a[70]=oe;switch((w(1)|0)<<16>>16){case 97:{t=a[70]|0;if((m(t+2|0,56,8)|0)==0?(c=t+10|0,F(n[c>>1]|0)|0):0){a[70]=c;w(0)|0;de=22}break}case 102:{de=22;break}case 99:{t=a[70]|0;if(((m(t+2|0,36,8)|0)==0?(i=t+10|0,pe=n[i>>1]|0,V(pe)|0|pe<<16>>16==123):0)?(a[70]=i,f=w(1)|0,f<<16>>16!=123):0){ue=f;de=31}break}default:{}}r:do{if((de|0)==22?(ne=a[70]|0,(m(ne+2|0,64,14)|0)==0):0){r=ne+16|0;t=n[r>>1]|0;if(!(V(t)|0))switch(t<<16>>16){case 40:case 42:break;default:break r}a[70]=r;t=w(1)|0;if(t<<16>>16==42){a[70]=(a[70]|0)+2;t=w(1)|0}if(t<<16>>16!=40){ue=t;de=31}}}while(0);if((de|0)==31?(le=a[70]|0,q(ue)|0,fe=a[70]|0,fe>>>0>le>>>0):0){$(e,oe,le,fe);a[70]=(a[70]|0)+-2;break e}$(e,oe,0,0);a[70]=e+12;break e}case 97:{a[70]=e+10;w(0)|0;e=a[70]|0;de=35;break}case 102:{de=35;break}case 99:{if((m(e+2|0,36,8)|0)==0?(t=e+10|0,E(n[t>>1]|0)|0):0){a[70]=t;pe=w(1)|0;de=a[70]|0;q(pe)|0;pe=a[70]|0;$(de,pe,de,pe);a[70]=(a[70]|0)+-2;break e}e=e+4|0;a[70]=e;break}case 108:case 118:break;default:break e}if((de|0)==35){a[70]=e+16;e=w(1)|0;if(e<<16>>16==42){a[70]=(a[70]|0)+2;e=w(1)|0}de=a[70]|0;q(e)|0;pe=a[70]|0;$(de,pe,de,pe);a[70]=(a[70]|0)+-2;break e}e=e+4|0;a[70]=e;s[795]=0;r:while(1){a[70]=e+2;pe=w(1)|0;e=a[70]|0;switch((q(pe)|0)<<16>>16){case 91:case 123:break r;default:{}}t=a[70]|0;if((t|0)==(e|0))break e;$(e,t,e,t);if((w(1)|0)<<16>>16!=44)break;e=a[70]|0}a[70]=(a[70]|0)+-2;break e}}}while(0);pe=(w(1)|0)<<16>>16==102;e=a[70]|0;if(pe?(m(e+2|0,50,6)|0)==0:0){a[70]=e+8;u(oe,w(1)|0);e=(ce|0)==0?232:ce+16|0;while(1){e=a[e>>2]|0;if(!e)break e;a[e+12>>2]=0;a[e+8>>2]=0;e=e+16|0}}a[70]=e+-2}}while(0);return}function k(){var e=0,t=0,r=0,i=0,c=0,f=0;c=a[70]|0;e=c+12|0;a[70]=e;e:do{switch((w(1)|0)<<16>>16){case 40:{t=a[68]|0;f=n[396]|0;r=f&65535;a[t+(r<<3)>>2]=5;e=a[70]|0;n[396]=f+1<<16>>16;a[t+(r<<3)+4>>2]=e;if((n[a[67]>>1]|0)!=46){a[70]=e+2;f=w(1)|0;A(c,a[70]|0,0,e);t=a[61]|0;r=a[69]|0;c=n[395]|0;n[395]=c+1<<16>>16;a[r+((c&65535)<<2)>>2]=t;switch(f<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{a[70]=(a[70]|0)+-2;break e}}e=(a[70]|0)+2|0;a[70]=e;switch((w(1)|0)<<16>>16){case 44:{a[70]=(a[70]|0)+2;w(1)|0;c=a[61]|0;a[c+4>>2]=e;f=a[70]|0;a[c+16>>2]=f;s[c+24>>0]=1;a[70]=f+-2;break e}case 41:{n[396]=(n[396]|0)+-1<<16>>16;f=a[61]|0;a[f+4>>2]=e;a[f+12>>2]=(a[70]|0)+2;s[f+24>>0]=1;n[395]=(n[395]|0)+-1<<16>>16;break e}default:{a[70]=(a[70]|0)+-2;break e}}}break}case 46:{a[70]=(a[70]|0)+2;if((w(1)|0)<<16>>16==109?(t=a[70]|0,(m(t+2|0,44,6)|0)==0):0){e=a[67]|0;if(!(G(e)|0)?(n[e>>1]|0)==46:0)break e;A(c,c,t+8|0,2)}break}case 42:case 39:case 34:{i=18;break}case 123:{e=a[70]|0;if(n[396]|0){a[70]=e+-2;break e}while(1){if(e>>>0>=(a[71]|0)>>>0)break;e=w(1)|0;if(!(W(e)|0)){if(e<<16>>16==125){i=33;break}}else d(e);e=(a[70]|0)+2|0;a[70]=e}if((i|0)==33)a[70]=(a[70]|0)+2;f=(w(1)|0)<<16>>16==102;e=a[70]|0;if(f?m(e+2|0,50,6)|0:0){T();break e}a[70]=e+8;e=w(1)|0;if(W(e)|0){u(c,e);break e}else{T();break e}}default:if((a[70]|0)==(e|0))a[70]=c+10;else i=18}}while(0);do{if((i|0)==18){if(n[396]|0){a[70]=(a[70]|0)+-2;break}e=a[71]|0;t=a[70]|0;while(1){if(t>>>0>=e>>>0){i=25;break}r=n[t>>1]|0;if(W(r)|0){i=23;break}f=t+2|0;a[70]=f;t=f}if((i|0)==23){u(c,r);break}else if((i|0)==25){T();break}}}while(0);return}function u(e,t){e=e|0;t=t|0;var r=0,s=0;r=(a[70]|0)+2|0;switch(t<<16>>16){case 39:{d(39);s=5;break}case 34:{d(34);s=5;break}default:T()}do{if((s|0)==5){A(e,r,a[70]|0,1);a[70]=(a[70]|0)+2;t=w(0)|0;e=t<<16>>16==97;if(e){r=a[70]|0;if(m(r+2|0,78,10)|0)s=11}else{r=a[70]|0;if(!(((t<<16>>16==119?(n[r+2>>1]|0)==105:0)?(n[r+4>>1]|0)==116:0)?(n[r+6>>1]|0)==104:0))s=11}if((s|0)==11){a[70]=r+-2;break}a[70]=r+((e?6:4)<<1);if((w(1)|0)<<16>>16!=123){a[70]=r;break}e=a[70]|0;t=e;e:while(1){a[70]=t+2;t=w(1)|0;switch(t<<16>>16){case 39:{d(39);a[70]=(a[70]|0)+2;t=w(1)|0;break}case 34:{d(34);a[70]=(a[70]|0)+2;t=w(1)|0;break}default:t=q(t)|0}if(t<<16>>16!=58){s=20;break}a[70]=(a[70]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{s=24;break e}}a[70]=(a[70]|0)+2;switch((w(1)|0)<<16>>16){case 125:{s=29;break e}case 44:break;default:{s=28;break e}}a[70]=(a[70]|0)+2;if((w(1)|0)<<16>>16==125){s=29;break}t=a[70]|0}if((s|0)==20){a[70]=r;break}else if((s|0)==24){a[70]=r;break}else if((s|0)==28){a[70]=r;break}else if((s|0)==29){s=a[61]|0;a[s+16>>2]=e;a[s+12>>2]=(a[70]|0)+2;break}}}while(0);return}function o(e){e=e|0;e:do{switch(n[e>>1]|0){case 100:switch(n[e+-2>>1]|0){case 105:{e=O(e+-4|0,88,2)|0;break e}case 108:{e=O(e+-4|0,92,3)|0;break e}default:{e=0;break e}}case 101:switch(n[e+-2>>1]|0){case 115:switch(n[e+-4>>1]|0){case 108:{e=B(e+-6|0,101)|0;break e}case 97:{e=B(e+-6|0,99)|0;break e}default:{e=0;break e}}case 116:{e=O(e+-4|0,98,4)|0;break e}case 117:{e=O(e+-4|0,106,6)|0;break e}default:{e=0;break e}}case 102:{if((n[e+-2>>1]|0)==111?(n[e+-4>>1]|0)==101:0)switch(n[e+-6>>1]|0){case 99:{e=O(e+-8|0,118,6)|0;break e}case 112:{e=O(e+-8|0,130,2)|0;break e}default:{e=0;break e}}else e=0;break}case 107:{e=O(e+-2|0,134,4)|0;break}case 110:{e=e+-2|0;if(B(e,105)|0)e=1;else e=O(e,142,5)|0;break}case 111:{e=B(e+-2|0,100)|0;break}case 114:{e=O(e+-2|0,152,7)|0;break}case 116:{e=O(e+-2|0,166,4)|0;break}case 119:switch(n[e+-2>>1]|0){case 101:{e=B(e+-4|0,110)|0;break e}case 111:{e=O(e+-4|0,174,3)|0;break e}default:{e=0;break e}}default:e=0}}while(0);return e|0}function h(){var e=0,t=0,r=0,s=0;t=a[71]|0;r=a[70]|0;e:while(1){e=r+2|0;if(r>>>0>=t>>>0){t=10;break}switch(n[e>>1]|0){case 96:{t=7;break e}case 36:{if((n[r+4>>1]|0)==123){t=6;break e}break}case 92:{e=r+4|0;break}default:{}}r=e}if((t|0)==6){e=r+4|0;a[70]=e;t=a[68]|0;s=n[396]|0;r=s&65535;a[t+(r<<3)>>2]=4;n[396]=s+1<<16>>16;a[t+(r<<3)+4>>2]=e}else if((t|0)==7){a[70]=e;r=a[68]|0;s=(n[396]|0)+-1<<16>>16;n[396]=s;if((a[r+((s&65535)<<3)>>2]|0)!=3)T()}else if((t|0)==10){a[70]=e;T()}return}function w(e){e=e|0;var t=0,r=0,s=0;r=a[70]|0;e:do{t=n[r>>1]|0;t:do{if(t<<16>>16!=47)if(e)if(V(t)|0)break;else break e;else if(F(t)|0)break;else break e;else switch(n[r+2>>1]|0){case 47:{P();break t}case 42:{y(e);break t}default:{t=47;break e}}}while(0);s=a[70]|0;r=s+2|0;a[70]=r}while(s>>>0<(a[71]|0)>>>0);return t|0}function d(e){e=e|0;var t=0,r=0,s=0,i=0;i=a[71]|0;t=a[70]|0;while(1){s=t+2|0;if(t>>>0>=i>>>0){t=9;break}r=n[s>>1]|0;if(r<<16>>16==e<<16>>16){t=10;break}if(r<<16>>16==92){r=t+4|0;if((n[r>>1]|0)==13){t=t+6|0;t=(n[t>>1]|0)==10?t:r}else t=r}else if(Z(r)|0){t=9;break}else t=s}if((t|0)==9){a[70]=s;T()}else if((t|0)==10)a[70]=s;return}function v(e,t){e=e|0;t=t|0;var r=0,s=0,i=0,c=0;r=a[70]|0;s=n[r>>1]|0;c=(e|0)==(t|0);i=c?0:e;c=c?0:t;if(s<<16>>16==97){a[70]=r+4;r=w(1)|0;e=a[70]|0;if(W(r)|0){d(r);t=(a[70]|0)+2|0;a[70]=t}else{q(r)|0;t=a[70]|0}s=w(1)|0;r=a[70]|0}if((r|0)!=(e|0))$(e,t,i,c);return s|0}function A(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,c=0;i=a[65]|0;a[65]=i+32;c=a[61]|0;a[((c|0)==0?228:c+28|0)>>2]=i;a[62]=c;a[61]=i;a[i+8>>2]=e;if(2==(n|0))e=r;else e=1==(n|0)?r+2|0:0;a[i+12>>2]=e;a[i>>2]=t;a[i+4>>2]=r;a[i+16>>2]=0;a[i+20>>2]=n;s[i+24>>0]=1==(n|0)&1;a[i+28>>2]=0;return}function C(){var e=0,t=0,r=0;r=a[71]|0;t=a[70]|0;e:while(1){e=t+2|0;if(t>>>0>=r>>>0){t=6;break}switch(n[e>>1]|0){case 13:case 10:{t=6;break e}case 93:{t=7;break e}case 92:{e=t+4|0;break}default:{}}t=e}if((t|0)==6){a[70]=e;T();e=0}else if((t|0)==7){a[70]=e;e=93}return e|0}function g(){var e=0,t=0,r=0;e:while(1){e=a[70]|0;t=e+2|0;a[70]=t;if(e>>>0>=(a[71]|0)>>>0){r=7;break}switch(n[t>>1]|0){case 13:case 10:{r=7;break e}case 47:break e;case 91:{C()|0;break}case 92:{a[70]=e+4;break}default:{}}}if((r|0)==7)T();return}function p(e){e=e|0;switch(n[e>>1]|0){case 62:{e=(n[e+-2>>1]|0)==61;break}case 41:case 59:{e=1;break}case 104:{e=O(e+-2|0,200,4)|0;break}case 121:{e=O(e+-2|0,208,6)|0;break}case 101:{e=O(e+-2|0,220,3)|0;break}default:e=0}return e|0}function y(e){e=e|0;var t=0,r=0,s=0,i=0,c=0;i=(a[70]|0)+2|0;a[70]=i;r=a[71]|0;while(1){t=i+2|0;if(i>>>0>=r>>>0)break;s=n[t>>1]|0;if(!e?Z(s)|0:0)break;if(s<<16>>16==42?(n[i+4>>1]|0)==47:0){c=8;break}i=t}if((c|0)==8){a[70]=t;t=i+4|0}a[70]=t;return}function m(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,a=0;e:do{if(!r)e=0;else{while(1){n=s[e>>0]|0;a=s[t>>0]|0;if(n<<24>>24!=a<<24>>24)break;r=r+-1|0;if(!r){e=0;break e}else{e=e+1|0;t=t+1|0}}e=(n&255)-(a&255)|0}}while(0);return e|0}function I(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:{e=1;break}default:if((e&-8)<<16>>16==40|(e+-58&65535)<6)e=1;else{switch(e<<16>>16){case 91:case 93:case 94:{e=1;break e}default:{}}e=(e+-123&65535)<4}}}while(0);return e|0}function U(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:break;default:if(!((e+-58&65535)<6|(e+-40&65535)<7&e<<16>>16!=41)){switch(e<<16>>16){case 91:case 94:break e;default:{}}return e<<16>>16!=125&(e+-123&65535)<4|0}}}while(0);return 1}function x(e){e=e|0;var t=0;t=n[e>>1]|0;e:do{if((t+-9&65535)>=5){switch(t<<16>>16){case 160:case 32:{t=1;break e}default:{}}if(I(t)|0)return t<<16>>16!=46|(G(e)|0)|0;else t=0}else t=1}while(0);return t|0}function S(e){e=e|0;var t=0,r=0,s=0,i=0;r=f;f=f+16|0;s=r;a[s>>2]=0;a[64]=e;t=a[3]|0;i=t+(e<<1)|0;e=i+2|0;n[i>>1]=0;a[s>>2]=e;a[65]=e;a[57]=0;a[61]=0;a[59]=0;a[58]=0;a[63]=0;a[60]=0;f=r;return t|0}function O(e,t,r){e=e|0;t=t|0;r=r|0;var s=0,n=0;s=e+(0-r<<1)|0;n=s+2|0;e=a[3]|0;if(n>>>0>=e>>>0?(m(n,t,r<<1)|0)==0:0)if((n|0)==(e|0))e=1;else e=x(s)|0;else e=0;return e|0}function $(e,t,r,s){e=e|0;t=t|0;r=r|0;s=s|0;var n=0,i=0;n=a[65]|0;a[65]=n+20;i=a[63]|0;a[((i|0)==0?232:i+16|0)>>2]=n;a[63]=n;a[n>>2]=e;a[n+4>>2]=t;a[n+8>>2]=r;a[n+12>>2]=s;a[n+16>>2]=0;return}function j(e){e=e|0;switch(n[e>>1]|0){case 107:{e=O(e+-2|0,134,4)|0;break}case 101:{if((n[e+-2>>1]|0)==117)e=O(e+-4|0,106,6)|0;else e=0;break}default:e=0}return e|0}function B(e,t){e=e|0;t=t|0;var r=0;r=a[3]|0;if(r>>>0<=e>>>0?(n[e>>1]|0)==t<<16>>16:0)if((r|0)==(e|0))r=1;else r=E(n[e+-2>>1]|0)|0;else r=0;return r|0}function E(e){e=e|0;e:do{if((e+-9&65535)<5)e=1;else{switch(e<<16>>16){case 32:case 160:{e=1;break e}default:{}}e=e<<16>>16!=46&(I(e)|0)}}while(0);return e|0}function P(){var e=0,t=0,r=0;e=a[71]|0;r=a[70]|0;e:while(1){t=r+2|0;if(r>>>0>=e>>>0)break;switch(n[t>>1]|0){case 13:case 10:break e;default:r=t}}a[70]=t;return}function q(e){e=e|0;while(1){if(V(e)|0)break;if(I(e)|0)break;e=(a[70]|0)+2|0;a[70]=e;e=n[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function z(){var e=0;e=a[(a[59]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(a[3]|0)>>1}return e|0}function D(e){e=e|0;if(!(O(e,180,5)|0)?!(O(e,190,3)|0):0)e=O(e,196,2)|0;else e=1;return e|0}function F(e){e=e|0;switch(e<<16>>16){case 160:case 32:case 12:case 11:case 9:{e=1;break}default:e=0}return e|0}function G(e){e=e|0;if((n[e>>1]|0)==46?(n[e+-2>>1]|0)==46:0)e=(n[e+-4>>1]|0)==46;else e=0;return e|0}function H(e){e=e|0;if((a[3]|0)==(e|0))e=1;else e=x(e+-2|0)|0;return e|0}function J(){var e=0;e=a[(a[60]|0)+12>>2]|0;if(!e)e=-1;else e=e-(a[3]|0)>>1;return e|0}function K(){var e=0;e=a[(a[59]|0)+12>>2]|0;if(!e)e=-1;else e=e-(a[3]|0)>>1;return e|0}function L(){var e=0;e=a[(a[60]|0)+8>>2]|0;if(!e)e=-1;else e=e-(a[3]|0)>>1;return e|0}function M(){var e=0;e=a[(a[59]|0)+16>>2]|0;if(!e)e=-1;else e=e-(a[3]|0)>>1;return e|0}function N(){var e=0;e=a[(a[59]|0)+4>>2]|0;if(!e)e=-1;else e=e-(a[3]|0)>>1;return e|0}function Q(){var e=0;e=a[59]|0;e=a[((e|0)==0?228:e+28|0)>>2]|0;a[59]=e;return(e|0)!=0|0}function R(){var e=0;e=a[60]|0;e=a[((e|0)==0?232:e+16|0)>>2]|0;a[60]=e;return(e|0)!=0|0}function T(){s[794]=1;a[66]=(a[70]|0)-(a[3]|0)>>1;a[70]=(a[71]|0)+2;return}function V(e){e=e|0;return(e|128)<<16>>16==160|(e+-9&65535)<5|0}function W(e){e=e|0;return e<<16>>16==39|e<<16>>16==34|0}function X(){return(a[(a[59]|0)+8>>2]|0)-(a[3]|0)>>1|0}function Y(){return(a[(a[60]|0)+4>>2]|0)-(a[3]|0)>>1|0}function Z(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function _(){return(a[a[59]>>2]|0)-(a[3]|0)>>1|0}function ee(){return(a[a[60]>>2]|0)-(a[3]|0)>>1|0}function ae(){return i[(a[59]|0)+24>>0]|0|0}function re(e){e=e|0;a[3]=e;return}function ie(){return(s[795]|0)!=0|0}function se(){return a[66]|0}function te(e){e=e|0;f=e+992+15&-16;return 992}return{su:te,ai:M,e:se,ee:Y,ele:J,els:L,es:ee,f:ie,id:z,ie:N,ip:ae,is:_,p:b,re:R,ri:Q,sa:S,se:K,ses:re,ss:X}}("undefined"!=typeof self?self:global,{},je),Te=Me.su(Re-(2<<17))}const s=He.length+1;Me.ses(Te),Me.sa(s-1),_e(He,new Uint16Array(je,Te,s)),Me.p()||(Fe=Me.e(),o());const n=[],a=[];for(;Me.ri();){const e=Me.is(),t=Me.ie(),r=Me.ai(),s=Me.id(),a=Me.ss(),i=Me.se();let c;Me.ip()&&(c=b(-1===s?e:e+1,He.charCodeAt(-1===s?e-1:e))),n.push({n:c,s:e,e:t,ss:a,se:i,d:s,a:r})}for(;Me.re();){const e=Me.es(),t=Me.ee(),r=Me.els(),s=Me.ele(),n=He.charCodeAt(e),i=r>=0?He.charCodeAt(r):-1;a.push({s:e,e:t,ls:r,le:s,n:34===n||39===n?b(e+1,n):He.slice(e,t),ln:r<0?void 0:34===i||39===i?b(r+1,i):He.slice(r,s)})}return[n,a,!!Me.f()]}function b(e,t){Fe=e;let r="",s=Fe;for(;;){Fe>=He.length&&o();const e=He.charCodeAt(Fe);if(e===t)break;92===e?(r+=He.slice(s,Fe),r+=l(),s=Fe):(8232===e||8233===e||u(e)&&o(),++Fe)}return r+=He.slice(s,Fe++),r}function l(){let e=He.charCodeAt(++Fe);switch(++Fe,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(k(2));case 117:return function(){const e=He.charCodeAt(Fe);let t;123===e?(++Fe,t=k(He.indexOf("}",Fe)-Fe),++Fe,t>1114111&&o()):t=k(4);return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}();case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===He.charCodeAt(Fe)&&++Fe;case 10:return"";case 56:case 57:o();default:if(e>=48&&e<=55){let t=He.substr(Fe-1,3).match(/^[0-7]+/)[0],r=parseInt(t,8);return r>255&&(t=t.slice(0,-1),r=parseInt(t,8)),Fe+=t.length-1,e=He.charCodeAt(Fe),"0"===t&&56!==e&&57!==e||o(),String.fromCharCode(r)}return u(e)?"":String.fromCharCode(e)}}function k(e){const t=Fe;let r=0,s=0;for(let t=0;t<e;++t,++Fe){let e,n=He.charCodeAt(Fe);if(95!==n){if(n>=97)e=n-97+10;else if(n>=65)e=n-65+10;else{if(!(n>=48&&n<=57))break;e=n-48}if(e>=16)break;s=n,r=16*r+e}else 95!==s&&0!==t||o(),s=n}return 95!==s&&Fe-t===e||o(),r}function u(e){return 13===e||10===e}function o(){throw Object.assign(Error(`Parse error ${qe}:${He.slice(0,Fe).split("\n").length}:${Fe-He.lastIndexOf("\n",Fe-1)}`),{idx:Fe})}async function _resolve(e,t){const r=resolveIfNotPlainOrUrl(e,t);return{r:resolveImportMap(De,r||e,t)||throwUnresolved(e,t),b:!r&&!isURL(e)}}const Je=i?async(e,t)=>{let r=i(e,t,defaultResolve);r&&r.then&&(r=await r);return r?{r:r,b:!resolveIfNotPlainOrUrl(e,t)&&!isURL(e)}:_resolve(e,t)}:_resolve;async function importShim(e,...r){let s=r[r.length-1];"string"!==typeof s&&(s=ke);await Ve;a&&await a(e,"string"!==typeof r[1]?r[1]:{},s);if(Ke||n||!We){t&&processScriptsAndPreloads(true);n||(Ke=false)}await ze;return topLevelLoad((await Je(e,s)).r,{credentials:"same-origin"})}self.importShim=importShim;function defaultResolve(e,t){return resolveImportMap(De,resolveIfNotPlainOrUrl(e,t)||e,t)||throwUnresolved(e,t)}function throwUnresolved(e,t){throw Error(`Unable to resolve specifier '${e}'${fromParent(t)}`)}const resolveSync=(e,t=ke)=>{t=`${t}`;const r=i&&i(e,t,defaultResolve);return r&&!r.then?r:defaultResolve(e,t)};function metaResolve(e,t=this.url){return resolveSync(e,t)}importShim.resolve=resolveSync;importShim.getImportMap=()=>JSON.parse(JSON.stringify(De));importShim.addImportMap=e=>{if(!n)throw new Error("Unsupported in polyfill mode.");De=resolveAndComposeImportMap(e,ke,De)};const Be=importShim._r={};async function loadAll(e,t){if(!e.b&&!t[e.u]){t[e.u]=1;await e.L;await Promise.all(e.d.map((e=>loadAll(e,t))));e.n||(e.n=e.d.some((e=>e.n)))}}let De={imports:{},scopes:{}};let We;const Ve=Ie.then((()=>{We=true!==s.polyfillEnable&&$e&&xe&&Ae&&(!be||Se)&&(!he||Le)&&!ge;if(t){if(!Ae){const e=HTMLScriptElement.supports||(e=>"classic"===e||"module"===e);HTMLScriptElement.supports=t=>"importmap"===t||e(t)}if(n||!We){new MutationObserver((e=>{for(const t of e)if("childList"===t.type)for(const e of t.addedNodes)if("SCRIPT"===e.tagName){e.type===(n?"module-shim":"module")&&processScript(e,true);e.type===(n?"importmap-shim":"importmap")&&processImportMap(e,true)}else"LINK"===e.tagName&&e.rel===(n?"modulepreload-shim":"modulepreload")&&processPreload(e)})).observe(document,{childList:true,subtree:true});processScriptsAndPreloads();if("complete"===document.readyState)readyStateCompleteCheck();else{async function readyListener(){await Ve;processScriptsAndPreloads();if("complete"===document.readyState){readyStateCompleteCheck();document.removeEventListener("readystatechange",readyListener)}}document.addEventListener("readystatechange",readyListener)}}}}));let ze=Ve;let Ge=true;let Ke=true;async function topLevelLoad(e,t,r,s,i){n||(Ke=false);await Ve;await ze;a&&await a(e,"string"!==typeof t?t:{},"");if(!n&&We){if(s)return null;await i;return ye(r?createBlob(r):e,{errUrl:e||r})}const c=getOrCreateLoad(e,t,null,r);const f={};await loadAll(c,f);Ze=void 0;resolveDeps(c,f);await i;if(r&&!n&&!c.n){if(s)return;fe&&revokeObjectURLs(Object.keys(f));return await ye(createBlob(r),{errUrl:r})}if(Ge&&!n&&c.n&&s){le();Ge=false}const ne=await ye(n||c.n||!s?c.b:c.u,{errUrl:c.u});c.s&&(await ye(c.s)).u$_(ne);fe&&revokeObjectURLs(Object.keys(f));return ne}function revokeObjectURLs(e){let t=0;const r=e.length;const s=self.requestIdleCallback?self.requestIdleCallback:self.requestAnimationFrame;s(cleanup);function cleanup(){const n=100*t;if(!(n>r)){for(const t of e.slice(n,n+100)){const e=Be[t];e&&URL.revokeObjectURL(e.b)}t++;s(cleanup)}}}function urlJsString(e){return`'${e.replace(/'/g,"\\'")}'`}let Ze;function resolveDeps(e,t){if(e.b||!t[e.u])return;t[e.u]=0;for(const c of e.d)resolveDeps(c,t);const[r,s]=e.a;const n=e.S;let a=me&&Ze?`import '${Ze}';`:"";if(r.length){let ne=0,oe=0,ce=[];function pushStringTo(t){while(ce[ce.length-1]<t){const t=ce.pop();a+=`${n.slice(ne,t)}, ${urlJsString(e.r)}`;ne=t}a+=n.slice(ne,t);ne=t}for(const{s:le,ss:fe,se:ue,d:de}of r)if(-1===de){let pe=e.d[oe++],he=pe.b,be=!he;be&&((he=pe.s)||(he=pe.s=createBlob(`export function u$_(m){${pe.a[1].map((({s:e,e:t},r)=>{const s='"'===pe.S[e]||"'"===pe.S[e];return`e$_${r}=m${s?"[":"."}${pe.S.slice(e,t)}${s?"]":""}`})).join(",")}}${pe.a[1].length?`let ${pe.a[1].map(((e,t)=>`e$_${t}`)).join(",")};`:""}export {${pe.a[1].map((({s:e,e:t},r)=>`e$_${r} as ${pe.S.slice(e,t)}`)).join(",")}}\n//# sourceURL=${pe.r}?cycle`)));pushStringTo(le-1);a+=`/*${n.slice(le-1,ue)}*/${urlJsString(he)}`;if(!be&&pe.s){a+=`;import*as m$_${oe} from'${pe.b}';import{u$_ as u$_${oe}}from'${pe.s}';u$_${oe}(m$_${oe})`;pe.s=void 0}ne=ue}else if(-2===de){e.m={url:e.r,resolve:metaResolve};f(e.m,e.u);pushStringTo(le);a+=`importShim._r[${urlJsString(e.u)}].m`;ne=ue}else{pushStringTo(fe+6);a+="Shim(";ce.push(ue-1);ne=le}e.s&&(a+=`\n;import{u$_}from'${e.s}';try{u$_({${s.filter((e=>e.ln)).map((({s:e,e:t,ln:r})=>`${n.slice(e,t)}:${r}`)).join(",")}})}catch(_){};\n`);pushStringTo(n.length)}else a+=n;let i=false;a=a.replace(Qe,((t,r,s)=>(i=!r,t.replace(s,(()=>new URL(s,e.r))))));i||(a+="\n//# sourceURL="+e.r);e.b=Ze=createBlob(a);e.S=void 0}const Qe=/\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;const Xe=/^(text|application)\/(x-)?javascript(;|$)/;const Ye=/^(text|application)\/json(;|$)/;const et=/^(text|application)\/css(;|$)/;const tt=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;let rt=[];let st=0;function pushFetchPool(){if(++st>100)return new Promise((e=>rt.push(e)))}function popFetchPool(){st--;rt.length&&rt.shift()()}async function doFetch(e,t,r){if(de&&!t.integrity)throw Error(`No integrity for ${e}${fromParent(r)}.`);const s=pushFetchPool();s&&await s;try{var n=await c(e,t)}catch(t){t.message=`Unable to fetch ${e}${fromParent(r)} - see network log for details.\n`+t.message;throw t}finally{popFetchPool()}if(!n.ok)throw Error(`${n.status} ${n.statusText} ${n.url}${fromParent(r)}`);return n}async function fetchModule(e,t,r){const s=await doFetch(e,t,r);const n=s.headers.get("content-type");if(Xe.test(n))return{r:s.url,s:await s.text(),t:"js"};if(Ye.test(n))return{r:s.url,s:`export default ${await s.text()}`,t:"json"};if(et.test(n))return{r:s.url,s:`var s=new CSSStyleSheet();s.replaceSync(${JSON.stringify((await s.text()).replace(tt,((t,r="",s,n)=>`url(${r}${resolveUrl(s||n,e)}${r})`)))});export default s;`,t:"css"};throw Error(`Unsupported Content-Type "${n}" loading ${e}${fromParent(r)}. Modules must be served with a valid MIME type like application/javascript.`)}function getOrCreateLoad(e,t,r,s){let a=Be[e];if(a&&!s)return a;a={u:e,r:s?e:void 0,f:void 0,S:void 0,L:void 0,a:void 0,d:void 0,b:void 0,s:void 0,n:false,t:null,m:null};if(Be[e]){let e=0;while(Be[a.u+ ++e]);a.u+=e}Be[a.u]=a;a.f=(async()=>{if(!s){let i;({r:a.r,s:s,t:i}=await(ot[e]||fetchModule(e,t,r)));if(i&&!n){if("css"===i&&!he||"json"===i&&!be)throw Error(`${i}-modules require <script type="esms-options">{ "polyfillEnable": ["${i}-modules"] }<\/script>`);("css"===i&&!Le||"json"===i&&!Se)&&(a.n=true)}}try{a.a=parse(s,a.u)}catch(e){throwError(e);a.a=[[],[],false]}a.S=s;return a})();a.L=a.f.then((async()=>{let e=t;a.d=(await Promise.all(a.a[0].map((async({n:t,d:r})=>{(r>=0&&!$e||-2===r&&!xe)&&(a.n=true);if(-1!==r||!t)return;const{r:s,b:n}=await Je(t,a.r||a.u);!n||Ae&&!ge||(a.n=true);if(-1===r){if(we&&we(s))return{b:s};e.integrity&&(e=Object.assign({},e,{integrity:void 0}));return getOrCreateLoad(s,e,a.r).f}})))).filter((e=>e))}));return a}function processScriptsAndPreloads(e=false){if(!e)for(const e of document.querySelectorAll(n?"link[rel=modulepreload-shim]":"link[rel=modulepreload]"))processPreload(e);for(const e of document.querySelectorAll(n?"script[type=importmap-shim]":"script[type=importmap]"))processImportMap(e);if(!e)for(const e of document.querySelectorAll(n?"script[type=module-shim]":"script[type=module]"))processScript(e)}function getFetchOpts(e){const t={};e.integrity&&(t.integrity=e.integrity);e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy);"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin";return t}let nt=Promise.resolve();let at=1;function domContentLoadedCheck(){0!==--at||ue||!n&&We||document.dispatchEvent(new Event("DOMContentLoaded"))}t&&document.addEventListener("DOMContentLoaded",(async()=>{await Ve;domContentLoadedCheck()}));let it=1;function readyStateCompleteCheck(){0!==--it||ue||!n&&We||document.dispatchEvent(new Event("readystatechange"))}const hasNext=e=>e.nextSibling||e.parentNode&&hasNext(e.parentNode);const epCheck=(e,t)=>e.ep||!t&&(!e.src&&!e.innerHTML||!hasNext(e))||null!==e.getAttribute("noshim")||!(e.ep=true);function processImportMap(e,t=it>0){if(!epCheck(e,t)){if(e.src){if(!n)return;setImportMapSrcOrLazy()}if(Ke){ze=ze.then((async()=>{De=resolveAndComposeImportMap(e.src?await(await doFetch(e.src,getFetchOpts(e))).json():JSON.parse(e.innerHTML),e.src||ke,De)})).catch((t=>{console.log(t);t instanceof SyntaxError&&(t=new Error(`Unable to parse import map ${t.message} in: ${e.src||e.innerHTML}`));throwError(t)}));n||(Ke=false)}}}function processScript(e,t=it>0){if(epCheck(e,t))return;const r=null===e.getAttribute("async")&&it>0;const s=at>0;r&&it++;s&&at++;const a=topLevelLoad(e.src||ke,getFetchOpts(e),!e.src&&e.innerHTML,!n,r&&nt).then((()=>{n&&e.dispatchEvent(new Event("load"))})).catch(throwError);r&&(nt=a.then(readyStateCompleteCheck));s&&a.then(domContentLoadedCheck)}const ot={};function processPreload(e){if(!e.ep){e.ep=true;ot[e.href]||(ot[e.href]=fetchModule(e.href,getFetchOpts(e)))}}})();
|
2
2
|
|
3
|
-
//# sourceMappingURL=es-module-shims.js.map
|
3
|
+
//# sourceMappingURL=es-module-shims.js.map
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Importmap::ImportmapTagsHelper
|
2
2
|
# Setup all script tags needed to use an importmap-powered entrypoint (which defaults to application.js)
|
3
|
-
def javascript_importmap_tags(entry_point = "application", shim: true)
|
3
|
+
def javascript_importmap_tags(entry_point = "application", shim: true, importmap: Rails.application.importmap)
|
4
4
|
safe_join [
|
5
|
-
javascript_inline_importmap_tag,
|
6
|
-
javascript_importmap_module_preload_tags,
|
5
|
+
javascript_inline_importmap_tag(importmap.to_json(resolver: self)),
|
6
|
+
javascript_importmap_module_preload_tags(importmap),
|
7
7
|
(javascript_importmap_shim_nonce_configuration_tag if shim),
|
8
8
|
(javascript_importmap_shim_tag if shim),
|
9
9
|
javascript_import_module_tag(entry_point)
|
@@ -14,28 +14,28 @@ module Importmap::ImportmapTagsHelper
|
|
14
14
|
# By default, `Rails.application.importmap.to_json(resolver: self)` is used.
|
15
15
|
def javascript_inline_importmap_tag(importmap_json = Rails.application.importmap.to_json(resolver: self))
|
16
16
|
tag.script importmap_json.html_safe,
|
17
|
-
type: "importmap", "data-turbo-track": "reload", nonce: content_security_policy_nonce
|
17
|
+
type: "importmap", "data-turbo-track": "reload", nonce: request&.content_security_policy_nonce
|
18
18
|
end
|
19
19
|
|
20
20
|
# Configure es-modules-shim with nonce support if the application is using a content security policy.
|
21
21
|
def javascript_importmap_shim_nonce_configuration_tag
|
22
|
-
if content_security_policy
|
23
|
-
tag.script({ nonce: content_security_policy_nonce }.to_json.html_safe,
|
24
|
-
type: "esms-options", nonce: content_security_policy_nonce)
|
22
|
+
if request&.content_security_policy
|
23
|
+
tag.script({ nonce: request.content_security_policy_nonce }.to_json.html_safe,
|
24
|
+
type: "esms-options", nonce: request.content_security_policy_nonce)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
# Include the es-modules-shim needed to make importmaps work in browsers without native support (like Firefox + Safari).
|
29
29
|
def javascript_importmap_shim_tag(minimized: true)
|
30
30
|
javascript_include_tag minimized ? "es-module-shims.min.js" : "es-module-shims.js",
|
31
|
-
async: true, "data-turbo-track": "reload", nonce: content_security_policy_nonce
|
31
|
+
async: true, "data-turbo-track": "reload", nonce: request&.content_security_policy_nonce
|
32
32
|
end
|
33
33
|
|
34
34
|
# Import a named JavaScript module(s) using a script-module tag.
|
35
35
|
def javascript_import_module_tag(*module_names)
|
36
36
|
imports = Array(module_names).collect { |m| %(import "#{m}") }.join("\n")
|
37
|
-
tag.script imports.html_safe,
|
38
|
-
type: "module", nonce: content_security_policy_nonce
|
37
|
+
tag.script imports.html_safe,
|
38
|
+
type: "module", nonce: request&.content_security_policy_nonce
|
39
39
|
end
|
40
40
|
|
41
41
|
# Link tags for preloading all modules marked as preload: true in the `importmap`
|
@@ -48,7 +48,7 @@ module Importmap::ImportmapTagsHelper
|
|
48
48
|
# Link tag(s) for preloading the JavaScript module residing in `*paths`. Will return one link tag per path element.
|
49
49
|
def javascript_module_preload_tag(*paths)
|
50
50
|
safe_join(Array(paths).collect { |path|
|
51
|
-
tag.link rel: "modulepreload", href: path, nonce: content_security_policy_nonce
|
51
|
+
tag.link rel: "modulepreload", href: path, nonce: request&.content_security_policy_nonce
|
52
52
|
}, "\n")
|
53
53
|
end
|
54
54
|
end
|
data/lib/importmap/commands.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "thor"
|
2
2
|
require "importmap/packager"
|
3
|
+
require "importmap/npm"
|
3
4
|
|
4
5
|
class Importmap::Commands < Thor
|
5
6
|
include Thor::Actions
|
@@ -7,7 +8,7 @@ class Importmap::Commands < Thor
|
|
7
8
|
def self.exit_on_failure?
|
8
9
|
false
|
9
10
|
end
|
10
|
-
|
11
|
+
|
11
12
|
desc "pin [*PACKAGES]", "Pin new packages"
|
12
13
|
option :env, type: :string, aliases: :e, default: "production"
|
13
14
|
option :from, type: :string, aliases: :f, default: "jspm"
|
@@ -63,11 +64,59 @@ class Importmap::Commands < Thor
|
|
63
64
|
puts Rails.application.importmap.to_json(resolver: ActionController::Base.helpers)
|
64
65
|
end
|
65
66
|
|
67
|
+
desc "audit", "Run a security audit"
|
68
|
+
def audit
|
69
|
+
vulnerable_packages = npm.vulnerable_packages
|
70
|
+
|
71
|
+
if vulnerable_packages.any?
|
72
|
+
table = [["Package", "Severity", "Vulnerable versions", "Vulnerability"]]
|
73
|
+
vulnerable_packages.each { |p| table << [p.name, p.severity, p.vulnerable_versions, p.vulnerability] }
|
74
|
+
|
75
|
+
puts_table(table)
|
76
|
+
vulnerabilities = 'vulnerability'.pluralize(vulnerable_packages.size)
|
77
|
+
severities = vulnerable_packages.map(&:severity).tally.sort_by(&:last).reverse
|
78
|
+
.map { |severity, count| "#{count} #{severity}" }
|
79
|
+
.join(", ")
|
80
|
+
puts " #{vulnerable_packages.size} #{vulnerabilities} found: #{severities}"
|
81
|
+
|
82
|
+
exit 1
|
83
|
+
else
|
84
|
+
puts "No vulnerable packages found"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
desc "outdated", "Check for outdated packages"
|
89
|
+
def outdated
|
90
|
+
outdated_packages = npm.outdated_packages
|
91
|
+
|
92
|
+
if outdated_packages.any?
|
93
|
+
table = [["Package", "Current", "Latest"]]
|
94
|
+
outdated_packages.each { |p| table << [p.name, p.current_version, p.latest_version || p.error] }
|
95
|
+
|
96
|
+
puts_table(table)
|
97
|
+
packages = 'package'.pluralize(outdated_packages.size)
|
98
|
+
puts " #{outdated_packages.size} outdated #{packages} found"
|
99
|
+
|
100
|
+
exit 1
|
101
|
+
else
|
102
|
+
puts "No outdated packages found"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
desc "packages", "Print out packages with version numbers"
|
107
|
+
def packages
|
108
|
+
puts npm.packages_with_versions.map { |x| x.join(' ') }
|
109
|
+
end
|
110
|
+
|
66
111
|
private
|
67
112
|
def packager
|
68
113
|
@packager ||= Importmap::Packager.new
|
69
114
|
end
|
70
115
|
|
116
|
+
def npm
|
117
|
+
@npm ||= Importmap::Npm.new
|
118
|
+
end
|
119
|
+
|
71
120
|
def remove_line_from_file(path, pattern)
|
72
121
|
path = File.expand_path(path, destination_root)
|
73
122
|
|
@@ -78,6 +127,21 @@ class Importmap::Commands < Thor
|
|
78
127
|
with_lines_removed.each { |line| file.write(line) }
|
79
128
|
end
|
80
129
|
end
|
130
|
+
|
131
|
+
def puts_table(array)
|
132
|
+
column_sizes = array.reduce([]) do |lengths, row|
|
133
|
+
row.each_with_index.map{ |iterand, index| [lengths[index] || 0, iterand.to_s.length].max }
|
134
|
+
end
|
135
|
+
|
136
|
+
puts head = "+" + (column_sizes.map { |s| "-" * (s + 2) }.join('+')) + '+'
|
137
|
+
array.each_with_index do |row, row_number|
|
138
|
+
row = row.fill(nil, row.size..(column_sizes.size - 1))
|
139
|
+
row = row.each_with_index.map { |v, i| v.to_s + " " * (column_sizes[i] - v.to_s.length) }
|
140
|
+
puts "| " + row.join(" | ") + " |"
|
141
|
+
puts head if row_number == 0
|
142
|
+
end
|
143
|
+
puts head
|
144
|
+
end
|
81
145
|
end
|
82
146
|
|
83
147
|
Importmap::Commands.start(ARGV)
|
data/lib/importmap/engine.rb
CHANGED
@@ -20,15 +20,17 @@ module Importmap
|
|
20
20
|
end
|
21
21
|
|
22
22
|
initializer "importmap.reloader" do |app|
|
23
|
-
|
24
|
-
reloader
|
25
|
-
|
26
|
-
|
23
|
+
unless app.config.cache_classes
|
24
|
+
Importmap::Reloader.new.tap do |reloader|
|
25
|
+
reloader.execute
|
26
|
+
app.reloaders << reloader
|
27
|
+
app.reloader.to_run { reloader.execute }
|
28
|
+
end
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
32
|
initializer "importmap.cache_sweeper" do |app|
|
31
|
-
if app.config.importmap.sweep_cache
|
33
|
+
if app.config.importmap.sweep_cache && !app.config.cache_classes
|
32
34
|
app.config.importmap.cache_sweepers << app.root.join("app/javascript")
|
33
35
|
app.config.importmap.cache_sweepers << app.root.join("vendor/javascript")
|
34
36
|
app.importmap.cache_sweeper(watches: app.config.importmap.cache_sweepers)
|
data/lib/importmap/map.rb
CHANGED
@@ -3,17 +3,20 @@ require "pathname"
|
|
3
3
|
class Importmap::Map
|
4
4
|
attr_reader :packages, :directories
|
5
5
|
|
6
|
+
class InvalidFile < StandardError; end
|
7
|
+
|
6
8
|
def initialize
|
7
9
|
@packages, @directories = {}, {}
|
10
|
+
@cache = {}
|
8
11
|
end
|
9
12
|
|
10
13
|
def draw(path = nil, &block)
|
11
14
|
if path && File.exist?(path)
|
12
15
|
begin
|
13
16
|
instance_eval(File.read(path), path.to_s)
|
14
|
-
rescue
|
17
|
+
rescue StandardError => e
|
15
18
|
Rails.logger.error "Unable to parse import map from #{path}: #{e.message}"
|
16
|
-
raise "Unable to parse import map from #{path}: #{e.message}"
|
19
|
+
raise InvalidFile, "Unable to parse import map from #{path}: #{e.message}"
|
17
20
|
end
|
18
21
|
elsif block_given?
|
19
22
|
instance_eval(&block)
|
@@ -32,10 +35,11 @@ class Importmap::Map
|
|
32
35
|
@directories[dir] = MappedDir.new(dir: dir, under: under, path: to, preload: preload)
|
33
36
|
end
|
34
37
|
|
35
|
-
# Returns an array of all the resolved module paths of the pinned packages. The `resolver` must respond to
|
36
|
-
# such as `ActionController::Base.helpers` or `ApplicationController.helpers`. You'll want to use the
|
37
|
-
# been configured for the `asset_host` you want these resolved paths to use. In case you need to
|
38
|
-
# asset hosts, you can pass in a custom `cache_key` to vary the cache used by this method for
|
38
|
+
# Returns an array of all the resolved module paths of the pinned packages. The `resolver` must respond to
|
39
|
+
# `path_to_asset`, such as `ActionController::Base.helpers` or `ApplicationController.helpers`. You'll want to use the
|
40
|
+
# resolver that has been configured for the `asset_host` you want these resolved paths to use. In case you need to
|
41
|
+
# resolve for different asset hosts, you can pass in a custom `cache_key` to vary the cache used by this method for
|
42
|
+
# the different cases.
|
39
43
|
def preloaded_module_paths(resolver:, cache_key: :preloaded_module_paths)
|
40
44
|
cache_as(cache_key) do
|
41
45
|
resolve_asset_paths(expanded_preloading_packages_and_directories, resolver: resolver).values
|
@@ -43,10 +47,10 @@ class Importmap::Map
|
|
43
47
|
end
|
44
48
|
|
45
49
|
# Returns a JSON hash (as a string) of all the resolved module paths of the pinned packages in the import map format.
|
46
|
-
# The `resolver` must respond to `
|
47
|
-
# You'll want to use the resolver that has been configured for the `asset_host` you
|
48
|
-
# In case you need to resolve for different asset hosts, you can pass in a custom
|
49
|
-
# by this method for the different cases.
|
50
|
+
# The `resolver` must respond to `path_to_asset`, such as `ActionController::Base.helpers` or
|
51
|
+
# `ApplicationController.helpers`. You'll want to use the resolver that has been configured for the `asset_host` you
|
52
|
+
# want these resolved paths to use. In case you need to resolve for different asset hosts, you can pass in a custom
|
53
|
+
# `cache_key` to vary the cache used by this method for the different cases.
|
50
54
|
def to_json(resolver:, cache_key: :json)
|
51
55
|
cache_as(cache_key) do
|
52
56
|
JSON.pretty_generate({ "imports" => resolve_asset_paths(expanded_packages_and_directories, resolver: resolver) })
|
@@ -65,7 +69,7 @@ class Importmap::Map
|
|
65
69
|
Digest::SHA1.hexdigest(to_json(resolver: resolver).to_s)
|
66
70
|
end
|
67
71
|
|
68
|
-
# Returns an instance ActiveSupport::EventedFileUpdateChecker configured to clear the cache of the map
|
72
|
+
# Returns an instance of ActiveSupport::EventedFileUpdateChecker configured to clear the cache of the map
|
69
73
|
# when the directories passed on initialization via `watches:` have changes. This is used in development
|
70
74
|
# and test to ensure the map caches are reset when javascript files are changed.
|
71
75
|
def cache_sweeper(watches: nil)
|
@@ -84,24 +88,15 @@ class Importmap::Map
|
|
84
88
|
MappedFile = Struct.new(:name, :path, :preload, keyword_init: true)
|
85
89
|
|
86
90
|
def cache_as(name)
|
87
|
-
if result =
|
91
|
+
if result = @cache[name.to_s]
|
88
92
|
result
|
89
93
|
else
|
90
|
-
|
91
|
-
instance_variable_set("@cached_#{name}", yield)
|
94
|
+
@cache[name.to_s] = yield
|
92
95
|
end
|
93
96
|
end
|
94
97
|
|
95
|
-
def remember_cache_key(name)
|
96
|
-
@cache_keys ||= Set.new
|
97
|
-
@cache_keys.add name
|
98
|
-
end
|
99
|
-
|
100
|
-
|
101
98
|
def clear_cache
|
102
|
-
@
|
103
|
-
instance_variable_set("@cached_#{name}", nil)
|
104
|
-
end
|
99
|
+
@cache.clear
|
105
100
|
end
|
106
101
|
|
107
102
|
def rescuable_asset_error?(error)
|
@@ -111,7 +106,7 @@ class Importmap::Map
|
|
111
106
|
def resolve_asset_paths(paths, resolver:)
|
112
107
|
paths.transform_values do |mapping|
|
113
108
|
begin
|
114
|
-
resolver.
|
109
|
+
resolver.path_to_asset(mapping.path)
|
115
110
|
rescue => e
|
116
111
|
if rescuable_asset_error?(e)
|
117
112
|
Rails.logger.warn "Importmap skipped missing path: #{mapping.path}"
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require "net/http"
|
2
|
+
require "uri"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
class Importmap::Npm
|
6
|
+
Error = Class.new(StandardError)
|
7
|
+
HTTPError = Class.new(Error)
|
8
|
+
|
9
|
+
singleton_class.attr_accessor :base_uri
|
10
|
+
self.base_uri = URI("https://registry.npmjs.org")
|
11
|
+
|
12
|
+
def initialize(importmap_path = "config/importmap.rb")
|
13
|
+
@importmap_path = Pathname.new(importmap_path)
|
14
|
+
end
|
15
|
+
|
16
|
+
def outdated_packages
|
17
|
+
packages_with_versions.each.with_object([]) do |(package, current_version), outdated_packages|
|
18
|
+
outdated_package = OutdatedPackage.new(name: package,
|
19
|
+
current_version: current_version)
|
20
|
+
|
21
|
+
if !(response = get_package(package))
|
22
|
+
outdated_package.error = 'Response error'
|
23
|
+
elsif (error = response['error'])
|
24
|
+
outdated_package.error = error
|
25
|
+
else
|
26
|
+
latest_version = find_latest_version(response)
|
27
|
+
next unless outdated?(current_version, latest_version)
|
28
|
+
|
29
|
+
outdated_package.latest_version = latest_version
|
30
|
+
end
|
31
|
+
|
32
|
+
outdated_packages << outdated_package
|
33
|
+
end.sort_by(&:name)
|
34
|
+
end
|
35
|
+
|
36
|
+
def vulnerable_packages
|
37
|
+
get_audit.flat_map do |package, vulnerabilities|
|
38
|
+
vulnerabilities.map do |vulnerability|
|
39
|
+
VulnerablePackage.new(name: package,
|
40
|
+
severity: vulnerability['severity'],
|
41
|
+
vulnerable_versions: vulnerability['vulnerable_versions'],
|
42
|
+
vulnerability: vulnerability['title'])
|
43
|
+
end
|
44
|
+
end.sort_by { |p| [p.name, p.severity] }
|
45
|
+
end
|
46
|
+
|
47
|
+
def packages_with_versions
|
48
|
+
# We cannot use the name after "pin" because some dependencies are loaded from inside packages
|
49
|
+
# Eg. pin "buffer", to: "https://ga.jspm.io/npm:@jspm/core@2.0.0-beta.19/nodelibs/browser/buffer.js"
|
50
|
+
|
51
|
+
importmap.scan(/^pin .*(?<=npm:|npm\/|skypack\.dev\/|unpkg\.com\/)(.*)(?=@\d+\.\d+\.\d+)@(\d+\.\d+\.\d+(?:[^\/\s"]*)).*$/) |
|
52
|
+
importmap.scan(/^pin "([^"]*)".* #.*@(\d+\.\d+\.\d+(?:[^\s]*)).*$/)
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
OutdatedPackage = Struct.new(:name, :current_version, :latest_version, :error, keyword_init: true)
|
57
|
+
VulnerablePackage = Struct.new(:name, :severity, :vulnerable_versions, :vulnerability, keyword_init: true)
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
def importmap
|
62
|
+
@importmap ||= File.read(@importmap_path)
|
63
|
+
end
|
64
|
+
|
65
|
+
def get_package(package)
|
66
|
+
uri = self.class.base_uri.dup
|
67
|
+
uri.path = "/" + package
|
68
|
+
response = get_json(uri)
|
69
|
+
|
70
|
+
JSON.parse(response)
|
71
|
+
rescue JSON::ParserError
|
72
|
+
nil
|
73
|
+
end
|
74
|
+
|
75
|
+
def get_json(uri)
|
76
|
+
request = Net::HTTP::Get.new(uri)
|
77
|
+
request["Content-Type"] = "application/json"
|
78
|
+
|
79
|
+
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http|
|
80
|
+
http.request(request)
|
81
|
+
}
|
82
|
+
|
83
|
+
response.body
|
84
|
+
rescue => error
|
85
|
+
raise HTTPError, "Unexpected transport error (#{error.class}: #{error.message})"
|
86
|
+
end
|
87
|
+
|
88
|
+
def find_latest_version(response)
|
89
|
+
latest_version = response.dig('dist-tags', 'latest')
|
90
|
+
return latest_version if latest_version
|
91
|
+
|
92
|
+
return unless response['versions']
|
93
|
+
|
94
|
+
response['versions'].keys.map { |v| Gem::Version.new(v) rescue nil }.compact.sort.last
|
95
|
+
end
|
96
|
+
|
97
|
+
def outdated?(current_version, latest_version)
|
98
|
+
Gem::Version.new(current_version) < Gem::Version.new(latest_version)
|
99
|
+
rescue ArgumentError
|
100
|
+
current_version.to_s < latest_version.to_s
|
101
|
+
end
|
102
|
+
|
103
|
+
def get_audit
|
104
|
+
uri = self.class.base_uri.dup
|
105
|
+
uri.path = "/-/npm/v1/security/advisories/bulk"
|
106
|
+
|
107
|
+
body = packages_with_versions.each.with_object({}) { |(package, version), data|
|
108
|
+
data[package] ||= []
|
109
|
+
data[package] << version
|
110
|
+
}
|
111
|
+
return {} if body.empty?
|
112
|
+
|
113
|
+
response = post_json(uri, body)
|
114
|
+
JSON.parse(response.body)
|
115
|
+
end
|
116
|
+
|
117
|
+
def post_json(uri, body)
|
118
|
+
Net::HTTP.post(uri, body.to_json, "Content-Type" => "application/json")
|
119
|
+
rescue => error
|
120
|
+
raise HTTPError, "Unexpected transport error (#{error.class}: #{error.message})"
|
121
|
+
end
|
122
|
+
end
|
data/lib/importmap/packager.rb
CHANGED
@@ -48,7 +48,7 @@ class Importmap::Packager
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def packaged?(package)
|
51
|
-
importmap.match(/^pin "#{package}".*$/)
|
51
|
+
importmap.match(/^pin ["']#{package}["'].*$/)
|
52
52
|
end
|
53
53
|
|
54
54
|
def download(package, url)
|
@@ -102,7 +102,7 @@ class Importmap::Packager
|
|
102
102
|
|
103
103
|
def remove_package_from_importmap(package)
|
104
104
|
all_lines = File.readlines(@importmap_path)
|
105
|
-
with_lines_removed = all_lines.
|
105
|
+
with_lines_removed = all_lines.grep_v(/pin ["']#{package}["']/)
|
106
106
|
|
107
107
|
File.open(@importmap_path, "w") do |file|
|
108
108
|
with_lines_removed.each { |line| file.write(line) }
|
data/lib/importmap/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: importmap-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/importmap/commands.rb
|
56
56
|
- lib/importmap/engine.rb
|
57
57
|
- lib/importmap/map.rb
|
58
|
+
- lib/importmap/npm.rb
|
58
59
|
- lib/importmap/packager.rb
|
59
60
|
- lib/importmap/reloader.rb
|
60
61
|
- lib/importmap/version.rb
|
@@ -84,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
85
|
- !ruby/object:Gem::Version
|
85
86
|
version: '0'
|
86
87
|
requirements: []
|
87
|
-
rubygems_version: 3.
|
88
|
+
rubygems_version: 3.4.10
|
88
89
|
signing_key:
|
89
90
|
specification_version: 4
|
90
91
|
summary: Use ESM with importmap to manage modern JavaScript in Rails without transpiling
|