@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 • 454 kB
JavaScript
import*as e from"onnxruntime-common";import*as t from"onnxruntime-web";var s,r,o={"onnxruntime-common":t=>{t.exports=e},"onnxruntime-web":e=>{e.exports=t},"?2ce3":()=>{},"?7992":()=>{},"?5af5":()=>{},"?2b25":()=>{},"?db59":()=>{},"?383f":()=>{},"?fa4b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,t,s)=>{s.r(t),s.d(t,{Environment:()=>ne,Interpreter:()=>ae,Template:()=>he,parse:()=>G,tokenize:()=>c});var r=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",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",Comment:"Comment"}),o=class{constructor(e,t){this.value=e,this.type=t}};function n(e){return/\w/.test(e)}function a(e){return/[0-9]/.test(e)}var i=[["{%",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.AdditiveBinaryOperator],["*",r.MultiplicativeBinaryOperator],["/",r.MultiplicativeBinaryOperator],["%",r.MultiplicativeBinaryOperator],["=",r.Equals]],l=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function c(e,t={}){const s=[],c=function(e,t={}){return e.endsWith("\n")&&(e=e.slice(0,-1)),t.lstrip_blocks&&(e=e.replace(/^[ \t]*({[#%-])/gm,"$1")),t.trim_blocks&&(e=e.replace(/([#%-]})\n/g,"$1")),e.replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{").replace(/-#}\s*/g,"#}").replace(/\s*{#-/g,"{#").replace(/{%\s*(end)?generation\s*%}/gs,"")}(e,t);let d=0,u=0;const _=e=>{let t="";for(;e(c[d]);)if("\\"!==c[d]){if(t+=c[d++],d>=c.length)throw new SyntaxError("Unexpected end of input")}else{if(++d,d>=c.length)throw new SyntaxError("Unexpected end of input");const e=c[d++],s=l.get(e);if(void 0===s)throw new SyntaxError(`Unexpected escaped character: ${e}`);t+=s}return t};e:for(;d<c.length;){const e=s.at(-1)?.type;if(void 0===e||e===r.CloseStatement||e===r.CloseExpression||e===r.Comment){let e="";for(;d<c.length&&("{"!==c[d]||"%"!==c[d+1]&&"{"!==c[d+1]&&"#"!==c[d+1]);)e+=c[d++];if(e.length>0){s.push(new o(e,r.Text));continue}}if("{"===c[d]&&"#"===c[d+1]){d+=2;let e="";for(;"#"!==c[d]||"}"!==c[d+1];){if(d+2>=c.length)throw new SyntaxError("Missing end of comment tag");e+=c[d++]}s.push(new o(e,r.Comment)),d+=2;continue}_((e=>/\s/.test(e)));const t=c[d];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.StringLiteral:case r.CloseParen:case r.CloseSquareBracket:break;default:{++d;const e=_(a);s.push(new o(`${t}${e}`,e.length>0?r.NumericLiteral:r.UnaryOperator));continue}}}for(const[e,t]of i){if("}}"===e&&u>0)continue;if(c.slice(d,d+e.length)===e){s.push(new o(e,t)),t===r.OpenExpression?u=0:t===r.OpenCurlyBracket?++u:t===r.CloseCurlyBracket&&--u,d+=e.length;continue e}}if("'"!==t&&'"'!==t)if(a(t)){let e=_(a);if("."===c[d]&&a(c[d+1])){++d;e=`${e}.${_(a)}`}s.push(new o(e,r.NumericLiteral))}else{if(!n(t))throw new SyntaxError(`Unexpected character: ${t}`);{const e=_(n);s.push(new o(e,r.Identifier))}}else{++d;const e=_((e=>e!==t));s.push(new o(e,r.StringLiteral)),++d}}return s}var d=class{type="Statement"},u=class extends d{constructor(e){super(),this.body=e}type="Program"},_=class extends d{constructor(e,t,s){super(),this.test=e,this.body=t,this.alternate=s}type="If"},m=class extends d{constructor(e,t,s,r){super(),this.loopvar=e,this.iterable=t,this.body=s,this.defaultBlock=r}type="For"},p=class extends d{type="Break"},h=class extends d{type="Continue"},g=class extends d{constructor(e,t,s){super(),this.assignee=e,this.value=t,this.body=s}type="Set"},f=class extends d{constructor(e,t,s){super(),this.name=e,this.args=t,this.body=s}type="Macro"},M=class extends d{constructor(e){super(),this.value=e}type="Comment"},w=class extends d{type="Expression"},T=class extends w{constructor(e,t,s){super(),this.object=e,this.property=t,this.computed=s}type="MemberExpression"},b=class extends w{constructor(e,t){super(),this.callee=e,this.args=t}type="CallExpression"},x=class extends w{constructor(e){super(),this.value=e}type="Identifier"},P=class extends w{constructor(e){super(),this.value=e}type="Literal"},k=class extends P{type="IntegerLiteral"},F=class extends P{type="FloatLiteral"},v=class extends P{type="StringLiteral"},y=class extends P{type="ArrayLiteral"},C=class extends P{type="TupleLiteral"},S=class extends P{type="ObjectLiteral"},A=class extends w{constructor(e,t,s){super(),this.operator=e,this.left=t,this.right=s}type="BinaryExpression"},E=class extends w{constructor(e,t){super(),this.operand=e,this.filter=t}type="FilterExpression"},L=class extends d{constructor(e,t){super(),this.filter=e,this.body=t}type="FilterStatement"},I=class extends w{constructor(e,t){super(),this.lhs=e,this.test=t}type="SelectExpression"},z=class extends w{constructor(e,t,s){super(),this.operand=e,this.negate=t,this.test=s}type="TestExpression"},D=class extends w{constructor(e,t){super(),this.operator=e,this.argument=t}type="UnaryExpression"},j=class extends w{constructor(e=void 0,t=void 0,s=void 0){super(),this.start=e,this.stop=t,this.step=s}type="SliceExpression"},V=class extends w{constructor(e,t){super(),this.key=e,this.value=t}type="KeywordArgumentExpression"},N=class extends w{constructor(e){super(),this.argument=e}type="SpreadExpression"},O=class extends d{constructor(e,t,s){super(),this.call=e,this.callerArgs=t,this.body=s}type="CallStatement"},B=class extends w{constructor(e,t,s){super(),this.condition=e,this.trueExpr=t,this.falseExpr=s}type="Ternary"};function G(e){const t=new u([]);let s=0;function n(t,r){const o=e[s++];if(!o||o.type!==t)throw new Error(`Parser Error: ${r}. ${o.type} !== ${t}.`);return o}function a(e){if(!d(e))throw new SyntaxError(`Expected ${e}`);++s}function i(){switch(e[s].type){case r.Comment:return new M(e[s++].value);case r.Text:return new v(n(r.Text,"Expected text token").value);case r.OpenStatement:return function(){if(n(r.OpenStatement,"Expected opening statement token"),e[s].type!==r.Identifier)throw new SyntaxError(`Unknown statement, got ${e[s].type}`);const t=e[s].value;let o;switch(t){case"set":++s,o=function(){const e=P();let t=null;const o=[];if(l(r.Equals))++s,t=P();else{for(n(r.CloseStatement,"Expected %} token");!c("endset");)o.push(i());n(r.OpenStatement,"Expected {% token"),a("endset")}return n(r.CloseStatement,"Expected closing statement token"),new g(e,t,o)}();break;case"if":++s,o=w(),n(r.OpenStatement,"Expected {% token"),a("endif"),n(r.CloseStatement,"Expected %} token");break;case"macro":++s,o=function(){const e=Z();if("Identifier"!==e.type)throw new SyntaxError("Expected identifier following macro statement");const t=X();n(r.CloseStatement,"Expected closing statement token");const s=[];for(;!c("endmacro");)s.push(i());return new f(e,t,s)}(),n(r.OpenStatement,"Expected {% token"),a("endmacro"),n(r.CloseStatement,"Expected %} token");break;case"for":++s,o=function(){const e=P(!0);if(!(e instanceof x||e instanceof C))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);if(!d("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++s;const t=G();n(r.CloseStatement,"Expected closing statement token");const o=[];for(;!c("endfor","else");)o.push(i());const a=[];if(c("else"))for(++s,++s,n(r.CloseStatement,"Expected closing statement token");!c("endfor");)a.push(i());return new m(e,t,o,a)}(),n(r.OpenStatement,"Expected {% token"),a("endfor"),n(r.CloseStatement,"Expected %} token");break;case"call":{++s;let e=null;l(r.OpenParen)&&(e=X());const t=Z();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following call statement");const d=X();n(r.CloseStatement,"Expected closing statement token");const u=[];for(;!c("endcall");)u.push(i());n(r.OpenStatement,"Expected '{%'"),a("endcall"),n(r.CloseStatement,"Expected closing statement token");const _=new b(t,d);o=new O(_,e,u);break}case"break":++s,n(r.CloseStatement,"Expected closing statement token"),o=new p;break;case"continue":++s,n(r.CloseStatement,"Expected closing statement token"),o=new h;break;case"filter":{++s;let e=Z();e instanceof x&&l(r.OpenParen)&&(e=Q(e)),n(r.CloseStatement,"Expected closing statement token");const t=[];for(;!c("endfilter");)t.push(i());n(r.OpenStatement,"Expected '{%'"),a("endfilter"),n(r.CloseStatement,"Expected '%}'"),o=new L(e,t);break}default:throw new SyntaxError(`Unknown statement type: ${t}`)}return o}();case r.OpenExpression:return function(){n(r.OpenExpression,"Expected opening expression token");const e=G();return n(r.CloseExpression,"Expected closing expression token"),e}();default:throw new SyntaxError(`Unexpected token type: ${e[s].type}`)}}function l(...t){return s+t.length<=e.length&&t.every(((t,r)=>t===e[s+r].type))}function c(...t){return e[s]?.type===r.OpenStatement&&e[s+1]?.type===r.Identifier&&t.includes(e[s+1]?.value)}function d(...t){return s+t.length<=e.length&&t.every(((t,r)=>"Identifier"===e[s+r].type&&t===e[s+r].value))}function w(){const e=G();n(r.CloseStatement,"Expected closing statement token");const t=[],o=[];for(;!c("elif","else","endif");)t.push(i());if(c("elif")){++s,++s;const e=w();o.push(e)}else if(c("else"))for(++s,++s,n(r.CloseStatement,"Expected closing statement token");!c("endif");)o.push(i());return new _(e,t,o)}function P(e=!1){const t=e?Z:G,o=[t()],n=l(r.Comma);for(;n&&(++s,o.push(t()),l(r.Comma)););return n?new C(o):o[0]}function G(){return R()}function R(){const e=q();if(d("if")){++s;const t=q();if(d("else")){++s;const r=R();return new B(t,e,r)}return new I(e,t)}return e}function q(){let t=$();for(;d("or");){const r=e[s];++s;const o=$();t=new A(r,t,o)}return t}function $(){let t=W();for(;d("and");){const r=e[s];++s;const o=W();t=new A(r,t,o)}return t}function W(){let t;for(;d("not");){const r=e[s];++s;const o=W();t=new D(r,o)}return t??function(){let t=U();for(;;){let n;if(d("not","in"))n=new o("not in",r.Identifier),s+=2;else if(d("in"))n=e[s++];else{if(!l(r.ComparisonBinaryOperator))break;n=e[s++]}const a=U();t=new A(n,t,a)}return t}()}function U(){let t=Y();for(;l(r.AdditiveBinaryOperator);){const r=e[s];++s;const o=Y();t=new A(r,t,o)}return t}function Q(e){let t=new b(e,X());return t=J(t),l(r.OpenParen)&&(t=Q(t)),t}function X(){n(r.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!l(r.CloseParen);){let o;if(e[s].type===r.MultiplicativeBinaryOperator&&"*"===e[s].value){++s;const e=G();o=new N(e)}else if(o=G(),l(r.Equals)){if(++s,!(o instanceof x))throw new SyntaxError("Expected identifier for keyword argument");const e=G();o=new V(o,e)}t.push(o),l(r.Comma)&&++s}return t}();return n(r.CloseParen,"Expected closing parenthesis for arguments list"),t}function H(){const e=[];let t=!1;for(;!l(r.CloseSquareBracket);)l(r.Colon)?(e.push(void 0),++s,t=!0):(e.push(G()),l(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 j(...e)}return e[0]}function J(t){for(;l(r.Dot)||l(r.OpenSquareBracket);){const o=e[s];let a;++s;const i=o.type===r.OpenSquareBracket;if(i)a=H(),n(r.CloseSquareBracket,"Expected closing square bracket");else if(a=Z(),"Identifier"!==a.type)throw new SyntaxError("Expected identifier following dot operator");t=new T(t,a,i)}return t}function Y(){let t=K();for(;l(r.MultiplicativeBinaryOperator);){const r=e[s++],o=K();t=new A(r,t,o)}return t}function K(){let e=function(){let e=function(){const e=J(Z());return l(r.OpenParen)?Q(e):e}();for(;l(r.Pipe);){++s;let t=Z();if(!(t instanceof x))throw new SyntaxError("Expected identifier for the filter");l(r.OpenParen)&&(t=Q(t)),e=new E(e,t)}return e}();for(;d("is");){++s;const t=d("not");t&&++s;const r=Z();if(!(r instanceof x))throw new SyntaxError("Expected identifier for the test");e=new z(e,t,r)}return e}function Z(){const t=e[s++];switch(t.type){case r.NumericLiteral:{const e=t.value;return e.includes(".")?new F(Number(e)):new k(Number(e))}case r.StringLiteral:{let o=t.value;for(;l(r.StringLiteral);)o+=e[s++].value;return new v(o)}case r.Identifier:return new x(t.value);case r.OpenParen:{const e=P();return n(r.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),e}case r.OpenSquareBracket:{const e=[];for(;!l(r.CloseSquareBracket);)e.push(G()),l(r.Comma)&&++s;return++s,new y(e)}case r.OpenCurlyBracket:{const e=new Map;for(;!l(r.CloseCurlyBracket);){const t=G();n(r.Colon,"Expected colon between key and value in object literal");const o=G();e.set(t,o),l(r.Comma)&&++s}return++s,new S(e)}default:throw new SyntaxError(`Unexpected token: ${t.type}`)}}for(;s<e.length;)t.body.push(i());return t}function R(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 q(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 a=t;o*a<o*s;a+=r)n.push(e[a]);return n}function $(e){return function(e,t){const s=new Intl.DateTimeFormat(void 0,{month:"long"}),r=new Intl.DateTimeFormat(void 0,{month:"short"}),o=e=>e<10?"0"+e:e.toString();return t.replace(/%[YmdbBHM%]/g,(t=>{switch(t){case"%Y":return e.getFullYear().toString();case"%m":return o(e.getMonth()+1);case"%d":return o(e.getDate());case"%b":return r.format(e);case"%B":return s.format(e);case"%H":return o(e.getHours());case"%M":return o(e.getMinutes());case"%%":return"%";default:return t}}))}(new Date,e)}var W=class extends Error{},U=class extends Error{},Q=class{type="RuntimeValue";value;builtins=new Map;constructor(e=void 0){this.value=e}__bool__(){return new Y(!!this.value)}toString(){return String(this.value)}},X=class extends Q{type="IntegerValue"},H=class extends Q{type="FloatValue";toString(){return this.value%1==0?this.value.toFixed(1):this.value.toString()}},J=class extends Q{type="StringValue";builtins=new Map([["upper",new se((()=>new J(this.value.toUpperCase())))],["lower",new se((()=>new J(this.value.toLowerCase())))],["strip",new se((()=>new J(this.value.trim())))],["title",new se((()=>new J(this.value.replace(/\b\w/g,(e=>e.toUpperCase())))))],["capitalize",new se((()=>new J(this.value.charAt(0).toUpperCase()+this.value.slice(1))))],["length",new X(this.value.length)],["rstrip",new se((()=>new J(this.value.trimEnd())))],["lstrip",new se((()=>new J(this.value.trimStart())))],["startswith",new se((e=>{if(0===e.length)throw new Error("startswith() requires at least one argument");const t=e[0];if(t instanceof J)return new Y(this.value.startsWith(t.value));if(t instanceof ee){for(const e of t.value){if(!(e instanceof J))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(e.value))return new Y(!0)}return new Y(!1)}throw new Error("startswith() argument must be a string or tuple of strings")}))],["endswith",new se((e=>{if(0===e.length)throw new Error("endswith() requires at least one argument");const t=e[0];if(t instanceof J)return new Y(this.value.endsWith(t.value));if(t instanceof ee){for(const e of t.value){if(!(e instanceof J))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(e.value))return new Y(!0)}return new Y(!1)}throw new Error("endswith() argument must be a string or tuple of strings")}))],["split",new se((e=>{const t=e[0]??new re;if(!(t instanceof J||t instanceof re))throw new Error("sep argument must be a string or null");const s=e[1]??new X(-1);if(!(s instanceof X))throw new Error("maxsplit argument must be a number");let r=[];if(t instanceof re){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 ee(r.map((e=>new J(e))))}))],["replace",new se((e=>{if(e.length<2)throw new Error("replace() requires at least two arguments");const t=e[0],s=e[1];if(!(t instanceof J&&s instanceof J))throw new Error("replace() arguments must be strings");let r;if(r=e.length>2?"KeywordArgumentsValue"===e[2].type?e[2].value.get("count")??new re:e[2]:new re,!(r instanceof X||r instanceof re))throw new Error("replace() count argument must be a number or null");return new J(function(e,t,s,r){if(0===r)return e;let o=null==r||r<0?1/0:r;const n=0===t.length?new RegExp("(?=)","gu"):new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gu");return e.replaceAll(n,(e=>o>0?(--o,s):e))}(this.value,t.value,s.value,r.value))}))]])},Y=class extends Q{type="BooleanValue"},K=class extends Q{type="ObjectValue";__bool__(){return new Y(this.value.size>0)}builtins=new Map([["get",new se((([e,t])=>{if(!(e instanceof J))throw new Error(`Object key must be a string: got ${e.type}`);return this.value.get(e.value)??t??new re}))],["items",new se((()=>this.items()))],["keys",new se((()=>this.keys()))],["values",new se((()=>this.values()))]]);items(){return new ee(Array.from(this.value.entries()).map((([e,t])=>new ee([new J(e),t]))))}keys(){return new ee(Array.from(this.value.keys()).map((e=>new J(e))))}values(){return new ee(Array.from(this.value.values()))}},Z=class extends K{type="KeywordArgumentsValue"},ee=class extends Q{type="ArrayValue";builtins=new Map([["length",new X(this.value.length)]]);__bool__(){return new Y(this.value.length>0)}},te=class extends ee{type="TupleValue"},se=class extends Q{type="FunctionValue"},re=class extends Q{type="NullValue"},oe=class extends Q{type="UndefinedValue"},ne=class{constructor(e){this.parent=e}variables=new Map([["namespace",new se((e=>{if(0===e.length)return new K(new Map);if(1!==e.length||!(e[0]instanceof K))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 se],["odd",e=>{if(!(e instanceof X))throw new Error(`cannot odd on ${e.type}`);return e.value%2!=0}],["even",e=>{if(!(e instanceof X))throw new Error(`cannot even on ${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=>e instanceof X||e instanceof H],["integer",e=>e instanceof X],["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,ie(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 oe}catch{return new oe}}};var ae=class{global;constructor(e){this.global=e??new ne}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 Y(s.value==r.value);case"!=":return new Y(s.value!=r.value)}if(s instanceof oe||r instanceof oe){if(r instanceof oe&&["in","not in"].includes(e.operator.value))return new Y("not in"===e.operator.value);throw new Error(`Cannot perform operation ${e.operator.value} on undefined values`)}if(s instanceof re||r instanceof re)throw new Error("Cannot perform operation on null values");if("~"===e.operator.value)return new J(s.value.toString()+r.value.toString());if((s instanceof X||s instanceof H)&&(r instanceof X||r instanceof H)){const t=s.value,o=r.value;switch(e.operator.value){case"+":case"-":case"*":{const n="+"===e.operator.value?t+o:"-"===e.operator.value?t-o:t*o;return s instanceof H||r instanceof H?new H(n):new X(n)}case"/":return new H(t/o);case"%":{const e=t%o;return s instanceof H||r instanceof H?new H(e):new X(e)}case"<":return new Y(t<o);case">":return new Y(t>o);case">=":return new Y(t>=o);case"<=":return new Y(t<=o)}}else if(s instanceof ee&&r instanceof ee){if("+"===e.operator.value)return new ee(s.value.concat(r.value))}else if(r instanceof ee){const t=void 0!==r.value.find((e=>e.value===s.value));switch(e.operator.value){case"in":return new Y(t);case"not in":return new Y(!t)}}if((s instanceof J||r instanceof J)&&"+"===e.operator.value)return new J(s.value.toString()+r.value.toString());if(s instanceof J&&r instanceof J)switch(e.operator.value){case"in":return new Y(r.value.includes(s.value));case"not in":return new Y(!r.value.includes(s.value))}if(s instanceof J&&r instanceof K)switch(e.operator.value){case"in":return new Y(r.value.has(s.value));case"not in":return new Y(!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("SpreadExpression"===o.type){const e=o,r=this.evaluate(e.argument,t);if(!(r instanceof ee))throw new Error(`Cannot unpack non-iterable type: ${r.type}`);for(const e of r.value)s.push(e)}else 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]}applyFilter(e,t,s){if("Identifier"===t.type){const r=t;if("tojson"===r.value)return new J(le(e));if(e instanceof ee)switch(r.value){case"list":return e;case"first":return e.value[0];case"last":return e.value[e.value.length-1];case"length":return new X(e.value.length);case"reverse":return new ee(e.value.reverse());case"sort":return new ee(e.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"IntegerValue":case"FloatValue":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 J(e.value.map((e=>e.value)).join(""));case"string":return new J(le(e));case"unique":{const t=new Set,s=[];for(const r of e.value)t.has(r.value)||(t.add(r.value),s.push(r));return new ee(s)}default:throw new Error(`Unknown ArrayValue filter: ${r.value}`)}else if(e instanceof J)switch(r.value){case"length":case"upper":case"lower":case"title":case"capitalize":{const t=e.builtins.get(r.value);if(t instanceof se)return t.value([],s);if(t instanceof X)return t;throw new Error(`Unknown StringValue filter: ${r.value}`)}case"trim":return new J(e.value.trim());case"indent":return new J(e.value.split("\n").map(((e,t)=>0===t||0===e.length?e:" "+e)).join("\n"));case"join":case"string":return e;case"int":{const t=parseInt(e.value,10);return new X(isNaN(t)?0:t)}case"float":{const t=parseFloat(e.value);return new H(isNaN(t)?0:t)}default:throw new Error(`Unknown StringValue filter: ${r.value}`)}else if(e instanceof X||e instanceof H)switch(r.value){case"abs":return e instanceof X?new X(Math.abs(e.value)):new H(Math.abs(e.value));case"int":return new X(Math.floor(e.value));case"float":return new H(e.value);default:throw new Error(`Unknown NumericValue filter: ${r.value}`)}else if(e instanceof K)switch(r.value){case"items":return new ee(Array.from(e.value.entries()).map((([e,t])=>new ee([new J(e),t]))));case"length":return new X(e.value.size);default:throw new Error(`Unknown ObjectValue filter: ${r.value}`)}else if(e instanceof Y)switch(r.value){case"bool":return new Y(e.value);case"int":return new X(e.value?1:0);case"float":return new H(e.value?1:0);case"string":return new J(e.value?"true":"false");default:throw new Error(`Unknown BooleanValue filter: ${r.value}`)}throw new Error(`Cannot apply filter "${r.value}" to type: ${e.type}`)}if("CallExpression"===t.type){const r=t;if("Identifier"!==r.callee.type)throw new Error(`Unknown filter: ${r.callee.type}`);const o=r.callee.value;if("tojson"===o){const[,t]=this.evaluateArguments(r.args,s),o=t.get("indent")??new re;if(!(o instanceof X||o instanceof re))throw new Error("If set, indent must be a number");return new J(le(e,o.value))}if("join"===o){let t;if(e instanceof J)t=Array.from(e.value);else{if(!(e instanceof ee))throw new Error(`Cannot apply filter "${o}" to type: ${e.type}`);t=e.value.map((e=>e.value))}const[n,a]=this.evaluateArguments(r.args,s),i=n.at(0)??a.get("separator")??new J("");if(!(i instanceof J))throw new Error("separator must be a string");return new J(t.join(i.value))}if("int"===o||"float"===o){const[t,n]=this.evaluateArguments(r.args,s),a=t.at(0)??n.get("default")??("int"===o?new X(0):new H(0));if(e instanceof J){const t="int"===o?parseInt(e.value,10):parseFloat(e.value);return isNaN(t)?a:"int"===o?new X(t):new H(t)}if(e instanceof X||e instanceof H)return e;if(e instanceof Y)return"int"===o?new X(e.value?1:0):new H(e.value?1:0);throw new Error(`Cannot apply filter "${o}" to type: ${e.type}`)}if("default"===o){const[t,o]=this.evaluateArguments(r.args,s),n=t[0]??new J(""),a=t[1]??o.get("boolean")??new Y(!1);if(!(a instanceof Y))throw new Error("`default` filter flag must be a boolean");return e instanceof oe||a.value&&!e.__bool__().value?n:e}if(e instanceof ee){switch(o){case"selectattr":case"rejectattr":{const t="selectattr"===o;if(e.value.some((e=>!(e instanceof K))))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,a,i]=r.args.map((e=>this.evaluate(e,s)));let l;if(a){const e=s.tests.get(a.value);if(!e)throw new Error(`Unknown test: ${a.value}`);l=e}else l=(...e)=>e[0].__bool__().value;const c=e.value.filter((e=>{const s=e.value.get(n.value),r=!!s&&l(s,i);return t?r:!r}));return new ee(c)}case"map":{const[,t]=this.evaluateArguments(r.args,s);if(t.has("attribute")){const s=t.get("attribute");if(!(s instanceof J))throw new Error("attribute must be a string");const r=t.get("default"),o=e.value.map((e=>{if(!(e instanceof K))throw new Error("items in map must be an object");return e.value.get(s.value)??r??new oe}));return new ee(o)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${o}`)}if(e instanceof J){switch(o){case"indent":{const[t,o]=this.evaluateArguments(r.args,s),n=t.at(0)??o.get("width")??new X(4);if(!(n instanceof X))throw new Error("width must be a number");const a=t.at(1)??o.get("first")??new Y(!1),i=t.at(2)??o.get("blank")??new Y(!1),l=e.value.split("\n"),c=" ".repeat(n.value),d=l.map(((e,t)=>!a.value&&0===t||!i.value&&0===e.length?e:c+e));return new J(d.join("\n"))}case"replace":{const t=e.builtins.get("replace");if(!(t instanceof se))throw new Error("replace filter not available");const[o,n]=this.evaluateArguments(r.args,s);return t.value([...o,new Z(n)],s)}}throw new Error(`Unknown StringValue filter: ${o}`)}throw new Error(`Cannot apply filter "${o}" to type: ${e.type}`)}throw new Error(`Unknown filter: ${t.type}`)}evaluateFilterExpression(e,t){const s=this.evaluate(e.operand,t);return this.applyFilter(s,e.filter,t)}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 Y(e.negate?!o:o)}evaluateSelectExpression(e,t){return this.evaluate(e.test,t).__bool__().value?this.evaluate(e.lhs,t):new oe}evaluateUnaryExpression(e,t){const s=this.evaluate(e.argument,t);if("not"===e.operator.value)return new Y(!s.value);throw new SyntaxError(`Unknown operator: ${e.operator.value}`)}evaluateTernaryExpression(e,t){return this.evaluate(e.condition,t).__bool__().value?this.evaluate(e.trueExpr,t):this.evaluate(e.falseExpr,t)}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.toString())}return new J(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 Z(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 ee||e instanceof J))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 X||r instanceof oe))throw new Error("Slice start must be numeric or undefined");if(!(o instanceof X||o instanceof oe))throw new Error("Slice stop must be numeric or undefined");if(!(n instanceof X||n instanceof oe))throw new Error("Slice step must be numeric or undefined");return e instanceof ee?new ee(q(e.value,r.value,o.value,n.value)):new J(q(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 J(e.property.value);if(s instanceof K){if(!(r instanceof J))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 ee||s instanceof J)if(r instanceof X)o=s.value.at(r.value),s instanceof J&&(o=new J(s.value.at(r.value)));else{if(!(r instanceof J))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);o=s.builtins.get(r.value)}else{if(!(r instanceof J))throw new Error(`Cannot access property with non-string: got ${r.type}`);o=s.builtins.get(r.value)}return o instanceof Q?o:new oe}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("TupleLiteral"===e.assignee.type){const r=e.assignee;if(!(s instanceof ee))throw new Error(`Cannot unpack non-iterable type in set: ${s.type}`);const o=s.value;if(o.length!==r.value.length)throw new Error(`Too ${r.value.length>o.length?"few":"many"} items to unpack in set`);for(let e=0;e<r.value.length;++e){const s=r.value[e];if("Identifier"!==s.type)throw new Error(`Cannot unpack to non-identifier in set: ${s.type}`);t.setVariable(s.value,o[e])}}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 K))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 re}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 ne(t);let r,o;if("SelectExpression"===e.iterable.type){const t=e.iterable;o=this.evaluate(t.lhs,s),r=t.test}else o=this.evaluate(e.iterable,s);if(!(o instanceof ee||o instanceof K))throw new Error(`Expected iterable or object type in for loop: got ${o.type}`);o instanceof K&&(o=o.keys());const n=[],a=[];for(let t=0;t<o.value.length;++t){const i=new ne(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(i);if(!this.evaluate(r,i).__bool__().value)continue}n.push(l),a.push(c)}let i="",l=!0;for(let t=0;t<n.length;++t){const r=new Map([["index",new X(t+1)],["index0",new X(t)],["revindex",new X(n.length-t)],["revindex0",new X(n.length-t-1)],["first",new Y(0===t)],["last",new Y(t===n.length-1)],["length",new X(n.length)],["previtem",t>0?n[t-1]:new oe],["nextitem",t<n.length-1?n[t+1]:new oe]]);s.setVariable("loop",new K(r)),a[t](s);try{i+=this.evaluateBlock(e.body,s).value}catch(e){if(e instanceof U)continue;if(e instanceof W)break;throw e}l=!1}if(l){i+=this.evaluateBlock(e.defaultBlock,s).value}return new J(i)}evaluateMacro(e,t){return t.setVariable(e.name.value,new se(((t,s)=>{const r=new ne(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],a=t[s];if("Identifier"===n.type){const e=n;if(!a)throw new Error(`Missing positional argument: ${e.value}`);r.setVariable(e.value,a)}else{if("KeywordArgumentExpression"!==n.type)throw new Error(`Unknown argument type: ${n.type}`);{const e=n,t=a??o?.value.get(e.key.value)??this.evaluate(e.value,r);r.setVariable(e.key.value,t)}}}return this.evaluateBlock(e.body,r)}))),new re}evaluateCallStatement(e,t){const s=new se(((t,s)=>{const r=new ne(s);if(e.callerArgs)for(let s=0;s<e.callerArgs.length;++s){const o=e.callerArgs[s];if("Identifier"!==o.type)throw new Error(`Caller parameter must be an identifier, got ${o.type}`);r.setVariable(o.value,t[s]??new oe)}return this.evaluateBlock(e.body,r)})),[r,o]=this.evaluateArguments(e.call.args,t);r.push(new Z(o));const n=this.evaluate(e.call.callee,t);if("FunctionValue"!==n.type)throw new Error(`Cannot call something that is not a function: got ${n.type}`);const a=new ne(t);return a.setVariable("caller",s),n.value(r,a)}evaluateFilterStatement(e,t){const s=this.evaluateBlock(e.body,t);return this.applyFilter(s,e.filter,t)}evaluate(e,t){if(!e)return new oe;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"CallStatement":return this.evaluateCallStatement(e,t);case"Break":throw new W;case"Continue":throw new U;case"IntegerLiteral":return new X(e.value);case"FloatLiteral":return new H(e.value);case"StringLiteral":return new J(e.value);case"ArrayLiteral":return new ee(e.value.map((e=>this.evaluate(e,t))));case"TupleLiteral":return new te(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 J))throw new Error(`Object keys must be strings: got ${e.type}`);s.set(e.value,this.evaluate(o,t))}return new K(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"FilterStatement":return this.evaluateFilterStatement(e,t);case"TestExpression":return this.evaluateTestExpression(e,t);case"SelectExpression":return this.evaluateSelectExpression(e,t);case"Ternary":return this.evaluateTernaryExpression(e,t);case"Comment":return new re;default:throw new SyntaxError(`Unknown node type: ${e.type}`)}}};function ie(e){switch(typeof e){case"number":return Number.isInteger(e)?new X(e):new H(e);case"string":return new J(e);case"boolean":return new Y(e);case"undefined":return new oe;case"object":return null===e?new re:Array.isArray(e)?new ee(e.map(ie)):new K(new Map(Object.entries(e).map((([e,t])=>[e,ie(t)]))));case"function":return new se(((t,s)=>ie(e(...t.map((e=>e.value)))??null)));default:throw new Error(`Cannot convert to runtime value: ${e}`)}}function le(e,t,s){const r=s??0;switch(e.type){case"NullValue":case"UndefinedValue":return"null";case"IntegerValue":case"FloatValue":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=>le(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}": ${le(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 ce="\n",de="{%- ",ue=" -%}";function _e(...e){return de+e.join(" ")+ue}function me(e,t,s){return e.map((e=>function(e,t,s){const r=s.repeat(t);switch(e.type){case"Program":return me(e.body,t,s);case"If":return function(e,t,s){const r=s.repeat(t),o=[];let n=e;for(;n&&(o.push({test:n.test,body:n.body}),1===n.alternate.length&&"If"===n.alternate[0].type);)n=n.alternate[0];let a=r+_e("if",pe(o[0].test))+ce+me(o[0].body,t+1,s);for(let e=1;e<o.length;++e)a+=ce+r+_e("elif",pe(o[e].test))+ce+me(o[e].body,t+1,s);n&&n.alternate.length>0&&(a+=ce+r+_e("else")+ce+me(n.alternate,t+1,s));return a+=ce+r+_e("endif"),a}(e,t,s);case"For":return function(e,t,s){const r=s.repeat(t);let o="";if("SelectExpression"===e.iterable.type){const t=e.iterable;o=`${pe(t.lhs)} if ${pe(t.test)}`}else o=pe(e.iterable);let n=r+_e("for",pe(e.loopvar),"in",o)+ce+me(e.body,t+1,s);e.defaultBlock.length>0&&(n+=ce+r+_e("else")+ce+me(e.defaultBlock,t+1,s));return n+=ce+r+_e("endfor"),n}(e,t,s);case"Set":return function(e,t,s){const r=s.repeat(t),o=pe(e.assignee),n=e.value?pe(e.value):"",a=r+_e("set",`${o}${e.value?" = "+n:""}`);if(0===e.body.length)return a;return a+ce+me(e.body,t+1,s)+ce+r+_e("endset")}(e,t,s);case"Macro":return function(e,t,s){const r=s.repeat(t),o=e.args.map(pe).join(", ");return r+_e("macro",`${e.name.value}(${o})`)+ce+me(e.body,t+1,s)+ce+r+_e("endmacro")}(e,t,s);case"Break":return r+_e("break");case"Continue":return r+_e("continue");case"CallStatement":return function(e,t,s){const r=s.repeat(t),o=e.callerArgs&&e.callerArgs.length>0?`(${e.callerArgs.map(pe).join(", ")})`:"",n=pe(e.call);let a=r+_e(`call${o}`,n)+ce;return a+=me(e.body,t+1,s)+ce,a+=r+_e("endcall"),a}(e,t,s);case"FilterStatement":return function(e,t,s){const r=s.repeat(t),o="Identifier"===e.filter.type?e.filter.value:pe(e.filter);let n=r+_e("filter",o)+ce;return n+=me(e.body,t+1,s)+ce,n+=r+_e("endfilter"),n}(e,t,s);case"Comment":return r+"{# "+e.value+" #}";default:return r+"{{- "+pe(e)+" -}}"}}(e,t,s))).join(ce)}function pe(e,t=-1){switch(e.type){case"SpreadExpression":return`*${pe(e.argument)}`;case"Identifier":return e.value;case"IntegerLiteral":case"FloatLiteral":return`${e.value}`;case"StringLiteral":return JSON.stringify(e.value);case"BinaryExpression":{const s=e,r=function(e){switch(e.operator.type){case"MultiplicativeBinaryOperator":return 4;case"AdditiveBinaryOperator":return 3;case"ComparisonBinaryOperator":return 2;case"Identifier":return"and"===e.operator.value?1:"in"===e.operator.value||"not in"===e.operator.value?2:0}return 0}(s),o=pe(s.left,r),n=pe(s.right,r+1),a=`${o} ${s.operator.value} ${n}`;return r<t?`(${a})`:a}case"UnaryExpression":{const t=e;return t.operator.value+("not"===t.operator.value?" ":"")+pe(t.argument,1/0)}case"CallExpression":{const t=e,s=t.args.map(pe).join(", ");return`${pe(t.callee)}(${s})`}case"MemberExpression":{const t=e;let s=pe(t.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(t.object.type)||(s=`(${s})`);let r=pe(t.property);return t.computed||"Identifier"===t.property.type||(r=`(${r})`),t.computed?`${s}[${r}]`:`${s}.${r}`}case"FilterExpression":{const t=e,s=pe(t.operand,1/0);return"CallExpression"===t.filter.type?`${s} | ${pe(t.filter)}`:`${s} | ${t.filter.value}`}case"SelectExpression":{const t=e;return`${pe(t.lhs)} if ${pe(t.test)}`}case"TestExpression":{const t=e;return`${pe(t.operand)} is${t.negate?" not":""} ${t.test.value}`}case"ArrayLiteral":case"TupleLiteral":{const t=e.value.map(pe),s="ArrayLiteral"===e.type?"[]":"()";return`${s[0]}${t.join(", ")}${s[1]}`}case"ObjectLiteral":return`{${Array.from(e.value.entries()).map((([e,t])=>`${pe(e)}: ${pe(t)}`)).join(", ")}}`;case"SliceExpression":{const t=e;return`${t.start?pe(t.start):""}:${t.stop?pe(t.stop):""}${t.step?`:${pe(t.step)}`:""}`}case"KeywordArgumentExpression":{const t=e;return`${t.key.value}=${pe(t.value)}`}case"Ternary":{const s=e,r=`${pe(s.trueExpr)} if ${pe(s.condition,0)} else ${pe(s.falseExpr)}`;return t>-1?`(${r})`:r}default:throw new Error(`Unknown expression type: ${e.type}`)}}var he=class{parsed;constructor(e){const t=c(e,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=G(t)}render(e){const t=new ne;if(function(e){e.set("false",!1),e.set("true",!0),e.set("none",null),e.set("raise_exception",(e=>{throw new Error(e)})),e.set("range",R),e.set("strftime_now",$),e.set("True",!0),e.set("False",!1),e.set("None",null)}(t),e)for(const[s,r]of Object.entries(e))t.set(s,r);return new ae(t).run(this.parsed).value}format(e){return function(e,t="\t"){const s="number"==typeof t?" ".repeat(t):t;return me(e.body,0,s).replace(/\n$/,"")}(this.parsed,e?.indent||"\t")}}},"./src/backends/onnx.js":(e,t,s)=>{var r;s.r(t),s.d(t,{Tensor:()=>i.Tensor,createInferenceSession:()=>g,deviceToExecutionProviders:()=>p,isONNXProxy:()=>w,isONNXTensor:()=>f});var o=s("./src/env.js"),n=s("?2ce3"),a=s("onnxruntime-web"),i=s("onnxruntime-common");const l=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"}}),c=[];let d,u;const _=Symbol.for("onnxruntime");if(_ in globalThis)u=globalThis[_];else if(o.apis.IS_NODE_ENV){switch(u=n??(r||(r=s.t(n,2))),process.platform){case"win32":c.push("dml");break;case"linux":"x64"===process.arch&&c.push("cuda")}c.push("cpu"),d=["cpu"]}else u=a,o.apis.IS_WEBNN_AVAILABLE&&c.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),o.apis.IS_WEBGPU_AVAILABLE&&c.push("webgpu"),c.push("wasm"),d=["wasm"];const m=u.InferenceSession;function p(e=null){if(!e)return d;switch(e){case"auto":return c;case"gpu":return c.filter((e=>["webgpu","cuda","dml","webnn-gpu"].includes(e)))}if(c.includes(e))return[l[e]??e];throw new Error(`Unsupported device: "${e}". Should be one of: ${c.join(", ")}.`)}let h=null;async function g(e,t,s){h&&await h;const r=m.create(e,t);h??=r;const o=await r;return o.config=s,o}function f(e){return e instanceof u.Tensor}const M=u?.env;function w(){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@${o.env.version}/dist/`),M.wasm.proxy=!1),M?.webgpu&&(M.webgpu.powerPreference="high-performance"),o.env.backends.onnx=M},"./src/base/feature_extraction_utils.js":(e,t,s)=>{s.r(t),s.d(t,{FeatureExtractor:()=>a,validate_audio_inputs:()=>i});var r=s("./src/utils/constants.js"),o=s("./src/utils/generic.js"),n=s("./src/utils/hub.js");class a 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 i(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)=>{s.r(t),s.d(t,{ImageProcessor:()=>w,center_to_corners_format:()=>u,post_process_instance_segmentation:()=>M,post_process_object_detection:()=>_,post_process_panoptic_segmentation:()=>f,post_process_semantic_segmentation:()=>m});var r=s("./src/utils/generic.js"),o=s("./src/utils/tensor.js"),n=s("./src/utils/maths.js"),a=(s("./src/utils/image.js"),s("./src/utils/core.js")),i=s("./src/utils/hub.js"),l=s("./src/utils/constants.js");function c(e,t,s=0,r=null){const o=e/t;let a=(0,n.bankers_round)(o)*t;return null!==r&&a>r&&(a=Math.floor(o)*t),a<s&&(a=Math.ceil(o)*t),a}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,a=e.pred_boxes,[i,l,c]=o.dims;if(null!==s&&s.length!==i)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<i;++e){let i=null!==s?s[e]:null,_={boxes:[],classes:[],scores:[]},m=o[e],p=a[e];for(let e=0;e<l;++e){let s,o=m[e],a=[];if(r){s=o.sigmoid().data;for(let e=0;e<s.length;++e)s[e]>t&&a.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;a.push(e)}for(const t of a){let r=p[e].data;r=u(r),null!==i&&(r=r.map(((e,t)=>e*i[(t+1)%2]))),_.boxes.push(r),_.classes.push(t),_.scores.push(s[t])}}d.push(_)}return d}function m(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 a=s[e];null!==r&&(a=(0,o.interpolate)(a,r,"bilinear",!1));const[i,l]=r??a.dims.slice(-2),c=new o.Tensor("int32",new Int32Array(i*l),[i,l]),d=a[0].data,u=c.data;for(let e=1;e<a.dims[0];++e){const t=a[e].data;for(let s=0;s<t.length;++s)t[s]>d[s]&&(d[s]=t[s],u[s]=e)}const _=new Array(a.dims[0]);for(let e=0;e<u.length;++e){const t=u[e];_[t]=t}const m=_.filter((e=>void 0!==e));n.push({segmentation:c,labels:m})}return n}function p(e,t,s,r){const o=[],a=[],i=[];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),a.push(_),i.push(u))}return[o,a,i]}function h(e,t,s,r=.5,o=.8){const n=[];let a=0,i=0;const l=t[s].data;for(let t=0;t<e.length;++t)e[t]===s&&(n.push(t),++a),l[t]>=r&&++i;let c=a>0&&i>0;if(c){c=a/i>o}return[c,n]}function g(e,t,s,r,n,a=null,i=null){const[l,c]=i??e[0].dims,d=new o.Tensor("int32",new Int32Array(l*c),[l,c]),u=[];if(null!==i)for(let t=0;t<e.length;++t)e[t]=(0,o.interpolate)(e[t],i,"bilinear",!1);const _=new Int32Array(e[0].data.length),m=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]>m[e]&&(_[e]=s,m[e]=o[e])}let p=0;const g=d.data;for(let o=0;o<s.length;++o){const a=s[o],[i,l]=h(_,e,o,r,n);if(i){++p;for(const e of l)g[e]=p;u.push({id:p,label_id:a,score:t[o]})}}return[d,u]}function f(e,t=.5,s=.5,r=.8,n=null,a=null){null===n&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),n=new Set);const i=e.class_queries_logits??e.logits,l=(e.masks_queries_logits??e.pred_masks).sigmoid();let[c,d,u]=i.dims;if(u-=1,null!==a&&a.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!==a?a[e]:null,d=i[e],m=l[e],[h,f,M]=p(d,m,t,u);if(0===M.length){let[e,t]=c??m.dims.slice(-2),s=new o.Tensor("int32",new Int32Array(e*t).fill(-1),[e,t]);_.push({segmentation:s,segments_info:[]});continue}let[w,T]=g(h,f,M,s,r,n,c);_.push({segmentation:w,segments_info:T})}return _}function M(e,t=.5,s=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class w 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.min_pixels=e.min_pixels,this.max_pixels=e.max_pixels,this.do_pad&&!this.pad_size&&this.size&&void 0!==this.size.width&&void 0!==this.siz