New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

onnxruntime-web

Package Overview
Dependencies
Maintainers
0
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

onnxruntime-web - npm Package Compare versions

Comparing version

to
1.21.0-dev.20250201-e8b0bdb127

lib/onnxjs/ort-schema/flatbuffers/onnxruntime/fbs.js

2

__commit.txt

@@ -1,1 +0,1 @@

80bc1d25f0fe5c562b34db201b567f0be64226c7
e8b0bdb12764bf45ce4a72a094f241c44c4b6a4e
/*!
* ONNX Runtime Web v1.21.0-dev.20250129-80bc1d25f0
* ONNX Runtime Web v1.21.0-dev.20250201-e8b0bdb127
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
"use strict";var mt=Object.create;var oe=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var A=(e,t)=>()=>(e&&(t=e(e=0)),t);var Pe=(e,t)=>{for(var n in t)oe(e,n,{get:t[n],enumerable:!0})},ne=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bt(t))!wt.call(e,r)&&r!==n&&oe(e,r,{get:()=>t[r],enumerable:!(s=gt(t,r))||s.enumerable});return e},D=(e,t,n)=>(ne(e,t,"default"),n&&ne(n,t,"default")),ht=(e,t,n)=>(n=e!=null?mt(yt(e)):{},ne(t||!e||!e.__esModule?oe(n,"default",{value:e,enumerable:!0}):n,e)),xe=e=>ne(oe({},"__esModule",{value:!0}),e);var W,se=A(()=>{"use strict";W=!!(typeof process<"u"&&process.versions&&process.versions.node)});var St,Et,F,Ce,_e,Ot,vt,Tt,Lt,Ae,Be,ge=A(()=>{"use strict";se();St=W||typeof location>"u"?void 0:location.origin,Et=()=>{if(!W)return typeof document<"u"?document.currentScript?.src:typeof self<"u"?self.location?.href:void 0},F=Et(),Ce=()=>{if(F&&!F.startsWith("blob:"))return F.substring(0,F.lastIndexOf("/")+1)},_e=(e,t)=>{try{let n=t??F;return(n?new URL(e,n):new URL(e)).origin===St}catch{return!1}},Ot=(e,t)=>{let n=t??F;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},vt=(e,t)=>`${t??"./"}${e}`,Tt=async e=>{let n=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},Lt=async e=>(await import(/*webpackIgnore:true*/e)).default,Ae=void 0,Be=async(e,t,n)=>{if(!e&&!t&&Ae&&F&&_e(F))return[void 0,Ae];{let s="ort-wasm-simd-threaded.mjs",r=e??Ot(s,t),i=!W&&n&&r&&!_e(r,t),o=i?await Tt(r):r??vt(s,t);return[i?o:void 0,await Lt(o)]}}});var be,ye,ie,Me,Pt,xt,Ue,S,G=A(()=>{"use strict";ge();ye=!1,ie=!1,Me=!1,Pt=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},xt=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Ue=async e=>{if(ye)return Promise.resolve();if(ie)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Me)throw new Error("previous call to 'initializeWebAssembly()' failed.");ie=!0;let t=e.initTimeout,n=e.numThreads;if(!xt())throw new Error("WebAssembly SIMD is not supported in the current environment.");let s=Pt();n>1&&!s&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),e.numThreads=n=1);let r=e.wasmPaths,i=typeof r=="string"?r:void 0,o=r?.mjs,a=o?.href??o,c=r?.wasm,d=c?.href??c,w=e.wasmBinary,[l,u]=await Be(a,i,n>1),b=!1,v=[];if(t>0&&v.push(new Promise(f=>{setTimeout(()=>{b=!0,f()},t)})),v.push(new Promise((f,y)=>{let P={numThreads:n};if(w)P.wasmBinary=w;else if(d||i)P.locateFile=p=>d??i+p;else if(a&&a.indexOf("blob:")!==0)P.locateFile=p=>new URL(p,a).href;else if(l){let p=Ce();p&&(P.locateFile=h=>p+h)}u(P).then(p=>{ie=!1,ye=!0,be=p,f(),l&&URL.revokeObjectURL(l)},p=>{ie=!1,Me=!0,y(p)})})),await Promise.race(v),b)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},S=()=>{if(ye&&be)return be;throw new Error("WebAssembly is not initialized yet.")}});var E,q,g,ae=A(()=>{"use strict";G();E=(e,t)=>{let n=S(),s=n.lengthBytesUTF8(e)+1,r=n._malloc(s);return n.stringToUTF8(e,r,s),t.push(r),r},q=(e,t,n,s)=>{if(typeof e=="object"&&e!==null){if(n.has(e))throw new Error("Circular reference in options");n.add(e)}Object.entries(e).forEach(([r,i])=>{let o=t?t+r:r;if(typeof i=="object")q(i,o+".",n,s);else if(typeof i=="string"||typeof i=="number")s(o,i.toString());else if(typeof i=="boolean")s(o,i?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof i}`)})},g=e=>{let t=S(),n=t.stackSave();try{let s=t.PTR_SIZE,r=t.stackAlloc(2*s);t._OrtGetLastError(r,r+s);let i=Number(t.getValue(r,s===4?"i32":"i64")),o=t.getValue(r+s,"*"),a=o?t.UTF8ToString(o):"";throw new Error(`${e} ERROR_CODE: ${i}, ERROR_MESSAGE: ${a}`)}finally{t.stackRestore(n)}}});var ke,De=A(()=>{"use strict";G();ae();ke=e=>{let t=S(),n=0,s=[],r=e||{};try{if(e?.logSeverityLevel===void 0)r.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)r.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(r.terminate=!1);let i=0;return e?.tag!==void 0&&(i=E(e.tag,s)),n=t._OrtCreateRunOptions(r.logSeverityLevel,r.logVerbosityLevel,!!r.terminate,i),n===0&&g("Can't create run options."),e?.extra!==void 0&&q(e.extra,"",new WeakSet,(o,a)=>{let c=E(o,s),d=E(a,s);t._OrtAddRunConfigEntry(n,c,d)!==0&&g(`Can't set a run config entry: ${o} - ${a}.`)}),[n,s]}catch(i){throw n!==0&&t._OrtReleaseRunOptions(n),s.forEach(o=>t._free(o)),i}}});var It,_t,At,Ct,We,Fe=A(()=>{"use strict";G();ae();It=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},_t=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},At=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(e.enableMemPattern=!1)},Ct=(e,t,n)=>{for(let s of t){let r=typeof s=="string"?s:s.name;switch(r){case"webnn":if(r="WEBNN",typeof s!="string"){let a=s?.deviceType;if(a){let c=E("deviceType",n),d=E(a,n);S()._OrtAddSessionConfigEntry(e,c,d)!==0&&g(`Can't set a session config entry: 'deviceType' - ${a}.`)}}break;case"webgpu":if(r="JS",typeof s!="string"){let o=s;if(o?.preferredLayout){if(o.preferredLayout!=="NCHW"&&o.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${o.preferredLayout}`);let a=E("preferredLayout",n),c=E(o.preferredLayout,n);S()._OrtAddSessionConfigEntry(e,a,c)!==0&&g(`Can't set a session config entry: 'preferredLayout' - ${o.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${r}`)}let i=E(r,n);S()._OrtAppendExecutionProvider(e,i)!==0&&g(`Can't append execution provider: ${r}.`)}},We=e=>{let t=S(),n=0,s=[],r=e||{};At(r);try{let i=It(r.graphOptimizationLevel??"all"),o=_t(r.executionMode??"sequential"),a=typeof r.logId=="string"?E(r.logId,s):0,c=r.logSeverityLevel??2;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log serverity level is not valid: ${c}`);let d=r.logVerbosityLevel??0;if(!Number.isInteger(d)||d<0||d>4)throw new Error(`log verbosity level is not valid: ${d}`);let w=typeof r.optimizedModelFilePath=="string"?E(r.optimizedModelFilePath,s):0;if(n=t._OrtCreateSessionOptions(i,!!r.enableCpuMemArena,!!r.enableMemPattern,o,!!r.enableProfiling,0,a,c,d,w),n===0&&g("Can't create session options."),r.executionProviders&&Ct(n,r.executionProviders,s),r.enableGraphCapture!==void 0){if(typeof r.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${r.enableGraphCapture}`);let l=E("enableGraphCapture",s),u=E(r.enableGraphCapture.toString(),s);t._OrtAddSessionConfigEntry(n,l,u)!==0&&g(`Can't set a session config entry: 'enableGraphCapture' - ${r.enableGraphCapture}.`)}if(r.freeDimensionOverrides)for(let[l,u]of Object.entries(r.freeDimensionOverrides)){if(typeof l!="string")throw new Error(`free dimension override name must be a string: ${l}`);if(typeof u!="number"||!Number.isInteger(u)||u<0)throw new Error(`free dimension override value must be a non-negative integer: ${u}`);let b=E(l,s);t._OrtAddFreeDimensionOverride(n,b,u)!==0&&g(`Can't set a free dimension override: ${l} - ${u}.`)}return r.extra!==void 0&&q(r.extra,"",new WeakSet,(l,u)=>{let b=E(l,s),v=E(u,s);t._OrtAddSessionConfigEntry(n,b,v)!==0&&g(`Can't set a session config entry: ${l} - ${u}.`)}),[n,s]}catch(i){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&g("Can't release session options."),s.forEach(o=>t._free(o)),i}}});var J,Re,Y,Ne,je,ue,ce,$e,we=A(()=>{"use strict";J=e=>{switch(e){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${e}`)}},Re=e=>{switch(e){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${e}`)}},Y=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],s=typeof t=="number"?t:t.reduce((r,i)=>r*i,1);return n>0?Math.ceil(s*n):void 0},Ne=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},je=e=>{switch(e){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${e}`)}},ue=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",ce=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",$e=e=>{switch(e){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${e}`)}}});var X,he=A(()=>{"use strict";se();X=async e=>{if(typeof e=="string")if(W)try{let{readFile:t}=require("node:fs/promises");return new Uint8Array(await t(e))}catch(t){if(t.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:n}=require("node:fs"),s=n(e),r=[];for await(let i of s)r.push(i);return new Uint8Array(Buffer.concat(r))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get("Content-Length"),s=n?parseInt(n,10):0;if(s<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),i;try{i=new ArrayBuffer(s)}catch(a){if(a instanceof RangeError){let c=Math.ceil(s/65536);i=new WebAssembly.Memory({initial:c,maximum:c}).buffer}else throw a}let o=0;for(;;){let{done:a,value:c}=await r.read();if(a)break;let d=c.byteLength;new Uint8Array(i,o,d).set(c),o+=d}return new Uint8Array(i,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});var Bt,Ge,He,H,Mt,Se,Ve,qe,ze,Je,Ye,Xe=A(()=>{"use strict";De();Fe();we();G();ae();he();Bt=(e,t)=>{S()._OrtInit(e,t)!==0&&g("Can't initialize onnxruntime.")},Ge=async e=>{Bt(e.wasm.numThreads,je(e.logLevel))},He=async(e,t)=>{},H=new Map,Mt=e=>{let t=S(),n=t.stackSave();try{let s=t.PTR_SIZE,r=t.stackAlloc(2*s);t._OrtGetInputOutputCount(e,r,r+s)!==0&&g("Can't get session input/output count.");let o=s===4?"i32":"i64";return[Number(t.getValue(r,o)),Number(t.getValue(r+s,o))]}finally{t.stackRestore(n)}},Se=e=>{let t=S(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},Ve=async(e,t)=>{let n,s,r=S();Array.isArray(e)?[n,s]=e:e.buffer===r.HEAPU8.buffer?[n,s]=[e.byteOffset,e.byteLength]:[n,s]=Se(e);let i=0,o=0,a=0,c=[],d=[],w=[];try{if([o,c]=We(t),t?.externalData&&r.mountExternalData){let p=[];for(let h of t.externalData){let I=typeof h=="string"?h:h.path;p.push(X(typeof h=="string"?h:h.data).then(k=>{r.mountExternalData(I,k)}))}await Promise.all(p)}for(let p of t?.executionProviders??[])if((typeof p=="string"?p:p.name)==="webnn"){if(r.shouldTransferToMLTensor=!1,typeof p!="string"){let I=p,k=I?.context,K=I?.gpuDevice,Q=I?.deviceType,ee=I?.powerPreference;k?r.currentContext=k:K?r.currentContext=await r.jsepCreateMLContext(K):r.currentContext=await r.jsepCreateMLContext({deviceType:Q,powerPreference:ee})}else r.currentContext=await r.jsepCreateMLContext();break}i=await r._OrtCreateSession(n,s,o),i===0&&g("Can't create a session."),r.jsepOnCreateSession?.(),r.currentContext&&(r.jsepRegisterMLContext(i,r.currentContext),r.currentContext=void 0,r.shouldTransferToMLTensor=!0);let[l,u]=Mt(i),b=!!t?.enableGraphCapture,v=[],f=[],y=[];for(let p=0;p<l;p++){let h=r._OrtGetInputName(i,p);h===0&&g("Can't get an input name."),d.push(h),v.push(r.UTF8ToString(h))}for(let p=0;p<u;p++){let h=r._OrtGetOutputName(i,p);h===0&&g("Can't get an output name."),w.push(h);let I=r.UTF8ToString(h);f.push(I)}let P=null;return H.set(i,[i,d,w,P,b,!1]),[i,v,f]}catch(l){throw d.forEach(u=>r._OrtFree(u)),w.forEach(u=>r._OrtFree(u)),a!==0&&r._OrtReleaseBinding(a)!==0&&g("Can't release IO binding."),i!==0&&r._OrtReleaseSession(i)!==0&&g("Can't release session."),l}finally{r._free(n),o!==0&&r._OrtReleaseSessionOptions(o)!==0&&g("Can't release session options."),c.forEach(l=>r._free(l)),r.unmountExternalData?.()}},qe=e=>{let t=S(),n=H.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,r,i,o,a]=n;o&&(a&&t._OrtClearBoundOutputs(o.handle)!==0&&g("Can't clear bound outputs."),t._OrtReleaseBinding(o.handle)!==0&&g("Can't release IO binding.")),t.jsepOnReleaseSession?.(e),r.forEach(c=>t._OrtFree(c)),i.forEach(c=>t._OrtFree(c)),t._OrtReleaseSession(s)!==0&&g("Can't release session."),H.delete(e)},ze=(e,t,n,s,r,i=!1)=>{if(!e){t.push(0);return}let o=S(),a=o.PTR_SIZE,c=e[0],d=e[1],w=e[3],l,u;if(c==="string"&&(w==="gpu-buffer"||w==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(i&&w!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${r} when enableGraphCapture is true.`);if(w==="gpu-buffer"){let f=e[2].gpuBuffer;u=Y(J(c),d);let y=o.jsepRegisterBuffer;if(!y)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');l=y(s,r,f,u)}else if(w==="ml-tensor"){let f=e[2].mlTensor;u=Y(J(c),d);let y=o.jsepRegisterMLTensor;if(!y)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');l=y(f,J(c),d)}else{let f=e[2];if(Array.isArray(f)){u=a*f.length,l=o._malloc(u),n.push(l);for(let y=0;y<f.length;y++){if(typeof f[y]!="string")throw new TypeError(`tensor data at index ${y} is not a string`);o.setValue(l+y*a,E(f[y],n),"*")}}else u=f.byteLength,l=o._malloc(u),n.push(l),o.HEAPU8.set(new Uint8Array(f.buffer,f.byteOffset,u),l)}let b=o.stackSave(),v=o.stackAlloc(4*d.length);try{d.forEach((y,P)=>o.setValue(v+P*a,y,a===4?"i32":"i64"));let f=o._OrtCreateTensor(J(c),l,u,v,d.length,$e(w));f===0&&g(`Can't create tensor for input/output. session=${s}, index=${r}.`),t.push(f)}finally{o.stackRestore(b)}},Je=async(e,t,n,s,r,i)=>{let o=S(),a=o.PTR_SIZE,c=H.get(e);if(!c)throw new Error(`cannot run inference. invalid session id: ${e}`);let d=c[0],w=c[1],l=c[2],u=c[3],b=c[4],v=c[5],f=t.length,y=s.length,P=0,p=[],h=[],I=[],k=[],K=o.stackSave(),Q=o.stackAlloc(f*a),ee=o.stackAlloc(f*a),pe=o.stackAlloc(y*a),ve=o.stackAlloc(y*a);try{o.jsepOnRunStart?.(d),[P,p]=ke(i);for(let m=0;m<f;m++)ze(n[m],h,k,e,t[m],b);for(let m=0;m<y;m++)ze(r[m],I,k,e,f+s[m],b);for(let m=0;m<f;m++)o.setValue(Q+m*a,h[m],"*"),o.setValue(ee+m*a,w[t[m]],"*");for(let m=0;m<y;m++)o.setValue(pe+m*a,I[m],"*"),o.setValue(ve+m*a,l[s[m]],"*");let C;C=await o._OrtRun(d,ee,Q,f,ve,y,pe,P),C!==0&&g("failed to call OrtRun().");let $=[];for(let m=0;m<y;m++){let z=Number(o.getValue(pe+m*a,"*"));if(z===I[m]){$.push(r[m]);continue}let Te=o.stackSave(),B=o.stackAlloc(4*a),V=!1,T,_=0;try{o._OrtGetTensorData(z,B,B+a,B+2*a,B+3*a)!==0&&g(`Can't access output tensor data on index ${m}.`);let me=a===4?"i32":"i64",te=Number(o.getValue(B,me));_=o.getValue(B+a,"*");let Le=o.getValue(B+a*2,"*"),ft=Number(o.getValue(B+a*3,me)),R=[];for(let L=0;L<ft;L++)R.push(Number(o.getValue(Le+L*a,me)));o._OrtFree(Le)!==0&&g("Can't free memory for tensor dims.");let N=R.reduce((L,O)=>L*O,1);T=Re(te);let re=u?.outputPreferredLocations[s[m]];if(T==="string"){if(re==="gpu-buffer"||re==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let L=[];for(let O=0;O<N;O++){let j=o.getValue(_+O*a,"*"),dt=o.getValue(_+(O+1)*a,"*"),pt=O===N-1?void 0:dt-j;L.push(o.UTF8ToString(j,pt))}$.push([T,R,L,"cpu"])}else if(re==="gpu-buffer"&&N>0){let L=o.jsepGetBuffer;if(!L)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let O=L(_),j=Y(te,N);if(j===void 0||!ue(T))throw new Error(`Unsupported data type: ${T}`);V=!0,$.push([T,R,{gpuBuffer:O,download:o.jsepCreateDownloader(O,j,T),dispose:()=>{o._OrtReleaseTensor(z)!==0&&g("Can't release tensor.")}},"gpu-buffer"])}else if(re==="ml-tensor"&&N>0){let L=o.jsepEnsureTensor;if(!L)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Y(te,N)===void 0||!ce(T))throw new Error(`Unsupported data type: ${T}`);let j=await L(_,te,R,!1);V=!0,$.push([T,R,{mlTensor:j,download:o.jsepCreateMLTensorDownloader(_,T),dispose:()=>{o.jsepReleaseTensorId(_),o._OrtReleaseTensor(z)}},"ml-tensor"])}else{let L=Ne(T),O=new L(N);new Uint8Array(O.buffer,O.byteOffset,O.byteLength).set(o.HEAPU8.subarray(_,_+O.byteLength)),$.push([T,R,O,"cpu"])}}finally{o.stackRestore(Te),T==="string"&&_&&o._free(_),V||o._OrtReleaseTensor(z)}}return u&&!b&&(o._OrtClearBoundOutputs(u.handle)!==0&&g("Can't clear bound outputs."),H.set(e,[d,w,l,u,b,!1])),$}finally{o.stackRestore(K),h.forEach(C=>o._OrtReleaseTensor(C)),I.forEach(C=>o._OrtReleaseTensor(C)),k.forEach(C=>o._free(C)),P!==0&&o._OrtReleaseRunOptions(P),p.forEach(C=>o._free(C))}},Ye=e=>{let t=S(),n=H.get(e);if(!n)throw new Error("invalid session id");let s=n[0],r=t._OrtEndProfiling(s);r===0&&g("Can't get an profile file name."),t._OrtFree(r)}});var le,Ee,Ze,Ke,Qe,et,tt,rt,nt,ot,st,Oe=A(()=>{"use strict";le=require("onnxruntime-common");Xe();G();ge();Ee=!1,Ze=!1,Ke=!1,Qe=async()=>{if(!Ze){if(Ee)throw new Error("multiple calls to 'initWasm()' detected.");if(Ke)throw new Error("previous call to 'initWasm()' failed.");Ee=!0;try{await Ue(le.env.wasm),await Ge(le.env),Ze=!0}catch(e){throw Ke=!0,e}finally{Ee=!1}}},et=async e=>{await He(le.env,e)},tt=async e=>Se(e),rt=async(e,t)=>Ve(e,t),nt=async e=>{qe(e)},ot=async(e,t,n,s,r,i)=>Je(e,t,n,s,r,i),st=async e=>{Ye(e)}});var M,it,kt,fe,at=A(()=>{"use strict";M=require("onnxruntime-common");Oe();we();se();he();it=(e,t)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},kt=e=>{switch(e[3]){case"cpu":return new M.Tensor(e[0],e[2],e[1]);case"gpu-buffer":{let t=e[0];if(!ue(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:s,dispose:r}=e[2];return M.Tensor.fromGpuBuffer(n,{dataType:t,dims:e[1],download:s,dispose:r})}case"ml-tensor":{let t=e[0];if(!ce(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:s,dispose:r}=e[2];return M.Tensor.fromMLTensor(n,{dataType:t,dims:e[1],download:s,dispose:r})}default:throw new Error(`invalid data location: ${e[3]}`)}},fe=class{async fetchModelAndCopyToWasmMemory(t){return tt(await X(t))}async loadModel(t,n){(0,M.TRACE_FUNC_BEGIN)();let s;typeof t=="string"?W?s=await X(t):s=await this.fetchModelAndCopyToWasmMemory(t):s=t,[this.sessionId,this.inputNames,this.outputNames]=await rt(s,n),(0,M.TRACE_FUNC_END)()}async dispose(){return nt(this.sessionId)}async run(t,n,s){(0,M.TRACE_FUNC_BEGIN)();let r=[],i=[];Object.entries(t).forEach(u=>{let b=u[0],v=u[1],f=this.inputNames.indexOf(b);if(f===-1)throw new Error(`invalid input '${b}'`);r.push(v),i.push(f)});let o=[],a=[];Object.entries(n).forEach(u=>{let b=u[0],v=u[1],f=this.outputNames.indexOf(b);if(f===-1)throw new Error(`invalid output '${b}'`);o.push(v),a.push(f)});let c=r.map((u,b)=>it(u,()=>`input "${this.inputNames[i[b]]}"`)),d=o.map((u,b)=>u?it(u,()=>`output "${this.outputNames[a[b]]}"`):null),w=await ot(this.sessionId,i,c,a,d,s),l={};for(let u=0;u<w.length;u++)l[this.outputNames[a[u]]]=o[u]??kt(w[u]);return(0,M.TRACE_FUNC_END)(),l}startProfiling(){}endProfiling(){st(this.sessionId)}}});var ct={};Pe(ct,{OnnxruntimeWebAssemblyBackend:()=>de,initializeFlags:()=>ut,wasmBackend:()=>Dt});var x,ut,de,Dt,lt=A(()=>{"use strict";x=require("onnxruntime-common");Oe();at();ut=()=>{if((typeof x.env.wasm.initTimeout!="number"||x.env.wasm.initTimeout<0)&&(x.env.wasm.initTimeout=0),x.env.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof x.env.wasm.proxy!="boolean"&&(x.env.wasm.proxy=!1),typeof x.env.wasm.trace!="boolean"&&(x.env.wasm.trace=!1),typeof x.env.wasm.numThreads!="number"||!Number.isInteger(x.env.wasm.numThreads)||x.env.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)x.env.wasm.numThreads=1;else{let e=typeof navigator>"u"?require("node:os").cpus().length:navigator.hardwareConcurrency;x.env.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},de=class{async init(t){ut(),await Qe(),await et(t)}async createInferenceSessionHandler(t,n){let s=new fe;return await s.loadModel(t,n),Promise.resolve(s)}},Dt=new de});var U={};Pe(U,{default:()=>Ft});module.exports=xe(U);D(U,require("onnxruntime-common"),module.exports);var Wt=ht(require("onnxruntime-common")),Z=require("onnxruntime-common");var Ie="1.21.0-dev.20250129-80bc1d25f0";var Ft=Wt;{let e=(lt(),xe(ct)).wasmBackend;(0,Z.registerBackend)("cpu",e,10),(0,Z.registerBackend)("wasm",e,10)}Object.defineProperty(Z.env.versions,"web",{value:Ie,enumerable:!0});0&&(module.exports={...require("onnxruntime-common")});
"use strict";var mt=Object.create;var oe=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var A=(e,t)=>()=>(e&&(t=e(e=0)),t);var Pe=(e,t)=>{for(var n in t)oe(e,n,{get:t[n],enumerable:!0})},ne=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bt(t))!wt.call(e,r)&&r!==n&&oe(e,r,{get:()=>t[r],enumerable:!(s=gt(t,r))||s.enumerable});return e},D=(e,t,n)=>(ne(e,t,"default"),n&&ne(n,t,"default")),ht=(e,t,n)=>(n=e!=null?mt(yt(e)):{},ne(t||!e||!e.__esModule?oe(n,"default",{value:e,enumerable:!0}):n,e)),xe=e=>ne(oe({},"__esModule",{value:!0}),e);var W,se=A(()=>{"use strict";W=!!(typeof process<"u"&&process.versions&&process.versions.node)});var St,Et,F,Ce,_e,Ot,vt,Tt,Lt,Ae,Be,ge=A(()=>{"use strict";se();St=W||typeof location>"u"?void 0:location.origin,Et=()=>{if(!W)return typeof document<"u"?document.currentScript?.src:typeof self<"u"?self.location?.href:void 0},F=Et(),Ce=()=>{if(F&&!F.startsWith("blob:"))return F.substring(0,F.lastIndexOf("/")+1)},_e=(e,t)=>{try{let n=t??F;return(n?new URL(e,n):new URL(e)).origin===St}catch{return!1}},Ot=(e,t)=>{let n=t??F;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},vt=(e,t)=>`${t??"./"}${e}`,Tt=async e=>{let n=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},Lt=async e=>(await import(/*webpackIgnore:true*/e)).default,Ae=void 0,Be=async(e,t,n)=>{if(!e&&!t&&Ae&&F&&_e(F))return[void 0,Ae];{let s="ort-wasm-simd-threaded.mjs",r=e??Ot(s,t),i=!W&&n&&r&&!_e(r,t),o=i?await Tt(r):r??vt(s,t);return[i?o:void 0,await Lt(o)]}}});var be,ye,ie,Me,Pt,xt,Ue,S,G=A(()=>{"use strict";ge();ye=!1,ie=!1,Me=!1,Pt=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},xt=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Ue=async e=>{if(ye)return Promise.resolve();if(ie)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Me)throw new Error("previous call to 'initializeWebAssembly()' failed.");ie=!0;let t=e.initTimeout,n=e.numThreads;if(!xt())throw new Error("WebAssembly SIMD is not supported in the current environment.");let s=Pt();n>1&&!s&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),e.numThreads=n=1);let r=e.wasmPaths,i=typeof r=="string"?r:void 0,o=r?.mjs,a=o?.href??o,c=r?.wasm,d=c?.href??c,w=e.wasmBinary,[l,u]=await Be(a,i,n>1),b=!1,v=[];if(t>0&&v.push(new Promise(f=>{setTimeout(()=>{b=!0,f()},t)})),v.push(new Promise((f,y)=>{let P={numThreads:n};if(w)P.wasmBinary=w;else if(d||i)P.locateFile=p=>d??i+p;else if(a&&a.indexOf("blob:")!==0)P.locateFile=p=>new URL(p,a).href;else if(l){let p=Ce();p&&(P.locateFile=h=>p+h)}u(P).then(p=>{ie=!1,ye=!0,be=p,f(),l&&URL.revokeObjectURL(l)},p=>{ie=!1,Me=!0,y(p)})})),await Promise.race(v),b)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},S=()=>{if(ye&&be)return be;throw new Error("WebAssembly is not initialized yet.")}});var E,q,g,ae=A(()=>{"use strict";G();E=(e,t)=>{let n=S(),s=n.lengthBytesUTF8(e)+1,r=n._malloc(s);return n.stringToUTF8(e,r,s),t.push(r),r},q=(e,t,n,s)=>{if(typeof e=="object"&&e!==null){if(n.has(e))throw new Error("Circular reference in options");n.add(e)}Object.entries(e).forEach(([r,i])=>{let o=t?t+r:r;if(typeof i=="object")q(i,o+".",n,s);else if(typeof i=="string"||typeof i=="number")s(o,i.toString());else if(typeof i=="boolean")s(o,i?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof i}`)})},g=e=>{let t=S(),n=t.stackSave();try{let s=t.PTR_SIZE,r=t.stackAlloc(2*s);t._OrtGetLastError(r,r+s);let i=Number(t.getValue(r,s===4?"i32":"i64")),o=t.getValue(r+s,"*"),a=o?t.UTF8ToString(o):"";throw new Error(`${e} ERROR_CODE: ${i}, ERROR_MESSAGE: ${a}`)}finally{t.stackRestore(n)}}});var ke,De=A(()=>{"use strict";G();ae();ke=e=>{let t=S(),n=0,s=[],r=e||{};try{if(e?.logSeverityLevel===void 0)r.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)r.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(r.terminate=!1);let i=0;return e?.tag!==void 0&&(i=E(e.tag,s)),n=t._OrtCreateRunOptions(r.logSeverityLevel,r.logVerbosityLevel,!!r.terminate,i),n===0&&g("Can't create run options."),e?.extra!==void 0&&q(e.extra,"",new WeakSet,(o,a)=>{let c=E(o,s),d=E(a,s);t._OrtAddRunConfigEntry(n,c,d)!==0&&g(`Can't set a run config entry: ${o} - ${a}.`)}),[n,s]}catch(i){throw n!==0&&t._OrtReleaseRunOptions(n),s.forEach(o=>t._free(o)),i}}});var It,_t,At,Ct,We,Fe=A(()=>{"use strict";G();ae();It=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},_t=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},At=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(e.enableMemPattern=!1)},Ct=(e,t,n)=>{for(let s of t){let r=typeof s=="string"?s:s.name;switch(r){case"webnn":if(r="WEBNN",typeof s!="string"){let a=s?.deviceType;if(a){let c=E("deviceType",n),d=E(a,n);S()._OrtAddSessionConfigEntry(e,c,d)!==0&&g(`Can't set a session config entry: 'deviceType' - ${a}.`)}}break;case"webgpu":if(r="JS",typeof s!="string"){let o=s;if(o?.preferredLayout){if(o.preferredLayout!=="NCHW"&&o.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${o.preferredLayout}`);let a=E("preferredLayout",n),c=E(o.preferredLayout,n);S()._OrtAddSessionConfigEntry(e,a,c)!==0&&g(`Can't set a session config entry: 'preferredLayout' - ${o.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${r}`)}let i=E(r,n);S()._OrtAppendExecutionProvider(e,i)!==0&&g(`Can't append execution provider: ${r}.`)}},We=e=>{let t=S(),n=0,s=[],r=e||{};At(r);try{let i=It(r.graphOptimizationLevel??"all"),o=_t(r.executionMode??"sequential"),a=typeof r.logId=="string"?E(r.logId,s):0,c=r.logSeverityLevel??2;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log serverity level is not valid: ${c}`);let d=r.logVerbosityLevel??0;if(!Number.isInteger(d)||d<0||d>4)throw new Error(`log verbosity level is not valid: ${d}`);let w=typeof r.optimizedModelFilePath=="string"?E(r.optimizedModelFilePath,s):0;if(n=t._OrtCreateSessionOptions(i,!!r.enableCpuMemArena,!!r.enableMemPattern,o,!!r.enableProfiling,0,a,c,d,w),n===0&&g("Can't create session options."),r.executionProviders&&Ct(n,r.executionProviders,s),r.enableGraphCapture!==void 0){if(typeof r.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${r.enableGraphCapture}`);let l=E("enableGraphCapture",s),u=E(r.enableGraphCapture.toString(),s);t._OrtAddSessionConfigEntry(n,l,u)!==0&&g(`Can't set a session config entry: 'enableGraphCapture' - ${r.enableGraphCapture}.`)}if(r.freeDimensionOverrides)for(let[l,u]of Object.entries(r.freeDimensionOverrides)){if(typeof l!="string")throw new Error(`free dimension override name must be a string: ${l}`);if(typeof u!="number"||!Number.isInteger(u)||u<0)throw new Error(`free dimension override value must be a non-negative integer: ${u}`);let b=E(l,s);t._OrtAddFreeDimensionOverride(n,b,u)!==0&&g(`Can't set a free dimension override: ${l} - ${u}.`)}return r.extra!==void 0&&q(r.extra,"",new WeakSet,(l,u)=>{let b=E(l,s),v=E(u,s);t._OrtAddSessionConfigEntry(n,b,v)!==0&&g(`Can't set a session config entry: ${l} - ${u}.`)}),[n,s]}catch(i){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&g("Can't release session options."),s.forEach(o=>t._free(o)),i}}});var J,Re,Y,Ne,je,ue,ce,$e,we=A(()=>{"use strict";J=e=>{switch(e){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${e}`)}},Re=e=>{switch(e){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${e}`)}},Y=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],s=typeof t=="number"?t:t.reduce((r,i)=>r*i,1);return n>0?Math.ceil(s*n):void 0},Ne=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},je=e=>{switch(e){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${e}`)}},ue=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",ce=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",$e=e=>{switch(e){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${e}`)}}});var X,he=A(()=>{"use strict";se();X=async e=>{if(typeof e=="string")if(W)try{let{readFile:t}=require("node:fs/promises");return new Uint8Array(await t(e))}catch(t){if(t.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:n}=require("node:fs"),s=n(e),r=[];for await(let i of s)r.push(i);return new Uint8Array(Buffer.concat(r))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get("Content-Length"),s=n?parseInt(n,10):0;if(s<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),i;try{i=new ArrayBuffer(s)}catch(a){if(a instanceof RangeError){let c=Math.ceil(s/65536);i=new WebAssembly.Memory({initial:c,maximum:c}).buffer}else throw a}let o=0;for(;;){let{done:a,value:c}=await r.read();if(a)break;let d=c.byteLength;new Uint8Array(i,o,d).set(c),o+=d}return new Uint8Array(i,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});var Bt,Ge,He,H,Mt,Se,Ve,qe,ze,Je,Ye,Xe=A(()=>{"use strict";De();Fe();we();G();ae();he();Bt=(e,t)=>{S()._OrtInit(e,t)!==0&&g("Can't initialize onnxruntime.")},Ge=async e=>{Bt(e.wasm.numThreads,je(e.logLevel))},He=async(e,t)=>{},H=new Map,Mt=e=>{let t=S(),n=t.stackSave();try{let s=t.PTR_SIZE,r=t.stackAlloc(2*s);t._OrtGetInputOutputCount(e,r,r+s)!==0&&g("Can't get session input/output count.");let o=s===4?"i32":"i64";return[Number(t.getValue(r,o)),Number(t.getValue(r+s,o))]}finally{t.stackRestore(n)}},Se=e=>{let t=S(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},Ve=async(e,t)=>{let n,s,r=S();Array.isArray(e)?[n,s]=e:e.buffer===r.HEAPU8.buffer?[n,s]=[e.byteOffset,e.byteLength]:[n,s]=Se(e);let i=0,o=0,a=0,c=[],d=[],w=[];try{if([o,c]=We(t),t?.externalData&&r.mountExternalData){let p=[];for(let h of t.externalData){let I=typeof h=="string"?h:h.path;p.push(X(typeof h=="string"?h:h.data).then(k=>{r.mountExternalData(I,k)}))}await Promise.all(p)}for(let p of t?.executionProviders??[])if((typeof p=="string"?p:p.name)==="webnn"){if(r.shouldTransferToMLTensor=!1,typeof p!="string"){let I=p,k=I?.context,K=I?.gpuDevice,Q=I?.deviceType,ee=I?.powerPreference;k?r.currentContext=k:K?r.currentContext=await r.jsepCreateMLContext(K):r.currentContext=await r.jsepCreateMLContext({deviceType:Q,powerPreference:ee})}else r.currentContext=await r.jsepCreateMLContext();break}i=await r._OrtCreateSession(n,s,o),i===0&&g("Can't create a session."),r.jsepOnCreateSession?.(),r.currentContext&&(r.jsepRegisterMLContext(i,r.currentContext),r.currentContext=void 0,r.shouldTransferToMLTensor=!0);let[l,u]=Mt(i),b=!!t?.enableGraphCapture,v=[],f=[],y=[];for(let p=0;p<l;p++){let h=r._OrtGetInputName(i,p);h===0&&g("Can't get an input name."),d.push(h),v.push(r.UTF8ToString(h))}for(let p=0;p<u;p++){let h=r._OrtGetOutputName(i,p);h===0&&g("Can't get an output name."),w.push(h);let I=r.UTF8ToString(h);f.push(I)}let P=null;return H.set(i,[i,d,w,P,b,!1]),[i,v,f]}catch(l){throw d.forEach(u=>r._OrtFree(u)),w.forEach(u=>r._OrtFree(u)),a!==0&&r._OrtReleaseBinding(a)!==0&&g("Can't release IO binding."),i!==0&&r._OrtReleaseSession(i)!==0&&g("Can't release session."),l}finally{r._free(n),o!==0&&r._OrtReleaseSessionOptions(o)!==0&&g("Can't release session options."),c.forEach(l=>r._free(l)),r.unmountExternalData?.()}},qe=e=>{let t=S(),n=H.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,r,i,o,a]=n;o&&(a&&t._OrtClearBoundOutputs(o.handle)!==0&&g("Can't clear bound outputs."),t._OrtReleaseBinding(o.handle)!==0&&g("Can't release IO binding.")),t.jsepOnReleaseSession?.(e),r.forEach(c=>t._OrtFree(c)),i.forEach(c=>t._OrtFree(c)),t._OrtReleaseSession(s)!==0&&g("Can't release session."),H.delete(e)},ze=(e,t,n,s,r,i=!1)=>{if(!e){t.push(0);return}let o=S(),a=o.PTR_SIZE,c=e[0],d=e[1],w=e[3],l,u;if(c==="string"&&(w==="gpu-buffer"||w==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(i&&w!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${r} when enableGraphCapture is true.`);if(w==="gpu-buffer"){let f=e[2].gpuBuffer;u=Y(J(c),d);let y=o.jsepRegisterBuffer;if(!y)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');l=y(s,r,f,u)}else if(w==="ml-tensor"){let f=e[2].mlTensor;u=Y(J(c),d);let y=o.jsepRegisterMLTensor;if(!y)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');l=y(f,J(c),d)}else{let f=e[2];if(Array.isArray(f)){u=a*f.length,l=o._malloc(u),n.push(l);for(let y=0;y<f.length;y++){if(typeof f[y]!="string")throw new TypeError(`tensor data at index ${y} is not a string`);o.setValue(l+y*a,E(f[y],n),"*")}}else u=f.byteLength,l=o._malloc(u),n.push(l),o.HEAPU8.set(new Uint8Array(f.buffer,f.byteOffset,u),l)}let b=o.stackSave(),v=o.stackAlloc(4*d.length);try{d.forEach((y,P)=>o.setValue(v+P*a,y,a===4?"i32":"i64"));let f=o._OrtCreateTensor(J(c),l,u,v,d.length,$e(w));f===0&&g(`Can't create tensor for input/output. session=${s}, index=${r}.`),t.push(f)}finally{o.stackRestore(b)}},Je=async(e,t,n,s,r,i)=>{let o=S(),a=o.PTR_SIZE,c=H.get(e);if(!c)throw new Error(`cannot run inference. invalid session id: ${e}`);let d=c[0],w=c[1],l=c[2],u=c[3],b=c[4],v=c[5],f=t.length,y=s.length,P=0,p=[],h=[],I=[],k=[],K=o.stackSave(),Q=o.stackAlloc(f*a),ee=o.stackAlloc(f*a),pe=o.stackAlloc(y*a),ve=o.stackAlloc(y*a);try{o.jsepOnRunStart?.(d),[P,p]=ke(i);for(let m=0;m<f;m++)ze(n[m],h,k,e,t[m],b);for(let m=0;m<y;m++)ze(r[m],I,k,e,f+s[m],b);for(let m=0;m<f;m++)o.setValue(Q+m*a,h[m],"*"),o.setValue(ee+m*a,w[t[m]],"*");for(let m=0;m<y;m++)o.setValue(pe+m*a,I[m],"*"),o.setValue(ve+m*a,l[s[m]],"*");let C;C=await o._OrtRun(d,ee,Q,f,ve,y,pe,P),C!==0&&g("failed to call OrtRun().");let $=[];for(let m=0;m<y;m++){let z=Number(o.getValue(pe+m*a,"*"));if(z===I[m]){$.push(r[m]);continue}let Te=o.stackSave(),B=o.stackAlloc(4*a),V=!1,T,_=0;try{o._OrtGetTensorData(z,B,B+a,B+2*a,B+3*a)!==0&&g(`Can't access output tensor data on index ${m}.`);let me=a===4?"i32":"i64",te=Number(o.getValue(B,me));_=o.getValue(B+a,"*");let Le=o.getValue(B+a*2,"*"),ft=Number(o.getValue(B+a*3,me)),R=[];for(let L=0;L<ft;L++)R.push(Number(o.getValue(Le+L*a,me)));o._OrtFree(Le)!==0&&g("Can't free memory for tensor dims.");let N=R.reduce((L,O)=>L*O,1);T=Re(te);let re=u?.outputPreferredLocations[s[m]];if(T==="string"){if(re==="gpu-buffer"||re==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let L=[];for(let O=0;O<N;O++){let j=o.getValue(_+O*a,"*"),dt=o.getValue(_+(O+1)*a,"*"),pt=O===N-1?void 0:dt-j;L.push(o.UTF8ToString(j,pt))}$.push([T,R,L,"cpu"])}else if(re==="gpu-buffer"&&N>0){let L=o.jsepGetBuffer;if(!L)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let O=L(_),j=Y(te,N);if(j===void 0||!ue(T))throw new Error(`Unsupported data type: ${T}`);V=!0,$.push([T,R,{gpuBuffer:O,download:o.jsepCreateDownloader(O,j,T),dispose:()=>{o._OrtReleaseTensor(z)!==0&&g("Can't release tensor.")}},"gpu-buffer"])}else if(re==="ml-tensor"&&N>0){let L=o.jsepEnsureTensor;if(!L)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Y(te,N)===void 0||!ce(T))throw new Error(`Unsupported data type: ${T}`);let j=await L(_,te,R,!1);V=!0,$.push([T,R,{mlTensor:j,download:o.jsepCreateMLTensorDownloader(_,T),dispose:()=>{o.jsepReleaseTensorId(_),o._OrtReleaseTensor(z)}},"ml-tensor"])}else{let L=Ne(T),O=new L(N);new Uint8Array(O.buffer,O.byteOffset,O.byteLength).set(o.HEAPU8.subarray(_,_+O.byteLength)),$.push([T,R,O,"cpu"])}}finally{o.stackRestore(Te),T==="string"&&_&&o._free(_),V||o._OrtReleaseTensor(z)}}return u&&!b&&(o._OrtClearBoundOutputs(u.handle)!==0&&g("Can't clear bound outputs."),H.set(e,[d,w,l,u,b,!1])),$}finally{o.stackRestore(K),h.forEach(C=>o._OrtReleaseTensor(C)),I.forEach(C=>o._OrtReleaseTensor(C)),k.forEach(C=>o._free(C)),P!==0&&o._OrtReleaseRunOptions(P),p.forEach(C=>o._free(C))}},Ye=e=>{let t=S(),n=H.get(e);if(!n)throw new Error("invalid session id");let s=n[0],r=t._OrtEndProfiling(s);r===0&&g("Can't get an profile file name."),t._OrtFree(r)}});var le,Ee,Ze,Ke,Qe,et,tt,rt,nt,ot,st,Oe=A(()=>{"use strict";le=require("onnxruntime-common");Xe();G();ge();Ee=!1,Ze=!1,Ke=!1,Qe=async()=>{if(!Ze){if(Ee)throw new Error("multiple calls to 'initWasm()' detected.");if(Ke)throw new Error("previous call to 'initWasm()' failed.");Ee=!0;try{await Ue(le.env.wasm),await Ge(le.env),Ze=!0}catch(e){throw Ke=!0,e}finally{Ee=!1}}},et=async e=>{await He(le.env,e)},tt=async e=>Se(e),rt=async(e,t)=>Ve(e,t),nt=async e=>{qe(e)},ot=async(e,t,n,s,r,i)=>Je(e,t,n,s,r,i),st=async e=>{Ye(e)}});var M,it,kt,fe,at=A(()=>{"use strict";M=require("onnxruntime-common");Oe();we();se();he();it=(e,t)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},kt=e=>{switch(e[3]){case"cpu":return new M.Tensor(e[0],e[2],e[1]);case"gpu-buffer":{let t=e[0];if(!ue(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:s,dispose:r}=e[2];return M.Tensor.fromGpuBuffer(n,{dataType:t,dims:e[1],download:s,dispose:r})}case"ml-tensor":{let t=e[0];if(!ce(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:s,dispose:r}=e[2];return M.Tensor.fromMLTensor(n,{dataType:t,dims:e[1],download:s,dispose:r})}default:throw new Error(`invalid data location: ${e[3]}`)}},fe=class{async fetchModelAndCopyToWasmMemory(t){return tt(await X(t))}async loadModel(t,n){(0,M.TRACE_FUNC_BEGIN)();let s;typeof t=="string"?W?s=await X(t):s=await this.fetchModelAndCopyToWasmMemory(t):s=t,[this.sessionId,this.inputNames,this.outputNames]=await rt(s,n),(0,M.TRACE_FUNC_END)()}async dispose(){return nt(this.sessionId)}async run(t,n,s){(0,M.TRACE_FUNC_BEGIN)();let r=[],i=[];Object.entries(t).forEach(u=>{let b=u[0],v=u[1],f=this.inputNames.indexOf(b);if(f===-1)throw new Error(`invalid input '${b}'`);r.push(v),i.push(f)});let o=[],a=[];Object.entries(n).forEach(u=>{let b=u[0],v=u[1],f=this.outputNames.indexOf(b);if(f===-1)throw new Error(`invalid output '${b}'`);o.push(v),a.push(f)});let c=r.map((u,b)=>it(u,()=>`input "${this.inputNames[i[b]]}"`)),d=o.map((u,b)=>u?it(u,()=>`output "${this.outputNames[a[b]]}"`):null),w=await ot(this.sessionId,i,c,a,d,s),l={};for(let u=0;u<w.length;u++)l[this.outputNames[a[u]]]=o[u]??kt(w[u]);return(0,M.TRACE_FUNC_END)(),l}startProfiling(){}endProfiling(){st(this.sessionId)}}});var ct={};Pe(ct,{OnnxruntimeWebAssemblyBackend:()=>de,initializeFlags:()=>ut,wasmBackend:()=>Dt});var x,ut,de,Dt,lt=A(()=>{"use strict";x=require("onnxruntime-common");Oe();at();ut=()=>{if((typeof x.env.wasm.initTimeout!="number"||x.env.wasm.initTimeout<0)&&(x.env.wasm.initTimeout=0),x.env.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof x.env.wasm.proxy!="boolean"&&(x.env.wasm.proxy=!1),typeof x.env.wasm.trace!="boolean"&&(x.env.wasm.trace=!1),typeof x.env.wasm.numThreads!="number"||!Number.isInteger(x.env.wasm.numThreads)||x.env.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)x.env.wasm.numThreads=1;else{let e=typeof navigator>"u"?require("node:os").cpus().length:navigator.hardwareConcurrency;x.env.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},de=class{async init(t){ut(),await Qe(),await et(t)}async createInferenceSessionHandler(t,n){let s=new fe;return await s.loadModel(t,n),Promise.resolve(s)}},Dt=new de});var U={};Pe(U,{default:()=>Ft});module.exports=xe(U);D(U,require("onnxruntime-common"),module.exports);var Wt=ht(require("onnxruntime-common")),Z=require("onnxruntime-common");var Ie="1.21.0-dev.20250201-e8b0bdb127";var Ft=Wt;{let e=(lt(),xe(ct)).wasmBackend;(0,Z.registerBackend)("cpu",e,10),(0,Z.registerBackend)("wasm",e,10)}Object.defineProperty(Z.env.versions,"web",{value:Ie,enumerable:!0});0&&(module.exports={...require("onnxruntime-common")});
//# sourceMappingURL=ort.node.min.js.map
/*!
* ONNX Runtime Web v1.21.0-dev.20250129-80bc1d25f0
* ONNX Runtime Web v1.21.0-dev.20250201-e8b0bdb127
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
"use strict";var ort=(()=>{var $e=Object.defineProperty;var br=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var Tr=Object.prototype.hasOwnProperty;var Ge=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var he=(e,t)=>{for(var n in t)$e(e,n,{get:t[n],enumerable:!0})},Sr=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Er(t))!Tr.call(e,r)&&r!==n&&$e(e,r,{get:()=>t[r],enumerable:!(o=br(t,r))||o.enumerable});return e};var ze=e=>Sr($e({},"__esModule",{value:!0}),e);var we,j,K,Ar,ft,je=E(()=>{"use strict";we=new Map,j=[],K=(e,t,n)=>{if(t&&typeof t.init=="function"&&typeof t.createInferenceSessionHandler=="function"){let o=we.get(e);if(o===void 0)we.set(e,{backend:t,priority:n});else{if(o.priority>n)return;if(o.priority===n&&o.backend!==t)throw new Error(`cannot register backend "${e}" using priority ${n}`)}if(n>=0){let r=j.indexOf(e);r!==-1&&j.splice(r,1);for(let a=0;a<j.length;a++)if(we.get(j[a]).priority<=n){j.splice(a,0,e);return}j.push(e)}return}throw new TypeError("not a valid backend")},Ar=async e=>{let t=we.get(e);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let n=!!t.initPromise;try{return n||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(o){return n||(t.error=`${o}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},ft=async e=>{let t=e.executionProviders||[],n=t.map(u=>typeof u=="string"?u:u.name),o=n.length===0?j:n,r,a=[],s=new Set;for(let u of o){let f=await Ar(u);typeof f=="string"?a.push({name:u,err:f}):(r||(r=f),r===f&&s.add(u))}if(!r)throw new Error(`no available backend found. ERR: ${a.map(u=>`[${u.name}] ${u.err}`).join(", ")}`);for(let{name:u,err:f}of a)n.includes(u)&&console.warn(`removing requested execution provider "${u}" from session options because it is not available: ${f}`);let i=t.filter(u=>s.has(typeof u=="string"?u:u.name));return[r,new Proxy(e,{get:(u,f)=>f==="executionProviders"?i:Reflect.get(u,f)})]}});var ct=E(()=>{"use strict";je()});var dt,lt=E(()=>{"use strict";dt="1.21.0-dev.20241212-1f88284f96"});var pt,M,He=E(()=>{"use strict";lt();pt="warning",M={wasm:{},webgl:{},webgpu:{},versions:{common:dt},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);pt=e}},get logLevel(){return pt}};Object.defineProperty(M,"logLevel",{enumerable:!0})});var A,mt=E(()=>{"use strict";He();A=M});var ht,wt,yt=E(()=>{"use strict";ht=(e,t)=>{let n=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);n.width=e.dims[3],n.height=e.dims[2];let o=n.getContext("2d");if(o!=null){let r,a;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(r=e.dims[2],a=e.dims[3]):(r=e.dims[3],a=e.dims[2]);let s=t?.format!==void 0?t.format:"RGB",i=t?.norm,u,f;i===void 0||i.mean===void 0?u=[255,255,255,255]:typeof i.mean=="number"?u=[i.mean,i.mean,i.mean,i.mean]:(u=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(u[3]=i.mean[3])),i===void 0||i.bias===void 0?f=[0,0,0,0]:typeof i.bias=="number"?f=[i.bias,i.bias,i.bias,i.bias]:(f=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(f[3]=i.bias[3]));let l=a*r,d=0,c=l,p=l*2,y=-1;s==="RGBA"?(d=0,c=l,p=l*2,y=l*3):s==="RGB"?(d=0,c=l,p=l*2):s==="RBG"&&(d=0,p=l,c=l*2);for(let m=0;m<a;m++)for(let w=0;w<r;w++){let S=(e.data[d++]-f[0])*u[0],h=(e.data[c++]-f[1])*u[1],g=(e.data[p++]-f[2])*u[2],O=y===-1?255:(e.data[y++]-f[3])*u[3];o.fillStyle="rgba("+S+","+h+","+g+","+O+")",o.fillRect(w,m,1,1)}if("toDataURL"in n)return n.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},wt=(e,t)=>{let n=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),o;if(n!=null){let r,a,s;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(r=e.dims[2],a=e.dims[1],s=e.dims[3]):(r=e.dims[3],a=e.dims[2],s=e.dims[1]);let i=t!==void 0&&t.format!==void 0?t.format:"RGB",u=t?.norm,f,l;u===void 0||u.mean===void 0?f=[255,255,255,255]:typeof u.mean=="number"?f=[u.mean,u.mean,u.mean,u.mean]:(f=[u.mean[0],u.mean[1],u.mean[2],255],u.mean[3]!==void 0&&(f[3]=u.mean[3])),u===void 0||u.bias===void 0?l=[0,0,0,0]:typeof u.bias=="number"?l=[u.bias,u.bias,u.bias,u.bias]:(l=[u.bias[0],u.bias[1],u.bias[2],0],u.bias[3]!==void 0&&(l[3]=u.bias[3]));let d=a*r;if(t!==void 0&&(t.format!==void 0&&s===4&&t.format!=="RGBA"||s===3&&t.format!=="RGB"&&t.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let c=4,p=0,y=1,m=2,w=3,S=0,h=d,g=d*2,O=-1;i==="RGBA"?(S=0,h=d,g=d*2,O=d*3):i==="RGB"?(S=0,h=d,g=d*2):i==="RBG"&&(S=0,g=d,h=d*2),o=n.createImageData(r,a);for(let C=0;C<a*r;p+=c,y+=c,m+=c,w+=c,C++)o.data[p]=(e.data[S++]-l[0])*f[0],o.data[y]=(e.data[h++]-l[1])*f[1],o.data[m]=(e.data[g++]-l[2])*f[2],o.data[w]=O===-1?255:(e.data[O++]-l[3])*f[3]}else throw new Error("Can not access image data");return o}});var Ve,gt,bt,Et,Tt,St,At=E(()=>{"use strict";ye();Ve=(e,t)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(t.height===void 0||t.width===void 0)throw new Error("Image height and width must be defined");if(t.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:n,width:o}=t,r=t.norm??{mean:255,bias:0},a,s;typeof r.mean=="number"?a=[r.mean,r.mean,r.mean,r.mean]:a=[r.mean[0],r.mean[1],r.mean[2],r.mean[3]??255],typeof r.bias=="number"?s=[r.bias,r.bias,r.bias,r.bias]:s=[r.bias[0],r.bias[1],r.bias[2],r.bias[3]??0];let i=t.format!==void 0?t.format:"RGBA",u=t.tensorFormat!==void 0&&t.tensorFormat!==void 0?t.tensorFormat:"RGB",f=n*o,l=u==="RGBA"?new Float32Array(f*4):new Float32Array(f*3),d=4,c=0,p=1,y=2,m=3,w=0,S=f,h=f*2,g=-1;i==="RGB"&&(d=3,c=0,p=1,y=2,m=-1),u==="RGBA"?g=f*3:u==="RBG"?(w=0,h=f,S=f*2):u==="BGR"&&(h=0,S=f,w=f*2);for(let C=0;C<f;C++,c+=d,y+=d,p+=d,m+=d)l[w++]=(e[c]+s[0])/a[0],l[S++]=(e[p]+s[1])/a[1],l[h++]=(e[y]+s[2])/a[2],g!==-1&&m!==-1&&(l[g++]=(e[m]+s[3])/a[3]);return u==="RGBA"?new v("float32",l,[1,4,n,o]):new v("float32",l,[1,3,n,o])},gt=async(e,t)=>{let n=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,o=typeof ImageData<"u"&&e instanceof ImageData,r=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",s,i=t??{},u=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},f=l=>typeof HTMLCanvasElement<"u"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext("2d"):null;if(n){let l=u();l.width=e.width,l.height=e.height;let d=f(l);if(d!=null){let c=e.height,p=e.width;if(t!==void 0&&t.resizedHeight!==void 0&&t.resizedWidth!==void 0&&(c=t.resizedHeight,p=t.resizedWidth),t!==void 0){if(i=t,t.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=c,i.width=p}else i.tensorFormat="RGBA",i.height=c,i.width=p;d.drawImage(e,0,0),s=d.getImageData(0,0,p,c).data}else throw new Error("Can not access image data")}else if(o){let l,d;if(t!==void 0&&t.resizedWidth!==void 0&&t.resizedHeight!==void 0?(l=t.resizedHeight,d=t.resizedWidth):(l=e.height,d=e.width),t!==void 0&&(i=t),i.format="RGBA",i.height=l,i.width=d,t!==void 0){let c=u();c.width=d,c.height=l;let p=f(c);if(p!=null)p.putImageData(e,0,0),s=p.getImageData(0,0,d,l).data;else throw new Error("Can not access image data")}else s=e.data}else if(r){if(t===void 0)throw new Error("Please provide image config with format for Imagebitmap");let l=u();l.width=e.width,l.height=e.height;let d=f(l);if(d!=null){let c=e.height,p=e.width;return d.drawImage(e,0,0,p,c),s=d.getImageData(0,0,p,c).data,i.height=c,i.width=p,Ve(s,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((l,d)=>{let c=u(),p=f(c);if(!e||!p)return d();let y=new Image;y.crossOrigin="Anonymous",y.src=e,y.onload=()=>{c.width=y.width,c.height=y.height,p.drawImage(y,0,0,c.width,c.height);let m=p.getImageData(0,0,c.width,c.height);i.height=c.height,i.width=c.width,l(Ve(m.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(s!==void 0)return Ve(s,i);throw new Error("Input data provided is not supported - aborted tensor creation")},bt=(e,t)=>{let{width:n,height:o,download:r,dispose:a}=t,s=[1,o,n,4];return new v({location:"texture",type:"float32",texture:e,dims:s,download:r,dispose:a})},Et=(e,t)=>{let{dataType:n,dims:o,download:r,dispose:a}=t;return new v({location:"gpu-buffer",type:n??"float32",gpuBuffer:e,dims:o,download:r,dispose:a})},Tt=(e,t)=>{let{dataType:n,dims:o,download:r,dispose:a}=t;return new v({location:"ml-tensor",type:n??"float32",mlTensor:e,dims:o,download:r,dispose:a})},St=(e,t,n)=>new v({location:"cpu-pinned",type:e,data:t,dims:n??[t.length]})});var H,ne,Ot,xt,Lt=E(()=>{"use strict";H=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),ne=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Ot=!1,xt=()=>{if(!Ot){Ot=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,t=typeof BigUint64Array<"u"&&BigUint64Array.from,n=typeof Float16Array<"u"&&Float16Array.from;e&&(H.set("int64",BigInt64Array),ne.set(BigInt64Array,"int64")),t&&(H.set("uint64",BigUint64Array),ne.set(BigUint64Array,"uint64")),n?(H.set("float16",Float16Array),ne.set(Float16Array,"float16")):H.set("float16",Uint16Array)}}});var It,vt,Pt=E(()=>{"use strict";ye();It=e=>{let t=1;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o!="number"||!Number.isSafeInteger(o))throw new TypeError(`dims[${n}] must be an integer, got: ${o}`);if(o<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${o}`);t*=o}return t},vt=(e,t)=>{switch(e.location){case"cpu":return new v(e.type,e.data,t);case"cpu-pinned":return new v({location:"cpu-pinned",data:e.data,type:e.type,dims:t});case"texture":return new v({location:"texture",texture:e.texture,type:e.type,dims:t});case"gpu-buffer":return new v({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:t});case"ml-tensor":return new v({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:t});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}});var v,ye=E(()=>{"use strict";yt();At();Lt();Pt();v=class{constructor(t,n,o){xt();let r,a;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,r=t.type,a=t.dims,t.location){case"cpu-pinned":{let i=H.get(r);if(!i)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(t.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=t.data;break}case"texture":{if(r!=="float32")throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint64"&&r!=="int8"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,u;if(typeof t=="string")if(r=t,u=o,t==="string"){if(!Array.isArray(n))throw new TypeError("A string tensor's data must be a string array.");i=n}else{let f=H.get(t);if(f===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(n)){if(t==="float16"&&f===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${f.name} as data.`);t==="uint64"||t==="int64"?i=f.from(n,BigInt):i=f.from(n)}else if(n instanceof f)i=n;else if(n instanceof Uint8ClampedArray)if(t==="uint8")i=Uint8Array.from(n);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else throw new TypeError(`A ${r} tensor's data must be type of ${f}`)}else if(u=n,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let f=typeof t[0];if(f==="string")r="string",i=t;else if(f==="boolean")r="bool",i=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${f}.`)}else if(t instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(t);else{let f=ne.get(t.constructor);if(f===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=f,i=t}if(u===void 0)u=[i.length];else if(!Array.isArray(u))throw new TypeError("A tensor's dims must be a number array");a=u,this.cpuData=i,this.dataLocation="cpu"}let s=It(a);if(this.cpuData&&s!==this.cpuData.length&&!((r==="uint4"||r==="int4")&&Math.ceil(s/2)===this.cpuData.length))throw new Error(`Tensor's size(${s}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=a,this.size=s}static async fromImage(t,n){return gt(t,n)}static fromTexture(t,n){return bt(t,n)}static fromGpuBuffer(t,n){return Et(t,n)}static fromMLTensor(t,n){return Tt(t,n)}static fromPinnedBuffer(t,n,o){return St(t,n,o)}toDataURL(t){return ht(this,t)}toImageData(t){return wt(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let n=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=n,t&&this.disposer&&(this.disposer(),this.disposer=void 0),n}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return vt(this,t)}}});var D,Ye=E(()=>{"use strict";ye();D=v});var qe,Bt,N,W,Je=E(()=>{"use strict";He();qe=(e,t)=>{(typeof M.trace>"u"?!M.wasm.trace:!M.trace)||console.timeStamp(`${e}::ORT::${t}`)},Bt=(e,t)=>{let n=new Error().stack?.split(/\r\n|\r|\n/g)||[],o=!1;for(let r=0;r<n.length;r++){if(o&&!n[r].includes("TRACE_FUNC")){let a=`FUNC_${e}::${n[r].trim().split(" ")[1]}`;t&&(a+=`::${t}`),qe("CPU",a);return}n[r].includes("TRACE_FUNC")&&(o=!0)}},N=e=>{(typeof M.trace>"u"?!M.wasm.trace:!M.trace)||Bt("BEGIN",e)},W=e=>{(typeof M.trace>"u"?!M.wasm.trace:!M.trace)||Bt("END",e)}});var ge,Ct=E(()=>{"use strict";je();Ye();Je();ge=class e{constructor(t){this.handler=t}async run(t,n,o){N();let r={},a={};if(typeof t!="object"||t===null||t instanceof D||Array.isArray(t))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let s=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof D)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");s=!1;for(let f of n){if(typeof f!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(f)===-1)throw new RangeError(`'fetches' contains invalid output name: ${f}.`);r[f]=null}if(typeof o=="object"&&o!==null)a=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else{let f=!1,l=Object.getOwnPropertyNames(n);for(let d of this.outputNames)if(l.indexOf(d)!==-1){let c=n[d];(c===null||c instanceof D)&&(f=!0,s=!1,r[d]=c)}if(f){if(typeof o=="object"&&o!==null)a=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else a=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let f of this.inputNames)if(typeof t[f]>"u")throw new Error(`input '${f}' is missing in 'feeds'.`);if(s)for(let f of this.outputNames)r[f]=null;let i=await this.handler.run(t,r,a),u={};for(let f in i)if(Object.hasOwnProperty.call(i,f)){let l=i[f];l instanceof D?u[f]=l:u[f]=new D(l.type,l.data,l.dims)}return W(),u}async release(){return this.handler.dispose()}static async create(t,n,o,r){N();let a,s={};if(typeof t=="string"){if(a=t,typeof n=="object"&&n!==null)s=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof Uint8Array){if(a=t,typeof n=="object"&&n!==null)s=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer){let l=t,d=0,c=t.byteLength;if(typeof n=="object"&&n!==null)s=n;else if(typeof n=="number"){if(d=n,!Number.isSafeInteger(d))throw new RangeError("'byteOffset' must be an integer.");if(d<0||d>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(c=t.byteLength-d,typeof o=="number"){if(c=o,!Number.isSafeInteger(c))throw new RangeError("'byteLength' must be an integer.");if(c<=0||d+c>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.byteLength-d}].`);if(typeof r=="object"&&r!==null)s=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else if(typeof o<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof n<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(l,d,c)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,u]=await ft(s),f=await i.createInferenceSessionHandler(a,u);return W(),new e(f)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}});var _t,Mt=E(()=>{"use strict";Ct();_t=ge});var Ut=E(()=>{"use strict"});var Dt=E(()=>{"use strict"});var Rt=E(()=>{"use strict"});var Ft=E(()=>{"use strict"});var Xe={};he(Xe,{InferenceSession:()=>_t,TRACE:()=>qe,TRACE_FUNC_BEGIN:()=>N,TRACE_FUNC_END:()=>W,Tensor:()=>D,env:()=>A,registerBackend:()=>K});var V=E(()=>{"use strict";ct();mt();Mt();Ye();Ut();Dt();Je();Rt();Ft()});var be=E(()=>{"use strict"});var $t={};he($t,{default:()=>Or});var Nt,Wt,Or,Gt=E(()=>{"use strict";Ze();Y();Ee();Nt="ort-wasm-proxy-worker",Wt=globalThis.self?.name===Nt;Wt&&(self.onmessage=e=>{let{type:t,in:n}=e.data;try{switch(t){case"init-wasm":Te(n.wasm).then(()=>{Se(n).then(()=>{postMessage({type:t})},o=>{postMessage({type:t,err:o})})},o=>{postMessage({type:t,err:o})});break;case"init-ep":{let{epName:o,env:r}=n;Ae(r,o).then(()=>{postMessage({type:t})},a=>{postMessage({type:t,err:a})});break}case"copy-from":{let{buffer:o}=n,r=oe(o);postMessage({type:t,out:r});break}case"create":{let{model:o,options:r}=n;Oe(o,r).then(a=>{postMessage({type:t,out:a})},a=>{postMessage({type:t,err:a})});break}case"release":xe(n),postMessage({type:t});break;case"run":{let{sessionId:o,inputIndices:r,inputs:a,outputIndices:s,options:i}=n;Le(o,r,a,s,new Array(s.length).fill(null),i).then(u=>{u.some(f=>f[3]!=="cpu")?postMessage({type:t,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:t,out:u},ve([...a,...u]))},u=>{postMessage({type:t,err:u})});break}case"end-profiling":Ie(n),postMessage({type:t});break;default:}}catch(o){postMessage({type:t,err:o})}});Or=Wt?null:e=>new Worker(e??U,{type:"classic",name:Nt})});var xr,Lr,U,Pe,Ke,Ir,vr,Ht,Pr,zt,Vt,jt,Yt,Ee=E(()=>{"use strict";be();xr=!1||typeof location>"u"?void 0:location.origin,Lr=()=>{if(!!1)return typeof document<"u"?document.currentScript?.src:typeof self<"u"?self.location?.href:void 0},U=Lr(),Pe=()=>{if(U&&!U.startsWith("blob:"))return U.substring(0,U.lastIndexOf("/")+1)},Ke=(e,t)=>{try{let n=t??U;return(n?new URL(e,n):new URL(e)).origin===xr}catch{return!1}},Ir=(e,t)=>{let n=t??U;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},vr=(e,t)=>`${t??"./"}${e}`,Ht=async e=>{let n=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},Pr=async e=>(await import(/*webpackIgnore:true*/e)).default,zt=(Gt(),ze($t)).default,Vt=async()=>{if(!U)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Ke(U))return[void 0,zt()];let e=await Ht(U);return[e,zt(e)]},jt=void 0,Yt=async(e,t,n)=>{if(!e&&!t&&jt&&U&&Ke(U))return[void 0,jt];{let o="ort-wasm-simd-threaded.mjs",r=e??Ir(o,t),a=!!1&&n&&r&&!Ke(r,t),s=a?await Ht(r):r??vr(o,t);return[a?s:void 0,await Pr(s)]}}});var Qe,et,Be,qt,Br,Cr,Te,x,Y=E(()=>{"use strict";Ee();et=!1,Be=!1,qt=!1,Br=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Cr=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Te=async e=>{if(et)return Promise.resolve();if(Be)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(qt)throw new Error("previous call to 'initializeWebAssembly()' failed.");Be=!0;let t=e.initTimeout,n=e.numThreads;if(!Cr())throw new Error("WebAssembly SIMD is not supported in the current environment.");let o=Br();n>1&&!o&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),e.numThreads=n=1);let r=e.wasmPaths,a=typeof r=="string"?r:void 0,s=r?.mjs,i=s?.href??s,u=r?.wasm,f=u?.href??u,l=e.wasmBinary,[d,c]=await Yt(i,a,n>1),p=!1,y=[];if(t>0&&y.push(new Promise(m=>{setTimeout(()=>{p=!0,m()},t)})),y.push(new Promise((m,w)=>{let S={numThreads:n};if(l)S.wasmBinary=l;else if(f||a)S.locateFile=h=>f??a+h;else if(i&&i.indexOf("blob:")!==0)S.locateFile=h=>new URL(h,i).href;else if(d){let h=Pe();h&&(S.locateFile=g=>h+g)}c(S).then(h=>{Be=!1,et=!0,Qe=h,m(),d&&URL.revokeObjectURL(d)},h=>{Be=!1,qt=!0,w(h)})})),await Promise.race(y),p)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},x=()=>{if(et&&Qe)return Qe;throw new Error("WebAssembly is not initialized yet.")}});var L,se,T,Ce=E(()=>{"use strict";Y();L=(e,t)=>{let n=x(),o=n.lengthBytesUTF8(e)+1,r=n._malloc(o);return n.stringToUTF8(e,r,o),t.push(r),r},se=(e,t,n,o)=>{if(typeof e=="object"&&e!==null){if(n.has(e))throw new Error("Circular reference in options");n.add(e)}Object.entries(e).forEach(([r,a])=>{let s=t?t+r:r;if(typeof a=="object")se(a,s+".",n,o);else if(typeof a=="string"||typeof a=="number")o(s,a.toString());else if(typeof a=="boolean")o(s,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},T=e=>{let t=x(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetLastError(r,r+o);let a=Number(t.getValue(r,o===4?"i32":"i64")),s=t.getValue(r+o,"*"),i=s?t.UTF8ToString(s):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{t.stackRestore(n)}}});var Jt,Xt=E(()=>{"use strict";Y();Ce();Jt=e=>{let t=x(),n=0,o=[],r=e||{};try{if(e?.logSeverityLevel===void 0)r.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)r.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(r.terminate=!1);let a=0;return e?.tag!==void 0&&(a=L(e.tag,o)),n=t._OrtCreateRunOptions(r.logSeverityLevel,r.logVerbosityLevel,!!r.terminate,a),n===0&&T("Can't create run options."),e?.extra!==void 0&&se(e.extra,"",new WeakSet,(s,i)=>{let u=L(s,o),f=L(i,o);t._OrtAddRunConfigEntry(n,u,f)!==0&&T(`Can't set a run config entry: ${s} - ${i}.`)}),[n,o]}catch(a){throw n!==0&&t._OrtReleaseRunOptions(n),o.forEach(s=>t._free(s)),a}}});var _r,Mr,Ur,Dr,Zt,Kt=E(()=>{"use strict";Y();Ce();_r=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},Mr=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Ur=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(e.enableMemPattern=!1)},Dr=(e,t,n)=>{for(let o of t){let r=typeof o=="string"?o:o.name;switch(r){case"webnn":if(r="WEBNN",typeof o!="string"){let i=o?.deviceType;if(i){let u=L("deviceType",n),f=L(i,n);x()._OrtAddSessionConfigEntry(e,u,f)!==0&&T(`Can't set a session config entry: 'deviceType' - ${i}.`)}}break;case"webgpu":if(r="JS",typeof o!="string"){let s=o;if(s?.preferredLayout){if(s.preferredLayout!=="NCHW"&&s.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${s.preferredLayout}`);let i=L("preferredLayout",n),u=L(s.preferredLayout,n);x()._OrtAddSessionConfigEntry(e,i,u)!==0&&T(`Can't set a session config entry: 'preferredLayout' - ${s.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${r}`)}let a=L(r,n);x()._OrtAppendExecutionProvider(e,a)!==0&&T(`Can't append execution provider: ${r}.`)}},Zt=e=>{let t=x(),n=0,o=[],r=e||{};Ur(r);try{let a=_r(r.graphOptimizationLevel??"all"),s=Mr(r.executionMode??"sequential"),i=typeof r.logId=="string"?L(r.logId,o):0,u=r.logSeverityLevel??2;if(!Number.isInteger(u)||u<0||u>4)throw new Error(`log serverity level is not valid: ${u}`);let f=r.logVerbosityLevel??0;if(!Number.isInteger(f)||f<0||f>4)throw new Error(`log verbosity level is not valid: ${f}`);let l=typeof r.optimizedModelFilePath=="string"?L(r.optimizedModelFilePath,o):0;if(n=t._OrtCreateSessionOptions(a,!!r.enableCpuMemArena,!!r.enableMemPattern,s,!!r.enableProfiling,0,i,u,f,l),n===0&&T("Can't create session options."),r.executionProviders&&Dr(n,r.executionProviders,o),r.enableGraphCapture!==void 0){if(typeof r.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${r.enableGraphCapture}`);let d=L("enableGraphCapture",o),c=L(r.enableGraphCapture.toString(),o);t._OrtAddSessionConfigEntry(n,d,c)!==0&&T(`Can't set a session config entry: 'enableGraphCapture' - ${r.enableGraphCapture}.`)}if(r.freeDimensionOverrides)for(let[d,c]of Object.entries(r.freeDimensionOverrides)){if(typeof d!="string")throw new Error(`free dimension override name must be a string: ${d}`);if(typeof c!="number"||!Number.isInteger(c)||c<0)throw new Error(`free dimension override value must be a non-negative integer: ${c}`);let p=L(d,o);t._OrtAddFreeDimensionOverride(n,p,c)!==0&&T(`Can't set a free dimension override: ${d} - ${c}.`)}return r.extra!==void 0&&se(r.extra,"",new WeakSet,(d,c)=>{let p=L(d,o),y=L(c,o);t._OrtAddSessionConfigEntry(n,p,y)!==0&&T(`Can't set a session config entry: ${d} - ${c}.`)}),[n,o]}catch(a){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&T("Can't release session options."),o.forEach(s=>t._free(s)),a}}});var ie,Qt,ae,er,tr,_e,Me,rr,tt=E(()=>{"use strict";ie=e=>{switch(e){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${e}`)}},Qt=e=>{switch(e){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${e}`)}},ae=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],o=typeof t=="number"?t:t.reduce((r,a)=>r*a,1);return n>0?Math.ceil(o*n):void 0},er=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},tr=e=>{switch(e){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${e}`)}},_e=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",Me=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",rr=e=>{switch(e){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${e}`)}}});var ue,rt=E(()=>{"use strict";be();ue=async e=>{if(typeof e=="string")if(!1)try{let{readFile:t}=Ge("node:fs/promises");return new Uint8Array(await t(e))}catch(t){if(t.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:n}=Ge("node:fs"),o=n(e),r=[];for await(let a of o)r.push(a);return new Uint8Array(Buffer.concat(r))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get("Content-Length"),o=n?parseInt(n,10):0;if(o<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),a;try{a=new ArrayBuffer(o)}catch(i){if(i instanceof RangeError){let u=Math.ceil(o/65536);a=new WebAssembly.Memory({initial:u,maximum:u}).buffer}else throw i}let s=0;for(;;){let{done:i,value:u}=await r.read();if(i)break;let f=u.byteLength;new Uint8Array(a,s,f).set(u),s+=f}return new Uint8Array(a,0,o)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});var Rr,Se,Ae,Q,Fr,oe,Oe,xe,nr,Le,Ie,ve,Ze=E(()=>{"use strict";Xt();Kt();tt();Y();Ce();rt();Rr=(e,t)=>{x()._OrtInit(e,t)!==0&&T("Can't initialize onnxruntime.")},Se=async e=>{Rr(e.wasm.numThreads,tr(e.logLevel))},Ae=async(e,t)=>{},Q=new Map,Fr=e=>{let t=x(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetInputOutputCount(e,r,r+o)!==0&&T("Can't get session input/output count.");let s=o===4?"i32":"i64";return[Number(t.getValue(r,s)),Number(t.getValue(r+o,s))]}finally{t.stackRestore(n)}},oe=e=>{let t=x(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},Oe=async(e,t)=>{let n,o,r=x();Array.isArray(e)?[n,o]=e:e.buffer===r.HEAPU8.buffer?[n,o]=[e.byteOffset,e.byteLength]:[n,o]=oe(e);let a=0,s=0,i=0,u=[],f=[],l=[];try{if([s,u]=Zt(t),t?.externalData&&r.mountExternalData){let h=[];for(let g of t.externalData){let O=typeof g=="string"?g:g.path;h.push(ue(typeof g=="string"?g:g.data).then(C=>{r.mountExternalData(O,C)}))}await Promise.all(h)}for(let h of t?.executionProviders??[])if((typeof h=="string"?h:h.name)==="webnn"){if(r.shouldTransferToMLTensor=!1,typeof h!="string"){let O=h,C=O?.context,ce=O?.gpuDevice,de=O?.deviceType,le=O?.powerPreference;C?r.currentContext=C:ce?r.currentContext=await r.jsepCreateMLContext(ce):r.currentContext=await r.jsepCreateMLContext({deviceType:de,powerPreference:le})}else r.currentContext=await r.jsepCreateMLContext();break}a=await r._OrtCreateSession(n,o,s),a===0&&T("Can't create a session."),r.jsepOnCreateSession?.(),r.currentContext&&(r.jsepRegisterMLContext(a,r.currentContext),r.currentContext=void 0,r.shouldTransferToMLTensor=!0);let[d,c]=Fr(a),p=!!t?.enableGraphCapture,y=[],m=[],w=[];for(let h=0;h<d;h++){let g=r._OrtGetInputName(a,h);g===0&&T("Can't get an input name."),f.push(g),y.push(r.UTF8ToString(g))}for(let h=0;h<c;h++){let g=r._OrtGetOutputName(a,h);g===0&&T("Can't get an output name."),l.push(g);let O=r.UTF8ToString(g);m.push(O)}let S=null;return Q.set(a,[a,f,l,S,p,!1]),[a,y,m]}catch(d){throw f.forEach(c=>r._OrtFree(c)),l.forEach(c=>r._OrtFree(c)),i!==0&&r._OrtReleaseBinding(i)!==0&&T("Can't release IO binding."),a!==0&&r._OrtReleaseSession(a)!==0&&T("Can't release session."),d}finally{r._free(n),s!==0&&r._OrtReleaseSessionOptions(s)!==0&&T("Can't release session options."),u.forEach(d=>r._free(d)),r.unmountExternalData?.()}},xe=e=>{let t=x(),n=Q.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[o,r,a,s,i]=n;s&&(i&&t._OrtClearBoundOutputs(s.handle)!==0&&T("Can't clear bound outputs."),t._OrtReleaseBinding(s.handle)!==0&&T("Can't release IO binding.")),t.jsepOnReleaseSession?.(e),r.forEach(u=>t._OrtFree(u)),a.forEach(u=>t._OrtFree(u)),t._OrtReleaseSession(o)!==0&&T("Can't release session."),Q.delete(e)},nr=(e,t,n,o,r,a=!1)=>{if(!e){t.push(0);return}let s=x(),i=s.PTR_SIZE,u=e[0],f=e[1],l=e[3],d,c;if(u==="string"&&(l==="gpu-buffer"||l==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(a&&l!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${r} when enableGraphCapture is true.`);if(l==="gpu-buffer"){let m=e[2].gpuBuffer;c=ae(ie(u),f);let w=s.jsepRegisterBuffer;if(!w)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');d=w(o,r,m,c)}else if(l==="ml-tensor"){let m=e[2].mlTensor;c=ae(ie(u),f);let w=s.jsepRegisterMLTensor;if(!w)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');d=w(m,ie(u),f)}else{let m=e[2];if(Array.isArray(m)){c=i*m.length,d=s._malloc(c),n.push(d);for(let w=0;w<m.length;w++){if(typeof m[w]!="string")throw new TypeError(`tensor data at index ${w} is not a string`);s.setValue(d+w*i,L(m[w],n),"*")}}else c=m.byteLength,d=s._malloc(c),n.push(d),s.HEAPU8.set(new Uint8Array(m.buffer,m.byteOffset,c),d)}let p=s.stackSave(),y=s.stackAlloc(4*f.length);try{f.forEach((w,S)=>s.setValue(y+S*i,w,i===4?"i32":"i64"));let m=s._OrtCreateTensor(ie(u),d,c,y,f.length,rr(l));m===0&&T(`Can't create tensor for input/output. session=${o}, index=${r}.`),t.push(m)}finally{s.stackRestore(p)}},Le=async(e,t,n,o,r,a)=>{let s=x(),i=s.PTR_SIZE,u=Q.get(e);if(!u)throw new Error(`cannot run inference. invalid session id: ${e}`);let f=u[0],l=u[1],d=u[2],c=u[3],p=u[4],y=u[5],m=t.length,w=o.length,S=0,h=[],g=[],O=[],C=[],ce=s.stackSave(),de=s.stackAlloc(m*i),le=s.stackAlloc(m*i),Ne=s.stackAlloc(w*i),it=s.stackAlloc(w*i);try{s.jsepOnRunStart?.(f),[S,h]=Jt(a);for(let b=0;b<m;b++)nr(n[b],g,C,e,t[b],p);for(let b=0;b<w;b++)nr(r[b],O,C,e,m+o[b],p);for(let b=0;b<m;b++)s.setValue(de+b*i,g[b],"*"),s.setValue(le+b*i,l[t[b]],"*");for(let b=0;b<w;b++)s.setValue(Ne+b*i,O[b],"*"),s.setValue(it+b*i,d[o[b]],"*");let F;F=await s._OrtRun(f,le,de,m,it,w,Ne,S),F!==0&&T("failed to call OrtRun().");let X=[];for(let b=0;b<w;b++){let Z=Number(s.getValue(Ne+b*i,"*"));if(Z===O[b]){X.push(r[b]);continue}let at=s.stackSave(),k=s.stackAlloc(4*i),re=!1,P,_=0;try{s._OrtGetTensorData(Z,k,k+i,k+2*i,k+3*i)!==0&&T(`Can't access output tensor data on index ${b}.`);let We=i===4?"i32":"i64",pe=Number(s.getValue(k,We));_=s.getValue(k+i,"*");let ut=s.getValue(k+i*2,"*"),wr=Number(s.getValue(k+i*3,We)),$=[];for(let B=0;B<wr;B++)$.push(Number(s.getValue(ut+B*i,We)));s._OrtFree(ut)!==0&&T("Can't free memory for tensor dims.");let G=$.reduce((B,I)=>B*I,1);P=Qt(pe);let me=c?.outputPreferredLocations[o[b]];if(P==="string"){if(me==="gpu-buffer"||me==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let B=[];for(let I=0;I<G;I++){let z=s.getValue(_+I*i,"*"),yr=s.getValue(_+(I+1)*i,"*"),gr=I===G-1?void 0:yr-z;B.push(s.UTF8ToString(z,gr))}X.push([P,$,B,"cpu"])}else if(me==="gpu-buffer"&&G>0){let B=s.jsepGetBuffer;if(!B)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let I=B(_),z=ae(pe,G);if(z===void 0||!_e(P))throw new Error(`Unsupported data type: ${P}`);re=!0,X.push([P,$,{gpuBuffer:I,download:s.jsepCreateDownloader(I,z,P),dispose:()=>{s._OrtReleaseTensor(Z)!==0&&T("Can't release tensor.")}},"gpu-buffer"])}else if(me==="ml-tensor"&&G>0){let B=s.jsepEnsureTensor;if(!B)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(ae(pe,G)===void 0||!Me(P))throw new Error(`Unsupported data type: ${P}`);let z=await B(_,pe,$,!1);re=!0,X.push([P,$,{mlTensor:z,download:s.jsepCreateMLTensorDownloader(_,P),dispose:()=>{s.jsepReleaseTensorId(_),s._OrtReleaseTensor(Z)}},"ml-tensor"])}else{let B=er(P),I=new B(G);new Uint8Array(I.buffer,I.byteOffset,I.byteLength).set(s.HEAPU8.subarray(_,_+I.byteLength)),X.push([P,$,I,"cpu"])}}finally{s.stackRestore(at),P==="string"&&_&&s._free(_),re||s._OrtReleaseTensor(Z)}}return c&&!p&&(s._OrtClearBoundOutputs(c.handle)!==0&&T("Can't clear bound outputs."),Q.set(e,[f,l,d,c,p,!1])),X}finally{s.stackRestore(ce),g.forEach(F=>s._OrtReleaseTensor(F)),O.forEach(F=>s._OrtReleaseTensor(F)),C.forEach(F=>s._free(F)),S!==0&&s._OrtReleaseRunOptions(S),h.forEach(F=>s._free(F))}},Ie=e=>{let t=x(),n=Q.get(e);if(!n)throw new Error("invalid session id");let o=n[0],r=t._OrtEndProfiling(o);r===0&&T("Can't get an profile file name."),t._OrtFree(r)},ve=e=>{let t=[];for(let n of e){let o=n[2];!Array.isArray(o)&&"buffer"in o&&t.push(o.buffer)}return t}});var J,R,fe,De,Re,Ue,nt,ot,ee,te,Nr,or,sr,ir,ar,ur,fr,cr,st=E(()=>{"use strict";V();Ze();Y();Ee();J=()=>!!A.wasm.proxy&&typeof document<"u",fe=!1,De=!1,Re=!1,ot=new Map,ee=(e,t)=>{let n=ot.get(e);n?n.push(t):ot.set(e,[t])},te=()=>{if(fe||!De||Re||!R)throw new Error("worker not ready")},Nr=e=>{switch(e.data.type){case"init-wasm":fe=!1,e.data.err?(Re=!0,nt[1](e.data.err)):(De=!0,nt[0]()),Ue&&(URL.revokeObjectURL(Ue),Ue=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let t=ot.get(e.data.type);e.data.err?t.shift()[1](e.data.err):t.shift()[0](e.data.out);break}default:}},or=async()=>{if(!De){if(fe)throw new Error("multiple calls to 'initWasm()' detected.");if(Re)throw new Error("previous call to 'initWasm()' failed.");if(fe=!0,J())return new Promise((e,t)=>{R?.terminate(),Vt().then(([n,o])=>{try{R=o,R.onerror=a=>t(a),R.onmessage=Nr,nt=[e,t];let r={type:"init-wasm",in:A};if(!r.in.wasm.wasmPaths&&n){let a=Pe();a&&(r.in.wasm.wasmPaths=a)}R.postMessage(r),Ue=n}catch(r){t(r)}},t)});try{await Te(A.wasm),await Se(A),De=!0}catch(e){throw Re=!0,e}finally{fe=!1}}},sr=async e=>{if(J())return te(),new Promise((t,n)=>{ee("init-ep",[t,n]);let o={type:"init-ep",in:{epName:e,env:A}};R.postMessage(o)});await Ae(A,e)},ir=async e=>J()?(te(),new Promise((t,n)=>{ee("copy-from",[t,n]);let o={type:"copy-from",in:{buffer:e}};R.postMessage(o,[e.buffer])})):oe(e),ar=async(e,t)=>{if(J()){if(t?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return te(),new Promise((n,o)=>{ee("create",[n,o]);let r={type:"create",in:{model:e,options:{...t}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),R.postMessage(r,a)})}else return Oe(e,t)},ur=async e=>{if(J())return te(),new Promise((t,n)=>{ee("release",[t,n]);let o={type:"release",in:e};R.postMessage(o)});xe(e)},fr=async(e,t,n,o,r,a)=>{if(J()){if(n.some(s=>s[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(r.some(s=>s))throw new Error("pre-allocated output tensor is not supported for proxy.");return te(),new Promise((s,i)=>{ee("run",[s,i]);let u=n,f={type:"run",in:{sessionId:e,inputIndices:t,inputs:u,outputIndices:o,options:a}};R.postMessage(f,ve(u))})}else return Le(e,t,n,o,r,a)},cr=async e=>{if(J())return te(),new Promise((t,n)=>{ee("end-profiling",[t,n]);let o={type:"end-profiling",in:e};R.postMessage(o)});Ie(e)}});var dr,Wr,Fe,lr=E(()=>{"use strict";V();st();tt();be();rt();dr=(e,t)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},Wr=e=>{switch(e[3]){case"cpu":return new D(e[0],e[2],e[1]);case"gpu-buffer":{let t=e[0];if(!_e(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:o,dispose:r}=e[2];return D.fromGpuBuffer(n,{dataType:t,dims:e[1],download:o,dispose:r})}case"ml-tensor":{let t=e[0];if(!Me(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:o,dispose:r}=e[2];return D.fromMLTensor(n,{dataType:t,dims:e[1],download:o,dispose:r})}default:throw new Error(`invalid data location: ${e[3]}`)}},Fe=class{async fetchModelAndCopyToWasmMemory(t){return ir(await ue(t))}async loadModel(t,n){N();let o;typeof t=="string"?!1?o=await ue(t):o=await this.fetchModelAndCopyToWasmMemory(t):o=t,[this.sessionId,this.inputNames,this.outputNames]=await ar(o,n),W()}async dispose(){return ur(this.sessionId)}async run(t,n,o){N();let r=[],a=[];Object.entries(t).forEach(c=>{let p=c[0],y=c[1],m=this.inputNames.indexOf(p);if(m===-1)throw new Error(`invalid input '${p}'`);r.push(y),a.push(m)});let s=[],i=[];Object.entries(n).forEach(c=>{let p=c[0],y=c[1],m=this.outputNames.indexOf(p);if(m===-1)throw new Error(`invalid output '${p}'`);s.push(y),i.push(m)});let u=r.map((c,p)=>dr(c,()=>`input "${this.inputNames[a[p]]}"`)),f=s.map((c,p)=>c?dr(c,()=>`output "${this.outputNames[i[p]]}"`):null),l=await fr(this.sessionId,a,u,i,f,o),d={};for(let c=0;c<l.length;c++)d[this.outputNames[i[c]]]=s[c]??Wr(l[c]);return W(),d}startProfiling(){}endProfiling(){cr(this.sessionId)}}});var mr={};he(mr,{OnnxruntimeWebAssemblyBackend:()=>ke,initializeFlags:()=>pr,wasmBackend:()=>$r});var pr,ke,$r,hr=E(()=>{"use strict";V();st();lr();pr=()=>{if((typeof A.wasm.initTimeout!="number"||A.wasm.initTimeout<0)&&(A.wasm.initTimeout=0),A.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof A.wasm.proxy!="boolean"&&(A.wasm.proxy=!1),typeof A.wasm.trace!="boolean"&&(A.wasm.trace=!1),typeof A.wasm.numThreads!="number"||!Number.isInteger(A.wasm.numThreads)||A.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)A.wasm.numThreads=1;else{let e=typeof navigator>"u"?Ge("node:os").cpus().length:navigator.hardwareConcurrency;A.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},ke=class{async init(t){pr(),await or(),await sr(t)}async createInferenceSessionHandler(t,n){let o=new Fe;return await o.loadModel(t,n),Promise.resolve(o)}},$r=new ke});var zr={};he(zr,{InferenceSession:()=>_t,TRACE:()=>qe,TRACE_FUNC_BEGIN:()=>N,TRACE_FUNC_END:()=>W,Tensor:()=>D,default:()=>Gr,env:()=>A,registerBackend:()=>K});V();V();V();var kt="1.21.0-dev.20250129-80bc1d25f0";var Gr=Xe;{let e=(hr(),ze(mr)).wasmBackend;K("cpu",e,10),K("wasm",e,10)}Object.defineProperty(A.versions,"web",{value:kt,enumerable:!0});return ze(zr);})();
"use strict";var ort=(()=>{var $e=Object.defineProperty;var br=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var Tr=Object.prototype.hasOwnProperty;var Ge=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var he=(e,t)=>{for(var n in t)$e(e,n,{get:t[n],enumerable:!0})},Sr=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Er(t))!Tr.call(e,r)&&r!==n&&$e(e,r,{get:()=>t[r],enumerable:!(o=br(t,r))||o.enumerable});return e};var ze=e=>Sr($e({},"__esModule",{value:!0}),e);var we,j,K,Ar,ft,je=E(()=>{"use strict";we=new Map,j=[],K=(e,t,n)=>{if(t&&typeof t.init=="function"&&typeof t.createInferenceSessionHandler=="function"){let o=we.get(e);if(o===void 0)we.set(e,{backend:t,priority:n});else{if(o.priority>n)return;if(o.priority===n&&o.backend!==t)throw new Error(`cannot register backend "${e}" using priority ${n}`)}if(n>=0){let r=j.indexOf(e);r!==-1&&j.splice(r,1);for(let a=0;a<j.length;a++)if(we.get(j[a]).priority<=n){j.splice(a,0,e);return}j.push(e)}return}throw new TypeError("not a valid backend")},Ar=async e=>{let t=we.get(e);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let n=!!t.initPromise;try{return n||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(o){return n||(t.error=`${o}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},ft=async e=>{let t=e.executionProviders||[],n=t.map(u=>typeof u=="string"?u:u.name),o=n.length===0?j:n,r,a=[],s=new Set;for(let u of o){let f=await Ar(u);typeof f=="string"?a.push({name:u,err:f}):(r||(r=f),r===f&&s.add(u))}if(!r)throw new Error(`no available backend found. ERR: ${a.map(u=>`[${u.name}] ${u.err}`).join(", ")}`);for(let{name:u,err:f}of a)n.includes(u)&&console.warn(`removing requested execution provider "${u}" from session options because it is not available: ${f}`);let i=t.filter(u=>s.has(typeof u=="string"?u:u.name));return[r,new Proxy(e,{get:(u,f)=>f==="executionProviders"?i:Reflect.get(u,f)})]}});var ct=E(()=>{"use strict";je()});var dt,lt=E(()=>{"use strict";dt="1.21.0-dev.20241212-1f88284f96"});var pt,M,He=E(()=>{"use strict";lt();pt="warning",M={wasm:{},webgl:{},webgpu:{},versions:{common:dt},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);pt=e}},get logLevel(){return pt}};Object.defineProperty(M,"logLevel",{enumerable:!0})});var A,mt=E(()=>{"use strict";He();A=M});var ht,wt,yt=E(()=>{"use strict";ht=(e,t)=>{let n=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);n.width=e.dims[3],n.height=e.dims[2];let o=n.getContext("2d");if(o!=null){let r,a;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(r=e.dims[2],a=e.dims[3]):(r=e.dims[3],a=e.dims[2]);let s=t?.format!==void 0?t.format:"RGB",i=t?.norm,u,f;i===void 0||i.mean===void 0?u=[255,255,255,255]:typeof i.mean=="number"?u=[i.mean,i.mean,i.mean,i.mean]:(u=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(u[3]=i.mean[3])),i===void 0||i.bias===void 0?f=[0,0,0,0]:typeof i.bias=="number"?f=[i.bias,i.bias,i.bias,i.bias]:(f=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(f[3]=i.bias[3]));let l=a*r,d=0,c=l,p=l*2,y=-1;s==="RGBA"?(d=0,c=l,p=l*2,y=l*3):s==="RGB"?(d=0,c=l,p=l*2):s==="RBG"&&(d=0,p=l,c=l*2);for(let m=0;m<a;m++)for(let w=0;w<r;w++){let S=(e.data[d++]-f[0])*u[0],h=(e.data[c++]-f[1])*u[1],g=(e.data[p++]-f[2])*u[2],O=y===-1?255:(e.data[y++]-f[3])*u[3];o.fillStyle="rgba("+S+","+h+","+g+","+O+")",o.fillRect(w,m,1,1)}if("toDataURL"in n)return n.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},wt=(e,t)=>{let n=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),o;if(n!=null){let r,a,s;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(r=e.dims[2],a=e.dims[1],s=e.dims[3]):(r=e.dims[3],a=e.dims[2],s=e.dims[1]);let i=t!==void 0&&t.format!==void 0?t.format:"RGB",u=t?.norm,f,l;u===void 0||u.mean===void 0?f=[255,255,255,255]:typeof u.mean=="number"?f=[u.mean,u.mean,u.mean,u.mean]:(f=[u.mean[0],u.mean[1],u.mean[2],255],u.mean[3]!==void 0&&(f[3]=u.mean[3])),u===void 0||u.bias===void 0?l=[0,0,0,0]:typeof u.bias=="number"?l=[u.bias,u.bias,u.bias,u.bias]:(l=[u.bias[0],u.bias[1],u.bias[2],0],u.bias[3]!==void 0&&(l[3]=u.bias[3]));let d=a*r;if(t!==void 0&&(t.format!==void 0&&s===4&&t.format!=="RGBA"||s===3&&t.format!=="RGB"&&t.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let c=4,p=0,y=1,m=2,w=3,S=0,h=d,g=d*2,O=-1;i==="RGBA"?(S=0,h=d,g=d*2,O=d*3):i==="RGB"?(S=0,h=d,g=d*2):i==="RBG"&&(S=0,g=d,h=d*2),o=n.createImageData(r,a);for(let C=0;C<a*r;p+=c,y+=c,m+=c,w+=c,C++)o.data[p]=(e.data[S++]-l[0])*f[0],o.data[y]=(e.data[h++]-l[1])*f[1],o.data[m]=(e.data[g++]-l[2])*f[2],o.data[w]=O===-1?255:(e.data[O++]-l[3])*f[3]}else throw new Error("Can not access image data");return o}});var Ve,gt,bt,Et,Tt,St,At=E(()=>{"use strict";ye();Ve=(e,t)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(t.height===void 0||t.width===void 0)throw new Error("Image height and width must be defined");if(t.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:n,width:o}=t,r=t.norm??{mean:255,bias:0},a,s;typeof r.mean=="number"?a=[r.mean,r.mean,r.mean,r.mean]:a=[r.mean[0],r.mean[1],r.mean[2],r.mean[3]??255],typeof r.bias=="number"?s=[r.bias,r.bias,r.bias,r.bias]:s=[r.bias[0],r.bias[1],r.bias[2],r.bias[3]??0];let i=t.format!==void 0?t.format:"RGBA",u=t.tensorFormat!==void 0&&t.tensorFormat!==void 0?t.tensorFormat:"RGB",f=n*o,l=u==="RGBA"?new Float32Array(f*4):new Float32Array(f*3),d=4,c=0,p=1,y=2,m=3,w=0,S=f,h=f*2,g=-1;i==="RGB"&&(d=3,c=0,p=1,y=2,m=-1),u==="RGBA"?g=f*3:u==="RBG"?(w=0,h=f,S=f*2):u==="BGR"&&(h=0,S=f,w=f*2);for(let C=0;C<f;C++,c+=d,y+=d,p+=d,m+=d)l[w++]=(e[c]+s[0])/a[0],l[S++]=(e[p]+s[1])/a[1],l[h++]=(e[y]+s[2])/a[2],g!==-1&&m!==-1&&(l[g++]=(e[m]+s[3])/a[3]);return u==="RGBA"?new v("float32",l,[1,4,n,o]):new v("float32",l,[1,3,n,o])},gt=async(e,t)=>{let n=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,o=typeof ImageData<"u"&&e instanceof ImageData,r=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",s,i=t??{},u=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},f=l=>typeof HTMLCanvasElement<"u"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext("2d"):null;if(n){let l=u();l.width=e.width,l.height=e.height;let d=f(l);if(d!=null){let c=e.height,p=e.width;if(t!==void 0&&t.resizedHeight!==void 0&&t.resizedWidth!==void 0&&(c=t.resizedHeight,p=t.resizedWidth),t!==void 0){if(i=t,t.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=c,i.width=p}else i.tensorFormat="RGBA",i.height=c,i.width=p;d.drawImage(e,0,0),s=d.getImageData(0,0,p,c).data}else throw new Error("Can not access image data")}else if(o){let l,d;if(t!==void 0&&t.resizedWidth!==void 0&&t.resizedHeight!==void 0?(l=t.resizedHeight,d=t.resizedWidth):(l=e.height,d=e.width),t!==void 0&&(i=t),i.format="RGBA",i.height=l,i.width=d,t!==void 0){let c=u();c.width=d,c.height=l;let p=f(c);if(p!=null)p.putImageData(e,0,0),s=p.getImageData(0,0,d,l).data;else throw new Error("Can not access image data")}else s=e.data}else if(r){if(t===void 0)throw new Error("Please provide image config with format for Imagebitmap");let l=u();l.width=e.width,l.height=e.height;let d=f(l);if(d!=null){let c=e.height,p=e.width;return d.drawImage(e,0,0,p,c),s=d.getImageData(0,0,p,c).data,i.height=c,i.width=p,Ve(s,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((l,d)=>{let c=u(),p=f(c);if(!e||!p)return d();let y=new Image;y.crossOrigin="Anonymous",y.src=e,y.onload=()=>{c.width=y.width,c.height=y.height,p.drawImage(y,0,0,c.width,c.height);let m=p.getImageData(0,0,c.width,c.height);i.height=c.height,i.width=c.width,l(Ve(m.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(s!==void 0)return Ve(s,i);throw new Error("Input data provided is not supported - aborted tensor creation")},bt=(e,t)=>{let{width:n,height:o,download:r,dispose:a}=t,s=[1,o,n,4];return new v({location:"texture",type:"float32",texture:e,dims:s,download:r,dispose:a})},Et=(e,t)=>{let{dataType:n,dims:o,download:r,dispose:a}=t;return new v({location:"gpu-buffer",type:n??"float32",gpuBuffer:e,dims:o,download:r,dispose:a})},Tt=(e,t)=>{let{dataType:n,dims:o,download:r,dispose:a}=t;return new v({location:"ml-tensor",type:n??"float32",mlTensor:e,dims:o,download:r,dispose:a})},St=(e,t,n)=>new v({location:"cpu-pinned",type:e,data:t,dims:n??[t.length]})});var H,ne,Ot,xt,Lt=E(()=>{"use strict";H=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),ne=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Ot=!1,xt=()=>{if(!Ot){Ot=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,t=typeof BigUint64Array<"u"&&BigUint64Array.from,n=typeof Float16Array<"u"&&Float16Array.from;e&&(H.set("int64",BigInt64Array),ne.set(BigInt64Array,"int64")),t&&(H.set("uint64",BigUint64Array),ne.set(BigUint64Array,"uint64")),n?(H.set("float16",Float16Array),ne.set(Float16Array,"float16")):H.set("float16",Uint16Array)}}});var It,vt,Pt=E(()=>{"use strict";ye();It=e=>{let t=1;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o!="number"||!Number.isSafeInteger(o))throw new TypeError(`dims[${n}] must be an integer, got: ${o}`);if(o<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${o}`);t*=o}return t},vt=(e,t)=>{switch(e.location){case"cpu":return new v(e.type,e.data,t);case"cpu-pinned":return new v({location:"cpu-pinned",data:e.data,type:e.type,dims:t});case"texture":return new v({location:"texture",texture:e.texture,type:e.type,dims:t});case"gpu-buffer":return new v({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:t});case"ml-tensor":return new v({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:t});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}});var v,ye=E(()=>{"use strict";yt();At();Lt();Pt();v=class{constructor(t,n,o){xt();let r,a;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,r=t.type,a=t.dims,t.location){case"cpu-pinned":{let i=H.get(r);if(!i)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(t.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=t.data;break}case"texture":{if(r!=="float32")throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint64"&&r!=="int8"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,u;if(typeof t=="string")if(r=t,u=o,t==="string"){if(!Array.isArray(n))throw new TypeError("A string tensor's data must be a string array.");i=n}else{let f=H.get(t);if(f===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(n)){if(t==="float16"&&f===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${f.name} as data.`);t==="uint64"||t==="int64"?i=f.from(n,BigInt):i=f.from(n)}else if(n instanceof f)i=n;else if(n instanceof Uint8ClampedArray)if(t==="uint8")i=Uint8Array.from(n);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else throw new TypeError(`A ${r} tensor's data must be type of ${f}`)}else if(u=n,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let f=typeof t[0];if(f==="string")r="string",i=t;else if(f==="boolean")r="bool",i=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${f}.`)}else if(t instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(t);else{let f=ne.get(t.constructor);if(f===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=f,i=t}if(u===void 0)u=[i.length];else if(!Array.isArray(u))throw new TypeError("A tensor's dims must be a number array");a=u,this.cpuData=i,this.dataLocation="cpu"}let s=It(a);if(this.cpuData&&s!==this.cpuData.length&&!((r==="uint4"||r==="int4")&&Math.ceil(s/2)===this.cpuData.length))throw new Error(`Tensor's size(${s}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=a,this.size=s}static async fromImage(t,n){return gt(t,n)}static fromTexture(t,n){return bt(t,n)}static fromGpuBuffer(t,n){return Et(t,n)}static fromMLTensor(t,n){return Tt(t,n)}static fromPinnedBuffer(t,n,o){return St(t,n,o)}toDataURL(t){return ht(this,t)}toImageData(t){return wt(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let n=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=n,t&&this.disposer&&(this.disposer(),this.disposer=void 0),n}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return vt(this,t)}}});var D,Ye=E(()=>{"use strict";ye();D=v});var qe,Bt,N,W,Je=E(()=>{"use strict";He();qe=(e,t)=>{(typeof M.trace>"u"?!M.wasm.trace:!M.trace)||console.timeStamp(`${e}::ORT::${t}`)},Bt=(e,t)=>{let n=new Error().stack?.split(/\r\n|\r|\n/g)||[],o=!1;for(let r=0;r<n.length;r++){if(o&&!n[r].includes("TRACE_FUNC")){let a=`FUNC_${e}::${n[r].trim().split(" ")[1]}`;t&&(a+=`::${t}`),qe("CPU",a);return}n[r].includes("TRACE_FUNC")&&(o=!0)}},N=e=>{(typeof M.trace>"u"?!M.wasm.trace:!M.trace)||Bt("BEGIN",e)},W=e=>{(typeof M.trace>"u"?!M.wasm.trace:!M.trace)||Bt("END",e)}});var ge,Ct=E(()=>{"use strict";je();Ye();Je();ge=class e{constructor(t){this.handler=t}async run(t,n,o){N();let r={},a={};if(typeof t!="object"||t===null||t instanceof D||Array.isArray(t))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let s=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof D)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");s=!1;for(let f of n){if(typeof f!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(f)===-1)throw new RangeError(`'fetches' contains invalid output name: ${f}.`);r[f]=null}if(typeof o=="object"&&o!==null)a=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else{let f=!1,l=Object.getOwnPropertyNames(n);for(let d of this.outputNames)if(l.indexOf(d)!==-1){let c=n[d];(c===null||c instanceof D)&&(f=!0,s=!1,r[d]=c)}if(f){if(typeof o=="object"&&o!==null)a=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else a=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let f of this.inputNames)if(typeof t[f]>"u")throw new Error(`input '${f}' is missing in 'feeds'.`);if(s)for(let f of this.outputNames)r[f]=null;let i=await this.handler.run(t,r,a),u={};for(let f in i)if(Object.hasOwnProperty.call(i,f)){let l=i[f];l instanceof D?u[f]=l:u[f]=new D(l.type,l.data,l.dims)}return W(),u}async release(){return this.handler.dispose()}static async create(t,n,o,r){N();let a,s={};if(typeof t=="string"){if(a=t,typeof n=="object"&&n!==null)s=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof Uint8Array){if(a=t,typeof n=="object"&&n!==null)s=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer){let l=t,d=0,c=t.byteLength;if(typeof n=="object"&&n!==null)s=n;else if(typeof n=="number"){if(d=n,!Number.isSafeInteger(d))throw new RangeError("'byteOffset' must be an integer.");if(d<0||d>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(c=t.byteLength-d,typeof o=="number"){if(c=o,!Number.isSafeInteger(c))throw new RangeError("'byteLength' must be an integer.");if(c<=0||d+c>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.byteLength-d}].`);if(typeof r=="object"&&r!==null)s=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else if(typeof o<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof n<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(l,d,c)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,u]=await ft(s),f=await i.createInferenceSessionHandler(a,u);return W(),new e(f)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}});var _t,Mt=E(()=>{"use strict";Ct();_t=ge});var Ut=E(()=>{"use strict"});var Dt=E(()=>{"use strict"});var Rt=E(()=>{"use strict"});var Ft=E(()=>{"use strict"});var Xe={};he(Xe,{InferenceSession:()=>_t,TRACE:()=>qe,TRACE_FUNC_BEGIN:()=>N,TRACE_FUNC_END:()=>W,Tensor:()=>D,env:()=>A,registerBackend:()=>K});var V=E(()=>{"use strict";ct();mt();Mt();Ye();Ut();Dt();Je();Rt();Ft()});var be=E(()=>{"use strict"});var $t={};he($t,{default:()=>Or});var Nt,Wt,Or,Gt=E(()=>{"use strict";Ze();Y();Ee();Nt="ort-wasm-proxy-worker",Wt=globalThis.self?.name===Nt;Wt&&(self.onmessage=e=>{let{type:t,in:n}=e.data;try{switch(t){case"init-wasm":Te(n.wasm).then(()=>{Se(n).then(()=>{postMessage({type:t})},o=>{postMessage({type:t,err:o})})},o=>{postMessage({type:t,err:o})});break;case"init-ep":{let{epName:o,env:r}=n;Ae(r,o).then(()=>{postMessage({type:t})},a=>{postMessage({type:t,err:a})});break}case"copy-from":{let{buffer:o}=n,r=oe(o);postMessage({type:t,out:r});break}case"create":{let{model:o,options:r}=n;Oe(o,r).then(a=>{postMessage({type:t,out:a})},a=>{postMessage({type:t,err:a})});break}case"release":xe(n),postMessage({type:t});break;case"run":{let{sessionId:o,inputIndices:r,inputs:a,outputIndices:s,options:i}=n;Le(o,r,a,s,new Array(s.length).fill(null),i).then(u=>{u.some(f=>f[3]!=="cpu")?postMessage({type:t,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:t,out:u},ve([...a,...u]))},u=>{postMessage({type:t,err:u})});break}case"end-profiling":Ie(n),postMessage({type:t});break;default:}}catch(o){postMessage({type:t,err:o})}});Or=Wt?null:e=>new Worker(e??U,{type:"classic",name:Nt})});var xr,Lr,U,Pe,Ke,Ir,vr,Ht,Pr,zt,Vt,jt,Yt,Ee=E(()=>{"use strict";be();xr=!1||typeof location>"u"?void 0:location.origin,Lr=()=>{if(!!1)return typeof document<"u"?document.currentScript?.src:typeof self<"u"?self.location?.href:void 0},U=Lr(),Pe=()=>{if(U&&!U.startsWith("blob:"))return U.substring(0,U.lastIndexOf("/")+1)},Ke=(e,t)=>{try{let n=t??U;return(n?new URL(e,n):new URL(e)).origin===xr}catch{return!1}},Ir=(e,t)=>{let n=t??U;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},vr=(e,t)=>`${t??"./"}${e}`,Ht=async e=>{let n=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},Pr=async e=>(await import(/*webpackIgnore:true*/e)).default,zt=(Gt(),ze($t)).default,Vt=async()=>{if(!U)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Ke(U))return[void 0,zt()];let e=await Ht(U);return[e,zt(e)]},jt=void 0,Yt=async(e,t,n)=>{if(!e&&!t&&jt&&U&&Ke(U))return[void 0,jt];{let o="ort-wasm-simd-threaded.mjs",r=e??Ir(o,t),a=!!1&&n&&r&&!Ke(r,t),s=a?await Ht(r):r??vr(o,t);return[a?s:void 0,await Pr(s)]}}});var Qe,et,Be,qt,Br,Cr,Te,x,Y=E(()=>{"use strict";Ee();et=!1,Be=!1,qt=!1,Br=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Cr=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Te=async e=>{if(et)return Promise.resolve();if(Be)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(qt)throw new Error("previous call to 'initializeWebAssembly()' failed.");Be=!0;let t=e.initTimeout,n=e.numThreads;if(!Cr())throw new Error("WebAssembly SIMD is not supported in the current environment.");let o=Br();n>1&&!o&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),e.numThreads=n=1);let r=e.wasmPaths,a=typeof r=="string"?r:void 0,s=r?.mjs,i=s?.href??s,u=r?.wasm,f=u?.href??u,l=e.wasmBinary,[d,c]=await Yt(i,a,n>1),p=!1,y=[];if(t>0&&y.push(new Promise(m=>{setTimeout(()=>{p=!0,m()},t)})),y.push(new Promise((m,w)=>{let S={numThreads:n};if(l)S.wasmBinary=l;else if(f||a)S.locateFile=h=>f??a+h;else if(i&&i.indexOf("blob:")!==0)S.locateFile=h=>new URL(h,i).href;else if(d){let h=Pe();h&&(S.locateFile=g=>h+g)}c(S).then(h=>{Be=!1,et=!0,Qe=h,m(),d&&URL.revokeObjectURL(d)},h=>{Be=!1,qt=!0,w(h)})})),await Promise.race(y),p)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},x=()=>{if(et&&Qe)return Qe;throw new Error("WebAssembly is not initialized yet.")}});var L,se,T,Ce=E(()=>{"use strict";Y();L=(e,t)=>{let n=x(),o=n.lengthBytesUTF8(e)+1,r=n._malloc(o);return n.stringToUTF8(e,r,o),t.push(r),r},se=(e,t,n,o)=>{if(typeof e=="object"&&e!==null){if(n.has(e))throw new Error("Circular reference in options");n.add(e)}Object.entries(e).forEach(([r,a])=>{let s=t?t+r:r;if(typeof a=="object")se(a,s+".",n,o);else if(typeof a=="string"||typeof a=="number")o(s,a.toString());else if(typeof a=="boolean")o(s,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},T=e=>{let t=x(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetLastError(r,r+o);let a=Number(t.getValue(r,o===4?"i32":"i64")),s=t.getValue(r+o,"*"),i=s?t.UTF8ToString(s):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{t.stackRestore(n)}}});var Jt,Xt=E(()=>{"use strict";Y();Ce();Jt=e=>{let t=x(),n=0,o=[],r=e||{};try{if(e?.logSeverityLevel===void 0)r.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)r.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(r.terminate=!1);let a=0;return e?.tag!==void 0&&(a=L(e.tag,o)),n=t._OrtCreateRunOptions(r.logSeverityLevel,r.logVerbosityLevel,!!r.terminate,a),n===0&&T("Can't create run options."),e?.extra!==void 0&&se(e.extra,"",new WeakSet,(s,i)=>{let u=L(s,o),f=L(i,o);t._OrtAddRunConfigEntry(n,u,f)!==0&&T(`Can't set a run config entry: ${s} - ${i}.`)}),[n,o]}catch(a){throw n!==0&&t._OrtReleaseRunOptions(n),o.forEach(s=>t._free(s)),a}}});var _r,Mr,Ur,Dr,Zt,Kt=E(()=>{"use strict";Y();Ce();_r=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},Mr=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Ur=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(e.enableMemPattern=!1)},Dr=(e,t,n)=>{for(let o of t){let r=typeof o=="string"?o:o.name;switch(r){case"webnn":if(r="WEBNN",typeof o!="string"){let i=o?.deviceType;if(i){let u=L("deviceType",n),f=L(i,n);x()._OrtAddSessionConfigEntry(e,u,f)!==0&&T(`Can't set a session config entry: 'deviceType' - ${i}.`)}}break;case"webgpu":if(r="JS",typeof o!="string"){let s=o;if(s?.preferredLayout){if(s.preferredLayout!=="NCHW"&&s.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${s.preferredLayout}`);let i=L("preferredLayout",n),u=L(s.preferredLayout,n);x()._OrtAddSessionConfigEntry(e,i,u)!==0&&T(`Can't set a session config entry: 'preferredLayout' - ${s.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${r}`)}let a=L(r,n);x()._OrtAppendExecutionProvider(e,a)!==0&&T(`Can't append execution provider: ${r}.`)}},Zt=e=>{let t=x(),n=0,o=[],r=e||{};Ur(r);try{let a=_r(r.graphOptimizationLevel??"all"),s=Mr(r.executionMode??"sequential"),i=typeof r.logId=="string"?L(r.logId,o):0,u=r.logSeverityLevel??2;if(!Number.isInteger(u)||u<0||u>4)throw new Error(`log serverity level is not valid: ${u}`);let f=r.logVerbosityLevel??0;if(!Number.isInteger(f)||f<0||f>4)throw new Error(`log verbosity level is not valid: ${f}`);let l=typeof r.optimizedModelFilePath=="string"?L(r.optimizedModelFilePath,o):0;if(n=t._OrtCreateSessionOptions(a,!!r.enableCpuMemArena,!!r.enableMemPattern,s,!!r.enableProfiling,0,i,u,f,l),n===0&&T("Can't create session options."),r.executionProviders&&Dr(n,r.executionProviders,o),r.enableGraphCapture!==void 0){if(typeof r.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${r.enableGraphCapture}`);let d=L("enableGraphCapture",o),c=L(r.enableGraphCapture.toString(),o);t._OrtAddSessionConfigEntry(n,d,c)!==0&&T(`Can't set a session config entry: 'enableGraphCapture' - ${r.enableGraphCapture}.`)}if(r.freeDimensionOverrides)for(let[d,c]of Object.entries(r.freeDimensionOverrides)){if(typeof d!="string")throw new Error(`free dimension override name must be a string: ${d}`);if(typeof c!="number"||!Number.isInteger(c)||c<0)throw new Error(`free dimension override value must be a non-negative integer: ${c}`);let p=L(d,o);t._OrtAddFreeDimensionOverride(n,p,c)!==0&&T(`Can't set a free dimension override: ${d} - ${c}.`)}return r.extra!==void 0&&se(r.extra,"",new WeakSet,(d,c)=>{let p=L(d,o),y=L(c,o);t._OrtAddSessionConfigEntry(n,p,y)!==0&&T(`Can't set a session config entry: ${d} - ${c}.`)}),[n,o]}catch(a){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&T("Can't release session options."),o.forEach(s=>t._free(s)),a}}});var ie,Qt,ae,er,tr,_e,Me,rr,tt=E(()=>{"use strict";ie=e=>{switch(e){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${e}`)}},Qt=e=>{switch(e){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${e}`)}},ae=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],o=typeof t=="number"?t:t.reduce((r,a)=>r*a,1);return n>0?Math.ceil(o*n):void 0},er=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},tr=e=>{switch(e){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${e}`)}},_e=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",Me=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",rr=e=>{switch(e){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${e}`)}}});var ue,rt=E(()=>{"use strict";be();ue=async e=>{if(typeof e=="string")if(!1)try{let{readFile:t}=Ge("node:fs/promises");return new Uint8Array(await t(e))}catch(t){if(t.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:n}=Ge("node:fs"),o=n(e),r=[];for await(let a of o)r.push(a);return new Uint8Array(Buffer.concat(r))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get("Content-Length"),o=n?parseInt(n,10):0;if(o<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),a;try{a=new ArrayBuffer(o)}catch(i){if(i instanceof RangeError){let u=Math.ceil(o/65536);a=new WebAssembly.Memory({initial:u,maximum:u}).buffer}else throw i}let s=0;for(;;){let{done:i,value:u}=await r.read();if(i)break;let f=u.byteLength;new Uint8Array(a,s,f).set(u),s+=f}return new Uint8Array(a,0,o)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});var Rr,Se,Ae,Q,Fr,oe,Oe,xe,nr,Le,Ie,ve,Ze=E(()=>{"use strict";Xt();Kt();tt();Y();Ce();rt();Rr=(e,t)=>{x()._OrtInit(e,t)!==0&&T("Can't initialize onnxruntime.")},Se=async e=>{Rr(e.wasm.numThreads,tr(e.logLevel))},Ae=async(e,t)=>{},Q=new Map,Fr=e=>{let t=x(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetInputOutputCount(e,r,r+o)!==0&&T("Can't get session input/output count.");let s=o===4?"i32":"i64";return[Number(t.getValue(r,s)),Number(t.getValue(r+o,s))]}finally{t.stackRestore(n)}},oe=e=>{let t=x(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},Oe=async(e,t)=>{let n,o,r=x();Array.isArray(e)?[n,o]=e:e.buffer===r.HEAPU8.buffer?[n,o]=[e.byteOffset,e.byteLength]:[n,o]=oe(e);let a=0,s=0,i=0,u=[],f=[],l=[];try{if([s,u]=Zt(t),t?.externalData&&r.mountExternalData){let h=[];for(let g of t.externalData){let O=typeof g=="string"?g:g.path;h.push(ue(typeof g=="string"?g:g.data).then(C=>{r.mountExternalData(O,C)}))}await Promise.all(h)}for(let h of t?.executionProviders??[])if((typeof h=="string"?h:h.name)==="webnn"){if(r.shouldTransferToMLTensor=!1,typeof h!="string"){let O=h,C=O?.context,ce=O?.gpuDevice,de=O?.deviceType,le=O?.powerPreference;C?r.currentContext=C:ce?r.currentContext=await r.jsepCreateMLContext(ce):r.currentContext=await r.jsepCreateMLContext({deviceType:de,powerPreference:le})}else r.currentContext=await r.jsepCreateMLContext();break}a=await r._OrtCreateSession(n,o,s),a===0&&T("Can't create a session."),r.jsepOnCreateSession?.(),r.currentContext&&(r.jsepRegisterMLContext(a,r.currentContext),r.currentContext=void 0,r.shouldTransferToMLTensor=!0);let[d,c]=Fr(a),p=!!t?.enableGraphCapture,y=[],m=[],w=[];for(let h=0;h<d;h++){let g=r._OrtGetInputName(a,h);g===0&&T("Can't get an input name."),f.push(g),y.push(r.UTF8ToString(g))}for(let h=0;h<c;h++){let g=r._OrtGetOutputName(a,h);g===0&&T("Can't get an output name."),l.push(g);let O=r.UTF8ToString(g);m.push(O)}let S=null;return Q.set(a,[a,f,l,S,p,!1]),[a,y,m]}catch(d){throw f.forEach(c=>r._OrtFree(c)),l.forEach(c=>r._OrtFree(c)),i!==0&&r._OrtReleaseBinding(i)!==0&&T("Can't release IO binding."),a!==0&&r._OrtReleaseSession(a)!==0&&T("Can't release session."),d}finally{r._free(n),s!==0&&r._OrtReleaseSessionOptions(s)!==0&&T("Can't release session options."),u.forEach(d=>r._free(d)),r.unmountExternalData?.()}},xe=e=>{let t=x(),n=Q.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[o,r,a,s,i]=n;s&&(i&&t._OrtClearBoundOutputs(s.handle)!==0&&T("Can't clear bound outputs."),t._OrtReleaseBinding(s.handle)!==0&&T("Can't release IO binding.")),t.jsepOnReleaseSession?.(e),r.forEach(u=>t._OrtFree(u)),a.forEach(u=>t._OrtFree(u)),t._OrtReleaseSession(o)!==0&&T("Can't release session."),Q.delete(e)},nr=(e,t,n,o,r,a=!1)=>{if(!e){t.push(0);return}let s=x(),i=s.PTR_SIZE,u=e[0],f=e[1],l=e[3],d,c;if(u==="string"&&(l==="gpu-buffer"||l==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(a&&l!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${r} when enableGraphCapture is true.`);if(l==="gpu-buffer"){let m=e[2].gpuBuffer;c=ae(ie(u),f);let w=s.jsepRegisterBuffer;if(!w)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');d=w(o,r,m,c)}else if(l==="ml-tensor"){let m=e[2].mlTensor;c=ae(ie(u),f);let w=s.jsepRegisterMLTensor;if(!w)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');d=w(m,ie(u),f)}else{let m=e[2];if(Array.isArray(m)){c=i*m.length,d=s._malloc(c),n.push(d);for(let w=0;w<m.length;w++){if(typeof m[w]!="string")throw new TypeError(`tensor data at index ${w} is not a string`);s.setValue(d+w*i,L(m[w],n),"*")}}else c=m.byteLength,d=s._malloc(c),n.push(d),s.HEAPU8.set(new Uint8Array(m.buffer,m.byteOffset,c),d)}let p=s.stackSave(),y=s.stackAlloc(4*f.length);try{f.forEach((w,S)=>s.setValue(y+S*i,w,i===4?"i32":"i64"));let m=s._OrtCreateTensor(ie(u),d,c,y,f.length,rr(l));m===0&&T(`Can't create tensor for input/output. session=${o}, index=${r}.`),t.push(m)}finally{s.stackRestore(p)}},Le=async(e,t,n,o,r,a)=>{let s=x(),i=s.PTR_SIZE,u=Q.get(e);if(!u)throw new Error(`cannot run inference. invalid session id: ${e}`);let f=u[0],l=u[1],d=u[2],c=u[3],p=u[4],y=u[5],m=t.length,w=o.length,S=0,h=[],g=[],O=[],C=[],ce=s.stackSave(),de=s.stackAlloc(m*i),le=s.stackAlloc(m*i),Ne=s.stackAlloc(w*i),it=s.stackAlloc(w*i);try{s.jsepOnRunStart?.(f),[S,h]=Jt(a);for(let b=0;b<m;b++)nr(n[b],g,C,e,t[b],p);for(let b=0;b<w;b++)nr(r[b],O,C,e,m+o[b],p);for(let b=0;b<m;b++)s.setValue(de+b*i,g[b],"*"),s.setValue(le+b*i,l[t[b]],"*");for(let b=0;b<w;b++)s.setValue(Ne+b*i,O[b],"*"),s.setValue(it+b*i,d[o[b]],"*");let F;F=await s._OrtRun(f,le,de,m,it,w,Ne,S),F!==0&&T("failed to call OrtRun().");let X=[];for(let b=0;b<w;b++){let Z=Number(s.getValue(Ne+b*i,"*"));if(Z===O[b]){X.push(r[b]);continue}let at=s.stackSave(),k=s.stackAlloc(4*i),re=!1,P,_=0;try{s._OrtGetTensorData(Z,k,k+i,k+2*i,k+3*i)!==0&&T(`Can't access output tensor data on index ${b}.`);let We=i===4?"i32":"i64",pe=Number(s.getValue(k,We));_=s.getValue(k+i,"*");let ut=s.getValue(k+i*2,"*"),wr=Number(s.getValue(k+i*3,We)),$=[];for(let B=0;B<wr;B++)$.push(Number(s.getValue(ut+B*i,We)));s._OrtFree(ut)!==0&&T("Can't free memory for tensor dims.");let G=$.reduce((B,I)=>B*I,1);P=Qt(pe);let me=c?.outputPreferredLocations[o[b]];if(P==="string"){if(me==="gpu-buffer"||me==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let B=[];for(let I=0;I<G;I++){let z=s.getValue(_+I*i,"*"),yr=s.getValue(_+(I+1)*i,"*"),gr=I===G-1?void 0:yr-z;B.push(s.UTF8ToString(z,gr))}X.push([P,$,B,"cpu"])}else if(me==="gpu-buffer"&&G>0){let B=s.jsepGetBuffer;if(!B)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let I=B(_),z=ae(pe,G);if(z===void 0||!_e(P))throw new Error(`Unsupported data type: ${P}`);re=!0,X.push([P,$,{gpuBuffer:I,download:s.jsepCreateDownloader(I,z,P),dispose:()=>{s._OrtReleaseTensor(Z)!==0&&T("Can't release tensor.")}},"gpu-buffer"])}else if(me==="ml-tensor"&&G>0){let B=s.jsepEnsureTensor;if(!B)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(ae(pe,G)===void 0||!Me(P))throw new Error(`Unsupported data type: ${P}`);let z=await B(_,pe,$,!1);re=!0,X.push([P,$,{mlTensor:z,download:s.jsepCreateMLTensorDownloader(_,P),dispose:()=>{s.jsepReleaseTensorId(_),s._OrtReleaseTensor(Z)}},"ml-tensor"])}else{let B=er(P),I=new B(G);new Uint8Array(I.buffer,I.byteOffset,I.byteLength).set(s.HEAPU8.subarray(_,_+I.byteLength)),X.push([P,$,I,"cpu"])}}finally{s.stackRestore(at),P==="string"&&_&&s._free(_),re||s._OrtReleaseTensor(Z)}}return c&&!p&&(s._OrtClearBoundOutputs(c.handle)!==0&&T("Can't clear bound outputs."),Q.set(e,[f,l,d,c,p,!1])),X}finally{s.stackRestore(ce),g.forEach(F=>s._OrtReleaseTensor(F)),O.forEach(F=>s._OrtReleaseTensor(F)),C.forEach(F=>s._free(F)),S!==0&&s._OrtReleaseRunOptions(S),h.forEach(F=>s._free(F))}},Ie=e=>{let t=x(),n=Q.get(e);if(!n)throw new Error("invalid session id");let o=n[0],r=t._OrtEndProfiling(o);r===0&&T("Can't get an profile file name."),t._OrtFree(r)},ve=e=>{let t=[];for(let n of e){let o=n[2];!Array.isArray(o)&&"buffer"in o&&t.push(o.buffer)}return t}});var J,R,fe,De,Re,Ue,nt,ot,ee,te,Nr,or,sr,ir,ar,ur,fr,cr,st=E(()=>{"use strict";V();Ze();Y();Ee();J=()=>!!A.wasm.proxy&&typeof document<"u",fe=!1,De=!1,Re=!1,ot=new Map,ee=(e,t)=>{let n=ot.get(e);n?n.push(t):ot.set(e,[t])},te=()=>{if(fe||!De||Re||!R)throw new Error("worker not ready")},Nr=e=>{switch(e.data.type){case"init-wasm":fe=!1,e.data.err?(Re=!0,nt[1](e.data.err)):(De=!0,nt[0]()),Ue&&(URL.revokeObjectURL(Ue),Ue=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let t=ot.get(e.data.type);e.data.err?t.shift()[1](e.data.err):t.shift()[0](e.data.out);break}default:}},or=async()=>{if(!De){if(fe)throw new Error("multiple calls to 'initWasm()' detected.");if(Re)throw new Error("previous call to 'initWasm()' failed.");if(fe=!0,J())return new Promise((e,t)=>{R?.terminate(),Vt().then(([n,o])=>{try{R=o,R.onerror=a=>t(a),R.onmessage=Nr,nt=[e,t];let r={type:"init-wasm",in:A};if(!r.in.wasm.wasmPaths&&n){let a=Pe();a&&(r.in.wasm.wasmPaths=a)}R.postMessage(r),Ue=n}catch(r){t(r)}},t)});try{await Te(A.wasm),await Se(A),De=!0}catch(e){throw Re=!0,e}finally{fe=!1}}},sr=async e=>{if(J())return te(),new Promise((t,n)=>{ee("init-ep",[t,n]);let o={type:"init-ep",in:{epName:e,env:A}};R.postMessage(o)});await Ae(A,e)},ir=async e=>J()?(te(),new Promise((t,n)=>{ee("copy-from",[t,n]);let o={type:"copy-from",in:{buffer:e}};R.postMessage(o,[e.buffer])})):oe(e),ar=async(e,t)=>{if(J()){if(t?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return te(),new Promise((n,o)=>{ee("create",[n,o]);let r={type:"create",in:{model:e,options:{...t}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),R.postMessage(r,a)})}else return Oe(e,t)},ur=async e=>{if(J())return te(),new Promise((t,n)=>{ee("release",[t,n]);let o={type:"release",in:e};R.postMessage(o)});xe(e)},fr=async(e,t,n,o,r,a)=>{if(J()){if(n.some(s=>s[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(r.some(s=>s))throw new Error("pre-allocated output tensor is not supported for proxy.");return te(),new Promise((s,i)=>{ee("run",[s,i]);let u=n,f={type:"run",in:{sessionId:e,inputIndices:t,inputs:u,outputIndices:o,options:a}};R.postMessage(f,ve(u))})}else return Le(e,t,n,o,r,a)},cr=async e=>{if(J())return te(),new Promise((t,n)=>{ee("end-profiling",[t,n]);let o={type:"end-profiling",in:e};R.postMessage(o)});Ie(e)}});var dr,Wr,Fe,lr=E(()=>{"use strict";V();st();tt();be();rt();dr=(e,t)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},Wr=e=>{switch(e[3]){case"cpu":return new D(e[0],e[2],e[1]);case"gpu-buffer":{let t=e[0];if(!_e(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:o,dispose:r}=e[2];return D.fromGpuBuffer(n,{dataType:t,dims:e[1],download:o,dispose:r})}case"ml-tensor":{let t=e[0];if(!Me(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:o,dispose:r}=e[2];return D.fromMLTensor(n,{dataType:t,dims:e[1],download:o,dispose:r})}default:throw new Error(`invalid data location: ${e[3]}`)}},Fe=class{async fetchModelAndCopyToWasmMemory(t){return ir(await ue(t))}async loadModel(t,n){N();let o;typeof t=="string"?!1?o=await ue(t):o=await this.fetchModelAndCopyToWasmMemory(t):o=t,[this.sessionId,this.inputNames,this.outputNames]=await ar(o,n),W()}async dispose(){return ur(this.sessionId)}async run(t,n,o){N();let r=[],a=[];Object.entries(t).forEach(c=>{let p=c[0],y=c[1],m=this.inputNames.indexOf(p);if(m===-1)throw new Error(`invalid input '${p}'`);r.push(y),a.push(m)});let s=[],i=[];Object.entries(n).forEach(c=>{let p=c[0],y=c[1],m=this.outputNames.indexOf(p);if(m===-1)throw new Error(`invalid output '${p}'`);s.push(y),i.push(m)});let u=r.map((c,p)=>dr(c,()=>`input "${this.inputNames[a[p]]}"`)),f=s.map((c,p)=>c?dr(c,()=>`output "${this.outputNames[i[p]]}"`):null),l=await fr(this.sessionId,a,u,i,f,o),d={};for(let c=0;c<l.length;c++)d[this.outputNames[i[c]]]=s[c]??Wr(l[c]);return W(),d}startProfiling(){}endProfiling(){cr(this.sessionId)}}});var mr={};he(mr,{OnnxruntimeWebAssemblyBackend:()=>ke,initializeFlags:()=>pr,wasmBackend:()=>$r});var pr,ke,$r,hr=E(()=>{"use strict";V();st();lr();pr=()=>{if((typeof A.wasm.initTimeout!="number"||A.wasm.initTimeout<0)&&(A.wasm.initTimeout=0),A.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof A.wasm.proxy!="boolean"&&(A.wasm.proxy=!1),typeof A.wasm.trace!="boolean"&&(A.wasm.trace=!1),typeof A.wasm.numThreads!="number"||!Number.isInteger(A.wasm.numThreads)||A.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)A.wasm.numThreads=1;else{let e=typeof navigator>"u"?Ge("node:os").cpus().length:navigator.hardwareConcurrency;A.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},ke=class{async init(t){pr(),await or(),await sr(t)}async createInferenceSessionHandler(t,n){let o=new Fe;return await o.loadModel(t,n),Promise.resolve(o)}},$r=new ke});var zr={};he(zr,{InferenceSession:()=>_t,TRACE:()=>qe,TRACE_FUNC_BEGIN:()=>N,TRACE_FUNC_END:()=>W,Tensor:()=>D,default:()=>Gr,env:()=>A,registerBackend:()=>K});V();V();V();var kt="1.21.0-dev.20250201-e8b0bdb127";var Gr=Xe;{let e=(hr(),ze(mr)).wasmBackend;K("cpu",e,10),K("wasm",e,10)}Object.defineProperty(A.versions,"web",{value:kt,enumerable:!0});return ze(zr);})();
typeof exports=="object"&&typeof module=="object"&&(module.exports=ort);
//# sourceMappingURL=ort.wasm.min.js.map
'use strict';
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = {
enumerable: true,
get: function () {
return m[k];
},
};
}
Object.defineProperty(o, k2, desc);
}
: function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function (o, v) {
Object.defineProperty(o, 'default', { enumerable: true, value: v });
}
: function (o, v) {
o['default'] = v;
});
var __importStar =
(this && this.__importStar) ||
function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null)
for (var k in mod)
if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, '__esModule', { value: true });
exports.Attribute = void 0;
const ort_generated_1 = require('./ort-schema/flatbuffers/ort-generated');
const ortFbs = __importStar(require('./ort-schema/flatbuffers/ort-generated'));
const onnx_1 = require('./ort-schema/protobuf/onnx');
const tensor_1 = require('./tensor');
const util_1 = require('./util');
var ortFbs = ort_generated_1.onnxruntime.experimental.fbs;
class Attribute {

@@ -12,0 +51,0 @@ constructor(attributes) {

@@ -6,3 +6,3 @@ // Copyright (c) Microsoft Corporation. All rights reserved.

import { onnxruntime } from './ort-schema/flatbuffers/ort-generated';
import * as ortFbs from './ort-schema/flatbuffers/ort-generated';
import { onnx } from './ort-schema/protobuf/onnx';

@@ -12,4 +12,2 @@ import { Tensor } from './tensor';

import ortFbs = onnxruntime.experimental.fbs;
export declare namespace Attribute {

@@ -141,3 +139,3 @@ export interface DataTypeMap {

if (attrType === onnx.AttributeProto.AttributeType.INT && LongUtil.isLong(value)) {
return LongUtil.longToNumber(value as Long | flatbuffers.Long);
return LongUtil.longToNumber(value as bigint | Long);
}

@@ -147,3 +145,3 @@

if (attrType === onnx.AttributeProto.AttributeType.INTS) {
const arr = value as Array<number | Long | flatbuffers.Long>;
const arr = value as Array<number | Long | bigint>;
const numberValue: number[] = new Array<number>(arr.length);

@@ -150,0 +148,0 @@

'use strict';
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = {
enumerable: true,
get: function () {
return m[k];
},
};
}
Object.defineProperty(o, k2, desc);
}
: function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function (o, v) {
Object.defineProperty(o, 'default', { enumerable: true, value: v });
}
: function (o, v) {
o['default'] = v;
});
var __importStar =
(this && this.__importStar) ||
function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null)
for (var k in mod)
if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, '__esModule', { value: true });
exports.Graph = void 0;
const attribute_1 = require('./attribute');
const ort_generated_1 = require('./ort-schema/flatbuffers/ort-generated');
const ortFbs = __importStar(require('./ort-schema/flatbuffers/ort-generated'));
const onnx_1 = require('./ort-schema/protobuf/onnx');
const tensor_1 = require('./tensor');
const util_1 = require('./util');
var ortFbs = ort_generated_1.onnxruntime.experimental.fbs;
// eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare

@@ -13,0 +52,0 @@ exports.Graph = {

@@ -5,3 +5,3 @@ // Copyright (c) Microsoft Corporation. All rights reserved.

import { Attribute } from './attribute';
import { onnxruntime } from './ort-schema/flatbuffers/ort-generated';
import * as ortFbs from './ort-schema/flatbuffers/ort-generated';
import { onnx } from './ort-schema/protobuf/onnx';

@@ -11,4 +11,2 @@ import { Tensor } from './tensor';

import ortFbs = onnxruntime.experimental.fbs;
export declare namespace Graph {

@@ -15,0 +13,0 @@ export interface Shape {

'use strict';
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = {
enumerable: true,
get: function () {
return m[k];
},
};
}
Object.defineProperty(o, k2, desc);
}
: function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function (o, v) {
Object.defineProperty(o, 'default', { enumerable: true, value: v });
}
: function (o, v) {
o['default'] = v;
});
var __importStar =
(this && this.__importStar) ||
function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null)
for (var k in mod)
if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, '__esModule', { value: true });
exports.Model = void 0;
const flatbuffers_1 = require('flatbuffers');
const flatbuffers = __importStar(require('flatbuffers'));
const graph_1 = require('./graph');
const ort_generated_1 = require('./ort-schema/flatbuffers/ort-generated');
const ortFbs = __importStar(require('./ort-schema/flatbuffers/ort-generated'));
const onnx_1 = require('./ort-schema/protobuf/onnx');
const util_1 = require('./util');
var ortFbs = ort_generated_1.onnxruntime.experimental.fbs;
class Model {

@@ -52,3 +91,3 @@ // empty model

loadFromOrtFormat(buf, graphInitializer) {
const fb = new flatbuffers_1.flatbuffers.ByteBuffer(buf);
const fb = new flatbuffers.ByteBuffer(buf);
const ortModel = ortFbs.InferenceSession.getRootAsInferenceSession(fb).model();

@@ -55,0 +94,0 @@ const irVersion = util_1.LongUtil.longToNumber(ortModel.irVersion());

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { flatbuffers } from 'flatbuffers';
import * as flatbuffers from 'flatbuffers';
import { Graph } from './graph';
import { OpSet } from './opset';
import { onnxruntime } from './ort-schema/flatbuffers/ort-generated';
import * as ortFbs from './ort-schema/flatbuffers/ort-generated';
import { onnx } from './ort-schema/protobuf/onnx';
import { LongUtil } from './util';
import ortFbs = onnxruntime.experimental.fbs;
export class Model {

@@ -15,0 +13,0 @@ // empty model

# ORT Format File
This directory contains [the generated ts file](ort-generated.ts) necessary to support the ORT file format. The file is generated from [the ORT file format schema](https://github.com/microsoft/onnxruntime/blob/d42399e1b07ce61e95aae88bc6b6ea5dcaae2011/onnxruntime/core/flatbuffers/schema/ort.fbs). Please do not directly modify [the generated ts header file](ort-generated.ts).
This directory contains [the generated ts file](ort-generated.ts) necessary to support the ORT file format. The file is generated from [the ORT file format schema](https://github.com/microsoft/onnxruntime/blob/main/onnxruntime/core/flatbuffers/schema/ort.fbs). Please do not directly modify [the generated ts header file](ort-generated.ts).
[The ORT file format schema](https://github.com/microsoft/onnxruntime/blob/d42399e1b07ce61e95aae88bc6b6ea5dcaae2011/onnxruntime/core/flatbuffers/schema/ort.fbs) uses [FlatBuffers](https://github.com/google/flatbuffers) serialization library. To update [its generated ts file](ort-generated.ts),
[The ORT file format schema](https://github.com/microsoft/onnxruntime/blob/main/onnxruntime/core/flatbuffers/schema/ort.fbs) uses [FlatBuffers](https://github.com/google/flatbuffers) serialization library. To update [its generated ts file](ort-generated.ts),
1. Download or locate the [ort.fbs](https://github.com/microsoft/onnxruntime/blob/d42399e1b07ce61e95aae88bc6b6ea5dcaae2011/onnxruntime/core/flatbuffers/schema/ort.fbs) file.
2. Download FlatBuffers compiler: Download the latest flatc tool (flatc_windows.zip) from [Flatbuffers Release Page](https://github.com/google/flatbuffers/releases). Unzip and run
1. Download or locate the [ort.fbs](https://github.com/microsoft/onnxruntime/blob/main/onnxruntime/core/flatbuffers/schema/ort.fbs) file.
2. Download FlatBuffers compiler: Download the latest flatc tool (Windows.flatc.binary.zip) from [Flatbuffers Release Page](https://github.com/google/flatbuffers/releases). Unzip and run
`> flatc_windows.exe --ts <path to ort.fbs>`
`> flatc.exe --ts ort.fbs`
This should result in ort-generated.ts being updated.
copy the generated folder `onnxruntime` to `js/web/lib/onnxjs/ort-schema/flatbuffers/` directory.
Update ort-generated.ts to re-export from the generated file fbs.ts under the onnxruntime directory.
'use strict';
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = {
enumerable: true,
get: function () {
return m[k];
},
};
}
Object.defineProperty(o, k2, desc);
}
: function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function (o, v) {
Object.defineProperty(o, 'default', { enumerable: true, value: v });
}
: function (o, v) {
o['default'] = v;
});
var __importStar =
(this && this.__importStar) ||
function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null)
for (var k in mod)
if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault =

@@ -13,6 +53,5 @@ (this && this.__importDefault) ||

const long_1 = __importDefault(require('long'));
const ort_generated_1 = require('./ort-schema/flatbuffers/ort-generated');
const ortFbs = __importStar(require('./ort-schema/flatbuffers/ort-generated'));
const onnx_1 = require('./ort-schema/protobuf/onnx');
const util_1 = require('./util');
var ortFbs = ort_generated_1.onnxruntime.experimental.fbs;
class Tensor {

@@ -19,0 +58,0 @@ /**

@@ -7,8 +7,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved.

import { onnxruntime } from './ort-schema/flatbuffers/ort-generated';
import * as ortFbs from './ort-schema/flatbuffers/ort-generated';
import { onnx } from './ort-schema/protobuf/onnx';
import { decodeUtf8String, ProtoUtil, ShapeUtil } from './util';
import ortFbs = onnxruntime.experimental.fbs;
export declare namespace Tensor {

@@ -15,0 +13,0 @@ export interface DataTypeMap {

@@ -28,3 +28,2 @@ 'use strict';

void 0;
const flatbuffers_1 = require('flatbuffers');
const long_1 = __importDefault(require('long'));

@@ -451,7 +450,7 @@ const onnx_1 = require('./ort-schema/protobuf/onnx');

// To make it more generic, add an optional parameter to convert to a unsigned number.
static longToNumber(n, unsigned) {
static longToNumber(n) {
if (long_1.default.isLong(n)) {
return n.toNumber();
} else if (n instanceof flatbuffers_1.flatbuffers.Long) {
return long_1.default.fromValue({ low: n.low, high: n.high, unsigned: unsigned ?? false }).toNumber();
} else if (typeof n === 'bigint') {
return Number(n);
}

@@ -461,3 +460,3 @@ return n;

static isLong(n) {
return long_1.default.isLong(n) || n instanceof flatbuffers_1.flatbuffers.Long;
return long_1.default.isLong(n) || typeof n === 'bigint';
}

@@ -464,0 +463,0 @@ }

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { flatbuffers } from 'flatbuffers';
import Long from 'long';
import { Graph } from './graph';
import { onnxruntime } from './ort-schema/flatbuffers/ort-generated';
import * as ortFbs from './ort-schema/flatbuffers/ort-generated';
import { onnx } from './ort-schema/protobuf/onnx';

@@ -416,5 +415,3 @@ import { Tensor } from './tensor';

export class ProtoUtil {
static tensorDataTypeFromProto(
typeProto: onnx.TensorProto.DataType | onnxruntime.experimental.fbs.TensorDataType,
): Tensor.DataType {
static tensorDataTypeFromProto(typeProto: onnx.TensorProto.DataType | ortFbs.TensorDataType): Tensor.DataType {
switch (typeProto) {

@@ -498,3 +495,3 @@ case onnx.TensorProto.DataType.INT8:

static tensorDimsFromORTFormat(tensor: onnxruntime.experimental.fbs.Tensor) {
static tensorDimsFromORTFormat(tensor: ortFbs.Tensor) {
const dims = [];

@@ -507,3 +504,3 @@ for (let i = 0; i < tensor.dimsLength(); i++) {

static tensorAttributesFromORTFormat(node: onnxruntime.experimental.fbs.Node) {
static tensorAttributesFromORTFormat(node: ortFbs.Node) {
const attributes = [];

@@ -521,7 +518,7 @@ for (let i = 0; i < node.attributesLength(); i++) {

// To make it more generic, add an optional parameter to convert to a unsigned number.
static longToNumber(n: Long | flatbuffers.Long | number, unsigned?: boolean) {
static longToNumber(n: Long | bigint | number) {
if (Long.isLong(n)) {
return n.toNumber();
} else if (n instanceof flatbuffers.Long) {
return Long.fromValue({ low: n.low, high: n.high, unsigned: unsigned ?? false }).toNumber();
} else if (typeof n === 'bigint') {
return Number(n);
}

@@ -531,3 +528,3 @@ return n;

static isLong(n: unknown) {
return Long.isLong(n) || n instanceof flatbuffers.Long;
return Long.isLong(n) || typeof n === 'bigint';
}

@@ -534,0 +531,0 @@ }

@@ -7,2 +7,2 @@ // Copyright (c) Microsoft Corporation. All rights reserved.

export const version = '1.21.0-dev.20250129-80bc1d25f0';
export const version = '1.21.0-dev.20250201-e8b0bdb127';

@@ -10,6 +10,6 @@ {

"author": "fs-eire",
"version": "1.21.0-dev.20250129-80bc1d25f0",
"version": "1.21.0-dev.20250201-e8b0bdb127",
"jsdelivr": "dist/ort.min.js",
"dependencies": {
"flatbuffers": "^1.12.0",
"flatbuffers": "^25.1.24",
"guid-typescript": "^1.0.9",

@@ -42,3 +42,2 @@ "long": "^5.2.3",

"@types/emscripten": "^1.39.6",
"@types/flatbuffers": "^1.10.0",
"@types/karma": "^6.1.0",

@@ -82,4 +81,2 @@ "@types/minimatch": "^5.1.2",

},
"./.mjs": "./dist/ort-wasm-simd-threaded.jsep.mjs",
"./.wasm": "./dist/ort-wasm-simd-threaded.jsep.wasm",
"./all": {

@@ -90,4 +87,2 @@ "import": "./dist/ort.all.bundle.min.mjs",

},
"./all/.mjs": "./dist/ort-wasm-simd-threaded.jsep.mjs",
"./all/.wasm": "./dist/ort-wasm-simd-threaded.jsep.wasm",
"./wasm": {

@@ -98,4 +93,2 @@ "import": "./dist/ort.wasm.bundle.min.mjs",

},
"./wasm/.mjs": "./dist/ort-wasm-simd-threaded.mjs",
"./wasm/.wasm": "./dist/ort-wasm-simd-threaded.wasm",
"./webgl": {

@@ -102,0 +95,0 @@ "import": "./dist/ort.webgl.min.mjs",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet