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 • 470 kB
import*as e from"node:fs";import*as t from"node:path";import*as s from"node:url";import*as r from"onnxruntime-common";import*as o from"onnxruntime-node";import*as n from"sharp";var a,i,l={"node:fs":t=>{t.exports=e},"node:path":e=>{e.exports=t},"node:url":e=>{e.exports=s},"onnxruntime-common":e=>{e.exports=r},"onnxruntime-node":e=>{e.exports=o},sharp:e=>{e.exports=n},"?8b6b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,t,s)=>{s.r(t),s.d(t,{Environment:()=>ie,Interpreter:()=>de,Template:()=>Me,parse:()=>R,tokenize:()=>d});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)}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]],c=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function d(e,t={}){const s=[],d=function(e,t={}){return e.endsWith("\n")&&(e=e.slice(0,-1)),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 u=0,m=0;const _=e=>{let t="";for(;e(d[u]);)if("\\"!==d[u]){if(t+=d[u++],u>=d.length)throw new SyntaxError("Unexpected end of input")}else{if(++u,u>=d.length)throw new SyntaxError("Unexpected end of input");const e=d[u++],s=c.get(e);if(void 0===s)throw new SyntaxError(`Unexpected escaped character: ${e}`);t+=s}return t},p=()=>{const e=s.at(-1);e&&e.type===r.Text&&(e.value=e.value.trimEnd(),""===e.value&&s.pop())},h=()=>{for(;u<d.length&&i(d[u]);)++u};e:for(;u<d.length;){const e=s.at(-1)?.type;if(void 0===e||e===r.CloseStatement||e===r.CloseExpression||e===r.Comment){let e="";for(;u<d.length&&("{"!==d[u]||"%"!==d[u+1]&&"{"!==d[u+1]&&"#"!==d[u+1]);)e+=d[u++];if(e.length>0){s.push(new o(e,r.Text));continue}}if("{"===d[u]&&"#"===d[u+1]){u+=2;const e="-"===d[u];e&&++u;let t="";for(;"#"!==d[u]||"}"!==d[u+1];){if(u+2>=d.length)throw new SyntaxError("Missing end of comment tag");t+=d[u++]}const n=t.endsWith("-");n&&(t=t.slice(0,-1)),e&&p(),s.push(new o(t,r.Comment)),u+=2,n&&h();continue}if("{%-"===d.slice(u,u+3)){p(),s.push(new o("{%",r.OpenStatement)),u+=3;continue}if("{{-"===d.slice(u,u+3)){p(),s.push(new o("{{",r.OpenExpression)),m=0,u+=3;continue}if(_(i),"-%}"===d.slice(u,u+3)){s.push(new o("%}",r.CloseStatement)),u+=3,h();continue}if("-}}"===d.slice(u,u+3)){s.push(new o("}}",r.CloseExpression)),u+=3,h();continue}const t=d[u];if("-"===t||"+"===t){const e=s.at(-1)?.type;if(e===r.Text||void 0===e)throw new SyntaxError(`Unexpected character: ${t}`);switch(e){case r.Identifier:case r.NumericLiteral:case r.StringLiteral:case r.CloseParen:case r.CloseSquareBracket:break;default:{++u;const e=_(a);s.push(new o(`${t}${e}`,e.length>0?r.NumericLiteral:r.UnaryOperator));continue}}}for(const[e,t]of l){if("}}"===e&&m>0)continue;if(d.slice(u,u+e.length)===e){s.push(new o(e,t)),t===r.OpenExpression?m=0:t===r.OpenCurlyBracket?++m:t===r.CloseCurlyBracket&&--m,u+=e.length;continue e}}if("'"!==t&&'"'!==t)if(a(t)){let e=_(a);if("."===d[u]&&a(d[u+1])){++u;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{++u;const e=_((e=>e!==t));s.push(new o(e,r.StringLiteral)),++u}}return s}var u=class{type="Statement"},m=class extends u{constructor(e){super(),this.body=e}type="Program"},_=class extends u{constructor(e,t,s){super(),this.test=e,this.body=t,this.alternate=s}type="If"},p=class extends u{constructor(e,t,s,r){super(),this.loopvar=e,this.iterable=t,this.body=s,this.defaultBlock=r}type="For"},h=class extends u{type="Break"},g=class extends u{type="Continue"},f=class extends u{constructor(e,t,s){super(),this.assignee=e,this.value=t,this.body=s}type="Set"},M=class extends u{constructor(e,t,s){super(),this.name=e,this.args=t,this.body=s}type="Macro"},w=class extends u{constructor(e){super(),this.value=e}type="Comment"},T=class extends u{type="Expression"},x=class extends T{constructor(e,t,s){super(),this.object=e,this.property=t,this.computed=s}type="MemberExpression"},b=class extends T{constructor(e,t){super(),this.callee=e,this.args=t}type="CallExpression"},P=class extends T{constructor(e){super(),this.value=e}type="Identifier"},k=class extends T{constructor(e){super(),this.value=e}type="Literal"},F=class extends k{type="IntegerLiteral"},v=class extends k{type="FloatLiteral"},y=class extends k{type="StringLiteral"},C=class extends k{type="ArrayLiteral"},S=class extends k{type="TupleLiteral"},A=class extends k{type="ObjectLiteral"},L=class extends T{constructor(e,t,s){super(),this.operator=e,this.left=t,this.right=s}type="BinaryExpression"},E=class extends T{constructor(e,t){super(),this.operand=e,this.filter=t}type="FilterExpression"},I=class extends u{constructor(e,t){super(),this.filter=e,this.body=t}type="FilterStatement"},z=class extends T{constructor(e,t){super(),this.lhs=e,this.test=t}type="SelectExpression"},D=class extends T{constructor(e,t,s){super(),this.operand=e,this.negate=t,this.test=s}type="TestExpression"},j=class extends T{constructor(e,t){super(),this.operator=e,this.argument=t}type="UnaryExpression"},V=class extends T{constructor(e=void 0,t=void 0,s=void 0){super(),this.start=e,this.stop=t,this.step=s}type="SliceExpression"},N=class extends T{constructor(e,t){super(),this.key=e,this.value=t}type="KeywordArgumentExpression"},O=class extends T{constructor(e){super(),this.argument=e}type="SpreadExpression"},B=class extends u{constructor(e,t,s){super(),this.call=e,this.callerArgs=t,this.body=s}type="CallStatement"},G=class extends T{constructor(e,t,s){super(),this.condition=e,this.trueExpr=t,this.falseExpr=s}type="Ternary"};function R(e){const t=new m([]);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 w(e[s++].value);case r.Text:return new y(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=T();let t=null;const o=[];if(l(r.Equals))++s,t=T();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 f(e,t,o)}();break;case"if":++s,o=u(),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 M(e,t,s)}(),n(r.OpenStatement,"Expected {% token"),a("endmacro"),n(r.CloseStatement,"Expected %} token");break;case"for":++s,o=function(){const e=T(!0);if(!(e instanceof P||e instanceof S))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=k();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 p(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 m=new b(t,d);o=new B(m,e,u);break}case"break":++s,n(r.CloseStatement,"Expected closing statement token"),o=new h;break;case"continue":++s,n(r.CloseStatement,"Expected closing statement token"),o=new g;break;case"filter":{++s;let e=Z();e instanceof P&&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 I(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=k();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 u(){const e=k();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=u();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 T(e=!1){const t=e?Z:k,o=[t()],n=l(r.Comma);for(;n&&(++s,o.push(t()),l(r.Comma)););return n?new S(o):o[0]}function k(){return R()}function R(){const e=q();if(d("if")){++s;const t=q();if(d("else")){++s;const r=R();return new G(t,e,r)}return new z(e,t)}return e}function q(){let t=$();for(;d("or");){const r=e[s];++s;const o=$();t=new L(r,t,o)}return t}function $(){let t=W();for(;d("and");){const r=e[s];++s;const o=W();t=new L(r,t,o)}return t}function W(){let t;for(;d("not");){const r=e[s];++s;const o=W();t=new j(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 L(n,t,a)}return t}()}function U(){let t=Y();for(;l(r.AdditiveBinaryOperator);){const r=e[s];++s;const o=Y();t=new L(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=k();o=new O(e)}else if(o=k(),l(r.Equals)){if(++s,!(o instanceof P))throw new SyntaxError("Expected identifier for keyword argument");const e=k();o=new N(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(k()),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 V(...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 x(t,a,i)}return t}function Y(){let t=K();for(;l(r.MultiplicativeBinaryOperator);){const r=e[s++],o=K();t=new L(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 P))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 P))throw new SyntaxError("Expected identifier for the test");e=new D(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 v(Number(e)):new F(Number(e))}case r.StringLiteral:{let o=t.value;for(;l(r.StringLiteral);)o+=e[s++].value;return new y(o)}case r.Identifier:return new P(t.value);case r.OpenParen:{const e=T();return n(r.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),e}case r.OpenSquareBracket:{const e=[];for(;!l(r.CloseSquareBracket);)e.push(k()),l(r.Comma)&&++s;return++s,new C(e)}case r.OpenCurlyBracket:{const e=new Map;for(;!l(r.CloseCurlyBracket);){const t=k();n(r.Colon,"Expected colon between key and value in object literal");const o=k();e.set(t,o),l(r.Comma)&&++s}return++s,new A(e)}default:throw new SyntaxError(`Unexpected token: ${t.type}`)}}for(;s<e.length;)t.body.push(i());return t}function q(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 $(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 W(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 U=class extends Error{},Q=class extends Error{},X=class{type="RuntimeValue";value;builtins=new Map;constructor(e=void 0){this.value=e}__bool__(){return new K(!!this.value)}toString(){return String(this.value)}},H=class extends X{type="IntegerValue"},J=class extends X{type="FloatValue";toString(){return this.value%1==0?this.value.toFixed(1):this.value.toString()}},Y=class extends X{type="StringValue";builtins=new Map([["upper",new oe((()=>new Y(this.value.toUpperCase())))],["lower",new oe((()=>new Y(this.value.toLowerCase())))],["strip",new oe((()=>new Y(this.value.trim())))],["title",new oe((()=>new Y(this.value.replace(/\b\w/g,(e=>e.toUpperCase())))))],["capitalize",new oe((()=>new Y(this.value.charAt(0).toUpperCase()+this.value.slice(1))))],["length",new H(this.value.length)],["rstrip",new oe((()=>new Y(this.value.trimEnd())))],["lstrip",new oe((()=>new Y(this.value.trimStart())))],["startswith",new oe((e=>{if(0===e.length)throw new Error("startswith() requires at least one argument");const t=e[0];if(t instanceof Y)return new K(this.value.startsWith(t.value));if(t instanceof se){for(const e of t.value){if(!(e instanceof Y))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(e.value))return new K(!0)}return new K(!1)}throw new Error("startswith() argument must be a string or tuple of strings")}))],["endswith",new oe((e=>{if(0===e.length)throw new Error("endswith() requires at least one argument");const t=e[0];if(t instanceof Y)return new K(this.value.endsWith(t.value));if(t instanceof se){for(const e of t.value){if(!(e instanceof Y))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(e.value))return new K(!0)}return new K(!1)}throw new Error("endswith() argument must be a string or tuple of strings")}))],["split",new oe((e=>{const t=e[0]??new ne;if(!(t instanceof Y||t instanceof ne))throw new Error("sep argument must be a string or null");const s=e[1]??new H(-1);if(!(s instanceof H))throw new Error("maxsplit argument must be a number");let r=[];if(t instanceof ne){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 se(r.map((e=>new Y(e))))}))],["replace",new oe((e=>{if(e.length<2)throw new Error("replace() requires at least two arguments");const t=e[0],s=e[1];if(!(t instanceof Y&&s instanceof Y))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 ne:e[2]:new ne,!(r instanceof H||r instanceof ne))throw new Error("replace() count argument must be a number or null");return new Y(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))}))]])},K=class extends X{type="BooleanValue"};function Z(e,t,s,r=!0){const o=s??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 s=t?" ".repeat(t):"",n="\n"+s.repeat(o),a=n+s;if("ArrayValue"===e.type){const s=e.value.map((e=>Z(e,t,o+1,r)));return t?`[${a}${s.join(`,${a}`)}${n}]`:`[${s.join(", ")}]`}{const s=Array.from(e.value.entries()).map((([e,s])=>{const n=`"${e}": ${Z(s,t,o+1,r)}`;return t?`${a}${n}`:n}));return t?`{${s.join(",")}${n}}`:`{${s.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${e.type}`)}}var ee=class extends X{type="ObjectValue";__bool__(){return new K(this.value.size>0)}builtins=new Map([["get",new oe((([e,t])=>{if(!(e instanceof Y))throw new Error(`Object key must be a string: got ${e.type}`);return this.value.get(e.value)??t??new ne}))],["items",new oe((()=>this.items()))],["keys",new oe((()=>this.keys()))],["values",new oe((()=>this.values()))],["dictsort",new oe((e=>{let t=new Map;const s=e.filter((e=>!(e instanceof te)||(t=e.value,!1))),r=s.at(0)??t.get("case_sensitive")??new K(!1);if(!(r instanceof K))throw new Error("case_sensitive must be a boolean");const o=s.at(1)??t.get("by")??new Y("key");if(!(o instanceof Y))throw new Error("by must be a string");if(!["key","value"].includes(o.value))throw new Error("by must be either 'key' or 'value'");const n=s.at(2)??t.get("reverse")??new K(!1);if(!(n instanceof K))throw new Error("reverse must be a boolean");const a=Array.from(this.value.entries()).map((([e,t])=>new se([new Y(e),t]))).sort(((e,t)=>{const s="key"===o.value?0:1,a=ce(e.value[s],t.value[s],r.value);return n.value?-a:a}));return new se(a)}))]]);items(){return new se(Array.from(this.value.entries()).map((([e,t])=>new se([new Y(e),t]))))}keys(){return new se(Array.from(this.value.keys()).map((e=>new Y(e))))}values(){return new se(Array.from(this.value.values()))}toString(){return Z(this,null,0,!1)}},te=class extends ee{type="KeywordArgumentsValue"},se=class extends X{type="ArrayValue";builtins=new Map([["length",new H(this.value.length)]]);__bool__(){return new K(this.value.length>0)}toString(){return Z(this,null,0,!1)}},re=class extends se{type="TupleValue"},oe=class extends X{type="FunctionValue"},ne=class extends X{type="NullValue"},ae=class extends X{type="UndefinedValue"},ie=class{constructor(e){this.parent=e}variables=new Map([["namespace",new oe((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 oe],["odd",e=>{if(!(e instanceof H))throw new Error(`cannot odd on ${e.type}`);return e.value%2!=0}],["even",e=>{if(!(e instanceof H))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 H||e instanceof J],["integer",e=>e instanceof H],["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,ue(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 ae}catch{return new ae}}};function le(e,t){const s=t.split(".");let r=e;for(const e of s)if(r instanceof ee)r=r.value.get(e)??new ae;else{if(!(r instanceof se))return new ae;{const t=parseInt(e,10);if(!(!isNaN(t)&&t>=0&&t<r.value.length))return new ae;r=r.value[t]}}return r}function ce(e,t,s=!1){if(e instanceof ne&&t instanceof ne)return 0;if(e instanceof ne||t instanceof ne)throw new Error(`Cannot compare ${e.type} with ${t.type}`);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}`);const r=e=>e instanceof H||e instanceof J||e instanceof K,o=e=>e instanceof K?e.value?1:0:e.value;if(r(e)&&r(t)){const s=o(e),r=o(t);return s<r?-1:s>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,o=t.value;return s||(r=r.toLowerCase(),o=o.toLowerCase()),r<o?-1:r>o?1:0}throw new Error(`Cannot compare type: ${e.type}`)}var de=class{global;constructor(e){this.global=e??new ie}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 K(s.value==r.value);case"!=":return new K(s.value!=r.value)}if(s instanceof ae||r instanceof ae){if(r instanceof ae&&["in","not in"].includes(e.operator.value))return new K("not in"===e.operator.value);throw new Error(`Cannot perform operation ${e.operator.value} on undefined values`)}if(s instanceof ne||r instanceof ne)throw new Error("Cannot perform operation on null values");if("~"===e.operator.value)return new Y(s.value.toString()+r.value.toString());if((s instanceof H||s instanceof J)&&(r instanceof H||r instanceof J)){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 J||r instanceof J?new J(n):new H(n)}case"/":return new J(t/o);case"%":{const e=t%o;return s instanceof J||r instanceof J?new J(e):new H(e)}case"<":return new K(t<o);case">":return new K(t>o);case">=":return new K(t>=o);case"<=":return new K(t<=o)}}else if(s instanceof se&&r instanceof se){if("+"===e.operator.value)return new se(s.value.concat(r.value))}else if(r instanceof se){const t=void 0!==r.value.find((e=>e.value===s.value));switch(e.operator.value){case"in":return new K(t);case"not in":return new K(!t)}}if((s instanceof Y||r instanceof Y)&&"+"===e.operator.value)return new Y(s.value.toString()+r.value.toString());if(s instanceof Y&&r instanceof Y)switch(e.operator.value){case"in":return new K(r.value.includes(s.value));case"not in":return new K(!r.value.includes(s.value))}if(s instanceof Y&&r instanceof ee)switch(e.operator.value){case"in":return new K(r.value.has(s.value));case"not in":return new K(!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 se))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 Y(Z(e));if(e instanceof se)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 H(e.value.length);case"reverse":return new se(e.value.slice().reverse());case"sort":return new se(e.value.slice().sort(((e,t)=>ce(e,t,!1))));case"join":return new Y(e.value.map((e=>e.value)).join(""));case"string":return new Y(Z(e,null,0,!1));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 se(s)}default:throw new Error(`Unknown ArrayValue filter: ${r.value}`)}else if(e instanceof Y)switch(r.value){case"length":case"upper":case"lower":case"title":case"capitalize":{const t=e.builtins.get(r.value);if(t instanceof oe)return t.value([],s);if(t instanceof H)return t;throw new Error(`Unknown StringValue filter: ${r.value}`)}case"trim":return new Y(e.value.trim());case"indent":return new Y(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 H(isNaN(t)?0:t)}case"float":{const t=parseFloat(e.value);return new J(isNaN(t)?0:t)}default:throw new Error(`Unknown StringValue filter: ${r.value}`)}else if(e instanceof H||e instanceof J)switch(r.value){case"abs":return e instanceof H?new H(Math.abs(e.value)):new J(Math.abs(e.value));case"int":return new H(Math.floor(e.value));case"float":return new J(e.value);default:throw new Error(`Unknown NumericValue filter: ${r.value}`)}else if(e instanceof ee)switch(r.value){case"items":return new se(Array.from(e.value.entries()).map((([e,t])=>new se([new Y(e),t]))));case"length":return new H(e.value.size);default:{const t=e.builtins.get(r.value);if(t)return t instanceof oe?t.value([],s):t;throw new Error(`Unknown ObjectValue filter: ${r.value}`)}}else if(e instanceof K)switch(r.value){case"bool":return new K(e.value);case"int":return new H(e.value?1:0);case"float":return new J(e.value?1:0);case"string":return new Y(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 ne;if(!(o instanceof H||o instanceof ne))throw new Error("If set, indent must be a number");return new Y(Z(e,o.value))}if("join"===o){let t;if(e instanceof Y)t=Array.from(e.value);else{if(!(e instanceof se))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 Y("");if(!(i instanceof Y))throw new Error("separator must be a string");return new Y(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 H(0):new J(0));if(e instanceof Y){const t="int"===o?parseInt(e.value,10):parseFloat(e.value);return isNaN(t)?a:"int"===o?new H(t):new J(t)}if(e instanceof H||e instanceof J)return e;if(e instanceof K)return"int"===o?new H(e.value?1:0):new J(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 Y(""),a=t[1]??o.get("boolean")??new K(!1);if(!(a instanceof K))throw new Error("`default` filter flag must be a boolean");return e instanceof ae||a.value&&!e.__bool__().value?n:e}if(e instanceof se){switch(o){case"sort":{const[t,o]=this.evaluateArguments(r.args,s),n=t.at(0)??o.get("reverse")??new K(!1);if(!(n instanceof K))throw new Error("reverse must be a boolean");const a=t.at(1)??o.get("case_sensitive")??new K(!1);if(!(a instanceof K))throw new Error("case_sensitive must be a boolean");const i=t.at(2)??o.get("attribute")??new ne;if(!(i instanceof Y||i instanceof H||i instanceof ne))throw new Error("attribute must be a string, integer, or null");const l=e=>{if(i instanceof ne)return e;return le(e,i instanceof H?String(i.value):i.value)};return new se(e.value.slice().sort(((e,t)=>{const s=ce(l(e),l(t),a.value);return n.value?-s:s})))}case"selectattr":case"rejectattr":{const t="selectattr"===o;if(e.value.some((e=>!(e instanceof ee))))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 se(c)}case"map":{const[,t]=this.evaluateArguments(r.args,s);if(t.has("attribute")){const s=t.get("attribute");if(!(s instanceof Y))throw new Error("attribute must be a string");const r=t.get("default"),o=e.value.map((e=>{if(!(e instanceof ee))throw new Error("items in map must be an object");const t=le(e,s.value);return t instanceof ae?r??new ae:t}));return new se(o)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${o}`)}if(e instanceof Y){switch(o){case"indent":{const[t,o]=this.evaluateArguments(r.args,s),n=t.at(0)??o.get("width")??new H(4);if(!(n instanceof H))throw new Error("width must be a number");const a=t.at(1)??o.get("first")??new K(!1),i=t.at(2)??o.get("blank")??new K(!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 Y(d.join("\n"))}case"replace":{const t=e.builtins.get("replace");if(!(t instanceof oe))throw new Error("replace filter not available");const[o,n]=this.evaluateArguments(r.args,s);return t.value([...o,new te(n)],s)}}throw new Error(`Unknown StringValue filter: ${o}`)}if(e instanceof ee){const t=e.builtins.get(o);if(t&&t instanceof oe){const[e,o]=this.evaluateArguments(r.args,s);return o.size>0&&e.push(new te(o)),t.value(e,s)}throw new Error(`Unknown ObjectValue 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 K(e.negate?!o:o)}evaluateSelectExpression(e,t){return this.evaluate(e.test,t).__bool__().value?this.evaluate(e.lhs,t):new ae}evaluateUnaryExpression(e,t){const s=this.evaluate(e.argument,t);if("not"===e.operator.value)return new K(!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 Y(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 te(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 se||e instanceof Y))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 H||r instanceof ae))throw new Error("Slice start must be numeric or undefined");if(!(o instanceof H||o instanceof ae))throw new Error("Slice stop must be numeric or undefined");if(!(n instanceof H||n instanceof ae))throw new Error("Slice step must be numeric or undefined");return e instanceof se?new se($(e.value,r.value,o.value,n.value)):new Y($(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 Y(e.property.value);if(s instanceof ee){if(!(r instanceof Y))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 se||s instanceof Y)if(r instanceof H)o=s.value.at(r.value),s instanceof Y&&(o=new Y(s.value.at(r.value)));else{if(!(r instanceof Y))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);o=s.builtins.get(r.value)}else{if(!(r instanceof Y))throw new Error(`Cannot access property with non-string: got ${r.type}`);o=s.builtins.get(r.value)}return o instanceof X?o:new ae}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 se))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 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");o.value.set(r.property.value,s)}}return new ne}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 ie(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 se||o instanceof ee))throw new Error(`Expected iterable or object type in for loop: got ${o.type}`);o instanceof ee&&(o=o.keys());const n=[],a=[];for(let t=0;t<o.value.length;++t){const i=new ie(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 H(t+1)],["index0",new H(t)],["revindex",new H(n.length-t)],["revindex0",new H(n.length-t-1)],["first",new K(0===t)],["last",new K(t===n.length-1)],["length",new H(n.length)],["previtem",t>0?n[t-1]:new ae],["nextitem",t<n.length-1?n[t+1]:new ae]]);s.setVariable("loop",new ee(r)),a[t](s);try{i+=this.evaluateBlock(e.body,s).value}catch(e){if(e instanceof Q)continue;if(e instanceof U)break;throw e}l=!1}if(l){i+=this.evaluateBlock(e.defaultBlock,s).value}return new Y(i)}evaluateMacro(e,t){return t.setVariable(e.name.value,new oe(((t,s)=>{const r=new ie(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 ne}evaluateCallStatement(e,t){const s=new oe(((t,s)=>{const r=new ie(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 ae)}return this.evaluateBlock(e.body,r)})),[r,o]=this.evaluateArguments(e.call.args,t);r.push(new te(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 ie(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 ae;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 U;case"Continue":throw new Q;case"IntegerLiteral":return new H(e.value);case"FloatLiteral":return new J(e.value);case"StringLiteral":return new Y(e.value);case"ArrayLiteral":return new se(e.value.map((e=>this.evaluate(e,t))));case"TupleLiteral":return new re(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 Y))throw new Error(`Object keys must be strings: got ${e.type}`);s.set(e.value,this.evaluate(o,t))}return new ee(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 ne;default:throw new SyntaxError(`Unknown node type: ${e.type}`)}}};function ue(e){switch(typeof e){case"number":return Number.isInteger(e)?new H(e):new J(e);case"string":return new Y(e);case"boolean":return new K(e);case"undefined":return new ae;case"object":return null===e?new ne:Array.isArray(e)?new se(e.map(ue)):new ee(new Map(Object.entries(e).map((([e,t])=>[e,ue(t)]))));case"function":return new oe(((t,s)=>ue(e(...t.map((e=>e.value)))??null)));default:throw new Error(`Cannot convert to runtime value: ${e}`)}}var me="\n",_e="{%- ",pe=" -%}";function he(...e){return _e+e.join(" ")+pe}function ge(e,t,s){return e.map((e=>function(e,t,s){const r=s.repeat(t);switch(e.type){case"Program":return ge(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+he("if",fe(o[0].test))+me+ge(o[0].body,t+1,s);for(let e=1;e<o.length;++e)a+=me+r+he("elif",fe(o[e].test))+me+ge(o[e].body,t+1,s);n&&n.alternate.length>0&&(a+=me+r+he("else")+me+ge(n.alternate,t+1,s));return a+=me+r+he("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=`${fe(t.lhs)} if ${fe(t.test)}`}else o=fe(e.iterable);let n=r+he("for",fe(e.loopvar),"in",o)+me+ge(e.body,t+1,s);e.defaultBlock.length>0&&(n+=me+r+he("else")+me+ge(e.defaultBlock,t+1,s));return n+=me+r+he("endfor"),n}(e,t,s);case"Set":return function(e,t,s){const r=s.repeat(t),o=fe(e.assignee),n=e.value?fe(e.value):"",a=r+he("set",`${o}${e.value?" = "+n:""}`);if(0===e.body.length)return a;return a+me+ge(e.body,t+1,s)+me+r+he("endset")}(e,t,s);case"Macro":return function(e,t,s){const r=s.repeat(t),o=e.args.map(fe).join(", ");return r+he("macro",`${e.name.value}(${o})`)+me+ge(e.body,t+1,s)+me+r+he("endmacro")}(e,t,s);case"Break":return r+he("break");case"Continue":return r+he("continue");case"CallStatement":return function(e,t,s){const r=s.repeat(t),o=e.callerArgs&&e.callerArgs.length>0?`(${e.callerArgs.map(fe).join(", ")})`:"",n=fe(e.call);let a=r+he(`call${o}`,n)+me;return a+=ge(e.body,t+1,s)+me,a+=r+he("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:fe(e.filter);let n=r+he("filter",o)+me;return n+=ge(e.body,t+1,s)+me,n+=r+he("endfilter"),n}(e,t,s);case"Comment":return r+"{# "+e.value+" #}";default:return r+"{{- "+fe(e)+" -}}"}}(e,t,s))).join(me)}function fe(e,t=-1){switch(e.type){case"SpreadExpression":return`*${fe(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=fe(s.left,r),n=fe(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?" ":"")+fe(t.argument,1/0)}case"CallExpression":{const t=e,s=t.args.map(fe).join(", ");return`${fe(t.callee)}(${s})`}case"MemberExpression":{const t=e;let s=fe(t.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(t.object.type)||(s=`(${s})`);let r=fe(t.property);return t.computed||"Identifier"===t.property.type||(r=`(${r})`),t.computed?`${s}[${r}]`:`${s}.${r}`}case"FilterExpression":{const t=e,s=fe(t.operand,1/0);return"CallExpression"===t.filter.type?`${s} | ${fe(t.filter)}`:`${s} | ${t.filter.value}`}case"SelectExpression":{const t=e;return`${fe(t.lhs)} if ${fe(t.test)}`}case"TestExpression":{const t=e;return`${fe(t.operand)} is${t.negate?" not":""} ${t.test.value}`}case"ArrayLiteral":case"TupleLiteral":{const t=e.value.map(fe),s="ArrayLiteral"===e.type?"[]":"()";return`${s[0]}${t.join(", ")}${s[1]}`}case"ObjectLiteral":return`{${Array.from(e.value.entries()).map((([e,t])=>`${fe(e)}: ${fe(t)}`)).join(", ")}}`;case"SliceExpression":{const t=e;return`${t.start?fe(t.start):""}:${t.stop?fe(t.stop):""}${t.step?`:${fe(t.step)}`:""}`}case"KeywordArgumentExpression":{const t=e;return`${t.key.value}=${fe(t.value)}`}case"Ternary":{const s=e,r=`${fe(s.trueExpr)} if ${fe(s.condition,0)} else ${fe(s.falseExpr)}`;return t>-1?`(${r})`:r}default:throw new Error(`Unknown expression type: ${e.type}`)}}var Me=class{parsed;constructor(e){const t=d(e,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=R(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",q),e.set("strftime_now",W),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 de(t).run(this.parsed).value}format(e){return function(e,t="\t"){const s="number"==typeof t?" ".repeat(t):t;return ge(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:()=>b,isONNXTensor:()=>T,runInferenceSession:()=>w});var o=s("./src/env.js"),n=s("onnxruntime-node"),a=s("?8b6b"),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 m=Symbol.for("onnxruntime");if(m in globalThis)u=globalThis[m];else if(o.apis.IS_NODE_ENV){switch(u=n.default??n,process.platform){case"win32":c.push("dml");break;case"linux":"x64"===process.arch&&c.push("cuda")}c.push("cpu"),d=["cpu"]}else u=r||(r=s.t(a,2)),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 _=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=_.create(e,t);h??=r;const o=await r;return o.config=s,o}let f=Promise.resolve();const M=o.apis.IS_BROWSER_ENV||o.apis.IS_WEBWORKER_ENV;async function w(e,t){const s=()=>e.run(t);return await(M?f=f.then(s):s())}function T(e){return e instanceof u.Tensor}const x=u?.env;function b(){return x?.wasm?.proxy}x?.wasm&&("undefined"!=typeof ServiceWorkerGlobalScope&&self instanceof ServiceWorkerGlobalScope||x.wasm.wasmPaths||(x.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${o.env.version}/dist/`),x.wasm.proxy=!1),x?.webgpu&&(x.webgpu.powerPreference="high-performance"),o.env.backends.onnx=x},"./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:()=>m,post_process_panoptic_segmentation:()=>f,post_process_semantic_segmentation:()=>_});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 m(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,m={boxes:[],classes:[],scores:[]},_=o[e],p=a[e];for(let e=0;e<l;++e){let s,o=_[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]))),m.b