@huggingface/transformers
Version:
State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!
1 lines • 385 kB
JavaScript
(()=>{var e,t,s={fs:e=>{"use strict";e.exports=require("fs")},"onnxruntime-common":e=>{"use strict";e.exports=require("onnxruntime-common")},"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:()=>D,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",EndSet:"EndSet",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),o=Object.freeze({set:r.Set,for:r.For,in:r.In,is:r.Is,if:r.If,else:r.Else,endset:r.EndSet,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}),n=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 _=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 n(e,r.Text));continue}}_((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=_(a);s.push(new n(`${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 n(e,t)),u+=e.length;continue e}}if("'"!==t&&'"'!==t)if(a(t)){const e=_(a);s.push(new n(e,r.NumericLiteral))}else{if(!i(t))throw new SyntaxError(`Unexpected character: ${t}`);{const e=_(i),t=Object.hasOwn(o,e)?o[e]:r.Identifier;t===r.In&&s.at(-1)?.type===r.Not?(s.pop(),s.push(new n("not in",r.NotIn))):s.push(new n(e,t))}}else{++u;const e=_((e=>e!==t));s.push(new n(e,r.StringLiteral)),++u}}return s}var u=class{type="Statement"},_=class extends u{constructor(e){super(),this.body=e}type="Program"},p=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,s){super(),this.assignee=e,this.value=t,this.body=s}type="Set"},g=class extends u{constructor(e,t,s){super(),this.name=e,this.args=t,this.body=s}type="Macro"},f=class extends u{type="Expression"},w=class extends f{constructor(e,t,s){super(),this.object=e,this.property=t,this.computed=s}type="MemberExpression"},M=class extends f{constructor(e,t){super(),this.callee=e,this.args=t}type="CallExpression"},x=class extends f{constructor(e){super(),this.value=e}type="Identifier"},b=class extends f{constructor(e){super(),this.value=e}type="Literal"},k=class extends b{type="NumericLiteral"},y=class extends b{type="StringLiteral"},v=class extends b{type="BooleanLiteral"},T=class extends b{type="NullLiteral"},P=class extends b{type="ArrayLiteral"},F=class extends b{type="TupleLiteral"},C=class extends b{type="ObjectLiteral"},S=class extends f{constructor(e,t,s){super(),this.operator=e,this.left=t,this.right=s}type="BinaryExpression"},A=class extends f{constructor(e,t){super(),this.operand=e,this.filter=t}type="FilterExpression"},E=class extends f{constructor(e,t){super(),this.iterable=e,this.test=t}type="SelectExpression"},L=class extends f{constructor(e,t,s){super(),this.operand=e,this.negate=t,this.test=s}type="TestExpression"},I=class extends f{constructor(e,t){super(),this.operator=e,this.argument=t}type="UnaryExpression"},z=class extends f{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 f{constructor(e,t){super(),this.key=e,this.value=t}type="KeywordArgumentExpression"};function D(e){const t=new _([]);let s=0;function o(t,r){const o=e[s++];if(!o||o.type!==t)throw new Error(`Parser Error: ${r}. ${o.type} !== ${t}.`);return o}function n(){switch(e[s].type){case r.Text:return new y(o(r.Text,"Expected text token").value);case r.OpenStatement:return function(){let t;switch(o(r.OpenStatement,"Expected opening statement token"),e[s].type){case r.Set:++s,t=function(){const t=d();if(a(r.Equals)){++s;const e=d();return new h(t,e,[])}{const i=[];for(o(r.CloseStatement,"Expected %} token");e[s]?.type!==r.OpenStatement||e[s+1]?.type!==r.EndSet;){const e=n();i.push(e)}return o(r.OpenStatement,"Expected {% token"),o(r.EndSet,"Expected endset token"),new h(t,null,i)}}(),o(r.CloseStatement,"Expected closing statement token");break;case r.If:++s,t=l(),o(r.OpenStatement,"Expected {% token"),o(r.EndIf,"Expected endif token"),o(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=V();o(r.CloseStatement,"Expected closing statement token");const s=[];for(;i(r.OpenStatement,r.EndMacro);)s.push(n());return new g(e,t,s)}(),o(r.OpenStatement,"Expected {% token"),o(r.EndMacro,"Expected endmacro token"),o(r.CloseStatement,"Expected %} token");break;case r.For:++s,t=function(){const e=c(!0);if(!(e instanceof x||e instanceof F))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);o(r.In,"Expected `in` keyword following loop variable");const t=d();o(r.CloseStatement,"Expected closing statement token");const l=[];for(;i(r.OpenStatement,r.EndFor)&&i(r.OpenStatement,r.Else);)l.push(n());const u=[];if(a(r.OpenStatement,r.Else))for(++s,++s,o(r.CloseStatement,"Expected closing statement token");i(r.OpenStatement,r.EndFor);)u.push(n());return new m(e,t,l,u)}(),o(r.OpenStatement,"Expected {% token"),o(r.EndFor,"Expected endfor token"),o(r.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${e[s].type}`)}return t}();case r.OpenExpression:return function(){o(r.OpenExpression,"Expected opening expression token");const e=d();return o(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 t=d();o(r.CloseStatement,"Expected closing statement token");const i=[],c=[];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(n());if(e[s]?.type===r.OpenStatement&&e[s+1]?.type!==r.EndIf)if(++s,a(r.ElseIf))o(r.ElseIf,"Expected elseif token"),c.push(l());else for(o(r.Else,"Expected else token"),o(r.CloseStatement,"Expected closing statement token");e[s]?.type!==r.OpenStatement||e[s+1]?.type!==r.EndIf;)c.push(n());return new p(t,i,c)}function c(e=!1){const t=e?q:d,o=[t()],n=a(r.Comma);for(;n&&(++s,o.push(t()),a(r.Comma)););return n?new F(o):o[0]}function d(){return function(){const e=u();if(a(r.If)){++s;const t=u();if(a(r.Else)){++s;const r=u();return new p(t,[e],[r])}return new E(e,t)}return e}()}function u(){let t=f();for(;a(r.Or);){const r=e[s];++s;const o=f();t=new S(r,t,o)}return t}function f(){let t=b();for(;a(r.And);){const r=e[s];++s;const o=b();t=new S(r,t,o)}return t}function b(){let t;for(;a(r.Not);){const r=e[s];++s;const o=b();t=new I(r,o)}return t??function(){let t=D();for(;a(r.ComparisonBinaryOperator)||a(r.In)||a(r.NotIn);){const r=e[s];++s;const o=D();t=new S(r,t,o)}return t}()}function D(){let t=R();for(;a(r.AdditiveBinaryOperator);){const r=e[s];++s;const o=R();t=new S(r,t,o)}return t}function O(e){let t=new M(e,V());return t=B(t),a(r.OpenParen)&&(t=O(t)),t}function V(){o(r.OpenParen,"Expected opening parenthesis for arguments list");const e=function(){const e=[];for(;!a(r.CloseParen);){let t=d();if(a(r.Equals)){if(++s,!(t instanceof x))throw new SyntaxError("Expected identifier for keyword argument");const e=d();t=new j(t,e)}e.push(t),a(r.Comma)&&++s}return e}();return o(r.CloseParen,"Expected closing parenthesis for arguments list"),e}function N(){const e=[];let t=!1;for(;!a(r.CloseSquareBracket);)a(r.Colon)?(e.push(void 0),++s,t=!0):(e.push(d()),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 B(t){for(;a(r.Dot)||a(r.OpenSquareBracket);){const n=e[s];let i;++s;const a=n.type!==r.Dot;if(a)i=N(),o(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}function R(){let t=G();for(;a(r.MultiplicativeBinaryOperator);){const r=e[s];++s;const o=G();t=new S(r,t,o)}return t}function G(){let e=function(){let e=function(){const e=B(q());return a(r.OpenParen)?O(e):e}();for(;a(r.Pipe);){++s;let t=q();if(!(t instanceof x))throw new SyntaxError("Expected identifier for the filter");a(r.OpenParen)&&(t=O(t)),e=new A(e,t)}return e}();for(;a(r.Is);){++s;const t=a(r.Not);t&&++s;let o=q();if(o instanceof v?o=new x(o.value.toString()):o instanceof T&&(o=new x("none")),!(o instanceof x))throw new SyntaxError("Expected identifier for the test");e=new L(e,t,o)}return e}function q(){const t=e[s];switch(t.type){case r.NumericLiteral:return++s,new k(Number(t.value));case r.StringLiteral:return++s,new y(t.value);case r.BooleanLiteral:return++s,new v("true"===t.value.toLowerCase());case r.NullLiteral:return++s,new T(null);case r.Identifier:return++s,new x(t.value);case r.OpenParen:{++s;const t=c();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(d()),a(r.Comma)&&++s;return++s,new P(e)}case r.OpenCurlyBracket:{++s;const e=new Map;for(;!a(r.CloseCurlyBracket);){const t=d();o(r.Colon,"Expected colon between key and value in object literal");const n=d();e.set(t,n),a(r.Comma)&&++s}return++s,new C(e)}default:throw new SyntaxError(`Unexpected token: ${t.type}`)}}for(;s<e.length;)t.body.push(n());return t}function O(e,t,s=1){void 0===t&&(t=e,e=0);const r=[];for(let o=e;o<t;o+=s)r.push(o);return r}function V(e,t,s,r=1){const o=Math.sign(r);o>=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 n=[];for(let i=t;o*i<o*s;i+=r)n.push(e[i]);return n}function N(e){return e.replace(/\b\w/g,(e=>e.toUpperCase()))}var B=class{type="RuntimeValue";value;builtins=new Map;constructor(e=void 0){this.value=e}__bool__(){return new q(!!this.value)}},R=class extends B{type="NumericValue"},G=class extends B{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(N(this.value))))],["length",new R(this.value.length)],["rstrip",new Q((()=>new G(this.value.trimEnd())))],["lstrip",new Q((()=>new G(this.value.trimStart())))],["split",new Q((e=>{const t=e[0]??new H;if(!(t instanceof G||t instanceof H))throw new Error("sep argument must be a string or null");const s=e[1]??new R(-1);if(!(s instanceof R))throw new Error("maxsplit argument must be a number");let r=[];if(t instanceof H){const e=this.value.trimStart();for(const{0:t,index:o}of e.matchAll(/\S+/g)){if(-1!==s.value&&r.length>=s.value&&void 0!==o){r.push(t+e.slice(o+t.length));break}r.push(t)}}else{if(""===t.value)throw new Error("empty separator");r=this.value.split(t.value),-1!==s.value&&r.length>s.value&&r.push(r.splice(s.value).join(t.value))}return new U(r.map((e=>new G(e))))}))]])},q=class extends B{type="BooleanValue"},$=class extends B{type="ObjectValue";__bool__(){return new q(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 U(Array.from(this.value.entries()).map((([e,t])=>new U([new G(e),t]))))))]])},W=class extends ${type="KeywordArgumentsValue"},U=class extends B{type="ArrayValue";builtins=new Map([["length",new R(this.value.length)]]);__bool__(){return new q(this.value.length>0)}},X=class extends U{type="TupleValue"},Q=class extends B{type="FunctionValue"},H=class extends B{type="NullValue"},J=class extends B{type="UndefinedValue"},Y=class{constructor(e){this.parent=e}variables=new Map([["namespace",new Q((e=>{if(0===e.length)return new $(new Map);if(1!==e.length||!(e[0]instanceof $))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 q(s.value==r.value);case"!=":return new q(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 q(s.value<r.value);case">":return new q(s.value>r.value);case">=":return new q(s.value>=r.value);case"<=":return new q(s.value<=r.value)}else if(s instanceof U&&r instanceof U){if("+"===e.operator.value)return new U(s.value.concat(r.value))}else if(r instanceof U){const t=void 0!==r.value.find((e=>e.value===s.value));switch(e.operator.value){case"in":return new q(t);case"not in":return new q(!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 q(r.value.includes(s.value));case"not in":return new q(!r.value.includes(s.value))}if(s instanceof G&&r instanceof $)switch(e.operator.value){case"in":return new q(r.value.has(s.value));case"not in":return new q(!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 o of e)if("KeywordArgumentExpression"===o.type){const e=o;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(o,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 U)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 U(s.value.reverse());case"sort":return new U(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}`)}})));case"join":return new G(s.value.map((e=>e.value)).join(""));case"string":return new G(ee(s));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(N(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"join":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 $)switch(t.value){case"items":return new U(Array.from(s.value.entries()).map((([e,t])=>new U([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 o=r.callee.value;if("tojson"===o){const[,e]=this.evaluateArguments(r.args,t),o=e.get("indent")??new H;if(!(o instanceof R||o instanceof H))throw new Error("If set, indent must be a number");return new G(ee(s,o.value))}if("join"===o){let e;if(s instanceof G)e=Array.from(s.value);else{if(!(s instanceof U))throw new Error(`Cannot apply filter "${o}" to type: ${s.type}`);e=s.value.map((e=>e.value))}const[n,i]=this.evaluateArguments(r.args,t),a=n.at(0)??i.get("separator")??new G("");if(!(a instanceof G))throw new Error("separator must be a string");return new G(e.join(a.value))}if(s instanceof U){switch(o){case"selectattr":case"rejectattr":{const e="selectattr"===o;if(s.value.some((e=>!(e instanceof $))))throw new Error(`\`${o}\` can only be applied to array of objects`);if(r.args.some((e=>"StringLiteral"!==e.type)))throw new Error(`arguments of \`${o}\` must be strings`);const[n,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(n.value),r=!!s&&l(s,a);return e?r:!r}));return new U(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"),o=s.value.map((e=>{if(!(e instanceof $))throw new Error("items in map must be an object");return e.value.get(t.value)??r??new J}));return new U(o)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${o}`)}if(s instanceof G){if("indent"===o){const[e,o]=this.evaluateArguments(r.args,t),n=e.at(0)??o.get("width")??new R(4);if(!(n instanceof R))throw new Error("width must be a number");const i=e.at(1)??o.get("first")??new q(!1),a=e.at(2)??o.get("blank")??new q(!1),l=s.value.split("\n"),c=" ".repeat(n.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: ${o}`)}throw new Error(`Cannot apply filter "${o}" 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 o=r(s);return new q(e.negate?!o:o)}evaluateUnaryExpression(e,t){const s=this.evaluate(e.argument,t);if("not"===e.operator.value)return new q(!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 W(r));const o=this.evaluate(e.callee,t);if("FunctionValue"!==o.type)throw new Error(`Cannot call something that is not a function: got ${o.type}`);return o.value(s,t)}evaluateSliceExpression(e,t,s){if(!(e instanceof U||e instanceof G))throw new Error("Slice object must be an array or string");const r=this.evaluate(t.start,s),o=this.evaluate(t.stop,s),n=this.evaluate(t.step,s);if(!(r instanceof R||r instanceof J))throw new Error("Slice start must be numeric or undefined");if(!(o instanceof R||o instanceof J))throw new Error("Slice stop must be numeric or undefined");if(!(n instanceof R||n instanceof J))throw new Error("Slice step must be numeric or undefined");return e instanceof U?new U(V(e.value,r.value,o.value,n.value)):new G(V(Array.from(e.value),r.value,o.value,n.value).join(""))}evaluateMemberExpression(e,t){const s=this.evaluate(e.object,t);let r,o;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 $){if(!(r instanceof G))throw new Error(`Cannot access property with non-string: got ${r.type}`);o=s.value.get(r.value)??s.builtins.get(r.value)}else if(s instanceof U||s instanceof G)if(r instanceof R)o=s.value.at(r.value),s instanceof G&&(o=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}`);o=s.builtins.get(r.value)}else{if(!(r instanceof G))throw new Error(`Cannot access property with non-string: got ${r.type}`);o=s.builtins.get(r.value)}return o instanceof B?o:new J}evaluateSet(e,t){const s=e.value?this.evaluate(e.value,t):this.evaluateBlock(e.body,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,o=this.evaluate(r.object,t);if(!(o instanceof $))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");o.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,o;if("SelectExpression"===e.iterable.type){const t=e.iterable;o=this.evaluate(t.iterable,s),r=t.test}else o=this.evaluate(e.iterable,s);if(!(o instanceof U))throw new Error(`Expected iterable type in for loop: got ${o.type}`);const n=[],i=[];for(let t=0;t<o.value.length;++t){const a=new Y(s),l=o.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}n.push(l),i.push(c)}let a="",l=!0;for(let t=0;t<n.length;++t){const r=new Map([["index",new R(t+1)],["index0",new R(t)],["revindex",new R(n.length-t)],["revindex0",new R(n.length-t-1)],["first",new q(0===t)],["last",new q(t===n.length-1)],["length",new R(n.length)],["previtem",t>0?n[t-1]:new J],["nextitem",t<n.length-1?n[t+1]:new J]]);s.setVariable("loop",new $(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 o;t=t.slice(),"KeywordArgumentsValue"===t.at(-1)?.type&&(o=t.pop());for(let s=0;s<e.args.length;++s){const n=e.args[s],i=t[s];if("Identifier"===n.type){const e=n;if(!i)throw new Error(`Missing positional argument: ${e.value}`);r.setVariable(e.value,i)}else{if("KeywordArgumentExpression"!==n.type)throw new Error(`Unknown argument type: ${n.type}`);{const e=n,t=i??o?.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 q(e.value);case"NullLiteral":return new H(e.value);case"ArrayLiteral":return new U(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,o]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(o,t))}return new $(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 q(e);case"undefined":return new J;case"object":return null===e?new H:Array.isArray(e)?new U(e.map(Z)):new $(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):"",o="\n"+s.repeat(r),n=o+s;if("ArrayValue"===e.type){const s=e.value.map((e=>ee(e,t,r+1)));return t?`[${n}${s.join(`,${n}`)}${o}]`:`[${s.join(", ")}]`}{const s=Array.from(e.value.entries()).map((([e,s])=>{const o=`"${e}": ${ee(s,t,r+1)}`;return t?`${n}${o}`:o}));return t?`{${s.join(",")}${o}}`:`{${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=D(t)}render(e){const t=new Y;if(t.set("false",!1),t.set("true",!0),t.set("raise_exception",(e=>{throw new Error(e)})),t.set("range",O),e)for(const[s,r]of Object.entries(e))t.set(s,r);return new K(t).run(this.parsed).value}}},"./src/backends/onnx.js":(e,t,s)=>{"use strict";var r,o;s.r(t),s.d(t,{Tensor:()=>l.Tensor,createInferenceSession:()=>f,deviceToExecutionProviders:()=>h,isONNXProxy:()=>x,isONNXTensor:()=>w});var n=s("./src/env.js"),i=s("onnxruntime-node"),a=s("?8b6b"),l=s("onnxruntime-common");const c=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),d=[];let u,_;const p=Symbol.for("onnxruntime");if(p in globalThis)_=globalThis[p];else if(n.apis.IS_NODE_ENV){switch(_=i??(r||(r=s.t(i,2))),process.platform){case"win32":d.push("dml");break;case"linux":"x64"===process.arch&&d.push("cuda")}d.push("cpu"),u=["cpu"]}else _=o||(o=s.t(a,2)),n.apis.IS_WEBNN_AVAILABLE&&d.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),n.apis.IS_WEBGPU_AVAILABLE&&d.push("webgpu"),d.push("wasm"),u=["wasm"];const m=_.InferenceSession;function h(e=null){if(!e)return u;switch(e){case"auto":return d;case"gpu":return d.filter((e=>["webgpu","cuda","dml","webnn-gpu"].includes(e)))}if(d.includes(e))return[c[e]??e];throw new Error(`Unsupported device: "${e}". Should be one of: ${d.join(", ")}.`)}let g=null;async function f(e,t,s){g&&await g;const r=m.create(e,t);g??=r;const o=await r;return o.config=s,o}function w(e){return e instanceof _.Tensor}const M=_?.env;function x(){return M?.wasm?.proxy}M?.wasm&&("undefined"!=typeof ServiceWorkerGlobalScope&&self instanceof ServiceWorkerGlobalScope||M.wasm.wasmPaths||(M.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${n.env.version}/dist/`),M.wasm.proxy=!1),M?.webgpu&&(M.webgpu.powerPreference="high-performance"),n.env.backends.onnx=M},"./src/base/feature_extraction_utils.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{FeatureExtractor:()=>i,validate_audio_inputs:()=>a});var r=s("./src/utils/constants.js"),o=s("./src/utils/generic.js"),n=s("./src/utils/hub.js");class i extends o.Callable{constructor(e){super(),this.config=e}static async from_pretrained(e,t){return new this(await(0,n.getModelJSON)(e,r.FEATURE_EXTRACTOR_NAME,!0,t))}}function a(e,t){if(!(e instanceof Float32Array||e instanceof Float64Array))throw new Error(`${t} expects input to be a Float32Array or a Float64Array, but got ${e?.constructor?.name??typeof e} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}},"./src/base/image_processors_utils.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{ImageProcessor:()=>M,center_to_corners_format:()=>u,post_process_instance_segmentation:()=>w,post_process_object_detection:()=>_,post_process_panoptic_segmentation:()=>f,post_process_semantic_segmentation:()=>p});var r=s("./src/utils/generic.js"),o=s("./src/utils/tensor.js"),n=s("./src/utils/maths.js"),i=(s("./src/utils/image.js"),s("./src/utils/core.js")),a=s("./src/utils/hub.js"),l=s("./src/utils/constants.js");function c(e,t,s=0,r=null){const o=e/t;let i=(0,n.bankers_round)(o)*t;return null!==r&&i>r&&(i=Math.floor(o)*t),i<s&&(i=Math.ceil(o)*t),i}function d([e,t],s){return[Math.max(Math.floor(e/s),1)*s,Math.max(Math.floor(t/s),1)*s]}function u([e,t,s,r]){return[e-s/2,t-r/2,e+s/2,t+r/2]}function _(e,t=.5,s=null,r=!1){const o=e.logits,i=e.pred_boxes,[a,l,c]=o.dims;if(null!==s&&s.length!==a)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let d=[];for(let e=0;e<a;++e){let a=null!==s?s[e]:null,_={boxes:[],classes:[],scores:[]},p=o[e],m=i[e];for(let e=0;e<l;++e){let s,o=p[e],i=[];if(r){s=o.sigmoid().data;for(let e=0;e<s.length;++e)s[e]>t&&i.push(e)}else{let e=(0,n.max)(o.data)[1];if(e===c-1)continue;if(s=(0,n.softmax)(o.data),s[e]<t)continue;i.push(e)}for(const t of i){let r=m[e].data;r=u(r),null!==a&&(r=r.map(((e,t)=>e*a[(t+1)%2]))),_.boxes.push(r),_.classes.push(t),_.scores.push(s[t])}}d.push(_)}return d}function p(e,t=null){const s=e.logits,r=s.dims[0];if(null!==t&&t.length!==r)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const n=[];for(let e=0;e<r;++e){const r=null!==t?t[e]:null;let i=s[e];null!==r&&(i=(0,o.interpolate)(i,r,"bilinear",!1));const[a,l]=r??i.dims.slice(-2),c=new o.Tensor("int32",new Int32Array(a*l),[a,l]),d=i[0].data,u=c.data;for(let e=1;e<i.dims[0];++e){const t=i[e].data;for(let s=0;s<t.length;++s)t[s]>d[s]&&(d[s]=t[s],u[s]=e)}const _=new Array(i.dims[0]);for(let e=0;e<u.length;++e){const t=u[e];_[t]=t}const p=_.filter((e=>void 0!==e));n.push({segmentation:c,labels:p})}return n}function m(e,t,s,r){const o=[],i=[],a=[];for(let l=0;l<e.dims[0];++l){const c=e[l],d=t[l],u=(0,n.max)(c.data)[1];if(u===r)continue;const _=(0,n.softmax)(c.data)[u];_>s&&(o.push(d),i.push(_),a.push(u))}return[o,i,a]}function h(e,t,s,r=.5,o=.8){const n=[];let i=0,a=0;const l=t[s].data;for(let t=0;t<e.length;++t)e[t]===s&&(n.push(t),++i),l[t]>=r&&++a;let c=i>0&&a>0;if(c){c=i/a>o}return[c,n]}function g(e,t,s,r,n,i=null,a=null){const[l,c]=a??e[0].dims,d=new o.Tensor("int32",new Int32Array(l*c),[l,c]),u=[];if(null!==a)for(let t=0;t<e.length;++t)e[t]=(0,o.interpolate)(e[t],a,"bilinear",!1);const _=new Int32Array(e[0].data.length),p=new Float32Array(e[0].data.length);for(let s=0;s<e.length;++s){let r=t[s];const o=e[s].data;for(let e=0;e<o.length;++e)o[e]*=r,o[e]>p[e]&&(_[e]=s,p[e]=o[e])}let m=0;const g=d.data;for(let o=0;o<s.length;++o){const i=s[o],[a,l]=h(_,e,o,r,n);if(a){++m;for(const e of l)g[e]=m;u.push({id:m,label_id:i,score:t[o]})}}return[d,u]}function f(e,t=.5,s=.5,r=.8,n=null,i=null){null===n&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),n=new Set);const a=e.class_queries_logits??e.logits,l=(e.masks_queries_logits??e.pred_masks).sigmoid();let[c,d,u]=a.dims;if(u-=1,null!==i&&i.length!==c)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let _=[];for(let e=0;e<c;++e){let c=null!==i?i[e]:null,d=a[e],p=l[e],[h,f,w]=m(d,p,t,u);if(0===w.length){let[e,t]=c??p.dims.slice(-2),s=new o.Tensor("int32",new Int32Array(e*t).fill(-1),[e,t]);_.push({segmentation:s,segments_info:[]});continue}let[M,x]=g(h,f,w,s,r,n,c);_.push({segmentation:M,segments_info:x})}return _}function w(e,t=.5,s=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class M extends r.Callable{constructor(e){super(),this.image_mean=e.image_mean??e.mean,this.image_std=e.image_std??e.std,this.resample=e.resample??2,this.do_rescale=e.do_rescale??!0,this.rescale_factor=e.rescale_factor??1/255,this.do_normalize=e.do_normalize,this.do_thumbnail=e.do_thumbnail,this.size=e.size??e.image_size,this.do_resize=e.do_resize??void 0!==this.size,this.size_divisibility=e.size_divisibility??e.size_divisor,this.do_center_crop=e.do_center_crop,this.crop_size=e.crop_size,this.do_convert_rgb=e.do_convert_rgb??!0,this.do_crop_margin=e.do_crop_margin,this.pad_size=e.pad_size,this.do_pad=e.do_pad,this.do_pad&&!this.pad_size&&this.size&&void 0!==this.size.width&&void 0!==this.size.height&&(this.pad_size=this.size),this.do_flip_channel_order=e.do_flip_channel_order??!1,this.config=e}async thumbnail(e,t,s=2){const r=e.height,o=e.width,n=t.height,i=t.width;let a=Math.min(r,n),l=Math.min(o,i);return a===r&&l===o?e:(r>o?l=Math.floor(o*a/r):o>r&&(a=Math.floor(r*l/o)),await e.resize(l,a,{resample:s}))}async crop_margin(e,t=200){const s=e.clone().grayscale(),r=(0,n.min)(s.data)[0],o=(0,n.max)(s.data)[0]-r;if(0===o)return e;const i=t/255;let a=s.width,l=s.height,c=0,d=0;const u=s.data;for(let e=0;e<s.height;++e){const t=e*s.width;for(let n=0;n<s.width;++n)(u[t+n]-r)/o<i&&(a=Math.min(a,n),l=Math.min(l,e),c=Math.max(c,n),d=Math.max(d,e))}return e=await e.crop([a,l,c,d])}pad_image(e,t,s,{mode:r="constant",center:o=!1,constant_values:n=0}={}){const[a,l,c]=t;let d,u;if("number"==typeof s?(d=s,u=s):"square"===s?d=u=Math.max(a,l):(d=s.width,u=s.height),d!==l||u!==a){const s=new Float32Array(d*u*c);if(Array.isArray(n))for(let e=0;e<s.length;++e)s[e]=n[e%c];else 0!==n&&s.fill(n);const[_,p]=o?[Math.floor((d-l)/2),Math.floor((u-a)/2)]:[0,0];for(let t=0;t<a;++t){const r=(t+p)*d,o=t*l;for(let t=0;t<l;++t){const n=(r+t+_)*c,i=(o+t)*c;for(let t=0;t<c;++t)s[n+t]=e[i+t]}}if("symmetric"===r){if(o)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");const t=a-1,r=l-1;for(let o=0;o<u;++o){const n=o*d,u=(0,i.calculateReflectOffset)(o,t)*l;for(let t=0;t<d;++t){if(o<a&&t<l)continue;const d=(n+t)*c,_=(u+(0,i.calculateReflectOffset)(t,r))*c;for(let t=0;t<c;++t)s[d+t]=e[_+t]}}}e=s,t=[u,d,c]}return[e,t]}rescale(e){for(let t=0;t<e.length;++t)e[t]=this.rescale_factor*e[t]}get_resize_output_image_size(e,t){const[s,r]=e.size;let o,n;if(this.do_thumbnail){const{height:e,width:s}=t;o=Math.min(e,s)}else Number.isInteger(t)?(o=t,n=this.config.max_size??o):void 0!==t&&(o=t.shortest_edge,n=t.longest_edge);if(void 0!==o||void 0!==n){const e=void 0===o?1:Math.max(o/s,o/r),t=s*e,i=r*e,a=void 0===n?1:Math.min(n/t,n/i);let l=Math.floor(Number((t*a).toFixed(2))),c=Math.floor(Number((i*a).toFixed(2)));return void 0!==this.size_divisibility&&([l,c]=d([l,c],this.size_divisibility)),[l,c]}if(void 0!==t&&void 0!==t.width&&void 0!==t.height){let e=t.width,o=t.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let t=o/r,n=e/s;Math.abs(1-n)<Math.abs(1-t)?t=n:n=t,o=c(t*r,this.config.ensure_multiple_of),e=c(n*s,this.config.ensure_multiple_of)}return[e,o]}if(void 0!==this.size_divisibility)return d([s,r],this.size_divisibility);if(void 0!==t.min_pixels&&void 0!==t.max_pixels){const{min_pixels:e,max_pixels:o}=t;return function(e,t,s=28,r=3136,o=1003520){if(e<s||t<s)throw new Error(`height:${e} or width:${t} must be larger than factor:${s}`);if(Math.max(e,t)/Math.min(e,t)>200)throw new Error("absolute aspect ratio must be smaller than 200, got "+Math.max(e,t)/Math.min(e,t));let n=Math.round(e/s)*s,i=Math.round(t/s)*s;if(n*i>o){const r=Math.sqrt(e*t/o);n=Math.floor(e/r/s)*s,i=Math.floor(t/r/s)*s}else if(n*i<r){const o=Math.sqrt(r/(e*t));n=Math.ceil(e*o/s)*s,i=Math.ceil(t*o/s)*s}return[n,i]}(r,s,this.config.patch_size*this.config.merge_size,e,o)}throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(t)}`)}async resize(e){const[t,s]=this.get_resize_output_image_size(e,this.size);return await e.resize(t,s,{resample:this.resample})}async preprocess(e,{do_normalize:t=null,do_pad:s=null,do_convert_rgb:r=null,do_convert_grayscale:n=null,do_flip_channel_order:i=null}={}){this.do_crop_margin&&(e=await this.crop_margin(e));const[a,l]=e.size;if(r??this.do_convert_rgb?e=e.rgb():n&&(e=e.grayscale()),this.do_resize&&(e=await this.resize(e)),this.do_thumbnail&&(e=await this.thumbnail(e,this.size,this.resample)),this.do_center_crop){let t,s;Number.isInteger(this.crop_size)?(t=this.crop_size,s=this.crop_size):(t=this.crop_size.width,s=this.crop_size.height),e=await e.center_crop(t,s)}const c=[e.height,e.width];let u=Float32Array.from(e.data),_=[e.height,e.width,e.channels];if(this.do_rescale&&this.rescale(u),t??this.do_normalize){let t=this.image_mean;Array.isArray(this.image_mean)||(t=new Array(e.channels).fill(t));let s=this.image_std;if(Array.isArray(this.image_std)||(s=new Array(e.channels).fill(t)),t.length!==e.channels||s.length!==e.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${t.length}) and \`image_std\` (${s.length}) must match the number of channels in the image (${e.channels}).`);for(let r=0;r<u.length;r+=e.channels)for(let o=0;o<e.channels;++o)u[r+o]=(u[r+o]-t[o])/s[o]}if(s??this.do_pad)if(this.pad_size){const t=this.pad_image(u,[e.height,e.width,e.channels],this.pad_size);[u,_]=t}else if(this.size_divisibility){const[e,t]=d([_[1],_[0]],this.size_divisibility);[u,_]=this.pad_image(u,_,{width:e,height:t})}if(i??this.do_flip_channel_order){if(3!==_[2])throw new Error("Flipping channel order is only supported for RGB images.");for(let e=0;e<u.length;e+=3){const t=u[e];u[e]=u[e+2],u[e+2]=t}}return{original_size:[l,a],reshaped_input_size:c,pixel_values:new o.Tensor("float32",u,_).permute(2,0,1)}}async _call(e,...t){Array.isArray(e)||(e=[e]);const s=await Promise.all(e.map((e=>this.preprocess(e))));return{pixel_values:(0,o.stack)(s.map((e=>e.pixel_values)),0),original_sizes:s.map((e=>e.original_size)),reshaped_input_sizes:s.map((e=>e.reshaped_input_size))}}static async from_pretrained(e,t){return new this(await(0,a.getModelJSON)(e,l.IMAGE_PROCESSOR_NAME,!0,t))}}},"./src/base/processing_utils.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{Processor:()=>i});var r=s("./src/utils/constants.js"),o=s("./src/utils/generic.js"),n=s("./src/utils/hub.js");class i extends o.Callable{static classes=["image_processor_class","tokenizer_class","feature_extractor_class"];static uses_processor_config=!1;constructor(e,t){super(),this.config=e,this.components=t}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(e,t={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(e,{tokenize:!1,...t})}batch_decode(...e){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...e)}decode(...e){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...e)}async _call(e,...t){for(const s of[this.image_processor,this.feature_extractor,this.tokenizer])if(s)return s(e,...t);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(e,t){const[s,o]=await Promise.all([this.uses_processor_config?(0,n.getModelJSON)(e,r.PROCESSOR_NAME,!0,t):{},Promise.all(this.classes.filter((e=>e in this)).map((async s=>{const r=await this[s].from_pretrained(e,t);return[s.replace(/_class$/,""),r]}))).then(Object.fromEntries)]);return new this(s,o)}}},"./src/configs.js":(e,t,s)=>{"use strict";s.r(t),s.d(t,{AutoConfig:()=>l,PretrainedConfig:()=>a,getKeyValueShapes:()=>i});var r=s("./src/utils/core.js"),o=s("./src/utils/hub.js");function n(e){const t={};let s={};switch(e.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"smolvlm":s=n(e.text_config);break;case"moondream1":s=n(e.phi_config);break;case"musicgen":s=n(e.decoder);break;case"multi_modality":s=n(e.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":t.num_heads="n_head",t.num_layers="n_layer",t.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":t.num_heads="num_attention_heads",t.num_layers="num_hidden_layers",t.hidden_size="hidden_size";break;case"llama":case"olmo":case"olmo2":case"mobilellm":case"granite":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":t.num_heads="num_key_value_heads",t.num_layers="num_hidden_layers",t.hidden_size="hidden_size",t.num_attention_heads="num_attention_heads";break;case"gemma":case"gemma2":case"gemma3_text":case"glm":case"helium":t.num_heads="num_key_value_heads",t.num_layers="num_hidden_layers",t.dim_kv="head_dim";break;case"openelm":t.num_heads="num_kv_heads",t.num_layers="num_transformer_layers",t.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":t.num_heads="num_heads",t.num_layers="num_layers",t.hidden_size="hidden_size";break;case"bloom":t.num_heads="n_head",t.num_layers="n_layer",t.hidden_size="hidden_size";break;case"mpt":t.num_heads="n_heads",t.num_layers="n_layers",t.hidden_size="d_model";break;case"exaone":t.num_heads="num_key_value_heads",t.num_layers="num_layers",t.dim_kv="head_dim",t.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":t.num_decoder_layers="num_decoder_layers",t.num_decoder_heads="num_heads",t.decoder_dim_kv="d_kv",t.num_encoder_layers="num_layers",t.num_encoder_heads="num_heads",t.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"lite-whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":t.num_decoder_layers="decoder_layers",t.num_decoder_heads="decoder_attention_heads",t.decoder_hidden_size="d_model",t.num_encoder_layers="encoder_layers",t.num_encoder_heads="encoder_attention_heads",t.encoder_hidden_size="d_model";break;case"speecht5":t.num_decoder_layers="decoder_layers",t.num_decoder_heads="decoder_attention_heads",t.decoder_hidden_size="hidden_size",t.num_encoder_layers="encoder_layers",t.num_encoder_heads="encoder_attention_heads",t.encoder_hidden_size="hidden_size";break;case"trocr":t.num_encoder_layers=t.num_decoder_layers="decoder_layers",t.num_encoder_heads=t.num_decoder_heads="decoder_attention_heads",t.encoder_hidden_size=t.decoder_hidden_size="d_model";break;case"musicgen_decoder":t.num_encoder_layers=t.num_decoder_layers="num_hidden_layers",t.num_encoder_heads=t.num_decoder_heads="num_attention_heads",t.encoder_hidden_size=t.decoder_hidden_size="hidden_size";break;case"moonshine":t.num_decoder_layers="decoder_num_hidden_layers",t.num_decoder_heads="decoder_num_key_value_heads",t.num_encoder_layers="encoder_num_hidden_layers",t.num_encoder_heads="encoder_num_key_value_heads",t.encoder_hidden_size=t.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const o=n(e.decoder),i="num_decoder_layers"in o,a=(0,r.pick)(e,["model_type","is_encoder_decoder"]);return i?(a.num_decoder_layers=o.num_decoder_layers,a.num_decoder_heads=o.num_decoder_heads,a.decoder_hidden_size=o.decoder_hidden_size,a.num_encoder_layers=o.num_encoder_layers,a.num_encoder_heads=o.num_encoder_heads,a.encoder_hidden_size=o.encoder_hidden_size):(a.num_layers=o.num_layers,a.num_heads=o.num_heads,a.hidden_size=o.hidden_size),a}const o={...s,...(0,r.pick)(e,["model_type","multi_query","is_encoder_decoder"])};for(const s in t)o[s]=e[t[s]];return o}function i(e,{prefix:t="past_key_values",batch_size:s=1}={}){const r={},o=e.normalized_config;if(o.is_encoder_decoder&&"num_encoder_heads"in o&&"num_decoder_heads"in o){const e=o.encoder_dim_kv??o.encoder_hidden_size/o.num_encoder_heads,n=o.decoder_dim_kv??o.decoder_hidden_size/o.num_decoder_heads,i=[s,o.num_encoder_heads,0,e],a=[s,o.num_decoder_heads,0,n];for(let e=0;e<o.num_decoder_layers;++e)r[`${t}.${e}.encoder.key`]=i,r[`${t}.${e}.encoder.value`]=i,r[`${t}.${e}.decoder.key`]=a,r[`${t}.${e}.decoder.value`]=a}else{const e=o.num_heads,n=o.num_layers,i=o.dim_kv??o.hidden_size/(o.num_attention_heads??e);if("falcon"===o.model_type){const o=[s*e,0,i];for(let e=0;e<n;++e)r[`${t}.${e}.key`]=o,r[`${t}.${e}.value`]=o}else if(o.multi_query){const o=[s*e,0,2*i];for(let e=0;e<n;++e)r[`${t}.${e}.ke