UNPKG

heic-d-code

Version:

A wasm build of libheif whose only purpose is to decode `.heif` image or the first image of a `.heic` for use in a browser.

26 lines (25 loc) 11.2 kB
async function Module(moduleArg={}){var moduleRtn;var n=moduleArg,aa="object"==typeof window,ba="undefined"!=typeof WorkerGlobalScope;n={decode(a){try{const b=q(a.length);if(0===b)throw"Memory allocation error";u.set(a,b);const [c,d,e,f]=n._decode(b,a.length);if(0!==e)throw`libheif error code ${e}`;return[new Uint8ClampedArray(u.subarray(f,f+c*d*4)),c,d]}finally{ca()}}};var da=import.meta.url,ea="",fa,v; if(aa||ba){try{ea=(new URL(".",da)).href}catch{}ba&&(v=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});fa=async a=>{a=await fetch(a,{credentials:"same-origin"});if(a.ok)return a.arrayBuffer();throw Error(a.status+" : "+a.url);}}var ha=console.log.bind(console),w=console.error.bind(console),x=!1,ia,ja,z,C,u,D,E,F,G,ka,la,ma,na,oa=!1; function pa(){var a=z.buffer;C=new Int8Array(a);D=new Int16Array(a);u=new Uint8Array(a);E=new Uint16Array(a);F=new Int32Array(a);G=new Uint32Array(a);ka=new Float32Array(a);la=new Float64Array(a);ma=new BigInt64Array(a);na=new BigUint64Array(a)}var H=0,I=null;function qa(a){a="Aborted("+a+")";w(a);x=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ja?.(a);throw a;}var ra; async function sa(a){try{var b=await fa(a);return new Uint8Array(b)}catch{}if(v)a=v(a);else throw"both async and sync fetching of the wasm failed";return a}async function ta(a,b){try{var c=await sa(a);return await WebAssembly.instantiate(c,b)}catch(d){w(`failed to asynchronously prepare wasm: ${d}`),qa(d)}} async function ua(a){var b=ra;try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){w(`wasm streaming compile failed: ${d}`),w("falling back to ArrayBuffer instantiation")}return ta(b,a)}class J{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var K={},va=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function L(a){return this.H(G[a>>2])} var M={},N={},O={},wa=class extends Error{constructor(a){super(a);this.name="InternalError"}},xa=(a,b,c)=>{function d(g){g=c(g);if(g.length!==a.length)throw new wa("Mismatched type converter count");for(var h=0;h<a.length;++h)P(a[h],g[h])}a.forEach(g=>O[g]=b);var e=Array(b.length),f=[],k=0;b.forEach((g,h)=>{N.hasOwnProperty(g)?e[h]=N[g]:(f.push(g),M.hasOwnProperty(g)||(M[g]=[]),M[g].push(()=>{e[h]=N[g];++k;k===f.length&&d(e)}))});0===f.length&&d(e)},Q=a=>{for(var b="";;){var c=u[a++];if(!c)return b; b+=String.fromCharCode(c)}},R=class extends Error{constructor(a){super(a);this.name="BindingError"}},ya=a=>{throw new R(a);};function za(a,b,c={}){var d=b.name;if(!a)throw new R(`type "${d}" must have a positive integer typeid pointer`);if(N.hasOwnProperty(a)){if(c.R)return;throw new R(`Cannot register type '${d}' twice`);}N[a]=b;delete O[a];M.hasOwnProperty(a)&&(b=M[a],delete M[a],b.forEach(e=>e()))}function P(a,b,c={}){return za(a,b,c)} var Aa=(a,b,c)=>{switch(b){case 1:return c?d=>C[d]:d=>u[d];case 2:return c?d=>D[d>>1]:d=>E[d>>1];case 4:return c?d=>F[d>>2]:d=>G[d>>2];case 8:return c?d=>ma[d>>3]:d=>na[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Ca=[],S=[0,1,,1,null,1,!0,1,!1,1],Da=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Ca.pop()||S.length;S[b]=a;S[b+1]=1;return b}},Ea={name:"emscripten::val",H:a=>{if(!a)throw new R(`Cannot use deleted val. handle = ${a}`); var b=S[a];9<a&&0===--S[a+1]&&(S[a]=void 0,Ca.push(a));return b},K:(a,b)=>Da(b),L,I:null},Fa=(a,b)=>{switch(b){case 4:return function(c){return this.H(ka[c>>2])};case 8:return function(c){return this.H(la[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Ga={ftfnn:function(a,b,c,d,e,f,k,g,h){return function(m,l){m=g(null,m);l=h(null,l);l=c(d,m,l);return f(l)}}},Ha=(a,b)=>{var c=n;if(void 0===c[a].J){var d=c[a];c[a]=function(...e){if(!c[a].J.hasOwnProperty(e.length))throw new R(`Function '${b}' called with an invalid number of arguments (${e.length}) - expects one of (${c[a].J})!`); return c[a].J[e.length].apply(this,e)};c[a].J=[];c[a].J[d.M]=d}},Ia=(a,b,c)=>{if(n.hasOwnProperty(a)){if(void 0===c||void 0!==n[a].J&&void 0!==n[a].J[c])throw new R(`Cannot register public name '${a}' twice`);Ha(a,a);if(n[a].J.hasOwnProperty(c))throw new R(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);n[a].J[c]=b}else n[a]=b,n[a].M=c},Ja=(a,b)=>{for(var c=[],d=0;d<a;d++)c.push(G[b+4*d>>2]);return c},Ka,T=(a,b)=>{a=Q(a);var c=Ka.get(b);if("function"!= typeof c)throw new R(`unknown function pointer with signature ${a}: ${b}`);return c};class La extends Error{} var Na=a=>{a=Ma(a);var b=Q(a);U(a);return b},Oa=(a,b)=>{function c(f){e[f]||N[f]||(O[f]?O[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new La(`${a}: `+d.map(Na).join([", "]));},Pa=a=>{a=a.trim();const b=a.indexOf("(");return-1===b?a:a.slice(0,b)},V=(a,b,c)=>{var d=u;if(0<c){c=b+c-1;for(var e=0;e<a.length;++e){var f=a.codePointAt(e);if(127>=f){if(b>=c)break;d[b++]=f}else if(2047>=f){if(b+1>=c)break;d[b++]=192|f>>6;d[b++]=128|f&63}else if(65535>=f){if(b+2>=c)break;d[b++]=224| f>>12;d[b++]=128|f>>6&63;d[b++]=128|f&63}else{if(b+3>=c)break;d[b++]=240|f>>18;d[b++]=128|f>>12&63;d[b++]=128|f>>6&63;d[b++]=128|f&63;e++}}d[b]=0}},Qa=new TextDecoder,W=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},Ra=new TextDecoder("utf-16le"),Sa=(a,b,c)=>{a>>=1;return Ra.decode(E.subarray(a,W(E,a,b/2,c)))},Ta=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)D[b>>1]=a.charCodeAt(e),b+=2;D[b>>1]=0;return b-d},Ua=a=>2*a.length, Va=(a,b,c)=>{var d="";a>>=2;for(var e=0;!(e>=b/4);e++){var f=G[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},Wa=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.codePointAt(e);65535<f&&e++;F[b>>2]=f;b+=4;if(b+4>c)break}F[b>>2]=0;return b-d},Xa=a=>{for(var b=0,c=0;c<a.length;++c)65535<a.codePointAt(c)&&c++,b+=4;return b},X={},Ya=a=>{if(!(a instanceof J||"unwind"==a))throw a;},Za=a=>{if(!x)try{a()}catch(b){Ya(b)}},$a=[null,[],[]],Ma,ca,U,ab,q, bb,cb={q:()=>{},v:()=>qa(""),o:a=>{var b=K[a];delete K[a];var c=b.elements,d=c.length,e=c.map(g=>g.P).concat(c.map(g=>g.W)),f=b.T,k=b.U;xa([a],e,g=>{c.forEach((h,m)=>{var l=g[m],p=h.N,A=h.O,y=g[m+d],t=h.V,Z=h.X;h.read=r=>l.H(p(A,r));h.write=(r,B)=>{var Ba=[];t(Z,r,y.K(Ba,B));va(Ba)}});return[{name:b.name,H:h=>{for(var m=Array(d),l=0;l<d;++l)m[l]=c[l].read(h);k(h);return m},K:(h,m)=>{if(d!==m.length)throw new TypeError(`Incorrect number of tuple elements for ${b.name}: expected=${d}, actual=${m.length}`); for(var l=f(),p=0;p<d;++p)c[p].write(l,m[p]);null!==h&&h.push(k,l);return l},L,I:k}]})},e:(a,b,c,d,e)=>{b=Q(b);d=0n===d;let f=k=>k;if(d){const k=8*c;f=g=>BigInt.asUintN(k,g);e=f(e)}P(a,{name:b,H:f,K:(k,g)=>{"number"==typeof g&&(g=BigInt(g));return g},L:Aa(b,c,!d),I:null})},h:(a,b,c,d)=>{b=Q(b);P(a,{name:b,H:function(e){return!!e},K:function(e,f){return f?c:d},L:function(e){return this.H(u[e])},I:null})},f:a=>P(a,Ea),d:(a,b,c)=>{b=Q(b);P(a,{name:b,H:d=>d,K:(d,e)=>e,L:Fa(b,c),I:null})},j:(a,b,c,d,e, f,k)=>{var g=Ja(b,c);a=Q(a);a=Pa(a);e=T(d,e);Ia(a,function(){Oa(`Cannot call ${a} due to unbound types`,g)},b-1);xa([],g,h=>{var m=a;var l=a;h=[h[0],null].concat(h.slice(1));var p=e,A=h.length;if(2>A)throw new R("argTypes array size mismatch! Must at least get return value and 'this' types!");var y=null!==h[1]&&!1,t;a:{for(t=1;t<h.length;++t)if(null!==h[t]&&void 0===h[t].I){t=!0;break a}t=!1}var Z=!h[0].S,r=h[0],B=h[1];p=[l,ya,p,f,va,r.H.bind(r),B?.K.bind(B)];for(r=2;r<A;++r)B=h[r],p.push(B.K.bind(B)); if(!t)for(r=y?1:2;r<h.length;++r)null!==h[r].I&&p.push(h[r].I);A=[y?"t":"f",Z?"t":"f",k?"t":"f"];for(y=y?1:2;y<h.length;++y)t=h[y],A.push(void 0===t.I?"u":null===t.I?"n":"t");h=Ga[A.join("")](...p);l=Object.defineProperty(h,"name",{value:l});h=b-1;if(!n.hasOwnProperty(m))throw new wa("Replacing nonexistent public symbol");void 0!==n[m].J&&void 0!==h?n[m].J[h]=l:(n[m]=l,n[m].M=h);return[]})},b:(a,b,c,d,e)=>{b=Q(b);let f=g=>g;if(0===d){var k=32-8*c;f=g=>g<<k>>>k;e=f(e)}P(a,{name:b,H:f,K:(g,h)=>h,L:Aa(b, c,0!==d),I:null})},a:(a,b,c)=>{function d(f){return new e(C.buffer,G[f+4>>2],G[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=Q(c);P(a,{name:c,H:d,L:d},{R:!0})},g:(a,b)=>{b=Q(b);P(a,{name:b,H(c){var d=(d=c+4)?Qa.decode(u.subarray(d,W(u,d,G[c>>2],!0))):"";U(c);return d},K(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e,f="string"==typeof d;if(!(f||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new R("Cannot pass non-string to std::string"); if(f)for(var k=e=0;k<d.length;++k){var g=d.charCodeAt(k);127>=g?e++:2047>=g?e+=2:55296<=g&&57343>=g?(e+=4,++k):e+=3}else e=d.length;k=q(4+e+1);g=k+4;G[k>>2]=e;f?V(d,g,e+1):u.set(d,g);null!==c&&c.push(U,k);return k},L,I(c){U(c)}})},c:(a,b,c)=>{c=Q(c);if(2===b){var d=Sa;var e=Ta;var f=Ua}else d=Va,e=Wa,f=Xa;P(a,{name:c,H:k=>{var g=d(k+4,G[k>>2]*b,!0);U(k);return g},K:(k,g)=>{if("string"!=typeof g)throw new R(`Cannot pass non-string to C++ string type ${c}`);var h=f(g),m=q(4+h+b);G[m>>2]=h/b;e(g,m+4, h+b);null!==k&&k.push(U,m);return m},L,I(k){U(k)}})},x:(a,b,c,d,e,f)=>{K[a]={name:Q(b),T:T(c,d),U:T(e,f),elements:[]}},w:(a,b,c,d,e,f,k,g,h)=>{K[a].elements.push({P:b,N:T(c,d),O:e,W:f,V:T(k,g),X:h})},i:(a,b)=>{b=Q(b);P(a,{S:!0,name:b,H:()=>{},K:()=>{}})},l:()=>{},m:(a,b)=>{X[a]&&(clearTimeout(X[a].id),delete X[a]);if(!b)return 0;var c=setTimeout(()=>{delete X[a];Za(()=>bb(a,performance.now()))},b);X[a]={id:c,Y:b};return 0},n:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset(); e=(new Date(e,6,1)).getTimezoneOffset();G[a>>2]=60*Math.max(f,e);F[b>>2]=Number(f!=e);b=k=>{var g=Math.abs(k);return`UTC${0<=k?"-":"+"}${String(Math.floor(g/60)).padStart(2,"0")}${String(g%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(V(a,c,17),V(b,d,17)):(V(a,d,17),V(b,c,17))},p:a=>{var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-z.buffer.byteLength+65535)/65536|0;try{z.grow(d); pa();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},s:()=>52,t:()=>52,u:function(){return 70},r:(a,b,c,d)=>{for(var e=0,f=0;f<c;f++){var k=G[b>>2],g=G[b+4>>2];b+=8;for(var h=0;h<g;h++){var m=a,l=u[k+h],p=$a[m];0===l||10===l?(m=1===m?ha:w,l=W(p,0),l=Qa.decode(p.buffer?p.subarray(0,l):new Uint8Array(p.slice(0,l))),m(l),p.length=0):p.push(l)}e+=g}G[d>>2]=e;return 0},k:a=>{throw new J(a);}},Y=await (async function(){H++;var a={a:cb};ra??=n.locateFile?ea+"Heic-D-Code.wasm":(new URL("Heic-D-Code.wasm", import.meta.url)).href;Y=(await ua(a)).instance.exports;z=Y.y;pa();Ka=Y.F;a=Y;Ma=a.A;ca=a.B;U=a.C;ab=a.D;q=a.E;bb=a.G;H--;0==H&&I&&(a=I,I=null,a());return Y}());function db(){if(0<H)I=db;else if(0<H)I=db;else if(n.calledRun=!0,!x){oa=!0;Y.z();ia?.(n);var a=ab;try{var b=a(0,0);throw new J(b);}catch(c){Ya(c)}}}db();oa?moduleRtn=n:moduleRtn=new Promise((a,b)=>{ia=a;ja=b}); ;return moduleRtn}export default Module;