var e=class extends Error{constructor(e){super(e),this.name=`Eta Error`}},t=class extends e{constructor(e){super(e),this.name=`EtaParser Error`}},n=class extends e{constructor(e){super(e),this.name=`EtaRuntime Error`}},r=class extends e{constructor(e){super(e),this.name=`EtaFileResolution Error`}},i=class extends e{constructor(e){super(e),this.name=`EtaNameResolution Error`}};function a(e,n,r){let i=n.slice(0,r).split(/\n/),a=i.length,o=i[a-1].length+1;throw e+=` at line `+a+` col `+o+`: `+n.split(/\n/)[a-1]+` `+Array(o).join(` `)+`^`,new t(e)}function o(e,t,r,i){let a=t.split(` `),o=Math.max(r-3,0),s=Math.min(a.length,r+3),c=i,l=a.slice(o,s).map((e,t)=>{let n=t+o+1;return(n===r?` >> `:` `)+n+`| `+e}).join(` `),u=new n((c?c+`:`+r+` `:`line `+r+` `)+l+` `+e.message);throw u.name=e.name,u.cause=e,u}const s=(async()=>{}).constructor;function c(e,n){let r=this.config,i=n?.async?s:Function;try{return new i(r.varName,`options`,this.compileToString.call(this,e,n))}catch(r){throw r instanceof SyntaxError?new t(`Bad template syntax `+r.message+` `+Array(r.message.length+1).join(`=`)+` `+this.compileToString.call(this,e,n)+` `):r}}function l(e,t){let n=this.config,r=t?.async,i=this.compileBody,a=this.parse.call(this,e),o=`${n.functionHeader} let include = (__eta_t, __eta_d) => this.render(__eta_t, {...${n.varName}, ...(__eta_d ?? {})}, options); let includeAsync = (__eta_t, __eta_d) => this.renderAsync(__eta_t, {...${n.varName}, ...(__eta_d ?? {})}, options); let __eta = {res: "", e: this.config.escapeFunction, f: this.config.filterFunction, blocks: {}${n.debug?`, line: 1, templateStr: "`+e.replace(/\\|"/g,`\\$&`).replace(/\r\n|\n|\r/g,`\\n`)+`"`:``}}; function layout(path, data) { __eta.layout = path; __eta.layoutData = data; }${n.debug?`try {`:``}${n.useWith?`with(`+n.varName+`||{}){`:``} function ${n.outputFunctionName}(s){__eta.res+=s;} function capture(fn){const s=__eta.res;__eta.res='';try{fn();return __eta.res}finally{__eta.res=s;}} async function captureAsync(fn){const s=__eta.res;__eta.res='';try{await fn();return __eta.res}finally{__eta.res=s;}} function block(name,fn){if(__eta.layout){if(fn){__eta.blocks[name]=capture(fn);}return '';}const b=${n.varName}.__blocks||{};if(name in b){return b[name];}return fn?capture(fn):'';} async function blockAsync(name,fn){if(__eta.layout){if(fn){__eta.blocks[name]=await captureAsync(fn);}return '';}const b=${n.varName}.__blocks||{};if(name in b){return b[name];}return fn?await captureAsync(fn):'';} ${i.call(this,a)} if (__eta.layout) { __eta.res = ${r?`await includeAsync`:`include`} (__eta.layout, {...${n.varName}, body: __eta.res, ...__eta.layoutData, __blocks: __eta.blocks}); } ${n.useWith?`}`:``}${n.debug?`} catch (e) { this.RuntimeErr(e, __eta.templateStr, __eta.line, options.filepath) }`:``} return __eta.res; `;if(n.plugins)for(let e=0;e":`>`,'"':`"`,"'":`'`};function p(e){return f[e]}function m(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,p):t}const h={autoEscape:!0,autoFilter:!1,autoTrim:[!1,`nl`],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:m,filterFunction:e=>String(e),outputFunctionName:`output`,functionHeader:``,parse:{exec:``,interpolate:`=`,raw:`~`},plugins:[],rmWhitespace:!1,tags:[`<%`,`%>`],useWith:!1,varName:`it`,defaultExtension:`.eta`},g=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,_=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,v=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;function y(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,`\\$&`)}function b(e,t){return e.slice(0,t).split(` `).length}function x(e){let t=this.config,n=[],r=!1,i=0,o=t.parse,s=Object.keys(t.customTags);if(t.plugins)for(let n=0;ne&&t?e+`|`+y(t):t?y(t):e,``),u=RegExp(y(t.tags[0])+`(-|_)?\\s*(`+l+`)?\\s*`,`g`),f=RegExp(`'|"|\`|\\/\\*|(\\s*(-|_)?`+y(t.tags[1])+`)`,`g`),p;for(;p=u.exec(e);){let l=e.slice(i,p.index);i=p[0].length+p.index;let d=p[1],m=p[2]||``;c(l,d),f.lastIndex=i;let h,y=!1;for(;h=f.exec(e);)if(h[1]){let t=e.slice(i,h.index);u.lastIndex=i=f.lastIndex,r=h[2],y={t:m===o.exec?`e`:m===o.raw?`r`:m===o.interpolate?`i`:s.includes(m)?m:``,val:t};break}else{let t=h[0];if(t===`/*`){let t=e.indexOf(`*/`,f.lastIndex);t===-1&&a(`unclosed comment`,e,h.index),f.lastIndex=t}else t===`'`?(_.lastIndex=h.index,_.exec(e)?f.lastIndex=_.lastIndex:a(`unclosed string`,e,h.index)):t===`"`?(v.lastIndex=h.index,v.exec(e)?f.lastIndex=v.lastIndex:a(`unclosed string`,e,h.index)):t==="`"&&(g.lastIndex=h.index,g.exec(e)?f.lastIndex=g.lastIndex:a(`unclosed string`,e,h.index))}y?(t.debug&&(y.lineNo=b(e,p.index)),n.push(y)):a(`unclosed tag`,e,p.index)}if(c(e.slice(i,e.length),!1),t.plugins)for(let e=0;e