@squoosh-kit/webp 0.0.42 → 0.0.43

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.
Files changed (70) hide show
  1. package/dist/bridge.d.ts +4 -1
  2. package/dist/bridge.d.ts.map +1 -1
  3. package/dist/index.browser.mjs +575 -2
  4. package/dist/index.browser.mjs.map +15 -4
  5. package/dist/index.bun.js +575 -2
  6. package/dist/index.bun.js.map +15 -4
  7. package/dist/index.d.ts +2 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.node.cjs +597 -2
  10. package/dist/index.node.cjs.map +15 -4
  11. package/dist/index.node.mjs +575 -2
  12. package/dist/index.node.mjs.map +15 -4
  13. package/dist/webp.worker.browser.mjs +503 -26
  14. package/dist/webp.worker.browser.mjs.map +11 -6
  15. package/dist/webp.worker.bun.js +503 -26
  16. package/dist/webp.worker.bun.js.map +11 -6
  17. package/dist/webp.worker.d.ts.map +1 -1
  18. package/dist/webp.worker.node.cjs +517 -26
  19. package/dist/webp.worker.node.cjs.map +11 -6
  20. package/dist/webp.worker.node.mjs +503 -26
  21. package/dist/webp.worker.node.mjs.map +11 -6
  22. package/package.json +2 -2
  23. package/dist/bridge.browser.mjs +0 -4
  24. package/dist/bridge.browser.mjs.map +0 -13
  25. package/dist/bridge.bun.js +0 -5
  26. package/dist/bridge.bun.js.map +0 -13
  27. package/dist/bridge.node.cjs +0 -3
  28. package/dist/bridge.node.cjs.map +0 -13
  29. package/dist/bridge.node.mjs +0 -4
  30. package/dist/bridge.node.mjs.map +0 -13
  31. package/dist/chunk-534zkza4.js +0 -27
  32. package/dist/chunk-534zkza4.js.map +0 -10
  33. package/dist/chunk-5vdxd0v3.js +0 -4
  34. package/dist/chunk-5vdxd0v3.js.map +0 -10
  35. package/dist/chunk-8y42hv65.js +0 -5
  36. package/dist/chunk-8y42hv65.js.map +0 -9
  37. package/dist/chunk-bhj61bkd.js +0 -4
  38. package/dist/chunk-bhj61bkd.js.map +0 -9
  39. package/dist/chunk-c6cx0d7q.js +0 -4
  40. package/dist/chunk-c6cx0d7q.js.map +0 -9
  41. package/dist/chunk-cxqwba64.js +0 -28
  42. package/dist/chunk-cxqwba64.js.map +0 -10
  43. package/dist/chunk-djaabg7r.js +0 -3
  44. package/dist/chunk-djaabg7r.js.map +0 -9
  45. package/dist/chunk-gw29pvyv.js +0 -3
  46. package/dist/chunk-gw29pvyv.js.map +0 -10
  47. package/dist/chunk-q0apy7nk.js +0 -5
  48. package/dist/chunk-q0apy7nk.js.map +0 -10
  49. package/dist/chunk-sbhzt3r6.js +0 -27
  50. package/dist/chunk-sbhzt3r6.js.map +0 -10
  51. package/dist/chunk-sc3b6r8w.js +0 -27
  52. package/dist/chunk-sc3b6r8w.js.map +0 -10
  53. package/dist/chunk-szbj3b6y.js +0 -4
  54. package/dist/chunk-szbj3b6y.js.map +0 -10
  55. package/dist/types.browser.mjs +0 -2
  56. package/dist/types.browser.mjs.map +0 -9
  57. package/dist/types.bun.js +0 -3
  58. package/dist/types.bun.js.map +0 -9
  59. package/dist/types.node.cjs +0 -3
  60. package/dist/types.node.cjs.map +0 -9
  61. package/dist/types.node.mjs +0 -2
  62. package/dist/types.node.mjs.map +0 -9
  63. package/dist/validators.browser.mjs +0 -4
  64. package/dist/validators.browser.mjs.map +0 -10
  65. package/dist/validators.bun.js +0 -5
  66. package/dist/validators.bun.js.map +0 -10
  67. package/dist/validators.node.cjs +0 -3
  68. package/dist/validators.node.cjs.map +0 -10
  69. package/dist/validators.node.mjs +0 -4
  70. package/dist/validators.node.mjs.map +0 -10
@@ -1,27 +1,518 @@
1
- var S5={};_5(S5,{webpEncodeClient:()=>t1});module.exports=R5(S5);async function s1(O){try{if(typeof process<"u"&&process.versions?.node){let b=await import("fs/promises"),E=/^(file:|https?:)/.test(O)?new URL(O):new URL(O,"file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/wasm-loader.ts"),H=E.protocol==="file:"?(await import("url")).fileURLToPath(E):E.pathname,W=await b.readFile(H);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}}catch(b){}try{let b=/^(file:|https?:)/.test(O)?new URL(O):new URL(O,"file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/wasm-loader.ts"),J=await fetch(b);if(!J.ok)throw Error(`Failed to fetch WASM binary: ${J.status} ${J.statusText}`);return await J.arrayBuffer()}catch(b){throw Error(`Failed to load WASM binary from "${O}": ${b instanceof Error?b.message:String(b)}`)}}var i1=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));var a=null,$1=null;async function n1(){if(a!==null)return a;if($1)return $1;return $1=(async()=>{try{return a=await i1(),a}catch(O){return a=!1,console.warn("SIMD detection failed, falling back to standard WASM modules:",O),!1}})(),$1}var C5=function(){var O="file:///home/bnowak/repos/squoosh-kit/packages/webp/wasm/webp/webp_enc.js";return function(J){J=J||{};var J=typeof J<"u"?J:{},E,H;J.ready=new Promise(function(A,Q){E=A,H=Q});var W={},z;for(z in J)if(J.hasOwnProperty(z))W[z]=J[z];var h=[],m="./this.program",g=function(A,Q){throw Q},t=!1,c=!0,k="";function j1(A){if(J.locateFile)return J.locateFile(A,k);return k+A}var e1,A0,O1,Q0;if(t||c){if(c)k=self.location.href;else if(typeof document<"u"&&document.currentScript)k=document.currentScript.src;if(O)k=O;if(k.indexOf("blob:")!==0)k=k.substr(0,k.lastIndexOf("/")+1);else k="";{if(e1=function(A){var Q=new XMLHttpRequest;return Q.open("GET",A,!1),Q.send(null),Q.responseText},c)O1=function(A){var Q=new XMLHttpRequest;return Q.open("GET",A,!1),Q.responseType="arraybuffer",Q.send(null),new Uint8Array(Q.response)};A0=function(A,Q,X){var Z=new XMLHttpRequest;Z.open("GET",A,!0),Z.responseType="arraybuffer",Z.onload=function(){if(Z.status==200||Z.status==0&&Z.response){Q(Z.response);return}X()},Z.onerror=X,Z.send(null)}}Q0=function(A){document.title=A}}var w5=J.print||console.log.bind(console),l=J.printErr||console.warn.bind(console);for(z in W)if(W.hasOwnProperty(z))J[z]=W[z];if(W=null,J.arguments)h=J.arguments;if(J.thisProgram)m=J.thisProgram;if(J.quit)g=J.quit;var d;if(J.wasmBinary)d=J.wasmBinary;var P5=J.noExitRuntime||!0;if(typeof WebAssembly!=="object")Q1("no native wasm support detected");var e,k1=!1,X0,Z0=new TextDecoder("utf8");function J0(A,Q){if(!A)return"";var X=A+Q;for(var Z=A;!(Z>=X)&&D[Z];)++Z;return Z0.decode(D.subarray(A,Z))}function Y0(A,Q,X,Z){if(!(Z>0))return 0;var Y=X,K=X+Z-1;for(var j=0;j<A.length;++j){var G=A.charCodeAt(j);if(G>=55296&&G<=57343){var $=A.charCodeAt(++j);G=65536+((G&1023)<<10)|$&1023}if(G<=127){if(X>=K)break;Q[X++]=G}else if(G<=2047){if(X+1>=K)break;Q[X++]=192|G>>6,Q[X++]=128|G&63}else if(G<=65535){if(X+2>=K)break;Q[X++]=224|G>>12,Q[X++]=128|G>>6&63,Q[X++]=128|G&63}else{if(X+3>=K)break;Q[X++]=240|G>>18,Q[X++]=128|G>>12&63,Q[X++]=128|G>>6&63,Q[X++]=128|G&63}}return Q[X]=0,X-Y}function G0(A,Q,X){return Y0(A,D,Q,X)}function K0(A){var Q=0;for(var X=0;X<A.length;++X){var Z=A.charCodeAt(X);if(Z>=55296&&Z<=57343)Z=65536+((Z&1023)<<10)|A.charCodeAt(++X)&1023;if(Z<=127)++Q;else if(Z<=2047)Q+=2;else if(Z<=65535)Q+=3;else Q+=4}return Q}var $0=new TextDecoder("utf-16le");function j0(A,Q){var X=A,Z=X>>1,Y=Z+Q/2;while(!(Z>=Y)&&u[Z])++Z;return X=Z<<1,$0.decode(D.subarray(A,X));var K="";for(var j=0;!(j>=Q/2);++j){var G=f[A+j*2>>1];if(G==0)break;K+=String.fromCharCode(G)}return K}function O0(A,Q,X){if(X===void 0)X=2147483647;if(X<2)return 0;X-=2;var Z=Q,Y=X<A.length*2?X/2:A.length;for(var K=0;K<Y;++K){var j=A.charCodeAt(K);f[Q>>1]=j,Q+=2}return f[Q>>1]=0,Q-Z}function V0(A){return A.length*2}function q0(A,Q){var X=0,Z="";while(!(X>=Q/4)){var Y=M[A+X*4>>2];if(Y==0)break;if(++X,Y>=65536){var K=Y-65536;Z+=String.fromCharCode(55296|K>>10,56320|K&1023)}else Z+=String.fromCharCode(Y)}return Z}function L0(A,Q,X){if(X===void 0)X=2147483647;if(X<4)return 0;var Z=Q,Y=Z+X-4;for(var K=0;K<A.length;++K){var j=A.charCodeAt(K);if(j>=55296&&j<=57343){var G=A.charCodeAt(++K);j=65536+((j&1023)<<10)|G&1023}if(M[Q>>2]=j,Q+=4,Q+4>Y)break}return M[Q>>2]=0,Q-Z}function W0(A){var Q=0;for(var X=0;X<A.length;++X){var Z=A.charCodeAt(X);if(Z>=55296&&Z<=57343)++X;Q+=4}return Q}function E0(A,Q){if(A%Q>0)A+=Q-A%Q;return A}var V1,A1,D,f,u,M,_,F1,z1;function C1(A){V1=A,J.HEAP8=A1=new Int8Array(A),J.HEAP16=f=new Int16Array(A),J.HEAP32=M=new Int32Array(A),J.HEAPU8=D=new Uint8Array(A),J.HEAPU16=u=new Uint16Array(A),J.HEAPU32=_=new Uint32Array(A),J.HEAPF32=F1=new Float32Array(A),J.HEAPF64=z1=new Float64Array(A)}var M5=J.INITIAL_MEMORY||16777216,s,R1=[],_1=[],B1=[],H0=!1;function U0(){if(J.preRun){if(typeof J.preRun=="function")J.preRun=[J.preRun];while(J.preRun.length)N0(J.preRun.shift())}L1(R1)}function b0(){H0=!0,L1(_1)}function D0(){if(J.postRun){if(typeof J.postRun=="function")J.postRun=[J.postRun];while(J.postRun.length)F0(J.postRun.shift())}L1(B1)}function N0(A){R1.unshift(A)}function k0(A){_1.unshift(A)}function F0(A){B1.unshift(A)}var v=0,q1=null,i=null;function z0(A){if(v++,J.monitorRunDependencies)J.monitorRunDependencies(v)}function C0(A){if(v--,J.monitorRunDependencies)J.monitorRunDependencies(v);if(v==0){if(q1!==null)clearInterval(q1),q1=null;if(i){var Q=i;i=null,Q()}}}J.preloadedImages={},J.preloadedAudios={};function Q1(A){if(J.onAbort)J.onAbort(A);A+="",l(A),k1=!0,X0=1,A="abort("+A+"). Build with -s ASSERTIONS=1 for more info.";var Q=new WebAssembly.RuntimeError(A);throw H(Q),Q}var R0="data:application/octet-stream;base64,";function I1(A){return A.startsWith(R0)}if(J.locateFile){var R="webp_enc.wasm";if(!I1(R))R=j1(R)}else var R=new URL("webp_enc.wasm","file:///home/bnowak/repos/squoosh-kit/packages/webp/wasm/webp/webp_enc.js").toString();function S1(A){try{if(A==R&&d)return new Uint8Array(d);if(O1)return O1(A);else throw"both async and sync fetching of the wasm failed"}catch(Q){Q1(Q)}}function _0(){if(!d&&(t||c)){if(typeof fetch==="function")return fetch(R,{credentials:"same-origin"}).then(function(A){if(!A.ok)throw"failed to load wasm binary file at '"+R+"'";return A.arrayBuffer()}).catch(function(){return S1(R)})}return Promise.resolve().then(function(){return S1(R)})}function B0(){var A={a:N5};function Q(j,G){var $=j.exports;J.asm=$,e=J.asm.x,C1(e.buffer),s=J.asm.D,k0(J.asm.y),C0("wasm-instantiate")}z0("wasm-instantiate");function X(j){Q(j.instance)}function Z(j){return _0().then(function(G){var $=WebAssembly.instantiate(G,A);return $}).then(j,function(G){l("failed to asynchronously prepare wasm: "+G),Q1(G)})}function Y(){if(!d&&typeof WebAssembly.instantiateStreaming==="function"&&!I1(R)&&typeof fetch==="function")return fetch(R,{credentials:"same-origin"}).then(function(j){var G=WebAssembly.instantiateStreaming(j,A);return G.then(X,function($){return l("wasm streaming compile failed: "+$),l("falling back to ArrayBuffer instantiation"),Z(X)})});else return Z(X)}if(J.instantiateWasm)try{var K=J.instantiateWasm(A,Q);return K}catch(j){return l("Module.instantiateWasm callback failed with error: "+j),!1}return Y().catch(H),{}}function L1(A){while(A.length>0){var Q=A.shift();if(typeof Q=="function"){Q(J);continue}var X=Q.func;if(typeof X==="number")if(Q.arg===void 0)s.get(X)();else s.get(X)(Q.arg);else X(Q.arg===void 0?null:Q.arg)}}function I0(A,Q){}function S0(A,Q){return I0(A,Q)}var X1={};function w1(A){while(A.length){var Q=A.pop(),X=A.pop();X(Q)}}function Z1(A){return this.fromWireType(_[A>>2])}var p={},T={},J1={},w0=48,P0=57;function P1(A){if(A===void 0)return"_unknown";A=A.replace(/[^a-zA-Z0-9_]/g,"$");var Q=A.charCodeAt(0);if(Q>=w0&&Q<=P0)return"_"+A;else return A}function W1(A,Q){return A=P1(A),Function("body","return function "+A+`() {
2
- "use strict"; return body.apply(this, arguments);
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
3
18
  };
4
- `)(Q)}function E1(A,Q){var X=W1(Q,function(Z){this.name=Q,this.message=Z;var Y=Error(Z).stack;if(Y!==void 0)this.stack=this.toString()+`
5
- `+Y.replace(/^Error(:[^\n]*)?\n/,"")});return X.prototype=Object.create(A.prototype),X.prototype.constructor=X,X.prototype.toString=function(){if(this.message===void 0)return this.name;else return this.name+": "+this.message},X}var M1=void 0;function x1(A){throw new M1(A)}function f1(A,Q,X){A.forEach(function(G){J1[G]=Q});function Z(G){var $=X(G);if($.length!==A.length)x1("Mismatched type converter count");for(var V=0;V<A.length;++V)B(A[V],$[V])}var Y=Array(Q.length),K=[],j=0;if(Q.forEach(function(G,$){if(T.hasOwnProperty(G))Y[$]=T[G];else{if(K.push(G),!p.hasOwnProperty(G))p[G]=[];p[G].push(function(){if(Y[$]=T[G],++j,j===K.length)Z(Y)})}}),K.length===0)Z(Y)}function M0(A){var Q=X1[A];delete X1[A];var{rawConstructor:X,rawDestructor:Z,fields:Y}=Q,K=Y.map(function(j){return j.getterReturnType}).concat(Y.map(function(j){return j.setterArgumentType}));f1([A],K,function(j){var G={};return Y.forEach(function($,V){var q=$.fieldName,L=j[V],N=$.getter,P=$.getterContext,I=j[V+Y.length],y=$.setter,x=$.setterContext;G[q]={read:function(o){return L.fromWireType(N(P,o))},write:function(o,z5){var u1=[];y(x,o,I.toWireType(u1,z5)),w1(u1)}}}),[{name:Q.name,fromWireType:function($){var V={};for(var q in G)V[q]=G[q].read($);return Z($),V},toWireType:function($,V){for(var q in G)if(!(q in V))throw TypeError('Missing field: "'+q+'"');var L=X();for(q in G)G[q].write(L,V[q]);if($!==null)$.push(Z,L);return L},argPackAdvance:8,readValueFromPointer:Z1,destructorFunction:Z}]})}function x0(A,Q,X,Z,Y){}function Y1(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+A)}}function f0(){var A=Array(256);for(var Q=0;Q<256;++Q)A[Q]=String.fromCharCode(Q);v1=A}var v1=void 0;function U(A){var Q="",X=A;while(D[X])Q+=v1[D[X++]];return Q}var T1=void 0;function F(A){throw new T1(A)}function B(A,Q,X){if(X=X||{},!("argPackAdvance"in Q))throw TypeError("registerType registeredInstance requires argPackAdvance");var Z=Q.name;if(!A)F('type "'+Z+'" must have a positive integer typeid pointer');if(T.hasOwnProperty(A))if(X.ignoreDuplicateRegistrations)return;else F("Cannot register type '"+Z+"' twice");if(T[A]=Q,delete J1[A],p.hasOwnProperty(A)){var Y=p[A];delete p[A],Y.forEach(function(K){K()})}}function v0(A,Q,X,Z,Y){var K=Y1(X);Q=U(Q),B(A,{name:Q,fromWireType:function(j){return!!j},toWireType:function(j,G){return G?Z:Y},argPackAdvance:8,readValueFromPointer:function(j){var G;if(X===1)G=A1;else if(X===2)G=f;else if(X===4)G=M;else throw TypeError("Unknown boolean type size: "+Q);return this.fromWireType(G[j>>K])},destructorFunction:null})}var H1=[],C=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function y1(A){if(A>4&&--C[A].refcount===0)C[A]=void 0,H1.push(A)}function T0(){var A=0;for(var Q=5;Q<C.length;++Q)if(C[Q]!==void 0)++A;return A}function y0(){for(var A=5;A<C.length;++A)if(C[A]!==void 0)return C[A];return null}function h0(){J.count_emval_handles=T0,J.get_first_emval=y0}function G1(A){switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var Q=H1.length?H1.pop():C.length;return C[Q]={refcount:1,value:A},Q}}}function g0(A,Q){Q=U(Q),B(A,{name:Q,fromWireType:function(X){var Z=C[X].value;return y1(X),Z},toWireType:function(X,Z){return G1(Z)},argPackAdvance:8,readValueFromPointer:Z1,destructorFunction:null})}function c0(A,Q,X){if(A[Q].overloadTable===void 0){var Z=A[Q];A[Q]=function(){if(!A[Q].overloadTable.hasOwnProperty(arguments.length))F("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+A[Q].overloadTable+")!");return A[Q].overloadTable[arguments.length].apply(this,arguments)},A[Q].overloadTable=[],A[Q].overloadTable[Z.argCount]=Z}}function h1(A,Q,X){if(J.hasOwnProperty(A)){if(X===void 0||J[A].overloadTable!==void 0&&J[A].overloadTable[X]!==void 0)F("Cannot register public name '"+A+"' twice");if(c0(J,A,A),J.hasOwnProperty(X))F("Cannot register multiple overloads of a function with the same number of arguments ("+X+")!");J[A].overloadTable[X]=Q}else if(J[A]=Q,X!==void 0)J[A].numArguments=X}function p0(A,Q,X){switch(Q){case 0:return function(Z){var Y=X?A1:D;return this.fromWireType(Y[Z])};case 1:return function(Z){var Y=X?f:u;return this.fromWireType(Y[Z>>1])};case 2:return function(Z){var Y=X?M:_;return this.fromWireType(Y[Z>>2])};default:throw TypeError("Unknown integer type: "+A)}}function m0(A,Q,X,Z){var Y=Y1(X);Q=U(Q);function K(){}K.values={},B(A,{name:Q,constructor:K,fromWireType:function(j){return this.constructor.values[j]},toWireType:function(j,G){return G.value},argPackAdvance:8,readValueFromPointer:p0(Q,Y,Z),destructorFunction:null}),h1(Q,K)}function g1(A){var Q=d1(A),X=U(Q);return w(Q),X}function c1(A,Q){var X=T[A];if(X===void 0)F(Q+" has unknown type "+g1(A));return X}function l0(A,Q,X){var Z=c1(A,"enum");Q=U(Q);var Y=Z.constructor,K=Object.create(Z.constructor.prototype,{value:{value:X},constructor:{value:W1(Z.name+"_"+Q,function(){})}});Y.values[X]=K,Y[Q]=K}function U1(A){if(A===null)return"null";var Q=typeof A;if(Q==="object"||Q==="array"||Q==="function")return A.toString();else return""+A}function d0(A,Q){switch(Q){case 2:return function(X){return this.fromWireType(F1[X>>2])};case 3:return function(X){return this.fromWireType(z1[X>>3])};default:throw TypeError("Unknown float type: "+A)}}function u0(A,Q,X){var Z=Y1(X);Q=U(Q),B(A,{name:Q,fromWireType:function(Y){return Y},toWireType:function(Y,K){if(typeof K!=="number"&&typeof K!=="boolean")throw TypeError('Cannot convert "'+U1(K)+'" to '+this.name);return K},argPackAdvance:8,readValueFromPointer:d0(Q,Z),destructorFunction:null})}function s0(A,Q){if(!(A instanceof Function))throw TypeError("new_ called with constructor type "+typeof A+" which is not a function");var X=W1(A.name||"unknownFunctionName",function(){});X.prototype=A.prototype;var Z=new X,Y=A.apply(Z,Q);return Y instanceof Object?Y:Z}function i0(A,Q,X,Z,Y){var K=Q.length;if(K<2)F("argTypes array size mismatch! Must at least get return value and 'this' types!");var j=Q[1]!==null&&X!==null,G=!1;for(var $=1;$<Q.length;++$)if(Q[$]!==null&&Q[$].destructorFunction===void 0){G=!0;break}var V=Q[0].name!=="void",q="",L="";for(var $=0;$<K-2;++$)q+=($!==0?", ":"")+"arg"+$,L+=($!==0?", ":"")+"arg"+$+"Wired";var N="return function "+P1(A)+"("+q+`) {
6
- if (arguments.length !== `+(K-2)+`) {
7
- throwBindingError('function `+A+" called with ' + arguments.length + ' arguments, expected "+(K-2)+` args!');
8
- }
9
- `;if(G)N+=`var destructors = [];
10
- `;var P=G?"destructors":"null",I=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],y=[F,Z,Y,w1,Q[0],Q[1]];if(j)N+="var thisWired = classParam.toWireType("+P+`, this);
11
- `;for(var $=0;$<K-2;++$)N+="var arg"+$+"Wired = argType"+$+".toWireType("+P+", arg"+$+"); // "+Q[$+2].name+`
12
- `,I.push("argType"+$),y.push(Q[$+2]);if(j)L="thisWired"+(L.length>0?", ":"")+L;if(N+=(V?"var rv = ":"")+"invoker(fn"+(L.length>0?", ":"")+L+`);
13
- `,G)N+=`runDestructors(destructors);
14
- `;else for(var $=j?1:2;$<Q.length;++$){var x=$===1?"thisWired":"arg"+($-2)+"Wired";if(Q[$].destructorFunction!==null)N+=x+"_dtor("+x+"); // "+Q[$].name+`
15
- `,I.push(x+"_dtor"),y.push(Q[$].destructorFunction)}if(V)N+=`var ret = retType.fromWireType(rv);
16
- return ret;
17
- `;N+=`}
18
- `,I.push(N);var o=s0(Function,I).apply(null,y);return o}function n0(A,Q){var X=[];for(var Z=0;Z<A;Z++)X.push(M[(Q>>2)+Z]);return X}function o0(A,Q,X){if(!J.hasOwnProperty(A))x1("Replacing nonexistant public symbol");if(J[A].overloadTable!==void 0&&X!==void 0)J[A].overloadTable[X]=Q;else J[A]=Q,J[A].argCount=X}function a0(A,Q,X){var Z=J["dynCall_"+A];return X&&X.length?Z.apply(null,[Q].concat(X)):Z.call(null,Q)}function r0(A,Q,X){if(A.includes("j"))return a0(A,Q,X);return s.get(Q).apply(null,X)}function t0(A,Q){var X=[];return function(){X.length=arguments.length;for(var Z=0;Z<arguments.length;Z++)X[Z]=arguments[Z];return r0(A,Q,X)}}function n(A,Q){A=U(A);function X(){if(A.includes("j"))return t0(A,Q);return s.get(Q)}var Z=X();if(typeof Z!=="function")F("unknown function pointer with signature "+A+": "+Q);return Z}var p1=void 0;function e0(A,Q){var X=[],Z={};function Y(K){if(Z[K])return;if(T[K])return;if(J1[K]){J1[K].forEach(Y);return}X.push(K),Z[K]=!0}throw Q.forEach(Y),new p1(A+": "+X.map(g1).join([", "]))}function A5(A,Q,X,Z,Y,K){var j=n0(Q,X);A=U(A),Y=n(Z,Y),h1(A,function(){e0("Cannot call "+A+" due to unbound types",j)},Q-1),f1([],j,function(G){var $=[G[0],null].concat(G.slice(1));return o0(A,i0(A,$,null,Y,K),Q-1),[]})}function Q5(A,Q,X){switch(Q){case 0:return X?function(Y){return A1[Y]}:function(Y){return D[Y]};case 1:return X?function(Y){return f[Y>>1]}:function(Y){return u[Y>>1]};case 2:return X?function(Y){return M[Y>>2]}:function(Y){return _[Y>>2]};default:throw TypeError("Unknown integer type: "+A)}}function X5(A,Q,X,Z,Y){if(Q=U(Q),Y===-1)Y=4294967295;var K=Y1(X),j=function(V){return V};if(Z===0){var G=32-8*X;j=function(V){return V<<G>>>G}}var $=Q.includes("unsigned");B(A,{name:Q,fromWireType:j,toWireType:function(V,q){if(typeof q!=="number"&&typeof q!=="boolean")throw TypeError('Cannot convert "'+U1(q)+'" to '+this.name);if(q<Z||q>Y)throw TypeError('Passing a number "'+U1(q)+'" from JS side to C/C++ side to an argument of type "'+Q+'", which is outside the valid range ['+Z+", "+Y+"]!");return $?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:Q5(Q,K,Z!==0),destructorFunction:null})}function Z5(A,Q,X){var Z=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Y=Z[Q];function K(j){j=j>>2;var G=_,$=G[j],V=G[j+1];return new Y(V1,V,$)}X=U(X),B(A,{name:X,fromWireType:K,argPackAdvance:8,readValueFromPointer:K},{ignoreDuplicateRegistrations:!0})}function J5(A,Q){Q=U(Q);var X=Q==="std::string";B(A,{name:Q,fromWireType:function(Z){var Y=_[Z>>2],K;if(X){var j=Z+4;for(var G=0;G<=Y;++G){var $=Z+4+G;if(G==Y||D[$]==0){var V=$-j,q=J0(j,V);if(K===void 0)K=q;else K+=String.fromCharCode(0),K+=q;j=$+1}}}else{var L=Array(Y);for(var G=0;G<Y;++G)L[G]=String.fromCharCode(D[Z+4+G]);K=L.join("")}return w(Z),K},toWireType:function(Z,Y){if(Y instanceof ArrayBuffer)Y=new Uint8Array(Y);var K,j=typeof Y==="string";if(!(j||Y instanceof Uint8Array||Y instanceof Uint8ClampedArray||Y instanceof Int8Array))F("Cannot pass non-string to std::string");if(X&&j)K=function(){return K0(Y)};else K=function(){return Y.length};var G=K(),$=b1(4+G+1);if(_[$>>2]=G,X&&j)G0(Y,$+4,G+1);else if(j)for(var V=0;V<G;++V){var q=Y.charCodeAt(V);if(q>255)w($),F("String has UTF-16 code units that do not fit in 8 bits");D[$+4+V]=q}else for(var V=0;V<G;++V)D[$+4+V]=Y[V];if(Z!==null)Z.push(w,$);return $},argPackAdvance:8,readValueFromPointer:Z1,destructorFunction:function(Z){w(Z)}})}function Y5(A,Q,X){X=U(X);var Z,Y,K,j,G;if(Q===2)Z=j0,Y=O0,j=V0,K=function(){return u},G=1;else if(Q===4)Z=q0,Y=L0,j=W0,K=function(){return _},G=2;B(A,{name:X,fromWireType:function($){var V=_[$>>2],q=K(),L,N=$+4;for(var P=0;P<=V;++P){var I=$+4+P*Q;if(P==V||q[I>>G]==0){var y=I-N,x=Z(N,y);if(L===void 0)L=x;else L+=String.fromCharCode(0),L+=x;N=I+Q}}return w($),L},toWireType:function($,V){if(typeof V!=="string")F("Cannot pass non-string to C++ string type "+X);var q=j(V),L=b1(4+q+Q);if(_[L>>2]=q>>G,Y(V,L+4,q+Q),$!==null)$.push(w,L);return L},argPackAdvance:8,readValueFromPointer:Z1,destructorFunction:function($){w($)}})}function G5(A,Q,X,Z,Y,K){X1[A]={name:U(Q),rawConstructor:n(X,Z),rawDestructor:n(Y,K),fields:[]}}function K5(A,Q,X,Z,Y,K,j,G,$,V){X1[A].fields.push({fieldName:U(Q),getterReturnType:X,getter:n(Z,Y),getterContext:K,setterArgumentType:j,setter:n(G,$),setterContext:V})}function $5(A,Q){Q=U(Q),B(A,{isVoid:!0,name:Q,argPackAdvance:0,fromWireType:function(){return},toWireType:function(X,Z){return}})}var j5={};function O5(A){var Q=j5[A];if(Q===void 0)return U(A);else return Q}function m1(){if(typeof globalThis==="object")return globalThis;return function(){return Function}()("return this")()}function V5(A){if(A===0)return G1(m1());else return A=O5(A),G1(m1()[A])}function q5(A){if(A>4)C[A].refcount+=1}function L5(A){var Q="";for(var X=0;X<A;++X)Q+=(X!==0?", ":"")+"arg"+X;var Z="return function emval_allocator_"+A+`(constructor, argTypes, args) {
19
- `;for(var X=0;X<A;++X)Z+="var argType"+X+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+X+'], "parameter '+X+`");
20
- var arg`+X+" = argType"+X+`.readValueFromPointer(args);
21
- args += argType`+X+`['argPackAdvance'];
22
- `;return Z+="var obj = new constructor("+Q+`);
23
- return __emval_register(obj);
24
- }
25
- `,Function("requireRegisteredType","Module","__emval_register",Z)(c1,J,G1)}var l1={};function W5(A){if(!A)F("Cannot use deleted val. handle = "+A);return C[A].value}function E5(A,Q,X,Z){A=W5(A);var Y=l1[Q];if(!Y)Y=L5(Q),l1[Q]=Y;return Y(A,X,Z)}function H5(){Q1()}function U5(A,Q,X){D.copyWithin(A,Q,Q+X)}function b5(A){try{return e.grow(A-V1.byteLength+65535>>>16),C1(e.buffer),1}catch(Q){}}function D5(A){var Q=D.length;A=A>>>0;var X=2147483648;if(A>X)return!1;for(var Z=1;Z<=4;Z*=2){var Y=Q*(1+0.2/Z);Y=Math.min(Y,A+100663296);var K=Math.min(X,E0(Math.max(A,Y),65536)),j=b5(K);if(j)return!0}return!1}M1=J.InternalError=E1(Error,"InternalError"),f0(),T1=J.BindingError=E1(Error,"BindingError"),h0(),p1=J.UnboundTypeError=E1(Error,"UnboundTypeError");var N5={w:S0,l:M0,p:x0,s:v0,r:g0,n:m0,d:l0,j:u0,h:A5,c:X5,b:Z5,k:J5,g:Y5,m:G5,a:K5,t:$5,f:y1,v:V5,u:q5,o:E5,i:H5,q:U5,e:D5},x5=B0(),k5=J.___wasm_call_ctors=function(){return(k5=J.___wasm_call_ctors=J.asm.y).apply(null,arguments)},b1=J._malloc=function(){return(b1=J._malloc=J.asm.z).apply(null,arguments)},w=J._free=function(){return(w=J._free=J.asm.A).apply(null,arguments)},d1=J.___getTypeName=function(){return(d1=J.___getTypeName=J.asm.B).apply(null,arguments)},F5=J.___embind_register_native_and_builtin_types=function(){return(F5=J.___embind_register_native_and_builtin_types=J.asm.C).apply(null,arguments)},K1;i=function A(){if(!K1)D1();if(!K1)i=A};function D1(A){if(A=A||h,v>0)return;if(U0(),v>0)return;function Q(){if(K1)return;if(K1=!0,J.calledRun=!0,k1)return;if(b0(),E(J),J.onRuntimeInitialized)J.onRuntimeInitialized();D0()}if(J.setStatus)J.setStatus("Running..."),setTimeout(function(){setTimeout(function(){J.setStatus("")},1),Q()},1);else Q()}if(J.run=D1,J.preInit){if(typeof J.preInit=="function")J.preInit=[J.preInit];while(J.preInit.length>0)J.preInit.pop()()}return D1(),J.ready}}(),o1=C5;var S=null,r=null;async function B5(){if(S)return S;if(r)return r;return r=(async()=>{try{if(typeof self>"u")global.self=global;if(typeof self<"u"&&!self.location)self.location={href:"file:///home/bnowak/repos/squoosh-kit/packages/webp/src/webp.worker.ts"};if(typeof SharedArrayBuffer>"u"&&typeof window>"u")globalThis.SharedArrayBuffer=ArrayBuffer;let O=async(J,E)=>{try{let H=await s1(E);if(typeof console<"u"&&console.log)console.log(`[WebP] Loaded WASM binary from ${E} (${(H.byteLength/1024).toFixed(1)}KB)`);return J({noInitialRun:!0,wasmBinary:H})}catch(H){if(typeof console<"u"&&console.warn)console.warn("[WebP] Failed to load WASM binary explicitly, trying module initialization without it:",H);return J({noInitialRun:!0})}};if(await n1()){if(typeof console<"u"&&console.log)console.log("[WebP] SIMD support detected, loading SIMD encoder");try{let J=await import("./chunk-sc3b6r8w.js");if(S=await O(J.default,new URL("../wasm/webp/webp_enc_simd.wasm","file:///home/bnowak/repos/squoosh-kit/packages/webp/src/webp.worker.ts").href),S)return S}catch(J){if(typeof console<"u"&&console.warn)console.warn("[WebP] Failed to load SIMD encoder, falling back to standard:",J)}}if(S=await O(o1,new URL("../wasm/webp/webp_enc.wasm","file:///home/bnowak/repos/squoosh-kit/packages/webp/src/webp.worker.ts").href),!S)throw Error("Failed to load WebP module");return S}catch(O){throw r=null,Error(`Failed to load WebP module: ${O instanceof Error?O.message:String(O)}`)}})(),r}function I5(O){return{quality:O?.quality??75,target_size:0,target_PSNR:0,method:O?.method??4,sns_strength:O?.sns_strength??50,filter_strength:O?.filter_strength??60,filter_sharpness:O?.filter_sharpness??0,filter_type:O?.filter_type??1,partitions:O?.partitions??0,segments:O?.segments??4,pass:O?.pass??1,show_compressed:0,preprocessing:O?.preprocessing??0,autofilter:O?.autofilter??0,partition_limit:0,alpha_compression:O?.alpha_compression??1,alpha_filtering:O?.alpha_filtering??1,alpha_quality:O?.alpha_quality??O?.quality??75,lossless:O?.lossless?1:0,exact:O?.exact??0,image_hint:O?.image_hint??0,emulate_jpeg_size:0,thread_level:0,low_memory:0,near_lossless:O?.near_lossless??O?.quality??75,use_delta_palette:0,use_sharp_yuv:O?.use_sharp_yuv??0}}async function t1(O,b,J){if(a1(O),r1(b),J?.aborted)throw new DOMException("Aborted","AbortError");let{width:E,height:H,data:W}=O;if(!(W instanceof Uint8Array)&&!(W instanceof Uint8ClampedArray))throw Error("Image data must be Uint8Array or Uint8ClampedArray");let z=performance.now(),h=await B5(),m=performance.now();if(typeof console<"u"&&console.log)console.log(`[WebP] module loading took ${(m-z).toFixed(2)}ms`),console.log(`[WebP] Module type: ${S&&"encode"in S?"Ready":"Unknown"}`);if(J?.aborted)throw new DOMException("Aborted","AbortError");let g=I5(b),t=W instanceof Uint8ClampedArray?new Uint8Array(W.buffer,W.byteOffset,W.length):new Uint8Array(W.buffer,W.byteOffset,W.length);if(typeof console<"u"&&console.log)console.log("[WebP] encode options:",g);let c=performance.now(),k=h.encode(t,E,H,g),j1=performance.now();if(typeof console<"u"&&console.log)console.log(`[WebP] actual encoding took ${(j1-c).toFixed(2)}ms`);if(J?.aborted)throw new DOMException("Aborted","AbortError");if(!k)throw Error("WebP encoding failed");return k}if(typeof self<"u")self.onmessage=async(O)=>{let b=O.data;if(b?.type==="worker:ping"){self.postMessage({type:"worker:ready"});return}let J=b,E={id:J.id,ok:!1};try{if(J.type==="webp:encode"){let{image:H,options:W}=J.payload,z=performance.now(),h=new AbortController,m=await t1(H,W,h.signal),g=performance.now();if(typeof console<"u"&&console.log)console.log(`[WebP Worker] encode took ${(g-z).toFixed(2)}ms`);E.ok=!0,E.data=m,self.postMessage(E)}else E.error=`Unknown message type: ${J.type}`,self.postMessage(E)}catch(H){E.error=H instanceof Error?H.message:String(H),self.postMessage(E)}};
26
-
27
- //# debugId=BC4D202B8826519C64756E2164756E21
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
29
+
30
+ // ../runtime/src/env.ts
31
+ function isBun() {
32
+ return typeof Bun !== "undefined";
33
+ }
34
+
35
+ // ../runtime/src/worker-call.ts
36
+ async function callWorker(worker, type, payload, signal, transfer) {
37
+ return new Promise((resolve, reject) => {
38
+ const id = ++requestId;
39
+ if (signal?.aborted) {
40
+ reject(new DOMException("Aborted", "AbortError"));
41
+ return;
42
+ }
43
+ const handleMessage = (event) => {
44
+ const response = event.data;
45
+ if (response.id !== id)
46
+ return;
47
+ cleanup();
48
+ if (response.ok && response.data !== undefined) {
49
+ resolve(response.data);
50
+ } else {
51
+ reject(new Error(response.error || "Unknown worker error"));
52
+ }
53
+ };
54
+ const handleError = (error) => {
55
+ cleanup();
56
+ reject(new Error(`Worker error: ${error.message}`));
57
+ };
58
+ const handleAbort = () => {
59
+ cleanup();
60
+ reject(new DOMException("Aborted", "AbortError"));
61
+ };
62
+ const cleanup = () => {
63
+ worker.removeEventListener("message", handleMessage);
64
+ worker.removeEventListener("error", handleError);
65
+ signal?.removeEventListener("abort", handleAbort);
66
+ };
67
+ worker.addEventListener("message", handleMessage);
68
+ worker.addEventListener("error", handleError);
69
+ signal?.addEventListener("abort", handleAbort);
70
+ const request = { type, id, payload };
71
+ if (transfer && transfer.length > 0) {
72
+ worker.postMessage(request, transfer);
73
+ } else {
74
+ worker.postMessage(request);
75
+ }
76
+ });
77
+ }
78
+ var requestId = 0;
79
+
80
+ // ../runtime/src/worker-helper.ts
81
+ function createCodecWorker(workerFilename, options) {
82
+ const normalizedName = workerFilename.endsWith(".js") ? workerFilename : `${workerFilename}.js`;
83
+ const workerMap = {
84
+ "resize.worker.js": {
85
+ package: "@squoosh-kit/resize",
86
+ specifier: "resize.worker.js"
87
+ },
88
+ "webp.worker.js": {
89
+ package: "@squoosh-kit/webp",
90
+ specifier: "webp.worker.js"
91
+ }
92
+ };
93
+ const workerConfig = workerMap[normalizedName];
94
+ if (!workerConfig) {
95
+ throw new Error(`Unknown worker: ${normalizedName}. ` + `Supported workers: ${Object.keys(workerMap).join(", ")}`);
96
+ }
97
+ try {
98
+ if (typeof window !== "undefined") {
99
+ const packageName = workerConfig.package.split("/")[1];
100
+ const workerFile = normalizedName.replace(".js", ".browser.mjs");
101
+ console.log(`[worker-helper] In browser environment. Trying to create worker:`);
102
+ console.log(`[worker-helper] - Package Name: ${packageName}`);
103
+ console.log(`[worker-helper] - Worker File: ${workerFile}`);
104
+ if (options?.assetPath) {
105
+ const workerUrl = `${window.location.origin}${options.assetPath}${packageName}/${workerFile}`;
106
+ console.log(`[worker-helper] Using provided assetPath. Full Worker URL: ${workerUrl}`);
107
+ try {
108
+ return new Worker(workerUrl, { type: "module" });
109
+ } catch (e) {
110
+ console.error(`[worker-helper] CRITICAL: new Worker() failed synchronously for URL: ${workerUrl}`, e);
111
+ throw e;
112
+ }
113
+ }
114
+ const pathStrategies = [
115
+ `../../${packageName}/dist/${workerFile}`,
116
+ `../../../node_modules/@squoosh-kit/${packageName}/dist/${workerFile}`,
117
+ `../../../${packageName}/dist/${workerFile}`
118
+ ];
119
+ let lastError = null;
120
+ for (const relPath of pathStrategies) {
121
+ try {
122
+ const workerUrl = new URL(relPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
123
+ console.log(`[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`);
124
+ const worker = new Worker(workerUrl, {
125
+ type: "module"
126
+ });
127
+ console.log(`[worker-helper] Successfully created worker with URL: ${workerUrl.href}`);
128
+ return worker;
129
+ } catch (error) {
130
+ console.warn(`[worker-helper] Path strategy failed for ${relPath}:`, error);
131
+ lastError = error instanceof Error ? error : new Error(String(error));
132
+ }
133
+ }
134
+ if (lastError) {
135
+ console.error("[worker-helper] All path strategies failed.", lastError);
136
+ throw lastError;
137
+ }
138
+ throw new Error(`Could not resolve worker ${normalizedName} using any available path strategy`);
139
+ }
140
+ const platformExt = isBun() ? ".bun.js" : ".node.mjs";
141
+ const baseName = normalizedName.replace(".js", "");
142
+ const srcRelPath = workerConfig.package.includes("resize") ? `../../resize/src/${baseName}.ts` : `../../webp/src/${baseName}.ts`;
143
+ try {
144
+ return new Worker(new URL(srcRelPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
145
+ type: "module"
146
+ });
147
+ } catch {
148
+ const distRelPath = workerConfig.package.includes("resize") ? `../../resize/dist/${baseName}.${platformExt.slice(1)}` : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;
149
+ try {
150
+ return new Worker(new URL(distRelPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
151
+ type: "module"
152
+ });
153
+ } catch {
154
+ if (typeof import.meta.resolve === "function") {
155
+ try {
156
+ const resolved = import.meta.resolve(`${workerConfig.package}/${workerConfig.specifier}`);
157
+ return new Worker(resolved, { type: "module" });
158
+ } catch {}
159
+ }
160
+ }
161
+ }
162
+ throw new Error(`Failed to create worker from ${normalizedName}. ` + `Tried TypeScript source, dist output, and import.meta.resolve. ` + `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed.`);
163
+ } catch (error) {
164
+ const errorMessage = error instanceof Error ? error.message : String(error);
165
+ throw new Error(`Failed to create worker from ${normalizedName}: ${errorMessage}. ` + `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed. ` + `If you're using Vite, ensure the worker files are not being optimized as dependencies.`);
166
+ }
167
+ }
168
+ function createReadyWorker(workerFilename, options, timeoutMs = 1e4) {
169
+ return new Promise((resolve, reject) => {
170
+ const timeout = setTimeout(() => {
171
+ reject(new Error(`Worker initialization timeout after ${timeoutMs}ms. Worker file: ${workerFilename}`));
172
+ }, timeoutMs);
173
+ let worker;
174
+ try {
175
+ worker = createCodecWorker(workerFilename, options);
176
+ } catch (error) {
177
+ clearTimeout(timeout);
178
+ reject(error);
179
+ return;
180
+ }
181
+ const handleMessage = (event) => {
182
+ if (event.data?.type === "worker:ready") {
183
+ clearTimeout(timeout);
184
+ worker.removeEventListener("message", handleMessage);
185
+ worker.removeEventListener("error", handleError);
186
+ worker.removeEventListener("messageerror", handleMessageError);
187
+ resolve(worker);
188
+ }
189
+ };
190
+ const handleError = (event) => {
191
+ clearTimeout(timeout);
192
+ worker.removeEventListener("message", handleMessage);
193
+ worker.removeEventListener("error", handleError);
194
+ worker.removeEventListener("messageerror", handleMessageError);
195
+ reject(new Error(`Worker failed to start: ${event?.message || "Unknown error"}. Worker file: ${workerFilename}`));
196
+ };
197
+ const handleMessageError = () => {
198
+ clearTimeout(timeout);
199
+ worker.removeEventListener("message", handleMessage);
200
+ worker.removeEventListener("error", handleError);
201
+ worker.removeEventListener("messageerror", handleMessageError);
202
+ reject(new Error(`Worker message error during initialization. Worker file: ${workerFilename}`));
203
+ };
204
+ worker.addEventListener("message", handleMessage);
205
+ worker.addEventListener("error", handleError);
206
+ worker.addEventListener("messageerror", handleMessageError);
207
+ worker.postMessage({ type: "worker:ping" });
208
+ });
209
+ }
210
+ var init_worker_helper = () => {};
211
+
212
+ // ../runtime/src/wasm-loader.ts
213
+ async function loadWasmBinary(relativePath, baseUrlOverride) {
214
+ const baseUrl = baseUrlOverride ? typeof baseUrlOverride === "string" ? new URL(".", baseUrlOverride) : new URL(".", baseUrlOverride.href) : new URL(".", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/wasm-loader.ts");
215
+ const fullUrl = new URL(relativePath, baseUrl);
216
+ console.log(`[WasmLoader] Loading WASM from relative path: ${relativePath}`);
217
+ console.log(`[WasmLoader] Base URL (import.meta.url): ${baseUrl.href}`);
218
+ console.log(`[WasmLoader] Constructed full URL: ${fullUrl.href}`);
219
+ try {
220
+ const response = await fetch(fullUrl.href);
221
+ console.log(`[WasmLoader] Fetch response status for ${fullUrl.href}: ${response.status}`);
222
+ if (!response.ok) {
223
+ const responseText = await response.text();
224
+ console.error(`[WasmLoader] Fetch response text (first 500 chars):`, responseText.substring(0, 500));
225
+ throw new Error(`Failed to fetch WASM module at ${fullUrl.href}: ${response.status} ${response.statusText}`);
226
+ }
227
+ const contentType = response.headers.get("content-type");
228
+ console.log(`[WasmLoader] Response Content-Type: ${contentType}`);
229
+ if (!contentType || !contentType.includes("application/wasm")) {
230
+ console.warn(`[WasmLoader] Warning: WASM module at ${fullUrl.href} served with incorrect MIME type: "${contentType}". Should be "application/wasm".`);
231
+ }
232
+ return await response.arrayBuffer();
233
+ } catch (error) {
234
+ console.error(`[WasmLoader] CRITICAL: Fetching WASM binary from ${fullUrl.href} failed.`, error);
235
+ throw error;
236
+ }
237
+ }
238
+
239
+ // ../runtime/src/validators.ts
240
+ function validateImageInput(image) {
241
+ if (!image || typeof image !== "object") {
242
+ throw new TypeError("image must be an object");
243
+ }
244
+ const imageObj = image;
245
+ if (!("data" in imageObj)) {
246
+ throw new TypeError("image.data is required");
247
+ }
248
+ const { data } = imageObj;
249
+ if (!(data instanceof Uint8Array || data instanceof Uint8ClampedArray)) {
250
+ throw new TypeError("image.data must be Uint8Array or Uint8ClampedArray");
251
+ }
252
+ if (!("width" in imageObj) || !("height" in imageObj)) {
253
+ throw new TypeError("image.width and image.height are required");
254
+ }
255
+ const { width, height } = imageObj;
256
+ if (typeof width !== "number" || !Number.isInteger(width) || width <= 0) {
257
+ throw new RangeError(`image.width must be a positive integer, got ${width}`);
258
+ }
259
+ if (typeof height !== "number" || !Number.isInteger(height) || height <= 0) {
260
+ throw new RangeError(`image.height must be a positive integer, got ${height}`);
261
+ }
262
+ const expectedSize = width * height * 4;
263
+ if (data.length < expectedSize) {
264
+ throw new RangeError(`image.data too small: ${data.length} bytes, expected at least ${expectedSize} bytes for ${width}x${height} RGBA image`);
265
+ }
266
+ }
267
+
268
+ // ../../node_modules/.bun/wasm-feature-detect@1.8.0/node_modules/wasm-feature-detect/dist/esm/index.js
269
+ var simd = async () => WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11]));
270
+
271
+ // ../runtime/src/simd-detector.ts
272
+ async function detectSimd() {
273
+ if (simdSupported !== null) {
274
+ return simdSupported;
275
+ }
276
+ if (simdDetectionPromise) {
277
+ return simdDetectionPromise;
278
+ }
279
+ simdDetectionPromise = (async () => {
280
+ try {
281
+ simdSupported = await simd();
282
+ return simdSupported;
283
+ } catch (error) {
284
+ simdSupported = false;
285
+ console.warn("SIMD detection failed, falling back to standard WASM modules:", error);
286
+ return false;
287
+ }
288
+ })();
289
+ return simdDetectionPromise;
290
+ }
291
+ var simdSupported = null, simdDetectionPromise = null;
292
+ var init_simd_detector = () => {};
293
+
294
+ // ../runtime/src/index.ts
295
+ var init_src = __esm(() => {
296
+ init_worker_helper();
297
+ init_simd_detector();
298
+ });
299
+
300
+ // src/validators.ts
301
+ function validateWebpOptions(options) {
302
+ if (options === undefined) {
303
+ return;
304
+ }
305
+ if (typeof options !== "object" || options === null) {
306
+ throw new TypeError("options must be an object or undefined");
307
+ }
308
+ const opts = options;
309
+ if ("quality" in opts && opts.quality !== undefined) {
310
+ const quality = opts.quality;
311
+ if (Number.isNaN(quality)) {
312
+ throw new RangeError("quality must be a valid number in the range 0-100, got NaN");
313
+ }
314
+ if (typeof quality !== "number") {
315
+ throw new TypeError("quality must be a number");
316
+ }
317
+ if (!Number.isInteger(quality)) {
318
+ throw new RangeError("quality must be an integer in the range 0-100, got floating point");
319
+ }
320
+ if (quality < 0 || quality > 100) {
321
+ throw new RangeError(`quality must be in the range 0-100, got ${quality}`);
322
+ }
323
+ }
324
+ }
325
+
326
+ // src/webp.worker.ts
327
+ var exports_webp_worker = {};
328
+ __export(exports_webp_worker, {
329
+ webpEncodeClient: () => webpEncodeClient
330
+ });
331
+ module.exports = __toCommonJS(exports_webp_worker);
332
+ async function loadWebPModule() {
333
+ if (cachedModule) {
334
+ return cachedModule;
335
+ }
336
+ const simdSupported2 = await detectSimd();
337
+ const modulePath = simdSupported2 ? "webp/webp_enc_simd.js" : "webp/webp_enc.js";
338
+ try {
339
+ console.log("[WebP Worker] Initializing. SIMD support:", simdSupported2);
340
+ console.log(`[WebP Worker] Attempting to import module from path: ${modulePath}`);
341
+ const globalSelf = typeof self !== "undefined" ? self : globalThis;
342
+ if (!globalSelf.location) {
343
+ globalSelf.location = {
344
+ href: "file:///home/bnowak/repos/squoosh-kit/packages/webp/src/webp.worker.ts"
345
+ };
346
+ }
347
+ if (typeof self === "undefined" && typeof globalThis !== "undefined") {
348
+ globalThis.self = globalThis;
349
+ }
350
+ let moduleFactory;
351
+ const pathsToTry = ["./wasm/" + modulePath, "../wasm/" + modulePath];
352
+ let lastError = null;
353
+ for (const importPath of pathsToTry) {
354
+ try {
355
+ moduleFactory = (await import(importPath)).default;
356
+ console.log(`[WebP Worker] Successfully loaded module from: ${importPath}`);
357
+ break;
358
+ } catch (error) {
359
+ lastError = error instanceof Error ? error : new Error(String(error));
360
+ console.warn(`[WebP Worker] Failed to load from ${importPath}, trying next path...`);
361
+ }
362
+ }
363
+ if (!moduleFactory) {
364
+ throw lastError || new Error("Could not load WebP module from any path");
365
+ }
366
+ console.log("[WebP Worker] Module factory loaded successfully.");
367
+ const wasmPathsToTry = simdSupported2 ? ["./wasm/webp/webp_enc_simd.wasm", "../wasm/webp/webp_enc_simd.wasm"] : ["./wasm/webp/webp_enc.wasm", "../wasm/webp/webp_enc.wasm"];
368
+ console.log(`[WebP Worker] Preparing to load WASM binary. Will try paths: ${wasmPathsToTry.join(", ")}`);
369
+ const initModuleWithBinary = async (moduleFactory2, wasmPaths) => {
370
+ const workerBaseUrl = new URL(".", "file:///home/bnowak/repos/squoosh-kit/packages/webp/src/webp.worker.ts");
371
+ let lastError2 = null;
372
+ for (const wasmPath of wasmPaths) {
373
+ try {
374
+ console.log(`[WebP Worker] Calling loadWasmBinary with path: ${wasmPath}`);
375
+ const wasmBinary = await loadWasmBinary(wasmPath, workerBaseUrl);
376
+ console.log(`[WebP Worker] Successfully fetched WASM binary from ${wasmPath}. Size: ${wasmBinary.byteLength} bytes.`);
377
+ const globalSelf2 = typeof self !== "undefined" ? self : globalThis;
378
+ if (!globalSelf2.location) {
379
+ globalSelf2.location = {
380
+ href: "file:///home/bnowak/repos/squoosh-kit/packages/webp/src/webp.worker.ts"
381
+ };
382
+ }
383
+ if (typeof self === "undefined" && typeof globalThis !== "undefined") {
384
+ globalThis.self = globalThis;
385
+ }
386
+ return await moduleFactory2({
387
+ noInitialRun: true,
388
+ wasmBinary
389
+ });
390
+ } catch (err) {
391
+ lastError2 = err instanceof Error ? err : new Error(String(err));
392
+ console.warn(`[WebP Worker] Failed to load WASM from ${wasmPath}, trying next path...`);
393
+ }
394
+ }
395
+ throw lastError2 || new Error("Could not load WASM binary from any of the attempted paths");
396
+ };
397
+ cachedModule = await initModuleWithBinary(moduleFactory, wasmPathsToTry);
398
+ console.log("[WebP Worker] WebP module initialized successfully.");
399
+ return cachedModule;
400
+ } catch (err) {
401
+ console.error(`[WebP Worker] CRITICAL: Failed to load WebP module from path: ${modulePath}`, err);
402
+ throw err;
403
+ }
404
+ }
405
+ function createEncodeOptions(options) {
406
+ return {
407
+ quality: options?.quality ?? 75,
408
+ target_size: 0,
409
+ target_PSNR: 0,
410
+ method: options?.method ?? 4,
411
+ sns_strength: options?.sns_strength ?? 50,
412
+ filter_strength: options?.filter_strength ?? 60,
413
+ filter_sharpness: options?.filter_sharpness ?? 0,
414
+ filter_type: options?.filter_type ?? 1,
415
+ partitions: options?.partitions ?? 0,
416
+ segments: options?.segments ?? 4,
417
+ pass: options?.pass ?? 1,
418
+ show_compressed: 0,
419
+ preprocessing: options?.preprocessing ?? 0,
420
+ autofilter: options?.autofilter ?? 0,
421
+ partition_limit: 0,
422
+ alpha_compression: options?.alpha_compression ?? 1,
423
+ alpha_filtering: options?.alpha_filtering ?? 1,
424
+ alpha_quality: options?.alpha_quality ?? options?.quality ?? 75,
425
+ lossless: options?.lossless ? 1 : 0,
426
+ exact: options?.exact ?? 0,
427
+ image_hint: options?.image_hint ?? 0,
428
+ emulate_jpeg_size: 0,
429
+ thread_level: 0,
430
+ low_memory: 0,
431
+ near_lossless: options?.near_lossless ?? options?.quality ?? 75,
432
+ use_delta_palette: 0,
433
+ use_sharp_yuv: options?.use_sharp_yuv ?? 0
434
+ };
435
+ }
436
+ async function webpEncodeClient(image, options, signal) {
437
+ validateImageInput(image);
438
+ validateWebpOptions(options);
439
+ if (signal?.aborted) {
440
+ throw new DOMException("Aborted", "AbortError");
441
+ }
442
+ const width = image.width;
443
+ const height = image.height;
444
+ const data = image.data;
445
+ if (!(data instanceof Uint8Array) && !(data instanceof Uint8ClampedArray)) {
446
+ throw new Error("Image data must be Uint8Array or Uint8ClampedArray");
447
+ }
448
+ const t0 = performance.now();
449
+ const module2 = await loadWebPModule();
450
+ const t1 = performance.now();
451
+ if (typeof console !== "undefined" && console.log) {
452
+ console.log(`[WebP] module loading took ${(t1 - t0).toFixed(2)}ms`);
453
+ console.log(`[WebP] Module type: ${cachedModule && "encode" in cachedModule ? "Ready" : "Unknown"}`);
454
+ }
455
+ if (signal?.aborted) {
456
+ throw new DOMException("Aborted", "AbortError");
457
+ }
458
+ const encodeOptions = createEncodeOptions(options);
459
+ const dataArray = data instanceof Uint8ClampedArray ? new Uint8Array(data.buffer, data.byteOffset, data.length) : new Uint8Array(data.buffer, data.byteOffset, data.length);
460
+ if (typeof console !== "undefined" && console.log) {
461
+ console.log(`[WebP] encode options:`, encodeOptions);
462
+ }
463
+ const t2 = performance.now();
464
+ const result = module2.encode(dataArray, width, height, encodeOptions);
465
+ const t3 = performance.now();
466
+ if (typeof console !== "undefined" && console.log) {
467
+ console.log(`[WebP] actual encoding took ${(t3 - t2).toFixed(2)}ms`);
468
+ }
469
+ if (signal?.aborted) {
470
+ throw new DOMException("Aborted", "AbortError");
471
+ }
472
+ if (!result) {
473
+ throw new Error("WebP encoding failed");
474
+ }
475
+ return result;
476
+ }
477
+ var cachedModule = null;
478
+ var init_webp_worker = __esm(() => {
479
+ init_src();
480
+ if (typeof self !== "undefined") {
481
+ self.onmessage = async (event) => {
482
+ const data = event.data;
483
+ if (data?.type === "worker:ping") {
484
+ self.postMessage({ type: "worker:ready" });
485
+ return;
486
+ }
487
+ const request = data;
488
+ const response = {
489
+ id: request.id,
490
+ ok: false
491
+ };
492
+ try {
493
+ if (request.type === "webp:encode") {
494
+ const { image, options } = request.payload;
495
+ const t0 = performance.now();
496
+ const controller = new AbortController;
497
+ const result = await webpEncodeClient(image, options, controller.signal);
498
+ const t1 = performance.now();
499
+ if (typeof console !== "undefined" && console.log) {
500
+ console.log(`[WebP Worker] encode took ${(t1 - t0).toFixed(2)}ms`);
501
+ }
502
+ response.ok = true;
503
+ response.data = result;
504
+ self.postMessage(response);
505
+ } else {
506
+ response.error = `Unknown message type: ${request.type}`;
507
+ self.postMessage(response);
508
+ }
509
+ } catch (error) {
510
+ response.error = error instanceof Error ? error.message : String(error);
511
+ self.postMessage(response);
512
+ }
513
+ };
514
+ }
515
+ });
516
+ init_webp_worker();
517
+
518
+ //# debugId=6213080A6D5ACD3C64756E2164756E21