UNPKG

@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 • 888 kB
var e,t,n={"./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm":(e,t,n)=>{e.exports=n.p+"ort-wasm-simd-threaded.jsep.wasm"},"./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb":(e,t,n)=>{e.exports=n.p+"ort.bundle.min.mjs"},"?2ce3":()=>{},"?7992":()=>{},"?5af5":()=>{},"?2b25":()=>{},"?db59":()=>{},"?383f":()=>{},"?fa4b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,t,n)=>{n.r(t),n.d(t,{Environment:()=>ie,Interpreter:()=>ue,Template:()=>we,parse:()=>V,tokenize:()=>u});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"}),s=class{constructor(e,t){this.value=e,this.type=t}};function a(e){return/\w/.test(e)}function o(e){return/[0-9]/.test(e)}function i(e){return/\s/.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.AdditiveBinaryOperator],["*",r.MultiplicativeBinaryOperator],["/",r.MultiplicativeBinaryOperator],["%",r.MultiplicativeBinaryOperator],["=",r.Equals]],d=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function u(e,t={}){const n=[],u=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*(end)?generation\s*%}/gs,"")}(e,t);let c=0,p=0;const m=e=>{let t="";for(;e(u[c]);)if("\\"!==u[c]){if(t+=u[c++],c>=u.length)throw new SyntaxError("Unexpected end of input")}else{if(++c,c>=u.length)throw new SyntaxError("Unexpected end of input");const e=u[c++],n=d.get(e);if(void 0===n)throw new SyntaxError(`Unexpected escaped character: ${e}`);t+=n}return t},h=()=>{const e=n.at(-1);e&&e.type===r.Text&&(e.value=e.value.trimEnd(),""===e.value&&n.pop())},f=()=>{for(;c<u.length&&i(u[c]);)++c};e:for(;c<u.length;){const e=n.at(-1)?.type;if(void 0===e||e===r.CloseStatement||e===r.CloseExpression||e===r.Comment){let e="";for(;c<u.length&&("{"!==u[c]||"%"!==u[c+1]&&"{"!==u[c+1]&&"#"!==u[c+1]);)e+=u[c++];if(e.length>0){n.push(new s(e,r.Text));continue}}if("{"===u[c]&&"#"===u[c+1]){c+=2;const e="-"===u[c];e&&++c;let t="";for(;"#"!==u[c]||"}"!==u[c+1];){if(c+2>=u.length)throw new SyntaxError("Missing end of comment tag");t+=u[c++]}const a=t.endsWith("-");a&&(t=t.slice(0,-1)),e&&h(),n.push(new s(t,r.Comment)),c+=2,a&&f();continue}if("{%-"===u.slice(c,c+3)){h(),n.push(new s("{%",r.OpenStatement)),c+=3;continue}if("{{-"===u.slice(c,c+3)){h(),n.push(new s("{{",r.OpenExpression)),p=0,c+=3;continue}if(m(i),"-%}"===u.slice(c,c+3)){n.push(new s("%}",r.CloseStatement)),c+=3,f();continue}if("-}}"===u.slice(c,c+3)){n.push(new s("}}",r.CloseExpression)),c+=3,f();continue}const t=u[c];if("-"===t||"+"===t){const e=n.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:{++c;const e=m(o);n.push(new s(`${t}${e}`,e.length>0?r.NumericLiteral:r.UnaryOperator));continue}}}for(const[e,t]of l){if("}}"===e&&p>0)continue;if(u.slice(c,c+e.length)===e){n.push(new s(e,t)),t===r.OpenExpression?p=0:t===r.OpenCurlyBracket?++p:t===r.CloseCurlyBracket&&--p,c+=e.length;continue e}}if("'"!==t&&'"'!==t)if(o(t)){let e=m(o);if("."===u[c]&&o(u[c+1])){++c;e=`${e}.${m(o)}`}n.push(new s(e,r.NumericLiteral))}else{if(!a(t))throw new SyntaxError(`Unexpected character: ${t}`);{const e=m(a);n.push(new s(e,r.Identifier))}}else{++c;const e=m((e=>e!==t));n.push(new s(e,r.StringLiteral)),++c}}return n}var c=class{type="Statement"},p=class extends c{constructor(e){super(),this.body=e}type="Program"},m=class extends c{constructor(e,t,n){super(),this.test=e,this.body=t,this.alternate=n}type="If"},h=class extends c{constructor(e,t,n,r){super(),this.loopvar=e,this.iterable=t,this.body=n,this.defaultBlock=r}type="For"},f=class extends c{type="Break"},_=class extends c{type="Continue"},g=class extends c{constructor(e,t,n){super(),this.assignee=e,this.value=t,this.body=n}type="Set"},w=class extends c{constructor(e,t,n){super(),this.name=e,this.args=t,this.body=n}type="Macro"},b=class extends c{constructor(e){super(),this.value=e}type="Comment"},y=class extends c{type="Expression"},M=class extends y{constructor(e,t,n){super(),this.object=e,this.property=t,this.computed=n}type="MemberExpression"},x=class extends y{constructor(e,t){super(),this.callee=e,this.args=t}type="CallExpression"},v=class extends y{constructor(e){super(),this.value=e}type="Identifier"},T=class extends y{constructor(e){super(),this.value=e}type="Literal"},k=class extends T{type="IntegerLiteral"},P=class extends T{type="FloatLiteral"},C=class extends T{type="StringLiteral"},$=class extends T{type="ArrayLiteral"},S=class extends T{type="TupleLiteral"},F=class extends T{type="ObjectLiteral"},E=class extends y{constructor(e,t,n){super(),this.operator=e,this.left=t,this.right=n}type="BinaryExpression"},I=class extends y{constructor(e,t){super(),this.operand=e,this.filter=t}type="FilterExpression"},A=class extends c{constructor(e,t){super(),this.filter=e,this.body=t}type="FilterStatement"},z=class extends y{constructor(e,t){super(),this.lhs=e,this.test=t}type="SelectExpression"},L=class extends y{constructor(e,t,n){super(),this.operand=e,this.negate=t,this.test=n}type="TestExpression"},O=class extends y{constructor(e,t){super(),this.operator=e,this.argument=t}type="UnaryExpression"},D=class extends y{constructor(e=void 0,t=void 0,n=void 0){super(),this.start=e,this.stop=t,this.step=n}type="SliceExpression"},B=class extends y{constructor(e,t){super(),this.key=e,this.value=t}type="KeywordArgumentExpression"},N=class extends y{constructor(e){super(),this.argument=e}type="SpreadExpression"},j=class extends c{constructor(e,t,n){super(),this.call=e,this.callerArgs=t,this.body=n}type="CallStatement"},R=class extends y{constructor(e,t,n){super(),this.condition=e,this.trueExpr=t,this.falseExpr=n}type="Ternary"};function V(e){const t=new p([]);let n=0;function a(t,r){const s=e[n++];if(!s||s.type!==t)throw new Error(`Parser Error: ${r}. ${s.type} !== ${t}.`);return s}function o(e){if(!u(e))throw new SyntaxError(`Expected ${e}`);++n}function i(){switch(e[n].type){case r.Comment:return new b(e[n++].value);case r.Text:return new C(a(r.Text,"Expected text token").value);case r.OpenStatement:return function(){if(a(r.OpenStatement,"Expected opening statement token"),e[n].type!==r.Identifier)throw new SyntaxError(`Unknown statement, got ${e[n].type}`);const t=e[n].value;let s;switch(t){case"set":++n,s=function(){const e=y();let t=null;const s=[];if(l(r.Equals))++n,t=y();else{for(a(r.CloseStatement,"Expected %} token");!d("endset");)s.push(i());a(r.OpenStatement,"Expected {% token"),o("endset")}return a(r.CloseStatement,"Expected closing statement token"),new g(e,t,s)}();break;case"if":++n,s=c(),a(r.OpenStatement,"Expected {% token"),o("endif"),a(r.CloseStatement,"Expected %} token");break;case"macro":++n,s=function(){const e=Z();if("Identifier"!==e.type)throw new SyntaxError("Expected identifier following macro statement");const t=Q();a(r.CloseStatement,"Expected closing statement token");const n=[];for(;!d("endmacro");)n.push(i());return new w(e,t,n)}(),a(r.OpenStatement,"Expected {% token"),o("endmacro"),a(r.CloseStatement,"Expected %} token");break;case"for":++n,s=function(){const e=y(!0);if(!(e instanceof v||e instanceof S))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);if(!u("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++n;const t=T();a(r.CloseStatement,"Expected closing statement token");const s=[];for(;!d("endfor","else");)s.push(i());const o=[];if(d("else"))for(++n,++n,a(r.CloseStatement,"Expected closing statement token");!d("endfor");)o.push(i());return new h(e,t,s,o)}(),a(r.OpenStatement,"Expected {% token"),o("endfor"),a(r.CloseStatement,"Expected %} token");break;case"call":{++n;let e=null;l(r.OpenParen)&&(e=Q());const t=Z();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following call statement");const u=Q();a(r.CloseStatement,"Expected closing statement token");const c=[];for(;!d("endcall");)c.push(i());a(r.OpenStatement,"Expected '{%'"),o("endcall"),a(r.CloseStatement,"Expected closing statement token");const p=new x(t,u);s=new j(p,e,c);break}case"break":++n,a(r.CloseStatement,"Expected closing statement token"),s=new f;break;case"continue":++n,a(r.CloseStatement,"Expected closing statement token"),s=new _;break;case"filter":{++n;let e=Z();e instanceof v&&l(r.OpenParen)&&(e=H(e)),a(r.CloseStatement,"Expected closing statement token");const t=[];for(;!d("endfilter");)t.push(i());a(r.OpenStatement,"Expected '{%'"),o("endfilter"),a(r.CloseStatement,"Expected '%}'"),s=new A(e,t);break}default:throw new SyntaxError(`Unknown statement type: ${t}`)}return s}();case r.OpenExpression:return function(){a(r.OpenExpression,"Expected opening expression token");const e=T();return a(r.CloseExpression,"Expected closing expression token"),e}();default:throw new SyntaxError(`Unexpected token type: ${e[n].type}`)}}function l(...t){return n+t.length<=e.length&&t.every(((t,r)=>t===e[n+r].type))}function d(...t){return e[n]?.type===r.OpenStatement&&e[n+1]?.type===r.Identifier&&t.includes(e[n+1]?.value)}function u(...t){return n+t.length<=e.length&&t.every(((t,r)=>"Identifier"===e[n+r].type&&t===e[n+r].value))}function c(){const e=T();a(r.CloseStatement,"Expected closing statement token");const t=[],s=[];for(;!d("elif","else","endif");)t.push(i());if(d("elif")){++n,++n;const e=c();s.push(e)}else if(d("else"))for(++n,++n,a(r.CloseStatement,"Expected closing statement token");!d("endif");)s.push(i());return new m(e,t,s)}function y(e=!1){const t=e?Z:T,s=[t()],a=l(r.Comma);for(;a&&(++n,s.push(t()),l(r.Comma)););return a?new S(s):s[0]}function T(){return V()}function V(){const e=G();if(u("if")){++n;const t=G();if(u("else")){++n;const r=V();return new R(t,e,r)}return new z(e,t)}return e}function G(){let t=q();for(;u("or");){const r=e[n];++n;const s=q();t=new E(r,t,s)}return t}function q(){let t=U();for(;u("and");){const r=e[n];++n;const s=U();t=new E(r,t,s)}return t}function U(){let t;for(;u("not");){const r=e[n];++n;const s=U();t=new O(r,s)}return t??function(){let t=W();for(;;){let a;if(u("not","in"))a=new s("not in",r.Identifier),n+=2;else if(u("in"))a=e[n++];else{if(!l(r.ComparisonBinaryOperator))break;a=e[n++]}const o=W();t=new E(a,t,o)}return t}()}function W(){let t=J();for(;l(r.AdditiveBinaryOperator);){const r=e[n];++n;const s=J();t=new E(r,t,s)}return t}function H(e){let t=new x(e,Q());return t=X(t),l(r.OpenParen)&&(t=H(t)),t}function Q(){a(r.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!l(r.CloseParen);){let s;if(e[n].type===r.MultiplicativeBinaryOperator&&"*"===e[n].value){++n;const e=T();s=new N(e)}else if(s=T(),l(r.Equals)){if(++n,!(s instanceof v))throw new SyntaxError("Expected identifier for keyword argument");const e=T();s=new B(s,e)}t.push(s),l(r.Comma)&&++n}return t}();return a(r.CloseParen,"Expected closing parenthesis for arguments list"),t}function K(){const e=[];let t=!1;for(;!l(r.CloseSquareBracket);)l(r.Colon)?(e.push(void 0),++n,t=!0):(e.push(T()),l(r.Colon)&&(++n,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 D(...e)}return e[0]}function X(t){for(;l(r.Dot)||l(r.OpenSquareBracket);){const s=e[n];let o;++n;const i=s.type===r.OpenSquareBracket;if(i)o=K(),a(r.CloseSquareBracket,"Expected closing square bracket");else if(o=Z(),"Identifier"!==o.type)throw new SyntaxError("Expected identifier following dot operator");t=new M(t,o,i)}return t}function J(){let t=Y();for(;l(r.MultiplicativeBinaryOperator);){const r=e[n++],s=Y();t=new E(r,t,s)}return t}function Y(){let e=function(){let e=function(){const e=X(Z());return l(r.OpenParen)?H(e):e}();for(;l(r.Pipe);){++n;let t=Z();if(!(t instanceof v))throw new SyntaxError("Expected identifier for the filter");l(r.OpenParen)&&(t=H(t)),e=new I(e,t)}return e}();for(;u("is");){++n;const t=u("not");t&&++n;const r=Z();if(!(r instanceof v))throw new SyntaxError("Expected identifier for the test");e=new L(e,t,r)}return e}function Z(){const t=e[n++];switch(t.type){case r.NumericLiteral:{const e=t.value;return e.includes(".")?new P(Number(e)):new k(Number(e))}case r.StringLiteral:{let s=t.value;for(;l(r.StringLiteral);)s+=e[n++].value;return new C(s)}case r.Identifier:return new v(t.value);case r.OpenParen:{const e=y();return a(r.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),e}case r.OpenSquareBracket:{const e=[];for(;!l(r.CloseSquareBracket);)e.push(T()),l(r.Comma)&&++n;return++n,new $(e)}case r.OpenCurlyBracket:{const e=new Map;for(;!l(r.CloseCurlyBracket);){const t=T();a(r.Colon,"Expected colon between key and value in object literal");const s=T();e.set(t,s),l(r.Comma)&&++n}return++n,new F(e)}default:throw new SyntaxError(`Unexpected token: ${t.type}`)}}for(;n<e.length;)t.body.push(i());return t}function G(e,t,n=1){void 0===t&&(t=e,e=0);const r=[];for(let s=e;s<t;s+=n)r.push(s);return r}function q(e,t,n,r=1){const s=Math.sign(r);s>=0?(t=(t??=0)<0?Math.max(e.length+t,0):Math.min(t,e.length),n=(n??=e.length)<0?Math.max(e.length+n,0):Math.min(n,e.length)):(t=(t??=e.length-1)<0?Math.max(e.length+t,-1):Math.min(t,e.length-1),n=(n??=-1)<-1?Math.max(e.length+n,-1):Math.min(n,e.length-1));const a=[];for(let o=t;s*o<s*n;o+=r)a.push(e[o]);return a}function U(e){return function(e,t){const n=new Intl.DateTimeFormat(void 0,{month:"long"}),r=new Intl.DateTimeFormat(void 0,{month:"short"}),s=e=>e<10?"0"+e:e.toString();return t.replace(/%[YmdbBHM%]/g,(t=>{switch(t){case"%Y":return e.getFullYear().toString();case"%m":return s(e.getMonth()+1);case"%d":return s(e.getDate());case"%b":return r.format(e);case"%B":return n.format(e);case"%H":return s(e.getHours());case"%M":return s(e.getMinutes());case"%%":return"%";default:return t}}))}(new Date,e)}var W=class extends Error{},H=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)}},K=class extends Q{type="IntegerValue"},X=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 K(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 ne){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 ne){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 ae;if(!(t instanceof J||t instanceof ae))throw new Error("sep argument must be a string or null");const n=e[1]??new K(-1);if(!(n instanceof K))throw new Error("maxsplit argument must be a number");let r=[];if(t instanceof ae){const e=this.value.trimStart();for(const{0:t,index:s}of e.matchAll(/\S+/g)){if(-1!==n.value&&r.length>=n.value&&void 0!==s){r.push(t+e.slice(s+t.length));break}r.push(t)}}else{if(""===t.value)throw new Error("empty separator");r=this.value.split(t.value),-1!==n.value&&r.length>n.value&&r.push(r.splice(n.value).join(t.value))}return new ne(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],n=e[1];if(!(t instanceof J&&n 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 ae:e[2]:new ae,!(r instanceof K||r instanceof ae))throw new Error("replace() count argument must be a number or null");return new J(function(e,t,n,r){if(0===r)return e;let s=null==r||r<0?1/0:r;const a=0===t.length?new RegExp("(?=)","gu"):new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gu");return e.replaceAll(a,(e=>s>0?(--s,n):e))}(this.value,t.value,n.value,r.value))}))]])},Y=class extends Q{type="BooleanValue"};function Z(e,t,n,r=!0){const s=n??0;switch(e.type){case"NullValue":return"null";case"UndefinedValue":return r?"null":"undefined";case"IntegerValue":case"FloatValue":case"StringValue":case"BooleanValue":return JSON.stringify(e.value);case"ArrayValue":case"ObjectValue":{const n=t?" ".repeat(t):"",a="\n"+n.repeat(s),o=a+n;if("ArrayValue"===e.type){const n=e.value.map((e=>Z(e,t,s+1,r)));return t?`[${o}${n.join(`,${o}`)}${a}]`:`[${n.join(", ")}]`}{const n=Array.from(e.value.entries()).map((([e,n])=>{const a=`"${e}": ${Z(n,t,s+1,r)}`;return t?`${o}${a}`:a}));return t?`{${n.join(",")}${a}}`:`{${n.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${e.type}`)}}var ee=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 ae}))],["items",new se((()=>this.items()))],["keys",new se((()=>this.keys()))],["values",new se((()=>this.values()))],["dictsort",new se((e=>{let t=new Map;const n=e.filter((e=>!(e instanceof te)||(t=e.value,!1))),r=n.at(0)??t.get("case_sensitive")??new Y(!1);if(!(r instanceof Y))throw new Error("case_sensitive must be a boolean");const s=n.at(1)??t.get("by")??new J("key");if(!(s instanceof J))throw new Error("by must be a string");if(!["key","value"].includes(s.value))throw new Error("by must be either 'key' or 'value'");const a=n.at(2)??t.get("reverse")??new Y(!1);if(!(a instanceof Y))throw new Error("reverse must be a boolean");const o=Array.from(this.value.entries()).map((([e,t])=>new ne([new J(e),t]))).sort(((e,t)=>{const n="key"===s.value?0:1,o=de(e.value[n],t.value[n],r.value);return a.value?-o:o}));return new ne(o)}))]]);items(){return new ne(Array.from(this.value.entries()).map((([e,t])=>new ne([new J(e),t]))))}keys(){return new ne(Array.from(this.value.keys()).map((e=>new J(e))))}values(){return new ne(Array.from(this.value.values()))}toString(){return Z(this,null,0,!1)}},te=class extends ee{type="KeywordArgumentsValue"},ne=class extends Q{type="ArrayValue";builtins=new Map([["length",new K(this.value.length)]]);__bool__(){return new Y(this.value.length>0)}toString(){return Z(this,null,0,!1)}},re=class extends ne{type="TupleValue"},se=class extends Q{type="FunctionValue"},ae=class extends Q{type="NullValue"},oe=class extends Q{type="UndefinedValue"},ie=class{constructor(e){this.parent=e}variables=new Map([["namespace",new se((e=>{if(0===e.length)return new ee(new Map);if(1!==e.length||!(e[0]instanceof ee))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 K))throw new Error(`cannot odd on ${e.type}`);return e.value%2!=0}],["even",e=>{if(!(e instanceof K))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 K||e instanceof X],["integer",e=>e instanceof K],["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,ce(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}}};function le(e,t){const n=t.split(".");let r=e;for(const e of n)if(r instanceof ee)r=r.value.get(e)??new oe;else{if(!(r instanceof ne))return new oe;{const t=parseInt(e,10);if(!(!isNaN(t)&&t>=0&&t<r.value.length))return new oe;r=r.value[t]}}return r}function de(e,t,n=!1){if(e instanceof ae&&t instanceof ae)return 0;if(e instanceof ae||t instanceof ae)throw new Error(`Cannot compare ${e.type} with ${t.type}`);if(e instanceof oe&&t instanceof oe)return 0;if(e instanceof oe||t instanceof oe)throw new Error(`Cannot compare ${e.type} with ${t.type}`);const r=e=>e instanceof K||e instanceof X||e instanceof Y,s=e=>e instanceof Y?e.value?1:0:e.value;if(r(e)&&r(t)){const n=s(e),r=s(t);return n<r?-1:n>r?1:0}if(e.type!==t.type)throw new Error(`Cannot compare different types: ${e.type} and ${t.type}`);if("StringValue"===e.type){let r=e.value,s=t.value;return n||(r=r.toLowerCase(),s=s.toLowerCase()),r<s?-1:r>s?1:0}throw new Error(`Cannot compare type: ${e.type}`)}var ue=class{global;constructor(e){this.global=e??new ie}run(e){return this.evaluate(e,this.global)}evaluateBinaryExpression(e,t){const n=this.evaluate(e.left,t);switch(e.operator.value){case"and":return n.__bool__().value?this.evaluate(e.right,t):n;case"or":return n.__bool__().value?n:this.evaluate(e.right,t)}const r=this.evaluate(e.right,t);switch(e.operator.value){case"==":return new Y(n.value==r.value);case"!=":return new Y(n.value!=r.value)}if(n 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(n instanceof ae||r instanceof ae)throw new Error("Cannot perform operation on null values");if("~"===e.operator.value)return new J(n.value.toString()+r.value.toString());if((n instanceof K||n instanceof X)&&(r instanceof K||r instanceof X)){const t=n.value,s=r.value;switch(e.operator.value){case"+":case"-":case"*":{const a="+"===e.operator.value?t+s:"-"===e.operator.value?t-s:t*s;return n instanceof X||r instanceof X?new X(a):new K(a)}case"/":return new X(t/s);case"%":{const e=t%s;return n instanceof X||r instanceof X?new X(e):new K(e)}case"<":return new Y(t<s);case">":return new Y(t>s);case">=":return new Y(t>=s);case"<=":return new Y(t<=s)}}else if(n instanceof ne&&r instanceof ne){if("+"===e.operator.value)return new ne(n.value.concat(r.value))}else if(r instanceof ne){const t=void 0!==r.value.find((e=>e.value===n.value));switch(e.operator.value){case"in":return new Y(t);case"not in":return new Y(!t)}}if((n instanceof J||r instanceof J)&&"+"===e.operator.value)return new J(n.value.toString()+r.value.toString());if(n instanceof J&&r instanceof J)switch(e.operator.value){case"in":return new Y(r.value.includes(n.value));case"not in":return new Y(!r.value.includes(n.value))}if(n instanceof J&&r instanceof ee)switch(e.operator.value){case"in":return new Y(r.value.has(n.value));case"not in":return new Y(!r.value.has(n.value))}throw new SyntaxError(`Unknown operator "${e.operator.value}" between ${n.type} and ${r.type}`)}evaluateArguments(e,t){const n=[],r=new Map;for(const s of e)if("SpreadExpression"===s.type){const e=s,r=this.evaluate(e.argument,t);if(!(r instanceof ne))throw new Error(`Cannot unpack non-iterable type: ${r.type}`);for(const e of r.value)n.push(e)}else if("KeywordArgumentExpression"===s.type){const e=s;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");n.push(this.evaluate(s,t))}return[n,r]}applyFilter(e,t,n){if("Identifier"===t.type){const r=t;if("tojson"===r.value)return new J(Z(e));if(e instanceof ne)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 K(e.value.length);case"reverse":return new ne(e.value.slice().reverse());case"sort":return new ne(e.value.slice().sort(((e,t)=>de(e,t,!1))));case"join":return new J(e.value.map((e=>e.value)).join(""));case"string":return new J(Z(e,null,0,!1));case"unique":{const t=new Set,n=[];for(const r of e.value)t.has(r.value)||(t.add(r.value),n.push(r));return new ne(n)}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([],n);if(t instanceof K)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 K(isNaN(t)?0:t)}case"float":{const t=parseFloat(e.value);return new X(isNaN(t)?0:t)}default:throw new Error(`Unknown StringValue filter: ${r.value}`)}else if(e instanceof K||e instanceof X)switch(r.value){case"abs":return e instanceof K?new K(Math.abs(e.value)):new X(Math.abs(e.value));case"int":return new K(Math.floor(e.value));case"float":return new X(e.value);default:throw new Error(`Unknown NumericValue filter: ${r.value}`)}else if(e instanceof ee)switch(r.value){case"items":return new ne(Array.from(e.value.entries()).map((([e,t])=>new ne([new J(e),t]))));case"length":return new K(e.value.size);default:{const t=e.builtins.get(r.value);if(t)return t instanceof se?t.value([],n):t;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 K(e.value?1:0);case"float":return new X(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 s=r.callee.value;if("tojson"===s){const[,t]=this.evaluateArguments(r.args,n),s=t.get("indent")??new ae;if(!(s instanceof K||s instanceof ae))throw new Error("If set, indent must be a number");return new J(Z(e,s.value))}if("join"===s){let t;if(e instanceof J)t=Array.from(e.value);else{if(!(e instanceof ne))throw new Error(`Cannot apply filter "${s}" to type: ${e.type}`);t=e.value.map((e=>e.value))}const[a,o]=this.evaluateArguments(r.args,n),i=a.at(0)??o.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"===s||"float"===s){const[t,a]=this.evaluateArguments(r.args,n),o=t.at(0)??a.get("default")??("int"===s?new K(0):new X(0));if(e instanceof J){const t="int"===s?parseInt(e.value,10):parseFloat(e.value);return isNaN(t)?o:"int"===s?new K(t):new X(t)}if(e instanceof K||e instanceof X)return e;if(e instanceof Y)return"int"===s?new K(e.value?1:0):new X(e.value?1:0);throw new Error(`Cannot apply filter "${s}" to type: ${e.type}`)}if("default"===s){const[t,s]=this.evaluateArguments(r.args,n),a=t[0]??new J(""),o=t[1]??s.get("boolean")??new Y(!1);if(!(o instanceof Y))throw new Error("`default` filter flag must be a boolean");return e instanceof oe||o.value&&!e.__bool__().value?a:e}if(e instanceof ne){switch(s){case"sort":{const[t,s]=this.evaluateArguments(r.args,n),a=t.at(0)??s.get("reverse")??new Y(!1);if(!(a instanceof Y))throw new Error("reverse must be a boolean");const o=t.at(1)??s.get("case_sensitive")??new Y(!1);if(!(o instanceof Y))throw new Error("case_sensitive must be a boolean");const i=t.at(2)??s.get("attribute")??new ae;if(!(i instanceof J||i instanceof K||i instanceof ae))throw new Error("attribute must be a string, integer, or null");const l=e=>{if(i instanceof ae)return e;return le(e,i instanceof K?String(i.value):i.value)};return new ne(e.value.slice().sort(((e,t)=>{const n=de(l(e),l(t),o.value);return a.value?-n:n})))}case"selectattr":case"rejectattr":{const t="selectattr"===s;if(e.value.some((e=>!(e instanceof ee))))throw new Error(`\`${s}\` can only be applied to array of objects`);if(r.args.some((e=>"StringLiteral"!==e.type)))throw new Error(`arguments of \`${s}\` must be strings`);const[a,o,i]=r.args.map((e=>this.evaluate(e,n)));let l;if(o){const e=n.tests.get(o.value);if(!e)throw new Error(`Unknown test: ${o.value}`);l=e}else l=(...e)=>e[0].__bool__().value;const d=e.value.filter((e=>{const n=e.value.get(a.value),r=!!n&&l(n,i);return t?r:!r}));return new ne(d)}case"map":{const[,t]=this.evaluateArguments(r.args,n);if(t.has("attribute")){const n=t.get("attribute");if(!(n instanceof J))throw new Error("attribute must be a string");const r=t.get("default"),s=e.value.map((e=>{if(!(e instanceof ee))throw new Error("items in map must be an object");const t=le(e,n.value);return t instanceof oe?r??new oe:t}));return new ne(s)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${s}`)}if(e instanceof J){switch(s){case"indent":{const[t,s]=this.evaluateArguments(r.args,n),a=t.at(0)??s.get("width")??new K(4);if(!(a instanceof K))throw new Error("width must be a number");const o=t.at(1)??s.get("first")??new Y(!1),i=t.at(2)??s.get("blank")??new Y(!1),l=e.value.split("\n"),d=" ".repeat(a.value),u=l.map(((e,t)=>!o.value&&0===t||!i.value&&0===e.length?e:d+e));return new J(u.join("\n"))}case"replace":{const t=e.builtins.get("replace");if(!(t instanceof se))throw new Error("replace filter not available");const[s,a]=this.evaluateArguments(r.args,n);return t.value([...s,new te(a)],n)}}throw new Error(`Unknown StringValue filter: ${s}`)}if(e instanceof ee){const t=e.builtins.get(s);if(t&&t instanceof se){const[e,s]=this.evaluateArguments(r.args,n);return s.size>0&&e.push(new te(s)),t.value(e,n)}throw new Error(`Unknown ObjectValue filter: ${s}`)}throw new Error(`Cannot apply filter "${s}" to type: ${e.type}`)}throw new Error(`Unknown filter: ${t.type}`)}evaluateFilterExpression(e,t){const n=this.evaluate(e.operand,t);return this.applyFilter(n,e.filter,t)}evaluateTestExpression(e,t){const n=this.evaluate(e.operand,t),r=t.tests.get(e.test.value);if(!r)throw new Error(`Unknown test: ${e.test.value}`);const s=r(n);return new Y(e.negate?!s:s)}evaluateSelectExpression(e,t){return this.evaluate(e.test,t).__bool__().value?this.evaluate(e.lhs,t):new oe}evaluateUnaryExpression(e,t){const n=this.evaluate(e.argument,t);if("not"===e.operator.value)return new Y(!n.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 n="";for(const r of e){const e=this.evaluate(r,t);"NullValue"!==e.type&&"UndefinedValue"!==e.type&&(n+=e.toString())}return new J(n)}evaluateIdentifier(e,t){return t.lookupVariable(e.value)}evaluateCallExpression(e,t){const[n,r]=this.evaluateArguments(e.args,t);r.size>0&&n.push(new te(r));const s=this.evaluate(e.callee,t);if("FunctionValue"!==s.type)throw new Error(`Cannot call something that is not a function: got ${s.type}`);return s.value(n,t)}evaluateSliceExpression(e,t,n){if(!(e instanceof ne||e instanceof J))throw new Error("Slice object must be an array or string");const r=this.evaluate(t.start,n),s=this.evaluate(t.stop,n),a=this.evaluate(t.step,n);if(!(r instanceof K||r instanceof oe))throw new Error("Slice start must be numeric or undefined");if(!(s instanceof K||s instanceof oe))throw new Error("Slice stop must be numeric or undefined");if(!(a instanceof K||a instanceof oe))throw new Error("Slice step must be numeric or undefined");return e instanceof ne?new ne(q(e.value,r.value,s.value,a.value)):new J(q(Array.from(e.value),r.value,s.value,a.value).join(""))}evaluateMemberExpression(e,t){const n=this.evaluate(e.object,t);let r,s;if(e.computed){if("SliceExpression"===e.property.type)return this.evaluateSliceExpression(n,e.property,t);r=this.evaluate(e.property,t)}else r=new J(e.property.value);if(n instanceof ee){if(!(r instanceof J))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.value.get(r.value)??n.builtins.get(r.value)}else if(n instanceof ne||n instanceof J)if(r instanceof K)s=n.value.at(r.value),n instanceof J&&(s=new J(n.value.at(r.value)));else{if(!(r instanceof J))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);s=n.builtins.get(r.value)}else{if(!(r instanceof J))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.builtins.get(r.value)}return s instanceof Q?s:new oe}evaluateSet(e,t){const n=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,n)}else if("TupleLiteral"===e.assignee.type){const r=e.assignee;if(!(n instanceof ne))throw new Error(`Cannot unpack non-iterable type in set: ${n.type}`);const s=n.value;if(s.length!==r.value.length)throw new Error(`Too ${r.value.length>s.length?"few":"many"} items to unpack in set`);for(let e=0;e<r.value.length;++e){const n=r.value[e];if("Identifier"!==n.type)throw new Error(`Cannot unpack to non-identifier in set: ${n.type}`);t.setVariable(n.value,s[e])}}else{if("MemberExpression"!==e.assignee.type)throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(e.assignee)}`);{const r=e.assignee,s=this.evaluate(r.object,t);if(!(s instanceof ee))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");s.value.set(r.property.value,n)}}return new ae}evaluateIf(e,t){const n=this.evaluate(e.test,t);return this.evaluateBlock(n.__bool__().value?e.body:e.alternate,t)}evaluateFor(e,t){const n=new ie(t);let r,s;if("SelectExpression"===e.iterable.type){const t=e.iterable;s=this.evaluate(t.lhs,n),r=t.test}else s=this.evaluate(e.iterable,n);if(!(s instanceof ne||s instanceof ee))throw new Error(`Expected iterable or object type in for loop: got ${s.type}`);s instanceof ee&&(s=s.keys());const a=[],o=[];for(let t=0;t<s.value.length;++t){const i=new ie(n),l=s.value[t];let d;if("Identifier"===e.loopvar.type)d=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 n=l;if(t.value.length!==n.value.length)throw new Error(`Too ${t.value.length>n.value.length?"few":"many"} items to unpack`);d=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,n.value[r])}}}}if(r){d(i);if(!this.evaluate(r,i).__bool__().value)continue}a.push(l),o.push(d)}let i="",l=!0;for(let t=0;t<a.length;++t){const r=new Map([["index",new K(t+1)],["index0",new K(t)],["revindex",new K(a.length-t)],["revindex0",new K(a.length-t-1)],["first",new Y(0===t)],["last",new Y(t===a.length-1)],["length",new K(a.length)],["previtem",t>0?a[t-1]:new oe],["nextitem",t<a.length-1?a[t+1]:new oe]]);n.setVariable("loop",new ee(r)),o[t](n);try{i+=this.evaluateBlock(e.body,n).value}catch(e){if(e instanceof H)continue;if(e instanceof W)break;throw e}l=!1}if(l){i+=this.evaluateBlock(e.defaultBlock,n).value}return new J(i)}evaluateMacro(e,t){return t.setVariable(e.name.value,new se(((t,n)=>{const r=new ie(n);let s;t=t.slice(),"KeywordArgumentsValue"===t.at(-1)?.type&&(s=t.pop());for(let n=0;n<e.args.length;++n){const a=e.args[n],o=t[n];if("Identifier"===a.type){const e=a;if(!o)throw new Error(`Missing positional argument: ${e.value}`);r.setVariable(e.value,o)}else{if("KeywordArgumentExpression"!==a.type)throw new Error(`Unknown argument type: ${a.type}`);{const e=a,t=o??s?.value.get(e.key.value)??this.evaluate(e.value,r);r.setVariable(e.key.value,t)}}}return this.evaluateBlock(e.body,r)}))),new ae}evaluateCallStatement(e,t){const n=new se(((t,n)=>{const r=new ie(n);if(e.callerArgs)for(let n=0;n<e.callerArgs.length;++n){const s=e.callerArgs[n];if("Identifier"!==s.type)throw new Error(`Caller parameter must be an identifier, got ${s.type}`);r.setVariable(s.value,t[n]??new oe)}return this.evaluateBlock(e.body,r)})),[r,s]=this.evaluateArguments(e.call.args,t);r.push(new te(s));const a=this.evaluate(e.call.callee,t);if("FunctionValue"!==a.type)throw new Error(`Cannot call something that is not a function: got ${a.type}`);const o=new ie(t);return o.setVariable("caller",n),a.value(r,o)}evaluateFilterStatement(e,t){const n=this.evaluateBlock(e.body,t);return this.applyFilter(n,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 H;case"IntegerLiteral":return new K(e.value);case"FloatLiteral":return new X(e.value);case"StringLiteral":return new J(e.value);case"ArrayLiteral":return new ne(e.value.map((e=>this.evaluate(e,t))));case"TupleLiteral":return new re(e.value.map((e=>this.evaluate(e,t))));case"ObjectLiteral":{const n=new Map;for(const[r,s]of e.value){const e=this.evaluate(r,t);if(!(e instanceof J))throw new Error(`Object keys must be strings: got ${e.type}`);n.set(e.value,this.evaluate(s,t))}return new ee(n)}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 ae;default:throw new SyntaxError(`Unknown node type: ${e.type}`)}}};function ce(e){switch(typeof e){case"number":return Number.isInteger(e)?new K(e):new X(e);case"string":return new J(e);case"boolean":return new Y(e);case"undefined":return new oe;case"object":return null===e?new ae:Array.isArray(e)?new ne(e.map(ce)):new ee(new Map(Object.entries(e).map((([e,t])=>[e,ce(t)]))));case"function":return new se(((t,n)=>ce(e(...t.map((e=>e.value)))??null)));default:throw new Error(`Cannot convert to runtime value: ${e}`)}}var pe="\n",me="{%- ",he=" -%}";function fe(...e){return me+e.join(" ")+he}function _e(e,t,n){return e.map((e=>function(e,t,n){const r=n.repeat(t);switch(e.type){case"Program":return _e(e.body,t,n);case"If":return function(e,t,n){const r=n.repeat(t),s=[];let a=e;for(;a&&(s.push({test:a.test,body:a.body}),1===a.alternate.length&&"If"===a.alternate[0].type);)a=a.alternate[0];let o=r+fe("if",ge(s[0].test))+pe+_e(s[0].body,t+1,n);for(let e=1;e<s.length;++e)o+=pe+r+fe("elif",ge(s[e].test))+pe+_e(s[e].body,t+1,n);a&&a.alternate.length>0&&(o+=pe+r+fe("else")+pe+_e(a.alternate,t+1,n));return o+=pe+r+fe("endif"),o}(e,t,n);case"For":return function(e,t,n){const r=n.repeat(t);let s="";if("SelectExpression"===e.iterable.type){const t=e.iterable;s=`${ge(t.lhs)} if ${ge(t.test)}`}else s=ge(e.iterable);let a=r+fe("for",ge(e.loopvar),"in",s)+pe+_e(e.body,t+1,n);e.defaultBlock.length>0&&(a+=pe+r+fe("else")+pe+_e(e.defaultBlock,t+1,n));return a+=pe+r+fe("endfor"),a}(e,t,n);case"Set":return function(e,t,n){const r=n.repeat(t),s=ge(e.assignee),a=e.value?ge(e.value):"",o=r+fe("set",`${s}${e.value?" = "+a:""}`);if(0===e.body.length)return o;return o+pe+_e(e.body,t+1,n)+pe+r+fe("endset")}(e,t,n);case"Macro":return function(e,t,n){const r=n.repeat(t),s=e.args.map(ge).join(", ");return r+fe("macro",`${e.name.value}(${s})`)+pe+_e(e.body,t+1,n)+pe+r+fe("endmacro")}(e,t,n);case"Break":return r+fe("break");case"Continue":return r+fe("continue");case"CallStatement":return function(e,t,n){const r=n.repeat(t),s=e.callerArgs&&e.callerArgs.length>0?`(${e.callerArgs.map(ge).join(", ")})`:"",a=ge(e.call);let o=r+fe(`call${s}`,a)+pe;return o+=_e(e.body,t+1,n)+pe,o+=r+fe("endcall"),o}(e,t,n);case"FilterStatement":return function(e,t,n){const r=n.repeat(t),s="Identifier"===e.filter.type?e.filter.value:ge(e.filter);let a=r+fe("filter",s)+pe;return a+=_e(e.body,t+1,n)+pe,a+=r+fe("endfilter"),a}(e,t,n);case"Comment":return r+"{# "+e.value+" #}";default:return r+"{{- "+ge(e)+" -}}"}}(e,t,n))).join(pe)}function ge(e,t=-1){switch(e.type){case"SpreadExpression":return`*${ge(e.argument)}`;case"Identifier":return e.value;case"IntegerLiteral":case"FloatLiteral":return`${e.value}`;case"StringLiteral":return JSON.stringify(e.value);case"BinaryExpression":{const n=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}(n),s=ge(n.left,r),a=ge(n.right,r+1),o=`${s} ${n.operator.value} ${a}`;return r<t?`(${o})`:o}case"UnaryExpression":{const t=e;return t.operator.value+("not"===t.operator.value?" ":"")+ge(t.argument,1/0)}case"CallExpression":{const t=e,n=t.args.map(ge).join(", ");return`${ge(t.callee)}(${n})`}case"MemberExpression":{const t=e;let n=ge(t.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(t.object.type)||(n=`(${n})`);let r=ge(t.property);return t.computed||"Identifier"===t.property.type||(r=`(${r})`),t.computed?`${n}[${r}]`:`${n}.${r}`}case"FilterExpression":{const t=e,n=ge(t.operand,1/0);return"CallExpression"===t.filter.type?`${n} | ${ge(t.filter)}`:`${n} | ${t.filter.value}`}case"SelectExpression":{const t=e;return`${ge(t.lhs)} if ${ge(t.test)}`}case"TestExpression":{const t=e;return`${ge(t.operand)} is${t.negate?" not":""} ${t.test.value}`}case"ArrayLiteral":case"TupleLiteral":{const t=e.value.map(ge),n="ArrayLiteral"===e.type?"[]":"()";return`${n[0]}${t.join(", ")}${n[1]}`}case"ObjectLiteral":return`{${Array.from(e.value.entries()).map((([e,t])=>`${ge(e)}: ${ge(t)}`)).join(", ")}}`;case"SliceExpression":{const t=e;return`${t.start?ge(t.start):""}:${t.stop?ge(t.stop):""}${t.step?`:${ge(t.step)}`:""}`}case"KeywordArgumentExpression":{const t=e;return`${t.key.value}=${ge(t.value)}`}case"Ternary":{const n=e,r=`${ge(n.trueExpr)} if ${ge(n.condition,0)} else ${ge(n.falseExpr)}`;return t>-1?`(${r})`:r}default:throw new Error(`Unknown expression type: ${e.type}`)}}var we=class{parsed;constructor(e){const t=u(e,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=V(t)}render(e){const t=new ie;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",G),e.set("strftime_now",U),e.set("True",!0),e.set("False",!1),e.set("None",null)}(t),e)for(const[n,r]of Object.entries(e))t.set(n,r);return new ue(t).run(this.parsed).value}format(e){return function(e,t="\t"){const n="number"==typeof t?" ".repeat(t):t;return _e(e.body,0,n).replace(/\n$/,"")}(this.parsed,e?.indent||"\t")}}},"./node_modules/onnxruntime-common/dist/esm/backend-impl.js":(e,t,n)=>{n.r(t),n.d(t,{registerBackend:()=>a,resolveBackendAndExecutionProviders:()=>i});const r=new Map,s=[],a=(e,t,n)=>{if(!t||"function"!=typeof t.init||"function"!=typeof t.createInferenceSessionHandler)throw new TypeError("not a valid backend");{const a=r.get(e);if(void 0===a)r.set(e,{backend:t,priority:n});else{if(a.priority>n)return;if(a.priority===n&&a.backend!==t)throw new Error(`cannot register backend "${e}" using priority ${n}`)}if(n>=0){const t=s.indexOf(e);-1!==t&&s.splice(t,1);for(let t=0;t<s.length;t++)if(r.get(s[t]).priority<=n)return void s.splice(t,0,e);s.push(e)}}},o=async e=>{const t=r.get(e);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{const n=!!t.initPromise;try{return n||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(e){return n||(t.error=`${e}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},i=async e=>{const t=e.executionProviders||[],n=t.map((e=>"string"==typeof e?e:e.name)),r=0===n.length?s:n;let a;const i=[],l=new Set;for(const e of r){const t=await o(e);"string"==typeof t?i.push({name:e,err:t}):(a||(a=t),a===t&&l.add(e))}if(!a)throw new Error(`no available backend found. ERR: ${i.map((e=>`[${e.name}] ${e.err}`)).join(", ")}`);for(const{name:e,err:t}of i)n.includes(e)&&console.warn(`removing requested execution provider "${e}" from session options because it is not available: ${t}`);const d=t.filter((e=>l.has("string"==typeof e?e:e.name)));return[a,new Proxy(e,{get:(e,t)=>"executionProviders"===t?d:Reflect.get(e,t)})]}},"./node_modules/onnxruntime-common/dist/esm/backend.js":(e,t,n)=>{n.r(t),n.d(t,{registerBackend:()=>r.registerBackend});var r=n("./node_modules/onnxruntime-common/dist/esm/backend-impl.js")},"./node_modules/onnxruntime-common/dist/esm/env-impl.js":(e,t,n)=>{n.r(t),n.d(t,{env:()=>a});var r=n("./node_modules/onnxruntime-common/dist/esm/version.js");let s="warning";const a={wasm:{},webgl:{},webgpu:{},versions:{common:r.version},set logLevel(e){if(void 0!==e){if("string"!=typeof e||-1===["verbose","info","warning","error","fatal"].indexOf(e))throw new Error(`Unsupported logging level: ${e}`);s=e}},get logLevel(){return s}};Object.defineProperty(a,"logLevel",{enumerable:!0})},"./node_modules/onnxruntime-common/dist/esm/env.js":(e,t,n)=>{n.r(t),n.d(t,{env:()=>r});const r=n("./node_modules/onnxruntime-common/dist/esm/env-impl.js").env},"./node_modules/onnxruntime-common/dist/esm/index.js":(e,t,n)=>{n.r(t),n.d(t,{InferenceSession:()=>a.InferenceSession,TRACE:()=>i.TRACE,TRACE_FUNC_BEGIN:()=>i.TRACE_FUNC_BEGIN,TRACE_FUNC_END:()=>i.TRACE_FUNC_END,Tensor:()=>o.Tensor,env:()=>s.env,registerBackend:()=>r.registerBackend});var r=n("./node_modules/onnxruntime-common/dist/esm/backend.js"),s=n("./node_modules/onnxruntime-common/dist/esm/env.js"),a=n("./node_modules/onnxruntime-common/dist/esm/inference-session.js"),o=n("./node_modules/onnxruntime-common/dist/esm/tensor.js"),i=(n("./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js"),n("./node_modules/onnxruntime-common/dist/esm/tensor-factory.js"),n("./node_modules/onnxruntime-common/dist/esm/trace.js"));n("./node_modules/onnxruntime-common/dist/esm/onnx-model.js"),n("./node_modules/onnxruntime-common/dist/esm/onnx-value.js")},"./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js":(e,t,n)=>{n.r(t),n.d(t,{InferenceSession:()=>o});var r=n("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),s=n("./node_modules/onnxruntime-common/dist/esm/tensor.js"),a=n("./node_modules/onnxruntime-common/dist/esm/trace.js");class o{constructor(e){this.handler=e}async run(e,t,n){(0,a.TRACE_FUNC_BEGIN)();const r={};let o={};if("object"!=typeof e||null===e||e instanceof s.Tensor||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if("object"==typeof t){if(null===t)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof s.Tensor)throw new