transformers-fork
Version:
State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!
1 lines • 378 kB
JavaScript
(()=>{var e,t,s={fs:e=>{"use strict";e.exports=require("fs")},"onnxruntime-node":e=>{"use strict";e.exports=require("onnxruntime-node")},path:e=>{"use strict";e.exports=require("path")},sharp:e=>{"use strict";e.exports=require("sharp")},url:e=>{"use strict";e.exports=require("url")},"?8b6b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{Environment:()=>Y,Interpreter:()=>K,Template:()=>te,parse:()=>N,tokenize:()=>d});var r=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",NullLiteral:"NullLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),n=Object.freeze({set:r.Set,for:r.For,in:r.In,is:r.Is,if:r.If,else:r.Else,endif:r.EndIf,elif:r.ElseIf,endfor:r.EndFor,and:r.And,or:r.Or,not:r.Not,"not in":r.NotIn,macro:r.Macro,endmacro:r.EndMacro,true:r.BooleanLiteral,false:r.BooleanLiteral,none:r.NullLiteral,True:r.BooleanLiteral,False:r.BooleanLiteral,None:r.NullLiteral}),o=class{constructor(e,t){this.value=e,this.type=t}};function i(e){return/\w/.test(e)}function a(e){return/[0-9]/.test(e)}var l=[["{%",r.OpenStatement],["%}",r.CloseStatement],["{{",r.OpenExpression],["}}",r.CloseExpression],["(",r.OpenParen],[")",r.CloseParen],["{",r.OpenCurlyBracket],["}",r.CloseCurlyBracket],["[",r.OpenSquareBracket],["]",r.CloseSquareBracket],[",",r.Comma],[".",r.Dot],[":",r.Colon],["|",r.Pipe],["<=",r.ComparisonBinaryOperator],[">=",r.ComparisonBinaryOperator],["==",r.ComparisonBinaryOperator],["!=",r.ComparisonBinaryOperator],["<",r.ComparisonBinaryOperator],[">",r.ComparisonBinaryOperator],["+",r.AdditiveBinaryOperator],["-",r.AdditiveBinaryOperator],["*",r.MultiplicativeBinaryOperator],["/",r.MultiplicativeBinaryOperator],["%",r.MultiplicativeBinaryOperator],["=",r.Equals]],c=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function d(e,t={}){const s=[],d=function(e,t={}){return e.endsWith("\n")&&(e=e.slice(0,-1)),e=e.replace(/{#.*?#}/gs,"{##}"),t.lstrip_blocks&&(e=e.replace(/^[ \t]*({[#%])/gm,"$1")),t.trim_blocks&&(e=e.replace(/([#%]})\n/g,"$1")),e.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}(e,t);let u=0;const p=e=>{let t="";for(;e(d[u]);)if("\\"!==d[u]){if(t+=d[u++],u>=d.length)throw new SyntaxError("Unexpected end of input")}else{if(++u,u>=d.length)throw new SyntaxError("Unexpected end of input");const e=d[u++],s=c.get(e);if(void 0===s)throw new SyntaxError(`Unexpected escaped character: ${e}`);t+=s}return t};e:for(;u<d.length;){const e=s.at(-1)?.type;if(void 0===e||e===r.CloseStatement||e===r.CloseExpression){let e="";for(;u<d.length&&("{"!==d[u]||"%"!==d[u+1]&&"{"!==d[u+1]);)e+=d[u++];if(e.length>0){s.push(new o(e,r.Text));continue}}p((e=>/\s/.test(e)));const t=d[u];if("-"===t||"+"===t){const e=s.at(-1)?.type;if(e===r.Text||void 0===e)throw new SyntaxError(`Unexpected character: ${t}`);switch(e){case r.Identifier:case r.NumericLiteral:case r.BooleanLiteral:case r.NullLiteral:case r.StringLiteral:case r.CloseParen:case r.CloseSquareBracket:break;default:{++u;const e=p(a);s.push(new o(`${t}${e}`,e.length>0?r.NumericLiteral:r.UnaryOperator));continue}}}for(const[e,t]of l){if(d.slice(u,u+e.length)===e){s.push(new o(e,t)),u+=e.length;continue e}}if("'"!==t&&'"'!==t)if(a(t)){const e=p(a);s.push(new o(e,r.NumericLiteral))}else{if(!i(t))throw new SyntaxError(`Unexpected character: ${t}`);{const e=p(i),t=Object.hasOwn(n,e)?n[e]:r.Identifier;t===r.In&&s.at(-1)?.type===r.Not?(s.pop(),s.push(new o("not in",r.NotIn))):s.push(new o(e,t))}}else{++u;const e=p((e=>e!==t));s.push(new o(e,r.StringLiteral)),++u}}return s}var u=class{type="Statement"},p=class extends u{constructor(e){super(),this.body=e}type="Program"},_=class extends u{constructor(e,t,s){super(),this.test=e,this.body=t,this.alternate=s}type="If"},m=class extends u{constructor(e,t,s,r){super(),this.loopvar=e,this.iterable=t,this.body=s,this.defaultBlock=r}type="For"},h=class extends u{constructor(e,t){super(),this.assignee=e,this.value=t}type="Set"},f=class extends u{constructor(e,t,s){super(),this.name=e,this.args=t,this.body=s}type="Macro"},g=class extends u{type="Expression"},w=class extends g{constructor(e,t,s){super(),this.object=e,this.property=t,this.computed=s}type="MemberExpression"},M=class extends g{constructor(e,t){super(),this.callee=e,this.args=t}type="CallExpression"},b=class extends g{constructor(e){super(),this.value=e}type="Identifier"},x=class extends g{constructor(e){super(),this.value=e}type="Literal"},y=class extends x{type="NumericLiteral"},k=class extends x{type="StringLiteral"},T=class extends x{type="BooleanLiteral"},v=class extends x{type="NullLiteral"},P=class extends x{type="ArrayLiteral"},F=class extends x{type="TupleLiteral"},C=class extends x{type="ObjectLiteral"},A=class extends g{constructor(e,t,s){super(),this.operator=e,this.left=t,this.right=s}type="BinaryExpression"},S=class extends g{constructor(e,t){super(),this.operand=e,this.filter=t}type="FilterExpression"},E=class extends g{constructor(e,t){super(),this.iterable=e,this.test=t}type="SelectExpression"},I=class extends g{constructor(e,t,s){super(),this.operand=e,this.negate=t,this.test=s}type="TestExpression"},L=class extends g{constructor(e,t){super(),this.operator=e,this.argument=t}type="UnaryExpression"},z=class extends g{constructor(e=void 0,t=void 0,s=void 0){super(),this.start=e,this.stop=t,this.step=s}type="SliceExpression"},j=class extends g{constructor(e,t){super(),this.key=e,this.value=t}type="KeywordArgumentExpression"};function N(e){const t=new p([]);let s=0;function n(t,r){const n=e[s++];if(!n||n.type!==t)throw new Error(`Parser Error: ${r}. ${n.type} !== ${t}.`);return n}function o(){switch(e[s].type){case r.Text:return new k(n(r.Text,"Expected text token").value);case r.OpenStatement:return function(){let t;switch(n(r.OpenStatement,"Expected opening statement token"),e[s].type){case r.Set:++s,t=l(),n(r.CloseStatement,"Expected closing statement token");break;case r.If:++s,t=c(),n(r.OpenStatement,"Expected {% token"),n(r.EndIf,"Expected endif token"),n(r.CloseStatement,"Expected %} token");break;case r.Macro:++s,t=function(){const e=q();if("Identifier"!==e.type)throw new SyntaxError("Expected identifier following macro statement");const t=D();n(r.CloseStatement,"Expected closing statement token");const s=[];for(;i(r.OpenStatement,r.EndMacro);)s.push(o());return new f(e,t,s)}(),n(r.OpenStatement,"Expected {% token"),n(r.EndMacro,"Expected endmacro token"),n(r.CloseStatement,"Expected %} token");break;case r.For:++s,t=function(){const e=d(!0);if(!(e instanceof b||e instanceof F))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);n(r.In,"Expected `in` keyword following loop variable");const t=u();n(r.CloseStatement,"Expected closing statement token");const l=[];for(;i(r.OpenStatement,r.EndFor)&&i(r.OpenStatement,r.Else);)l.push(o());const c=[];if(a(r.OpenStatement,r.Else))for(++s,++s,n(r.CloseStatement,"Expected closing statement token");i(r.OpenStatement,r.EndFor);)c.push(o());return new m(e,t,l,c)}(),n(r.OpenStatement,"Expected {% token"),n(r.EndFor,"Expected endfor token"),n(r.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${e[s].type}`)}return t}();case r.OpenExpression:return function(){n(r.OpenExpression,"Expected opening expression token");const e=u();return n(r.CloseExpression,"Expected closing expression token"),e}();default:throw new SyntaxError(`Unexpected token type: ${e[s].type}`)}}function i(...t){return s+t.length<=e.length&&t.some(((t,r)=>t!==e[s+r].type))}function a(...t){return s+t.length<=e.length&&t.every(((t,r)=>t===e[s+r].type))}function l(){const e=u();if(a(r.Equals)){++s;const t=l();return new h(e,t)}return e}function c(){const t=u();n(r.CloseStatement,"Expected closing statement token");const i=[],l=[];for(;e[s]?.type!==r.OpenStatement||e[s+1]?.type!==r.ElseIf&&e[s+1]?.type!==r.Else&&e[s+1]?.type!==r.EndIf;)i.push(o());if(e[s]?.type===r.OpenStatement&&e[s+1]?.type!==r.EndIf)if(++s,a(r.ElseIf))n(r.ElseIf,"Expected elseif token"),l.push(c());else for(n(r.Else,"Expected else token"),n(r.CloseStatement,"Expected closing statement token");e[s]?.type!==r.OpenStatement||e[s+1]?.type!==r.EndIf;)l.push(o());return new _(t,i,l)}function d(e=!1){const t=e?q:u,n=[t()],o=a(r.Comma);for(;o&&(++s,n.push(t()),a(r.Comma)););return o?new F(n):n[0]}function u(){return function(){const e=g();if(a(r.If)){++s;const t=g();if(a(r.Else)){++s;const r=g();return new _(t,[e],[r])}return new E(e,t)}return e}()}function g(){let t=x();for(;a(r.Or);){const r=e[s];++s;const n=x();t=new A(r,t,n)}return t}function x(){let t=N();for(;a(r.And);){const r=e[s];++s;const n=N();t=new A(r,t,n)}return t}function N(){let t;for(;a(r.Not);){const r=e[s];++s;const n=N();t=new L(r,n)}return t??function(){let t=O();for(;a(r.ComparisonBinaryOperator)||a(r.In)||a(r.NotIn);){const r=e[s];++s;const n=O();t=new A(r,t,n)}return t}()}function O(){let t=G();for(;a(r.AdditiveBinaryOperator);){const r=e[s];++s;const n=G();t=new A(r,t,n)}return t}function B(){const t=function(){let t=q();for(;a(r.Dot)||a(r.OpenSquareBracket);){const o=e[s];let i;++s;const a=o.type!==r.Dot;if(a)i=R(),n(r.CloseSquareBracket,"Expected closing square bracket");else if(i=q(),"Identifier"!==i.type)throw new SyntaxError("Expected identifier following dot operator");t=new w(t,i,a)}return t}();return a(r.OpenParen)?V(t):t}function V(e){let t=new M(e,D());return a(r.OpenParen)&&(t=V(t)),t}function D(){n(r.OpenParen,"Expected opening parenthesis for arguments list");const e=function(){const e=[];for(;!a(r.CloseParen);){let t=u();if(a(r.Equals)){if(++s,!(t instanceof b))throw new SyntaxError("Expected identifier for keyword argument");const e=u();t=new j(t,e)}e.push(t),a(r.Comma)&&++s}return e}();return n(r.CloseParen,"Expected closing parenthesis for arguments list"),e}function R(){const e=[];let t=!1;for(;!a(r.CloseSquareBracket);)a(r.Colon)?(e.push(void 0),++s,t=!0):(e.push(u()),a(r.Colon)&&(++s,t=!0));if(0===e.length)throw new SyntaxError("Expected at least one argument for member/slice expression");if(t){if(e.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new z(...e)}return e[0]}function G(){let t=$();for(;a(r.MultiplicativeBinaryOperator);){const r=e[s];++s;const n=$();t=new A(r,t,n)}return t}function $(){let e=function(){let e=B();for(;a(r.Pipe);){++s;let t=q();if(!(t instanceof b))throw new SyntaxError("Expected identifier for the filter");a(r.OpenParen)&&(t=V(t)),e=new S(e,t)}return e}();for(;a(r.Is);){++s;const t=a(r.Not);t&&++s;let n=q();if(n instanceof T?n=new b(n.value.toString()):n instanceof v&&(n=new b("none")),!(n instanceof b))throw new SyntaxError("Expected identifier for the test");e=new I(e,t,n)}return e}function q(){const t=e[s];switch(t.type){case r.NumericLiteral:return++s,new y(Number(t.value));case r.StringLiteral:return++s,new k(t.value);case r.BooleanLiteral:return++s,new T("true"===t.value.toLowerCase());case r.NullLiteral:return++s,new v(null);case r.Identifier:return++s,new b(t.value);case r.OpenParen:{++s;const t=d();if(e[s].type!==r.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${e[s].type} instead`);return++s,t}case r.OpenSquareBracket:{++s;const e=[];for(;!a(r.CloseSquareBracket);)e.push(u()),a(r.Comma)&&++s;return++s,new P(e)}case r.OpenCurlyBracket:{++s;const e=new Map;for(;!a(r.CloseCurlyBracket);){const t=u();n(r.Colon,"Expected colon between key and value in object literal");const o=u();e.set(t,o),a(r.Comma)&&++s}return++s,new C(e)}default:throw new SyntaxError(`Unexpected token: ${t.type}`)}}for(;s<e.length;)t.body.push(o());return t}function O(e,t,s=1){void 0===t&&(t=e,e=0);const r=[];for(let n=e;n<t;n+=s)r.push(n);return r}function B(e,t,s,r=1){const n=Math.sign(r);n>=0?(t=(t??=0)<0?Math.max(e.length+t,0):Math.min(t,e.length),s=(s??=e.length)<0?Math.max(e.length+s,0):Math.min(s,e.length)):(t=(t??=e.length-1)<0?Math.max(e.length+t,-1):Math.min(t,e.length-1),s=(s??=-1)<-1?Math.max(e.length+s,-1):Math.min(s,e.length-1));const o=[];for(let i=t;n*i<n*s;i+=r)o.push(e[i]);return o}function V(e){return e.replace(/\b\w/g,(e=>e.toUpperCase()))}var D=class{type="RuntimeValue";value;builtins=new Map;constructor(e=void 0){this.value=e}__bool__(){return new $(!!this.value)}},R=class extends D{type="NumericValue"},G=class extends D{type="StringValue";builtins=new Map([["upper",new Q((()=>new G(this.value.toUpperCase())))],["lower",new Q((()=>new G(this.value.toLowerCase())))],["strip",new Q((()=>new G(this.value.trim())))],["title",new Q((()=>new G(V(this.value))))],["length",new R(this.value.length)],["rstrip",new Q((()=>new G(this.value.trimEnd())))],["lstrip",new Q((()=>new G(this.value.trimStart())))]])},$=class extends D{type="BooleanValue"},q=class extends D{type="ObjectValue";__bool__(){return new $(this.value.size>0)}builtins=new Map([["get",new Q((([e,t])=>{if(!(e instanceof G))throw new Error(`Object key must be a string: got ${e.type}`);return this.value.get(e.value)??t??new H}))],["items",new Q((()=>new W(Array.from(this.value.entries()).map((([e,t])=>new W([new G(e),t]))))))]])},U=class extends q{type="KeywordArgumentsValue"},W=class extends D{type="ArrayValue";builtins=new Map([["length",new R(this.value.length)]]);__bool__(){return new $(this.value.length>0)}},X=class extends W{type="TupleValue"},Q=class extends D{type="FunctionValue"},H=class extends D{type="NullValue"},J=class extends D{type="UndefinedValue"},Y=class{constructor(e){this.parent=e}variables=new Map([["namespace",new Q((e=>{if(0===e.length)return new q(new Map);if(1!==e.length||!(e[0]instanceof q))throw new Error("`namespace` expects either zero arguments or a single object argument");return e[0]}))]]);tests=new Map([["boolean",e=>"BooleanValue"===e.type],["callable",e=>e instanceof Q],["odd",e=>{if("NumericValue"!==e.type)throw new Error(`Cannot apply test "odd" to type: ${e.type}`);return e.value%2!=0}],["even",e=>{if("NumericValue"!==e.type)throw new Error(`Cannot apply test "even" to type: ${e.type}`);return e.value%2==0}],["false",e=>"BooleanValue"===e.type&&!e.value],["true",e=>"BooleanValue"===e.type&&e.value],["none",e=>"NullValue"===e.type],["string",e=>"StringValue"===e.type],["number",e=>"NumericValue"===e.type],["integer",e=>"NumericValue"===e.type&&Number.isInteger(e.value)],["iterable",e=>"ArrayValue"===e.type||"StringValue"===e.type],["mapping",e=>"ObjectValue"===e.type],["lower",e=>{const t=e.value;return"StringValue"===e.type&&t===t.toLowerCase()}],["upper",e=>{const t=e.value;return"StringValue"===e.type&&t===t.toUpperCase()}],["none",e=>"NullValue"===e.type],["defined",e=>"UndefinedValue"!==e.type],["undefined",e=>"UndefinedValue"===e.type],["equalto",(e,t)=>e.value===t.value],["eq",(e,t)=>e.value===t.value]]);set(e,t){return this.declareVariable(e,Z(t))}declareVariable(e,t){if(this.variables.has(e))throw new SyntaxError(`Variable already declared: ${e}`);return this.variables.set(e,t),t}setVariable(e,t){return this.variables.set(e,t),t}resolve(e){if(this.variables.has(e))return this;if(this.parent)return this.parent.resolve(e);throw new Error(`Unknown variable: ${e}`)}lookupVariable(e){try{return this.resolve(e).variables.get(e)??new J}catch{return new J}}},K=class{global;constructor(e){this.global=e??new Y}run(e){return this.evaluate(e,this.global)}evaluateBinaryExpression(e,t){const s=this.evaluate(e.left,t);switch(e.operator.value){case"and":return s.__bool__().value?this.evaluate(e.right,t):s;case"or":return s.__bool__().value?s:this.evaluate(e.right,t)}const r=this.evaluate(e.right,t);switch(e.operator.value){case"==":return new $(s.value==r.value);case"!=":return new $(s.value!=r.value)}if(s instanceof J||r instanceof J)throw new Error("Cannot perform operation on undefined values");if(s instanceof H||r instanceof H)throw new Error("Cannot perform operation on null values");if(s instanceof R&&r instanceof R)switch(e.operator.value){case"+":return new R(s.value+r.value);case"-":return new R(s.value-r.value);case"*":return new R(s.value*r.value);case"/":return new R(s.value/r.value);case"%":return new R(s.value%r.value);case"<":return new $(s.value<r.value);case">":return new $(s.value>r.value);case">=":return new $(s.value>=r.value);case"<=":return new $(s.value<=r.value)}else if(s instanceof W&&r instanceof W){if("+"===e.operator.value)return new W(s.value.concat(r.value))}else if(r instanceof W){const t=void 0!==r.value.find((e=>e.value===s.value));switch(e.operator.value){case"in":return new $(t);case"not in":return new $(!t)}}if((s instanceof G||r instanceof G)&&"+"===e.operator.value)return new G(s.value.toString()+r.value.toString());if(s instanceof G&&r instanceof G)switch(e.operator.value){case"in":return new $(r.value.includes(s.value));case"not in":return new $(!r.value.includes(s.value))}if(s instanceof G&&r instanceof q)switch(e.operator.value){case"in":return new $(r.value.has(s.value));case"not in":return new $(!r.value.has(s.value))}throw new SyntaxError(`Unknown operator "${e.operator.value}" between ${s.type} and ${r.type}`)}evaluateArguments(e,t){const s=[],r=new Map;for(const n of e)if("KeywordArgumentExpression"===n.type){const e=n;r.set(e.key.value,this.evaluate(e.value,t))}else{if(r.size>0)throw new Error("Positional arguments must come before keyword arguments");s.push(this.evaluate(n,t))}return[s,r]}evaluateFilterExpression(e,t){const s=this.evaluate(e.operand,t);if("Identifier"===e.filter.type){const t=e.filter;if("tojson"===t.value)return new G(ee(s));if(s instanceof W)switch(t.value){case"list":return s;case"first":return s.value[0];case"last":return s.value[s.value.length-1];case"length":return new R(s.value.length);case"reverse":return new W(s.value.reverse());case"sort":return new W(s.value.sort(((e,t)=>{if(e.type!==t.type)throw new Error(`Cannot compare different types: ${e.type} and ${t.type}`);switch(e.type){case"NumericValue":return e.value-t.value;case"StringValue":return e.value.localeCompare(t.value);default:throw new Error(`Cannot compare type: ${e.type}`)}})));default:throw new Error(`Unknown ArrayValue filter: ${t.value}`)}else if(s instanceof G)switch(t.value){case"length":return new R(s.value.length);case"upper":return new G(s.value.toUpperCase());case"lower":return new G(s.value.toLowerCase());case"title":return new G(V(s.value));case"capitalize":return new G(s.value.charAt(0).toUpperCase()+s.value.slice(1));case"trim":return new G(s.value.trim());case"indent":return new G(s.value.split("\n").map(((e,t)=>0===t||0===e.length?e:" "+e)).join("\n"));case"string":return s;default:throw new Error(`Unknown StringValue filter: ${t.value}`)}else{if(s instanceof R){if("abs"===t.value)return new R(Math.abs(s.value));throw new Error(`Unknown NumericValue filter: ${t.value}`)}if(s instanceof q)switch(t.value){case"items":return new W(Array.from(s.value.entries()).map((([e,t])=>new W([new G(e),t]))));case"length":return new R(s.value.size);default:throw new Error(`Unknown ObjectValue filter: ${t.value}`)}}throw new Error(`Cannot apply filter "${t.value}" to type: ${s.type}`)}if("CallExpression"===e.filter.type){const r=e.filter;if("Identifier"!==r.callee.type)throw new Error(`Unknown filter: ${r.callee.type}`);const n=r.callee.value;if("tojson"===n){const[,e]=this.evaluateArguments(r.args,t),n=e.get("indent")??new H;if(!(n instanceof R||n instanceof H))throw new Error("If set, indent must be a number");return new G(ee(s,n.value))}if(s instanceof W){switch(n){case"selectattr":case"rejectattr":{const e="selectattr"===n;if(s.value.some((e=>!(e instanceof q))))throw new Error(`\`${n}\` can only be applied to array of objects`);if(r.args.some((e=>"StringLiteral"!==e.type)))throw new Error(`arguments of \`${n}\` must be strings`);const[o,i,a]=r.args.map((e=>this.evaluate(e,t)));let l;if(i){const e=t.tests.get(i.value);if(!e)throw new Error(`Unknown test: ${i.value}`);l=e}else l=(...e)=>e[0].__bool__().value;const c=s.value.filter((t=>{const s=t.value.get(o.value),r=!!s&&l(s,a);return e?r:!r}));return new W(c)}case"map":{const[,e]=this.evaluateArguments(r.args,t);if(e.has("attribute")){const t=e.get("attribute");if(!(t instanceof G))throw new Error("attribute must be a string");const r=e.get("default"),n=s.value.map((e=>{if(!(e instanceof q))throw new Error("items in map must be an object");return e.value.get(t.value)??r??new J}));return new W(n)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${n}`)}if(s instanceof G){if("indent"===n){const[e,n]=this.evaluateArguments(r.args,t),o=e.at(0)??n.get("width")??new R(4);if(!(o instanceof R))throw new Error("width must be a number");const i=e.at(1)??n.get("first")??new $(!1),a=e.at(2)??n.get("blank")??new $(!1),l=s.value.split("\n"),c=" ".repeat(o.value),d=l.map(((e,t)=>!i.value&&0===t||!a.value&&0===e.length?e:c+e));return new G(d.join("\n"))}throw new Error(`Unknown StringValue filter: ${n}`)}throw new Error(`Cannot apply filter "${n}" to type: ${s.type}`)}throw new Error(`Unknown filter: ${e.filter.type}`)}evaluateTestExpression(e,t){const s=this.evaluate(e.operand,t),r=t.tests.get(e.test.value);if(!r)throw new Error(`Unknown test: ${e.test.value}`);const n=r(s);return new $(e.negate?!n:n)}evaluateUnaryExpression(e,t){const s=this.evaluate(e.argument,t);if("not"===e.operator.value)return new $(!s.value);throw new SyntaxError(`Unknown operator: ${e.operator.value}`)}evalProgram(e,t){return this.evaluateBlock(e.body,t)}evaluateBlock(e,t){let s="";for(const r of e){const e=this.evaluate(r,t);"NullValue"!==e.type&&"UndefinedValue"!==e.type&&(s+=e.value)}return new G(s)}evaluateIdentifier(e,t){return t.lookupVariable(e.value)}evaluateCallExpression(e,t){const[s,r]=this.evaluateArguments(e.args,t);r.size>0&&s.push(new U(r));const n=this.evaluate(e.callee,t);if("FunctionValue"!==n.type)throw new Error(`Cannot call something that is not a function: got ${n.type}`);return n.value(s,t)}evaluateSliceExpression(e,t,s){if(!(e instanceof W||e instanceof G))throw new Error("Slice object must be an array or string");const r=this.evaluate(t.start,s),n=this.evaluate(t.stop,s),o=this.evaluate(t.step,s);if(!(r instanceof R||r instanceof J))throw new Error("Slice start must be numeric or undefined");if(!(n instanceof R||n instanceof J))throw new Error("Slice stop must be numeric or undefined");if(!(o instanceof R||o instanceof J))throw new Error("Slice step must be numeric or undefined");return e instanceof W?new W(B(e.value,r.value,n.value,o.value)):new G(B(Array.from(e.value),r.value,n.value,o.value).join(""))}evaluateMemberExpression(e,t){const s=this.evaluate(e.object,t);let r,n;if(e.computed){if("SliceExpression"===e.property.type)return this.evaluateSliceExpression(s,e.property,t);r=this.evaluate(e.property,t)}else r=new G(e.property.value);if(s instanceof q){if(!(r instanceof G))throw new Error(`Cannot access property with non-string: got ${r.type}`);n=s.value.get(r.value)??s.builtins.get(r.value)}else if(s instanceof W||s instanceof G)if(r instanceof R)n=s.value.at(r.value),s instanceof G&&(n=new G(s.value.at(r.value)));else{if(!(r instanceof G))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);n=s.builtins.get(r.value)}else{if(!(r instanceof G))throw new Error(`Cannot access property with non-string: got ${r.type}`);n=s.builtins.get(r.value)}return n instanceof D?n:new J}evaluateSet(e,t){const s=this.evaluate(e.value,t);if("Identifier"===e.assignee.type){const r=e.assignee.value;t.setVariable(r,s)}else{if("MemberExpression"!==e.assignee.type)throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(e.assignee)}`);{const r=e.assignee,n=this.evaluate(r.object,t);if(!(n instanceof q))throw new Error("Cannot assign to member of non-object");if("Identifier"!==r.property.type)throw new Error("Cannot assign to member with non-identifier property");n.value.set(r.property.value,s)}}return new H}evaluateIf(e,t){const s=this.evaluate(e.test,t);return this.evaluateBlock(s.__bool__().value?e.body:e.alternate,t)}evaluateFor(e,t){const s=new Y(t);let r,n;if("SelectExpression"===e.iterable.type){const t=e.iterable;n=this.evaluate(t.iterable,s),r=t.test}else n=this.evaluate(e.iterable,s);if(!(n instanceof W))throw new Error(`Expected iterable type in for loop: got ${n.type}`);const o=[],i=[];for(let t=0;t<n.value.length;++t){const a=new Y(s),l=n.value[t];let c;if("Identifier"===e.loopvar.type)c=t=>t.setVariable(e.loopvar.value,l);else{if("TupleLiteral"!==e.loopvar.type)throw new Error(`Invalid loop variable(s): ${e.loopvar.type}`);{const t=e.loopvar;if("ArrayValue"!==l.type)throw new Error(`Cannot unpack non-iterable type: ${l.type}`);const s=l;if(t.value.length!==s.value.length)throw new Error(`Too ${t.value.length>s.value.length?"few":"many"} items to unpack`);c=e=>{for(let r=0;r<t.value.length;++r){if("Identifier"!==t.value[r].type)throw new Error(`Cannot unpack non-identifier type: ${t.value[r].type}`);e.setVariable(t.value[r].value,s.value[r])}}}}if(r){c(a);if(!this.evaluate(r,a).__bool__().value)continue}o.push(l),i.push(c)}let a="",l=!0;for(let t=0;t<o.length;++t){const r=new Map([["index",new R(t+1)],["index0",new R(t)],["revindex",new R(o.length-t)],["revindex0",new R(o.length-t-1)],["first",new $(0===t)],["last",new $(t===o.length-1)],["length",new R(o.length)],["previtem",t>0?o[t-1]:new J],["nextitem",t<o.length-1?o[t+1]:new J]]);s.setVariable("loop",new q(r)),i[t](s);a+=this.evaluateBlock(e.body,s).value,l=!1}if(l){a+=this.evaluateBlock(e.defaultBlock,s).value}return new G(a)}evaluateMacro(e,t){return t.setVariable(e.name.value,new Q(((t,s)=>{const r=new Y(s);let n;t=t.slice(),"KeywordArgumentsValue"===t.at(-1)?.type&&(n=t.pop());for(let s=0;s<e.args.length;++s){const o=e.args[s],i=t[s];if("Identifier"===o.type){const e=o;if(!i)throw new Error(`Missing positional argument: ${e.value}`);r.setVariable(e.value,i)}else{if("KeywordArgumentExpression"!==o.type)throw new Error(`Unknown argument type: ${o.type}`);{const e=o,t=i??n?.value.get(e.key.value)??this.evaluate(e.value,r);r.setVariable(e.key.value,t)}}}return this.evaluateBlock(e.body,r)}))),new H}evaluate(e,t){if(void 0===e)return new J;switch(e.type){case"Program":return this.evalProgram(e,t);case"Set":return this.evaluateSet(e,t);case"If":return this.evaluateIf(e,t);case"For":return this.evaluateFor(e,t);case"Macro":return this.evaluateMacro(e,t);case"NumericLiteral":return new R(Number(e.value));case"StringLiteral":return new G(e.value);case"BooleanLiteral":return new $(e.value);case"NullLiteral":return new H(e.value);case"ArrayLiteral":return new W(e.value.map((e=>this.evaluate(e,t))));case"TupleLiteral":return new X(e.value.map((e=>this.evaluate(e,t))));case"ObjectLiteral":{const s=new Map;for(const[r,n]of e.value){const e=this.evaluate(r,t);if(!(e instanceof G))throw new Error(`Object keys must be strings: got ${e.type}`);s.set(e.value,this.evaluate(n,t))}return new q(s)}case"Identifier":return this.evaluateIdentifier(e,t);case"CallExpression":return this.evaluateCallExpression(e,t);case"MemberExpression":return this.evaluateMemberExpression(e,t);case"UnaryExpression":return this.evaluateUnaryExpression(e,t);case"BinaryExpression":return this.evaluateBinaryExpression(e,t);case"FilterExpression":return this.evaluateFilterExpression(e,t);case"TestExpression":return this.evaluateTestExpression(e,t);default:throw new SyntaxError(`Unknown node type: ${e.type}`)}}};function Z(e){switch(typeof e){case"number":return new R(e);case"string":return new G(e);case"boolean":return new $(e);case"undefined":return new J;case"object":return null===e?new H:Array.isArray(e)?new W(e.map(Z)):new q(new Map(Object.entries(e).map((([e,t])=>[e,Z(t)]))));case"function":return new Q(((t,s)=>Z(e(...t.map((e=>e.value)))??null)));default:throw new Error(`Cannot convert to runtime value: ${e}`)}}function ee(e,t,s){const r=s??0;switch(e.type){case"NullValue":case"UndefinedValue":return"null";case"NumericValue":case"StringValue":case"BooleanValue":return JSON.stringify(e.value);case"ArrayValue":case"ObjectValue":{const s=t?" ".repeat(t):"",n="\n"+s.repeat(r),o=n+s;if("ArrayValue"===e.type){const s=e.value.map((e=>ee(e,t,r+1)));return t?`[${o}${s.join(`,${o}`)}${n}]`:`[${s.join(", ")}]`}{const s=Array.from(e.value.entries()).map((([e,s])=>{const n=`"${e}": ${ee(s,t,r+1)}`;return t?`${o}${n}`:n}));return t?`{${s.join(",")}${n}}`:`{${s.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${e.type}`)}}var te=class{parsed;constructor(e){const t=d(e,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=N(t)}render(e){const t=new Y;t.set("false",!1),t.set("true",!0),t.set("raise_exception",(e=>{throw new Error(e)})),t.set("range",O);for(const[s,r]of Object.entries(e))t.set(s,r);return new K(t).run(this.parsed).value}}},"./node_modules/onnxruntime-common/dist/esm/backend-impl.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{registerBackend:()=>o,resolveBackendAndExecutionProviders:()=>a});const r=new Map,n=[],o=(e,t,s)=>{if(!t||"function"!=typeof t.init||"function"!=typeof t.createInferenceSessionHandler)throw new TypeError("not a valid backend");{const o=r.get(e);if(void 0===o)r.set(e,{backend:t,priority:s});else{if(o.priority>s)return;if(o.priority===s&&o.backend!==t)throw new Error(`cannot register backend "${e}" using priority ${s}`)}if(s>=0){const t=n.indexOf(e);-1!==t&&n.splice(t,1);for(let t=0;t<n.length;t++)if(r.get(n[t]).priority<=s)return void n.splice(t,0,e);n.push(e)}}},i=async e=>{const t=r.get(e);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{const s=!!t.initPromise;try{return s||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(e){return s||(t.error=`${e}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},a=async e=>{const t=e.executionProviders||[],s=t.map((e=>"string"==typeof e?e:e.name)),r=0===s.length?n:s;let o;const a=[],l=new Set;for(const e of r){const t=await i(e);"string"==typeof t?a.push({name:e,err:t}):(o||(o=t),o===t&&l.add(e))}if(!o)throw new Error(`no available backend found. ERR: ${a.map((e=>`[${e.name}] ${e.err}`)).join(", ")}`);for(const{name:e,err:t}of a)s.includes(e)&&console.warn(`removing requested execution provider "${e}" from session options because it is not available: ${t}`);const c=t.filter((e=>l.has("string"==typeof e?e:e.name)));return[o,new Proxy(e,{get:(e,t)=>"executionProviders"===t?c:Reflect.get(e,t)})]}},"./node_modules/onnxruntime-common/dist/esm/backend.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{registerBackend:()=>r.registerBackend});var r=s("./node_modules/onnxruntime-common/dist/esm/backend-impl.js")},"./node_modules/onnxruntime-common/dist/esm/env-impl.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{env:()=>o});var r=s("./node_modules/onnxruntime-common/dist/esm/version.js");let n="warning";const o={wasm:{},webgl:{},webgpu:{},versions:{common:r.version},set logLevel(e){if(void 0!==e){if("string"!=typeof e||-1===["verbose","info","warning","error","fatal"].indexOf(e))throw new Error(`Unsupported logging level: ${e}`);n=e}},get logLevel(){return n}};Object.defineProperty(o,"logLevel",{enumerable:!0})},"./node_modules/onnxruntime-common/dist/esm/env.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{env:()=>r});const r=s("./node_modules/onnxruntime-common/dist/esm/env-impl.js").env},"./node_modules/onnxruntime-common/dist/esm/index.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{InferenceSession:()=>o.InferenceSession,TRACE:()=>a.TRACE,TRACE_FUNC_BEGIN:()=>a.TRACE_FUNC_BEGIN,TRACE_FUNC_END:()=>a.TRACE_FUNC_END,Tensor:()=>i.Tensor,TrainingSession:()=>l.TrainingSession,env:()=>n.env,registerBackend:()=>r.registerBackend});var r=s("./node_modules/onnxruntime-common/dist/esm/backend.js"),n=s("./node_modules/onnxruntime-common/dist/esm/env.js"),o=s("./node_modules/onnxruntime-common/dist/esm/inference-session.js"),i=s("./node_modules/onnxruntime-common/dist/esm/tensor.js"),a=(s("./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js"),s("./node_modules/onnxruntime-common/dist/esm/tensor-factory.js"),s("./node_modules/onnxruntime-common/dist/esm/trace.js")),l=(s("./node_modules/onnxruntime-common/dist/esm/onnx-model.js"),s("./node_modules/onnxruntime-common/dist/esm/onnx-value.js"),s("./node_modules/onnxruntime-common/dist/esm/training-session.js"))},"./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{InferenceSession:()=>i});var r=s("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),n=s("./node_modules/onnxruntime-common/dist/esm/tensor.js"),o=s("./node_modules/onnxruntime-common/dist/esm/trace.js");class i{constructor(e){this.handler=e}async run(e,t,s){(0,o.TRACE_FUNC_BEGIN)();const r={};let i={};if("object"!=typeof e||null===e||e instanceof n.Tensor||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let a=!0;if("object"==typeof t){if(null===t)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof n.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(0===t.length)throw new TypeError("'fetches' cannot be an empty array.");a=!1;for(const e of t){if("string"!=typeof e)throw new TypeError("'fetches' must be a string array or an object.");if(-1===this.outputNames.indexOf(e))throw new RangeError(`'fetches' contains invalid output name: ${e}.`);r[e]=null}if("object"==typeof s&&null!==s)i=s;else if(void 0!==s)throw new TypeError("'options' must be an object.")}else{let e=!1;const o=Object.getOwnPropertyNames(t);for(const s of this.outputNames)if(-1!==o.indexOf(s)){const o=t[s];(null===o||o instanceof n.Tensor)&&(e=!0,a=!1,r[s]=o)}if(e){if("object"==typeof s&&null!==s)i=s;else if(void 0!==s)throw new TypeError("'options' must be an object.")}else i=t}}else if(void 0!==t)throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const t of this.inputNames)if(void 0===e[t])throw new Error(`input '${t}' is missing in 'feeds'.`);if(a)for(const e of this.outputNames)r[e]=null;const l=await this.handler.run(e,r,i),c={};for(const e in l)if(Object.hasOwnProperty.call(l,e)){const t=l[e];t instanceof n.Tensor?c[e]=t:c[e]=new n.Tensor(t.type,t.data,t.dims)}return(0,o.TRACE_FUNC_END)(),c}async release(){return this.handler.dispose()}static async create(e,t,s,n){let a;(0,o.TRACE_FUNC_BEGIN)();let l={};if("string"==typeof e){if(a=e,"object"==typeof t&&null!==t)l=t;else if(void 0!==t)throw new TypeError("'options' must be an object.")}else if(e instanceof Uint8Array){if(a=e,"object"==typeof t&&null!==t)l=t;else if(void 0!==t)throw new TypeError("'options' must be an object.")}else{if(!(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer))throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");{const r=e;let o=0,i=e.byteLength;if("object"==typeof t&&null!==t)l=t;else if("number"==typeof t){if(o=t,!Number.isSafeInteger(o))throw new RangeError("'byteOffset' must be an integer.");if(o<0||o>=r.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${r.byteLength}).`);if(i=e.byteLength-o,"number"==typeof s){if(i=s,!Number.isSafeInteger(i))throw new RangeError("'byteLength' must be an integer.");if(i<=0||o+i>r.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${r.byteLength-o}].`);if("object"==typeof n&&null!==n)l=n;else if(void 0!==n)throw new TypeError("'options' must be an object.")}else if(void 0!==s)throw new TypeError("'byteLength' must be a number.")}else if(void 0!==t)throw new TypeError("'options' must be an object.");a=new Uint8Array(r,o,i)}}const[c,d]=await(0,r.resolveBackendAndExecutionProviders)(l),u=await c.createInferenceSessionHandler(a,d);return(0,o.TRACE_FUNC_END)(),new i(u)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}},"./node_modules/onnxruntime-common/dist/esm/inference-session.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{InferenceSession:()=>r});const r=s("./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js").InferenceSession},"./node_modules/onnxruntime-common/dist/esm/onnx-model.js":(e,t,s)=>{"use strict";s.r(t)},"./node_modules/onnxruntime-common/dist/esm/onnx-value.js":(e,t,s)=>{"use strict";s.r(t)},"./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{tensorToDataURL:()=>r,tensorToImageData:()=>n});const r=(e,t)=>{const s="undefined"!=typeof document?document.createElement("canvas"):new OffscreenCanvas(1,1);s.width=e.dims[3],s.height=e.dims[2];const r=s.getContext("2d");if(null!=r){let n,o;void 0!==t?.tensorLayout&&"NHWC"===t.tensorLayout?(n=e.dims[2],o=e.dims[3]):(n=e.dims[3],o=e.dims[2]);const i=void 0!==t?.format?t.format:"RGB",a=t?.norm;let l,c;void 0===a||void 0===a.mean?l=[255,255,255,255]:"number"==typeof a.mean?l=[a.mean,a.mean,a.mean,a.mean]:(l=[a.mean[0],a.mean[1],a.mean[2],0],void 0!==a.mean[3]&&(l[3]=a.mean[3])),void 0===a||void 0===a.bias?c=[0,0,0,0]:"number"==typeof a.bias?c=[a.bias,a.bias,a.bias,a.bias]:(c=[a.bias[0],a.bias[1],a.bias[2],0],void 0!==a.bias[3]&&(c[3]=a.bias[3]));const d=o*n;let u=0,p=d,_=2*d,m=-1;"RGBA"===i?(u=0,p=d,_=2*d,m=3*d):"RGB"===i?(u=0,p=d,_=2*d):"RBG"===i&&(u=0,_=d,p=2*d);for(let t=0;t<o;t++)for(let s=0;s<n;s++){const n=(e.data[u++]-c[0])*l[0],o=(e.data[p++]-c[1])*l[1],i=(e.data[_++]-c[2])*l[2],a=-1===m?255:(e.data[m++]-c[3])*l[3];r.fillStyle="rgba("+n+","+o+","+i+","+a+")",r.fillRect(s,t,1,1)}if("toDataURL"in s)return s.toDataURL();throw new Error("toDataURL is not supported")}throw new Error("Can not access image data")},n=(e,t)=>{const s="undefined"!=typeof document?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let r;if(null==s)throw new Error("Can not access image data");{let n,o,i;void 0!==t?.tensorLayout&&"NHWC"===t.tensorLayout?(n=e.dims[2],o=e.dims[1],i=e.dims[3]):(n=e.dims[3],o=e.dims[2],i=e.dims[1]);const a=void 0!==t&&void 0!==t.format?t.format:"RGB",l=t?.norm;let c,d;void 0===l||void 0===l.mean?c=[255,255,255,255]:"number"==typeof l.mean?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],void 0!==l.mean[3]&&(c[3]=l.mean[3])),void 0===l||void 0===l.bias?d=[0,0,0,0]:"number"==typeof l.bias?d=[l.bias,l.bias,l.bias,l.bias]:(d=[l.bias[0],l.bias[1],l.bias[2],0],void 0!==l.bias[3]&&(d[3]=l.bias[3]));const u=o*n;if(void 0!==t&&(void 0!==t.format&&4===i&&"RGBA"!==t.format||3===i&&"RGB"!==t.format&&"BGR"!==t.format))throw new Error("Tensor format doesn't match input tensor dims");const p=4;let _=0,m=1,h=2,f=3,g=0,w=u,M=2*u,b=-1;"RGBA"===a?(g=0,w=u,M=2*u,b=3*u):"RGB"===a?(g=0,w=u,M=2*u):"RBG"===a&&(g=0,M=u,w=2*u),r=s.createImageData(n,o);for(let t=0;t<o*n;_+=p,m+=p,h+=p,f+=p,t++)r.data[_]=(e.data[g++]-d[0])*c[0],r.data[m]=(e.data[w++]-d[1])*c[1],r.data[h]=(e.data[M++]-d[2])*c[2],r.data[f]=-1===b?255:(e.data[b++]-d[3])*c[3]}return r}},"./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js":(e,t,s)=>{"use strict";s.r(t)},"./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{bufferToTensor:()=>n,tensorFromGpuBuffer:()=>a,tensorFromImage:()=>o,tensorFromMLTensor:()=>l,tensorFromPinnedBuffer:()=>c,tensorFromTexture:()=>i});var r=s("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const n=(e,t)=>{if(void 0===e)throw new Error("Image buffer must be defined");if(void 0===t.height||void 0===t.width)throw new Error("Image height and width must be defined");if("NHWC"===t.tensorLayout)throw new Error("NHWC Tensor layout is not supported yet");const{height:s,width:n}=t,o=t.norm??{mean:255,bias:0};let i,a;i="number"==typeof o.mean?[o.mean,o.mean,o.mean,o.mean]:[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],a="number"==typeof o.bias?[o.bias,o.bias,o.bias,o.bias]:[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];const l=void 0!==t.format?t.format:"RGBA",c=void 0!==t.tensorFormat&&void 0!==t.tensorFormat?t.tensorFormat:"RGB",d=s*n,u="RGBA"===c?new Float32Array(4*d):new Float32Array(3*d);let p=4,_=0,m=1,h=2,f=3,g=0,w=d,M=2*d,b=-1;"RGB"===l&&(p=3,_=0,m=1,h=2,f=-1),"RGBA"===c?b=3*d:"RBG"===c?(g=0,M=d,w=2*d):"BGR"===c&&(M=0,w=d,g=2*d);for(let t=0;t<d;t++,_+=p,h+=p,m+=p,f+=p)u[g++]=(e[_]+a[0])/i[0],u[w++]=(e[m]+a[1])/i[1],u[M++]=(e[h]+a[2])/i[2],-1!==b&&-1!==f&&(u[b++]=(e[f]+a[3])/i[3]);return"RGBA"===c?new r.Tensor("float32",u,[1,4,s,n]):new r.Tensor("float32",u,[1,3,s,n])},o=async(e,t)=>{const s="undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement,r="undefined"!=typeof ImageData&&e instanceof ImageData,o="undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap,i="string"==typeof e;let a,l=t??{};const c=()=>{if("undefined"!=typeof document)return document.createElement("canvas");if("undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},d=e=>"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||e instanceof OffscreenCanvas?e.getContext("2d"):null;if(s){const s=c();s.width=e.width,s.height=e.height;const r=d(s);if(null==r)throw new Error("Can not access image data");{let s=e.height,n=e.width;if(void 0!==t&&void 0!==t.resizedHeight&&void 0!==t.resizedWidth&&(s=t.resizedHeight,n=t.resizedWidth),void 0!==t){if(l=t,void 0!==t.tensorFormat)throw new Error("Image input config format must be RGBA for HTMLImageElement");l.tensorFormat="RGBA",l.height=s,l.width=n}else l.tensorFormat="RGBA",l.height=s,l.width=n;r.drawImage(e,0,0),a=r.getImageData(0,0,n,s).data}}else{if(!r){if(o){if(void 0===t)throw new Error("Please provide image config with format for Imagebitmap");const s=c();s.width=e.width,s.height=e.height;const r=d(s);if(null!=r){const t=e.height,s=e.width;return r.drawImage(e,0,0,s,t),a=r.getImageData(0,0,s,t).data,l.height=t,l.width=s,n(a,l)}throw new Error("Can not access image data")}if(i)return new Promise(((t,s)=>{const r=c(),o=d(r);if(!e||!o)return s();const i=new Image;i.crossOrigin="Anonymous",i.src=e,i.onload=()=>{r.width=i.width,r.height=i.height,o.drawImage(i,0,0,r.width,r.height);const e=o.getImageData(0,0,r.width,r.height);l.height=r.height,l.width=r.width,t(n(e.data,l))}}));throw new Error("Input data provided is not supported - aborted tensor creation")}{let s,r;if(void 0!==t&&void 0!==t.resizedWidth&&void 0!==t.resizedHeight?(s=t.resizedHeight,r=t.resizedWidth):(s=e.height,r=e.width),void 0!==t&&(l=t),l.format="RGBA",l.height=s,l.width=r,void 0!==t){const t=c();t.width=r,t.height=s;const n=d(t);if(null==n)throw new Error("Can not access image data");n.putImageData(e,0,0),a=n.getImageData(0,0,r,s).data}else a=e.data}}if(void 0!==a)return n(a,l);throw new Error("Input data provided is not supported - aborted tensor creation")},i=(e,t)=>{const{width:s,height:n,download:o,dispose:i}=t,a=[1,n,s,4];return new r.Tensor({location:"texture",type:"float32",texture:e,dims:a,download:o,dispose:i})},a=(e,t)=>{const{dataType:s,dims:n,download:o,dispose:i}=t;return new r.Tensor({location:"gpu-buffer",type:s??"float32",gpuBuffer:e,dims:n,download:o,dispose:i})},l=(e,t)=>{const{dataType:s,dims:n,download:o,dispose:i}=t;return new r.Tensor({location:"ml-tensor",type:s??"float32",mlTensor:e,dims:n,download:o,dispose:i})},c=(e,t,s)=>new r.Tensor({location:"cpu-pinned",type:e,data:t,dims:s??[t.length]})},"./node_modules/onnxruntime-common/dist/esm/tensor-factory.js":(e,t,s)=>{"use strict";s.r(t)},"./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP:()=>n,NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP:()=>r,checkTypedArray:()=>i});const r=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),n=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let o=!1;const i=()=>{if(!o){o=!0;const e="undefined"!=typeof BigInt64Array&&BigInt64Array.from,t="undefined"!=typeof BigUint64Array&&BigUint64Array.from,s="undefined"!=typeof Float16Array&&Float16Array.from;e&&(r.set("int64",BigInt64Array),n.set(BigInt64Array,"int64")),t&&(r.set("uint64",BigUint64Array),n.set(BigUint64Array,"uint64")),s?(r.set("float16",Float16Array),n.set(Float16Array,"float16")):r.set("float16",Uint16Array)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-impl.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{Tensor:()=>a});var r=s("./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js"),n=s("./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js"),o=s("./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js"),i=s("./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js");class a{constructor(e,t,s){let r,n;if((0,o.checkTypedArray)(),"object"==typeof e&&"location"in e)switch(this.dataLocation=e.location,r=e.type,n=e.dims,e.location){case"cpu-pinned":{const t=o.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(r);if(!t)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(e.data instanceof t))throw new TypeError(`buffer should be of type ${t.name}`);this.cpuData=e.data;break}case"texture":if("float32"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break;case"gpu-buffer":if("float32"!==r&&"float16"!==r&&"int32"!==r&&"int64"!==r&&"uint32"!==r&&"uint8"!==r&&"bool"!==r&&"uint4"!==r&&"int4"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break;case"ml-tensor":if("float32"!==r&&"float16"!==r&&"int32"!==r&&"int64"!==r&&"uint32"!==r&&"uint64"!==r&&"int8"!==r&&"uint8"!==r&&"bool"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break;default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,a;if("string"==typeof e)if(r=e,a=s,"string"===e){if(!Array.isArray(t))throw new TypeError("A string tensor's data must be a string array.");i=t}else{const s=o.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(e);if(void 0===s)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(t)){if("float16"===e&&s===Uint16Array||"uint4"===e||"int4"===e)throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${s.name} as data.`);i="uint64"===e||"int64"===e?s.from(t,BigInt):s.from(t)}else if(t instanceof s)i=t;else{if(!(t instanceof Uint8ClampedArray))throw new TypeError(`A ${r} tensor's data must be type of ${s}`);if("uint8"!==e)throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");i=Uint8Array.from(t)}}else if(a=t,Array.isArray(e)){if(0===e.length)throw new TypeError("Tensor type cannot be inferred from an empty array.");const t=typeof e[0];if("string"===t)r="string",i=e;else{if("boolean"!==t)throw new TypeError(`Invalid element type of data array: ${t}.`);r="bool",i=Uint8Array.from(e)}}else if(e instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(e);else{const t=o.NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(e.constructor);if(void 0===t)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);r=t,i=e}if(void 0===a)a=[i.length];else if(!Array.isArray(a))throw new TypeError("A tensor's dims must be a number array");n=a,this.cpuData=i,this.dataLocation="cpu"}const a=(0,i.calculateSize)(n);if(this.cpuData&&a!==this.cpuData.length&&("uint4"!==r&&"int4"!==r||Math.ceil(a/2)!==this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=a}static async fromImage(e,t){return(0,n.tensorFromImage)(e,t)}static fromTexture(e,t){return(0,n.tensorFromTexture)(e,t)}static fromGpuBuffer(e,t){return(0,n.tensorFromGpuBuffer)(e,t)}static fromMLTensor(e,t){return(0,n.tensorFromMLTensor)(e,t)}static fromPinnedBuffer(e,t,s){return(0,n.tensorFromPinnedBuffer)(e,t,s)}toDataURL(e){return(0,r.tensorToDataURL)(this,e)}toImageData(e){return(0,r.tensorToImageData)(this,e)}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.mlTe