1 line
44 KiB
JavaScript
1 line
44 KiB
JavaScript
|
|
"use strict";exports.init=void 0,exports.parse=parse;const A=!1,Q=1===new Uint8Array(new Uint16Array([1]).buffer)[0],B="undefined"!=typeof Buffer,E=/\r\n?/g;function C(A,Q,B){if(B<1||Q+B>A.length)throw new SyntaxError;let E=0;const C=Q+B;for(let B=Q;B<C;B++){const Q=A.charCodeAt(B),C=32|Q,g=Q>=48&&Q<=57?Q-48:C>=97&&C<=102?C-87:-1;if(-1===g)throw new SyntaxError;E=16*E+g}return E}function parse(A,R="@"){w||k();const H=A.length+1,o=(w.__heap_base.value||w.__heap_base)+4*H+16-w.memory.buffer.byteLength;o>0&&w.memory.grow(Math.ceil(o/65536));const L=w.sa(H-1);if(A.length>=64&&B)Buffer.from(w.memory.buffer,L,2*(H-1)).write(A,"utf16le");else{const B=w.memory.buffer;(null==D?void 0:D.buffer)!==B&&(D=new Uint16Array(B,L)),(Q?I:g)(A,D)}if(!w.parse())throw Object.assign(new Error(`Parse error ${R}:${A.slice(0,w.e()).split("\n").length}:${w.e()-A.lastIndexOf("\n",w.e()-1)}`),{idx:w.e()});const G=[],N=[];for(;w.ri();){const Q=w.is(),B=w.ie(),E=w.it(),C=15&E,g=w.ai(),I=w.id(),D=w.ss(),R=w.se(),H=w.ip();let k,o=!1;if(1&H?k=J(-1===I?Q:Q+1,-1===I?B:B-1,Q,!!(2&H)):-1!==I&&"`"===A[Q]&&(k=Y(Q,B),o=void 0!==k),3===C)G.push({type:"import-meta",specifier:null,typeOnly:!1,start:Q,end:B,importStart:D,importEnd:R});else if(-1!==I){const A=5===C?"source":7===C?"defer":null;G.push({type:"dynamic",specifier:k,glob:o,phase:A,start:Q,end:B,importStart:D,importEnd:R,dynamicStart:I,attributes:null,attributesStart:g,probablyTypeOnly:!!(16&E)})}else{let A=null;if(-1!==g){for(A=[],w.rsa();w.ra();){const Q=w.aks(),B=w.ake(),E=w.avs(),C=w.ave();A.push([i(Q,B),i(E,C)])}0===A.length&&(A=null)}const I=4===C?"source":6===C?"defer":null;G.push({type:8===C?"reexport-star":"static",specifier:k,phase:I,start:Q,end:B,importStart:D,importEnd:R,attributes:A,attributesStart:g,typeOnly:!!(16&E)})}}let s=w.re();const M=0===s?void 0:new DataView(w.memory.buffer);for(;0!==s;){const A=M.getUint32(s,!0)-L>>>1,Q=M.getUint32(s+4,!0)-L>>>1,B=M.getUint32(s+8,!0),E=0===B?-1:B-L>>>1,C=M.getUint32(s+12,!0),g=0===C?-1:C-L>>>1,I=M.getUint32(s+16,!0)-L>>>1,D=M.getUint32(s+20,!0),R=M.getUint8(s+24),H=M.getUint8(s+25),k=!!(4&H);if(3===R)N.push({type:"reexport-all",from:G[D].specifier,importIndex:D,start:A,end:Q,exportStart:I,typeOnly:k});else{const B=i(A,Q);if(1===R){const C=E<0?void 0:i(E,g);N.push({type:"direct",name:B,localName:C,start:A,end:Q,localStart:E,localEnd:g,exportStart:I,typeOnly:k})}else{const C=3&H,w=0===C?i(E,g):1===C?"default":null;N.push({type:"reexport",name:B,importName:w,importNameStart:0===C?E:-1,importNameEnd:0===C?g:-1,from:G[D].specifier,importIndex:D,start:A,end:Q,exportStart:I,typeOnly:k})}}s=w.re()}function J(Q,B,g,I=!1){try{return function(A,Q){let B=A.indexOf("\\");if(-1===B)return Q?A.replace(E,"\n"):A;let g=A.slice(0,B),I=Q?g.replace(E,"\n"):g;for(;;){let D=B+1;if(D>=A.length)throw new SyntaxError;const w=A.charCodeAt(D++);switch(w){case 13:10===A.charCodeAt(D)&&D++;break;case 10:case 8232:case 8233:break;case 114:I+="\r";break;case 110:I+="\n";break;case 116:I+="\t";break;case 98:I+="\b";break;case 102:I+="\f";break;case 118:I+="\v";break;case 120:I+=String.fromCharCode(C(A,D,2)),D+=2;break;case 117:{let Q;if(123===A.charCodeAt(D)){const B=A.indexOf("}",++D);if(-1===B)throw new SyntaxError;Q=C(A,D,B-D),D=B+1}else Q=C(A,D,4),D+=4;if(Q>1114111)throw new SyntaxError;Q<=65535?I+=String.fromCharCode(Q):(Q-=65536,I+=String.fromCharCode(55296+(Q>>10),56320+(1023&Q)));break}case 48:{const Q=A.charCodeAt(D);if(Q>=48&&Q<=57)throw new SyntaxError;I+="\0";break}default:if(w>=49&&w<=57)throw new SyntaxError;I+=String.fromCharCode(w)}const R=A.indexOf("\\",D);if(-1===R)return g=A.slice(D),I+(Q?g.replace(E,"\n"):g);g=A.slice(D,R),I+=Q?g.replace(E,"\n"):g,B=R}}(A.slice(Q,B),I)}catch(Q){throw Object.assign(new Error(`Parse error ${R}:${A.slice(0,g).split("\n").length}:${g-A.lastIndexOf("\n",g-1)}`),{idx:g})}}function i(Q,B){const E=A.charCodeAt(Q);return 34===E||39===E?J(Q+1,B-1,Q):A.slice(Q,B)}function Y(Q,B){if(w.rts(),!w.rt())return;let E="",C=Q+1,g=Q+1,I=w.te();for(;g<B;){const Q=A.charCodeAt(g);if(96===Q)break;92!==Q?42!==Q?36===Q&&123===A.charCodeAt(g+1)&&g+2<=I?(
|